Forge Universe

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.bodiesnode.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_euler only.
  • Forces: constant gravity, infinite ground plane.
  • Bodies: linked to nodes via nodeId; shapes sphere or aabb.
  • 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.

Related docs