Overview
Forge Universe (universe.forgesdlc.com) is a proof-of-concept for a declarative 3D scene model that multiple renderers consume in the browser without a build step per demo.
Capabilities
World model
- Scene JSON v1 — versioned document with
nodes,camera, and an optionalsimblock for in-browser rigid-body physics. - Six solid types — tetrahedron, hexahedron (cube alias), octahedron, dodecahedron, icosahedron, sphere.
- Pose math — translation plus Euler rotations (
rx,ry,rzin degrees) applied consistently across renderers. - Wireframe geometry — Platonic edges derived from vertices; sphere uses configurable great-circle and latitude rings.
Render paths
| Path | Technology | Use case |
|---|---|---|
| 2D projections | SVG | Orthographic and perspective math views (Up2) |
| Static gallery | SVG wireframes + CSS 3D cube | Lightweight catalog (Us3) |
| Solid flyout | WebGL dronie + SVG XYZ panels | Inspect one primitive (Ufl) |
| Drone flythrough | Three.js WebGL + FPS HUD | Multi-solid cinematic orbit (Udr) |
| Sim bounce | Three.js WebGL + UniverseSim |
Gravity, ground, sphere/AABB contacts (Usb) |
| Construction assets | Three.js ES modules + GLTFLoader | Omniverse GLB + kinematic articulation (Uca) |
Simulation
- UniverseSim — semi-implicit Euler integrator with gravity, ground plane, and sphere/AABB contact resolution.
- Pose sync — each
stepwrites body positions into linkednode.poseso renderers need no duplicate state. - Scene-driven —
sim.bodiesentries referencenodeId; shapes default from node type (spherevsaabb). - Docs — Simulation; limits vs NVIDIA Omniverse in Universe vs Omniverse.
Governance
- KS-style hashes — three-letter codes (
Ute,Us3, …) on visual roots viahashanddata-ks-hash. - Oracles — JSON scenarios verified with Playwright (
tools/universe-verifier/). - Unit tests — Node test runner on
universe-world.js(tools/universe/tests/).
Architecture
assets/scenes/*.json
│
▼
UniverseWorld ── validate, pose, wireframes, projection
│
├── UniverseProject2D (SVG ortho / perspective)
├── UniverseStaticCss (gallery cards)
├── UniverseSolidFlyout (dronie + XYZ panels)
├── UniverseDynamicGl (WebGL + dronie camera)
├── UniverseSim (rigid-body integrator)
├── UniverseSimGl (WebGL + sim stepping)
└── forge-universe-assets (GLB + articulation ES modules)
All modules are plain IIFE scripts loaded by static HTML pages. Three.js is vendored for WebGL only.
Hash registry (PoC)
| Hash | Slug | Role |
|---|---|---|
Uwv |
universe-viewport | Family roll-up |
Ute–Ups |
primitives | Per-solid gallery roots |
Up2 |
projections-2d | 2D demo page |
Us3 |
static-3d | Static gallery |
Ufl |
solid-flyout | Detail flyout dialog |
Udr |
dynamic-drone | WebGL flythrough |
Usb |
sim-bounce | WebGL + rigid-body sim |
Out of scope (PoC)
- Server-side or distributed simulation (all physics runs in the browser).
- OpenUSD, RTX, Omniverse Kit, or multi-user live sync — see Universe vs Omniverse.
- Kitchen Sink submodule integration.
- Authentication or multi-user state.