SimEngine The game engine built for LLMs, not for mouse clicks.

A lean C++20 and Vulkan engine with no editor and no GUI baggage. Coding agents build, run and verify your game from the terminal, spending tokens on the game rather than on learning a tool, while the runtime stays native for AAA ambitions.

Works with
scenario.json · seed 20261027tick 000 / 120
    · ball_on_table· crate_b_stacked· table_staticRUNNING
    first_scene, replayed in your browser with three.js · the engine itself renders with Vulkan

    01Lean by design

    Everything an agent
    doesn't need, gone.

    General-purpose engines carry a lot that only humans use. SimEngine leaves it out, so the whole engine fits in what an agent can read and check, and every change costs as little as possible.

    −Left out, on purpose

    • Visual editorA minimal diagnostic inspector is planned instead
    • GUI authoring stateScenes are versioned text with units and frames
    • Plugin marketplaceOptional modules with explicit contracts
    • Scripting VMNative code and data until evidence says otherwise
    • A platform matrixWindows 11 x64 first, Linux for headless CI
    • An LLM in the runtimeAI drives development, never a frame

    +Kept, for agents

    • Typed commandsOne capabilities document lists everything callable
    • Seeded headless scenariosSame seed, same ticks, same digest
    • Offscreen Vulkan capturesPNG plus manifest, a black frame fails
    • Structured diagnosticsCoded errors with the step that failed
    • Native C++20 + Vulkan 1.3No VM, no GC, frame time as a budget
    • Agent skillsCreate, modify and diagnose, in every project

    Cutting the editor doesn't make the runtime faster by itself. It shrinks what an agent has to learn. Speed comes from native code and measured frame budgets.

    02Architecture

    Your build only contains
    what your game uses.

    Dependencies only point down: applications use modules, modules use the core, and the core never imports either. A space game and a crate-stacking demo build on the same core.

    corescene · commands · renderspatial_framesuniverselocal_physics

    Toggle the module. The agent's view of the engine changes with the build, so it can never call what isn't there.

    $cmake --preset linux-release

    $simengine_host --capabilities

    { "capabilities": {    "modules": [],    "commands": [      "simengine.entity.set_position"    ],    "scenario_schema": { "schema_version": 1 } } }

    Abridged. Identifiers from modules/point_mass in the SimEngine repository.

    03Scale

    One engine, from a blood cell
    to the Solar System.

    Games live at wildly different sizes. Some fly rockets between planets, others shrink down to cells. SimEngine keeps positions precise at every size, so one engine can do both.

    The problem

    Most engines measure every position from one point. Far from it, a 32-bit position gets coarse: measured from the Sun, a rocket near Earth can only move in 16 km steps. It shakes, sinks into the pad, or falls apart.

    The SimEngine way

    Positions live in nested frames (star, planet, base, vehicle) and the GPU draws relative to the camera. The same rocket moves in 1.9 µm steps, and a blood cell is as precise as a planet.

    Neither game runs on SimEngine yet. They are the kind of worlds it is designed for, and Pale Blue Dot is the bar it has to clear.

    04Evidence over claims

    A change only counts
    when a test proves it.

    The roadmap tracker rejects any task marked complete without evidence. Accepted work keeps its manifests, captures and independent review. That discipline is what lets agents work on the engine without it quietly rotting.

    “Compiling successfully, surviving one tick, or emitting a success boolean is insufficient acceptance.”

    REQ-028 · Independent acceptance

    “Development is LLM-driven; the shipped runtime is not.”

    ADR 0005 · LLM-first development
    A real SimEngine Vulkan capture of the SCN-001 scene with PBR spheres and world axes
    simengine_capture · 2560×1440 · reverse-ZReal output

    05Spec sheet

    What's inside,
    and what isn't.

    Language
    C++20
    Graphics
    Direct Vulkan 1.3
    Editor
    None, by design
    Runtime VM
    None
    AI in the runtime
    None
    Determinism
    Seeded scenarios
    Platform
    Windows 11 x64
    License
    MIT OR Apache-2.0

    06Roadmap

    What's built,
    and what's next.

    13/ 56
    tasks done
    1. M0Repository preparation2/2
    2. M1Reusable foundation and decision gates10/13
    3. M2Physics, spatial precision, continuity3/11
    4. M3Planet terrain and bounded streaming0/6
    5. M4Construction, flight and persistence0/7
    6. M5Visual quality and temporal coherence0/7
    7. M6Agent operations and controlled iteration0/6
    8. M7Integrated acceptance, distributable engine0/6

    Counts exclude deferred work. They're not a percentage of effort or readiness.

    07AI-first

    No editor. Your agent
    edits from the terminal.

    There's no visual editor to automate. Agents discover capabilities, edit versioned text, run seeded scenarios headless and read back captures and digests.

    Why it's an AI game engine →
    agent@simengine: ~/my_first_sceneREADY
    $simengine_host --capabilities
    { "capabilities": {
    "schema_version": 1,
    "scenario_schema": { "schema_version": 1 },
    "commands": ["simengine.entity.set_position"],
    "modules": [] } }
    • Claude CodeAnthropic
    • CodexOpenAI
    • CursorAnysphere
    • GitHub CopilotGitHub
    • Gemini CLIGoogle
    • GrokxAI
    • WindsurfWindsurf
    • MistralMistral AI
    • Qwen CodeAlibaba
    • KimiMoonshot AI
    • ClineCline
    • ZedZed Industries
    • JetBrains JunieJetBrains
    • Your agentShell + JSON

    No plugin, no MCP bridge, no paid AI plan. If it can run a command and read JSON, it can drive SimEngine. Logos belong to their owners and show compatibility, not endorsement.

    →Open source soon · MIT OR Apache-2.0

    Build games with your agent.