Scene fixtures
Bundled under assets/scenes/ and copied to website/assets/scenes/ at build time.
projections-demo.json
Used by: /demos/projections-2d.html
| Node | Type | Notes |
|---|---|---|
hexahedron |
hexahedron | Offset left; ry: 35, rx: 10 |
sphere |
sphere | Offset right; radius: 0.55 |
Camera: eye [3, 2, 5], target [0, 0.5, 0], fov 50.
five-solids-static.json
Used by: /demos/static-solids.html
Six gallery tiles — one node per Platonic solid plus sphere. Poses are mostly rotation-only (ry) so thumbnails show varied orientations. Sphere uses radius: 0.55.
Flyout recenters each node at origin while preserving rotation for inspection.
five-solids-drone.json
Used by: /demos/drone-flythrough.html
Same six solids arranged in 3D space for the multi-object WebGL scene. Nodes include x/y/z offsets so solids do not overlap.
sim-bounce.json
Used by: /demos/sim-bounce.html
Five nodes with active sim.bodies — two spheres and three polyhedra (hexahedron, octahedron, tetrahedron) dropped from above a ground plane at y: 0.
| Node | Type | Notes |
|---|---|---|
ball-a |
sphere | radius: 0.45; body b1, initial velocity [0.4, 0, 0.1] |
ball-b |
sphere | radius: 0.4; body b2 |
cube-a |
hexahedron | size: 0.8, ry: 20; body b3, shape aabb |
oct |
octahedron | size: 0.7; body b4 |
tet |
tetrahedron | size: 0.75; body b5 |
sim field |
Value |
|---|---|
dt |
0.016 |
integrator |
semi_implicit_euler |
gravity |
[0, -9.81, 0] |
ground |
{ y: 0, restitution: 0.35 } |
bodies |
Five entries (b1–b5) linked by nodeId |
Camera: eye [6, 4, 8], target [0, 1, 0], fov 45 (matches UniverseSimGl default view).
construction-site.json
Used by: /demos/construction-assets.html
Three asset nodes with GLB URIs and kinematic articulation:
| Node | Type | GLB | Joints |
|---|---|---|---|
excavator-01 |
hexahedron | sample-excavator.glb |
slew, boom, stick, bucket |
truck-01 |
hexahedron | sample-articulated-truck.glb |
steering, dump, front wheels |
worker-01 |
hexahedron | sample-worker.glb |
left-arm, right-arm |
sim.bodies is empty — articulation is presentation-only. See Construction assets.
construction-site-realistic.json
Used by: /demos/construction-realistic.html
Open-pit mine (environment.preset: "open-pit-mine") with prepared third-party GLBs and articulation:
| Node | Type | GLB | Joints |
|---|---|---|---|
excavator-real |
hexahedron | realistic/excavator-realistic.glb |
slew, boom, stick, bucket |
adt-real |
hexahedron | realistic/articulated-dump-truck-realistic.glb |
steering, dump |
Attribution: assets/models/construction/realistic/ATTRIBUTION.md.
Adding a custom scene
- Add JSON under
assets/scenes/my-scene.jsonmatching world model v1. - Point a mount call at the URL:
UniverseStaticCss.mount('#mount', '/assets/scenes/my-scene.json');
- Run
python3 generator/build-site.pyto copy assets intowebsite/.
Validation
Invalid scenes throw from UniverseWorld.validateScene():
versionmust be1- Each node needs
id,type,pose typemust be inSOLID_TYPES(or aliascube)