Rust game engine · agent-first
The engine an agent can build a game with.
Sparklight renders like a modern 3D engine and works like an API: every editor action is a typed, documented command, and every result can be checked without looking at a screen.
$ spark new my-game
$ cargo run -- play
$ spark mcp # the same commands for any agentRendered by Sparklight
Frames from the engine's own golden-image tests, unedited.









What is in the box
Global illumination
A dynamic probe grid with software ray tracing in compute and infinite bounces, baked lightmaps from a GPU path tracer, and a screen-space mode.
vgeo.*Virtual geometry
Meshes with millions of triangles and a hundred thousand instances inside a frame budget: an offline cluster DAG, GPU culling, continuous level of detail.
weather.*Clouds, sky and weather
Volumetric clouds, atmosphere and fog; weather that drives clouds, wind, rain, snow, wet surfaces and lightning.
character.*Characters
Morph targets and faces, hair grooms, character cloth, retargeting and foot placement, all headless first.
det3dDeterministic physics
Joints, ragdolls, destruction and vehicles on rapier. With deterministic3d the same inputs give the same hash on an arm64 Mac and x86_64 Linux.
spark mcpAgent-first control plane
Everything the editor can do is a typed command with a schema and coded errors, reachable from the spark CLI, JSON-RPC and MCP.
net.*Online play
A headless dedicated server, clients that predict and interpolate, a lobby and bots in free slots.
gamewayGameway inside
The Gameway platform SDK: friends, presence, invites, achievements, stats, leaderboards and chat.
Built for agents, not only for people
If a human can do it in the editor, an agent can do it through a command, and can prove the result without a screen.
- 1
Command
One typed surface for the CLI, JSON-RPC, MCP, plugins and the editor.
$ spark serve --stdio {"method": "space3d.load", "params": {"path": "assets/scenes/main.space3d.json"}} {"method": "space3d.step", "params": {"frames": 600}} - 2
Verify
Deterministic stepping and state hashes replace looking at a screen.
{"method": "space3d.hash", "params": {}} # equal hash, equal state - 3
Prove
Scenarios assert on the world and compare frames with golden images.
cargo run -- scenario scenarios/boot.scenario3d.json --gw-mute
Made with Sparklight
Games can open with the engine's own splash: the mark assembles ray by ray, flares, and the wordmark rises under a sound sting. One file turns it on; players skip it with any key; agent runs never see or hear it unless they ask.
How the splash works