Architecture in one line
source→semantic reachability→Cranelift JIT / AOT→host runtime
Development compiles candidates in-process; a compatible candidate publishes atomically between ticks.
Stasis is a programming language for games and simulations that should remain understandable while they run—and while they change.
Persistent state is global, simulation advances in ticks, and rendering reads the model.
struct GameState { x: f32; speed: f32; } global state: GameState; function tick(): i32 { if (is_key_down(Scancode.Left)) { state.x -= state.speed; } if (is_key_down(Scancode.Right)) { state.x += state.speed; } return 0; }
Start with one complete program, then learn the language and runtime contract.
Search 15 public modules and 253 current callable declarations.
Try Pointer Pong, Tap Target, Color Switch, Neon Breakout, and Swarm Field.
Write, compile, and run a small Stasis game in your browser.
Development compiles candidates in-process; a compatible candidate publishes atomically between ticks.
Gambit Guard is linked as a game, not bundled as source or a package.