observe.
Start a local server first — see the Quickstart. All commands target
http://localhost:3917; every POST sends Content-Type: application/json.1. Spawn the entities
Each/spawn adds a row to the world table. Give it a position and whatever components the
entity needs — physics, health, team, a collider, and so on.
POST /spawn reference.
2. Read the assembled scene
observe returns the whole scene as a flat table — one row per
entity, with its components.
3. Point a camera (render / editor hosts)
A render- or editor-hosted server owns a camera you can drive:The camera pose is CPU state, so these endpoints work on a headless host too —
GET /camera
returns the pose and the writes move it. What’s host-only is the rendered output: nothing is
drawn and /screenshot returns 503 without a render host. Build and inspect scene data headless;
use a render or editor host to view it.4. Persist the scene
The durable, rebuildable form of a scene is a scenario — a declarative document of the whole world that you export and re-apply:POST /scene/save {"path":"scene.json"} that dumps the world to a JSON file, but note
its loader is lossy — scene/load restores position, scale, and physics body only, and
drops health, team, velocity, and rotation. For a faithful rebuild, prefer the scenario.