Amoris
Runtime · editor · agents

Amoris

A 3D engine with a Rust core and TypeScript game systems.

Build in a docked web editor. Inspect, edit, and automate through the same command catalog. Run the simulation natively or in a Web Worker.

A working prototype. The examples below come from the engine.

Bistro street in sunlight, rendered in Amoris with multi-bounce Metal path tracing
Bistro / Metal path tracing · rendered still
Earlier recording
Rust + TypeScriptstateless systems · state in components
Metal · Vulkan · WebGPUone renderer · WGSL shaders
CLI · editor · MCPone discoverable command catalog
In the engine

Scenes with global illumination.

Actual engine stills. Metal path tracing for Bistro and Flight Helmet; baked probes for Harbor.

Amoris Metal path-traced Bistro exterior, with sunlight, building shadows, and light reflected between surfaces
01 / Metal path tracing

Bistro

The public Bistro exterior in sunlight, with multi-bounce lighting. An offline 1024 × 768 render at 512 samples per pixel, a 12-bounce limit, and textures capped at 512 px.

Authored scene512 spp12-bounce limit

This still has no real-time FPS measurement. Earlier recording: native forward-renderer walkthrough.

Harbor's CC0 Dutch ship and cargo meshes in Amoris, with baked probe diffuse global illumination at a fixed pose
02 / Baked probe lighting

Harbor

World-space probes light the ship and cargo meshes in a fixed sailing pose. The ocean keeps its existing sky, sun, and reflection lighting.

Baked probesMesh diffuse GIFixed pose

Earlier recording: sailing through MCP. A scripted pilot tests four steering forks, chooses an action, and takes reachable cargo aboard. Developer-mode automation · 2 crates collected · not an autonomous LLM player.

CC0 Flight Helmet rendered in Amoris with Metal path tracing and its authored PBR material maps
03 / Metal path tracing

Materials, up close.

The CC0 Flight Helmet: 94,722 triangles, six materials, and authored color, normal, and roughness maps. This offline Metal path-traced still shows its materials under multi-bounce lighting.

glTFPBR materials94.7K triangles

Earlier recording: forward-rendered material close-up.

A shared workspace

Edit, play, and debug.

Editor guide
The Amoris web editor connected to a real Rust host, showing Harbor with baked probe GI in the WebGPU viewport
Harbor with baked probe GI. Connected to the real Rust host; the viewport is the engine's WebGPU renderer.Earlier recording

A docked editor

Viewport, hierarchy, inspector, assets, history, and a command palette in one window.

Typed game scripts

Monaco loads declarations from the live component registry. Check TypeScript, then apply at a tick boundary.

Pause at the source

Set a TypeScript breakpoint, inspect variables, step the script, and follow an event back to its cause.

Agents developing games

A native development benchmark.

Protocol and every trial →
18/18

Patches passed strict grading

Six frozen microtasks, three fresh trials each. Two repairs and four gameplay features.

63

Native behavioral assertions

Positive, negative and boundary cases, plus types, determinism, fork, replay and reload.

15/18

Clean agent completions

Three provider disconnects happened after valid patches. Their artifacts and interrupted status stay in the data.

Small gameplay tasks, through the engine API.

Collection radius · parcel value scoring · collection victory · dash cooldown · once-only milestones · armored damage and defeat.

DeepSeek Flash inspects, writes and applies scripts using native developer MCP tools. The grader and reference source stay outside the candidate project.

One experimental task set and one model. Read the raw calls, final patches, elapsed time, token usage and cost upper bounds in the full report.

Forward rendering · 5 October 2026

Detail, at scale.

Method and evidence

These historical forward-renderer measurements use a separate workload. They do not measure the path-traced stills or baked GI shown above.

2.83M

Triangles in the Bistro exterior

132 authored materials. 12.02 ms mean render-and-wait at 1080p on Apple M5.

97.0M

Scene triangles at 1,024 copies

6,145 primitive instances before GPU culling. 1,021 helmets contribute visible pixels.

1080p

Native stress sweep

Apple M5 · Metal · 300 measured frames after 60 fully loaded warm-up frames.

High-detail mesh stress

Render and wait for GPU idle — lower is better
Mean wall time per completed frame
64 helmets
6.06M triangles
10.52 ms
256 helmets
24.25M triangles
28.81 ms
1,024 helmets
97.00M triangles
82.43 ms

5 October 2026 · forward renderer · 1920 × 1080 · authored PBR maps, directional shadows and postprocessing enabled. Static rendering without simulation, presentation or PNG encoding. Geometry counts precede culling; this is not a full-game FPS claim or a PT measurement. Method, p95 and raw results.

The short version

A small technology map.

Simulation

Host
Rust · Bevy ECS
Rules
TypeScript · QuickJS-ng · oxc
Physics
Rapier · enhanced determinism

Presentation

Renderer
wgpu · WGSL
Targets
Metal · Vulkan · WebGPU
Editor
React · dockview · Monaco

Interfaces

People
Web editor · CLI
Agents
CLI · MCP
Tools
HTTP · WebSocket · JSON Schema
Start with a running sample

Open a sample. Learn the API.

Build the host, open a sample, and learn the scripting and command surfaces.