Limitations of visionOS

Hi,

What are the limitations and capabilities of visionOS? I cannot find answers to the questions I have.

  1. Let's say you have some USDZ files stored in a cloud service, there are so many of them that the app would be huge if you put them in assets. You want to fetch the one you are interested in and show it while an app is running. Is it possible to load USDZ files at runtime from the network?
  2. Is there a limit to how many objects can be visible at once? Let's say I am in an open space, with no walls. I want to place 100 3D objects somewhere in space. Is it possible? What if I placed 500, 1000?
  3. Is there a way to save the anchor point of the object? I want to open the app again and have an object in the same place I left it. I would like to arrange my space and have objects always in the same spots.
  4. How does the OS behave if objects are in different rooms? Is it possible to walk around, visit different rooms, and have objects anchored there? Would it behave like real objects?
  5. Is it possible to color a plane? Let's say there is a wall and it's black. I want this wall to be orange. Is it possible?

Replies

Hello, generally speaking, I advise that in the future you try to open one thread per question (it just helps people in the future trying to find a particular answer to something), now on to your questions:

Let's say you have some USDZ files stored in a cloud service, there are so many of them that the app would be huge if you put them in assets. You want to fetch the one you are interested in and show it while an app is running. Is it possible to load USDZ files at runtime from the network?

Yes, that is possible. You can download the remote asset using URLSession, and then present that file in a RealityView for example. Some APIs (like Model3D) handle the downloading and presentation for you.

Is there a limit to how many objects can be visible at once? Let's say I am in an open space, with no walls. I want to place 100 3D objects somewhere in space. Is it possible? What if I placed 500, 1000?

Every app's implementation is different and therefore the performance characteristics are dynamic. Give it a try in your app, and if you do hit a performance bottleneck, my recommendation is always to go through the "Performance Optimization Loop", Measure (with Instruments) -> Identify the largest bottleneck (by analyzing the trace) -> Try to fix the largest bottleneck (by implementing a solution) -> repeat until performance is satisfactory.

Is there a way to save the anchor point of the object? I want to open the app again and have an object in the same place I left it. I would like to arrange my space and have objects always in the same spots.

Yes, you can use WorldAnchor for this purpose.

Is it possible to color a plane? Let's say there is a wall and it's black. I want this wall to be orange. Is it possible?

Yes, take a look at the Placing content on detected planes sample code!

For (1), consider using an on-demand resource.

https://developer.apple.com/library/archive/documentation/FileManagement/Conceptual/On_Demand_Resources_Guide/index.html .