Universe vs Omniverse
Forge Universe and NVIDIA Omniverse both reason about 3D worlds, but they solve different problems. Universe is a static-site, JSON-first PoC: one scene file drives SVG and WebGL renderers plus a small in-browser rigid-body loop. Omniverse is a GPU-centric platform for OpenUSD assets, RTX rendering, and production physics (PhysX, Isaac Sim).
Use this page to choose the right tool and to see what Universe deliberately does not try to replace.
Comparison matrix
| Dimension | Forge Universe | NVIDIA Omniverse |
|---|---|---|
| Primary artifact | Scene JSON v1 (version, nodes, camera, sim) |
OpenUSD (.usd / layers, composition) |
| Hosting | Static files (Firebase Hosting, any CDN) | Workstation GPU, Nucleus server, cloud Isaac / OV Kit |
| Rendering | SVG wireframes, CSS 3D cube, Three.js WebGL | RTX path tracing, Hydra delegates, material graphs |
| Physics | UniverseSim — semi-implicit Euler, gravity, ground plane, sphere/AABB contacts in JS |
PhysX, deformables, joints, sensors; Isaac robotics stacks |
| Scene graph | Flat nodes[] with poses |
USD prims, variants, references, live edits |
| Collaboration | None in v1 (file-based scenes) | Nucleus live sync, multi-user USD sessions |
| Digital twin | Pose sync hook via sim.bodies → node.pose |
Full sensor sim, ROS bridges, enterprise twin pipelines |
| Verification | KS hashes, Playwright oracles, Node unit tests | Kit extensions, OEM / enterprise QA workflows |
| Cost profile | Laptop + static hosting | GPU hardware, licenses, infrastructure |
| Integration target | Handbook demos, declarative browser visuals, GLB construction clients, teaching | Film/VFX, robotics, manufacturing, large-scale sim |
When to use Forge Universe
Choose Universe when you need:
- Declarative scenes checked into git as JSON, built into a static site without a sim server.
- Multiple render paths from one document — 2D SVG projections, static gallery, WebGL flythrough, and sim bounce.
- Deterministic, lightweight physics for teaching or UI prototypes (balls and boxes bouncing under gravity).
- Governed visual hashes (
Up2,Us3,Usb, …) with automated oracle checks in CI. - No GPU farm — everything runs in the visitor's browser for PoC and handbook pages.
When to use NVIDIA Omniverse
Choose Omniverse when you need:
- OpenUSD as the interchange format across DCC tools and pipelines.
- High-fidelity rendering (RTX, materials, large environments).
- Production physics — articulations, friction models, soft bodies, GPU-accelerated stacks.
- Robotics and Isaac — sensors, RL environments, hardware-in-the-loop.
- Multi-user editing and enterprise asset management on Nucleus.
Universe does not compete on those axes; it offers a small, inspectable world model for Forge handbook and static-site use cases — including a construction asset adapter that visualizes Omniverse-exported GLBs with kinematic articulation and optional WebSocket state streaming (Construction assets, Omniverse import).
Construction asset bridge
| Concern | Omniverse | Universe adapter |
|---|---|---|
| Visual mesh | USD / RTX | GLB via asset.uri |
| Articulation authority | PhysX drives | Kinematic sliders or state-v1 stream |
| Physics | Full simulation | UniverseSim for simple rigid bodies only; not for excavator hydraulics |
What Universe sim covers today
Documented in Simulation:
- Integrator:
semi_implicit_euleronly. - Forces: constant
gravity, infinitegroundplane. - Bodies: linked to nodes via
nodeId; shapessphereoraabb. - Contacts: sphere–sphere and AABB-style separation; restitution capped at
0.6. - Output: linear pose sync into
node.pose(x,y,z); rotation from sim not applied in v1.
Non-goals for Forge Universe (v1)
Universe explicitly does not aim to provide:
| Non-goal | Notes |
|---|---|
| OpenUSD import/export | Scenes stay JSON v1; no USD layer composition. |
| RTX / path-traced rendering | Three.js shaded meshes only on WebGL paths. |
| Multi-user live sync | No Nucleus-style session server. |
| Soft bodies, fluids, cloth | Rigid bodies only. |
| Joints, motors, articulations (physics) | No constraint solver; kinematic GLB articulation only (Uca) |
| Mesh-accurate collision | Polyhedra use AABB proxies, not triangle meshes. |
| Angular dynamics | angularVelocity is stored but not integrated into pose.rx/ry/rz. |
| Server-side or distributed sim | All stepping is client-side JavaScript. |
| Omniverse Kit extensions | No OV plugin surface. |
Future work may extend sim (more integrators, richer shapes) while keeping the same scene JSON → pose → renderer contract. That contract is what lets handbook pages stay static and testable.