For a visionOS app whose main content is 3D, such as a game or immersive experience, is it recommended to use a volumetric window as the main menu or in-game menu?
I’d like to understand the intended use cases for menus built as volumetric windows.
Specifically:
-
What are the advantages of using a volumetric window for menu UI compared with a regular 2D window or an in-scene SwiftUI attachment?
-
What limitations should developers be aware of, such as fixed size, placement behavior, lighting separation, interaction comfort, or window management?
-
For a 3D game-like app, is a volumetric menu generally considered a good visionOS design pattern, or should volumetric windows be reserved for 3D content rather than menu-heavy UI?
Any guidance on the recommended design approach would be appreciated.
Hey @Sakuya_Izayoi,
Thanks for your question. Quoting the Human Interface guidelines, "Prefer using a volume to display rich, 3D content. In contrast, if you want to present a familiar, UI-centric interface, it generally works best to use a window."
I'd love to know a little bit more about what you are thinking about. Volumetric windows are best for contents that fill the depth of the volume. If you have flat content, presenting this with a normal window or embedded in the scene using a ViewAttachmentComponent is usually the best approach. Why are you considering using a volumetric window rather than a standard window?
You might consider taking some inspiration from our sample code projects:
- Hello World launches as a normal window, and opens a volumetric window to show the globe. This volumetric window includes an ornament to configure the options for the globe. When the user launches the immersive space for the solar system a window provides additional context to the user using the approached outlined in this sample code.
- Petite Asteroids launches as a volume, with navigation embedded within the scene using
ViewAttachmentComponent. An ornament is also used to provide consistently visible settings. - Canyon Crosser launches as a volume, allowing the user to select a location to explore from a 3D carousel.
Let me know if you have additional questions,
Michael