Breaking Through PolySpatial's ~8k Object Limit – Seeking Alternative Approaches for Large-Scale Digital Twins
Confirmed: PolySpatial make Doubles MeshFilter Count – Hard Limit at ~8k Active Objects (15.9k Total)
Project Context & Research Goals
I’m developing an industrial digital twin application for Apple Vision Pro using Unity’s PolySpatial framework (RealityKit rendering in Unbounded_Volume mode). The scene contains complex factory environments with:
- Production line equipment Many fragmented grid objects need to be merged.)
- Dynamic product racks (state-switchable assets)
- Animated worker avatars
To optimize performance, I’m systematically testing visionOS’s rendering capacity limits. Through controlled stress tests, I’ve identified a critical threshold:
Key Finding
When the total MeshFilter count reaches 15,970 (system baseline + 7,985 user-created objects × 2 due to PolySpatial cloning), the application crashes consistently. This suggests:
PolySpatial’s mirroring mechanism effectively doubles GameObject overhead
An apparent hard limit exists around ~8k active mesh objects in practice
Objectives for This Discussion
-
Verify if others have encountered similar limits with PolySpatial/RealityKit
-
Understand whether this is a:
- Memory constraint (per-app allocation)
- Render pipeline limit (Metal draw calls)
- Unity-specific PolySpatial behavior
- Explore optimization strategies beyond brute-force object reduction
Why This Matters
Industrial metaverse applications require rendering thousands of interactive objects . Confirming these limits will help our team:
- Design safer content guidelines
- Prioritize GPU instancing/LOD investments
- Potentially contribute back to PolySpatial’s optimization
I’d appreciate insights from engineers who’ve:
- Pushed similar large-scale scenes in visionOS
- Worked around PolySpatial’s cloning overhead
- Discovered alternative capacity limits (vertices/draw calls)