Rust engine · games · apps · websites

One Rust engine for games, apps and websites

Keel is an agent-native engine written in Rust. Build 2D and 3D games, native apps and real websites, and run them natively on desktop, web, Android and iOS. Instead of a GUI editor, Keel gives you and your agents a command line to build, inspect, screenshot and playtest.
Runs onDesktop · Web · Android · iOSNative rendering, no WebView. iOS device builds are still a manual step.
Driven byA command lineAgents build, inspect, screenshot and playtest without a GUI editor.
Used byCubeageKeel is the engine behind Cubeage's games.
● ● ●terminal · keel
Commands$ keel new my-game --template game2d $ cd my-game && keel run $ keel scenes $ keel shot --scene menu --size 390x844,1280x720 $ keel test
What comes backone PNG per scene and size a JSON report of what went wrong exit code 0, or 1 on a panic, a blank frame or an error log
What you can build

Games, apps and websites from one engine

You write Rust: components for the interface, systems for the simulation. Keel handles rendering, input, audio, networking and packaging for each platform.

2D and 3D games

Sprites, tilemaps and vector graphics; physically based 3D rendering with shadows and post-processing; glTF models, skeletal animation, physics, pathfinding, game AI, spatial audio and multiplayer networking.Game capabilities

Native apps

Flexible layout, themes, text shaping with right-to-left and CJK support, and platform services such as storage, notifications, clipboard and sharing, from the same code on every platform.App capabilities

Real websites

Every page is real HTML rendered ahead of time, readable by search engines and usable before any script loads. Interactive parts update only the elements that change.Try the live demos
Built for agents

No GUI editor. A command line instead.

An agent cannot look at a window, so Keel gives it files and exit codes. Content is code and data files, runs are deterministic, and every check can be scripted.

Build and run

keel new, build, run and test cover the whole loop, from a project template to a running game or app.

Inspect

keel inspect runs one asset, component, scene or animation on its own and prints a JSON report.

Screenshot

keel shot renders every scene headless at the sizes, themes and locales you ask for, and writes PNGs you can compare.

Playtest

A fixed simulation step makes every run repeatable, and recorded input can be replayed, so a playtest becomes a test.
Runs natively

Your code, drawn by the engine, on every platform

Keel draws with the GPU through wgpu on desktop and mobile, and with WebGPU in the browser. There is no WebView or browser engine inside your app.

Desktop

SupportedLinux, Windows and macOS.

Web

SupportedWebAssembly with WebGPU, falling back to WebGL2 and then a 2D canvas.

Android

SupportedAPK and AAB builds; keel run can launch on a device or emulator and take a screenshot.

iOS

PartialKeel generates the Xcode project around your app. Device builds and store signing are manual.
In production

Keel powers Cubeage's games

Cubeage builds its card, mahjong and casual titles on Keel. When a game needs something the engine does not have, it is added to Keel rather than to the game, so every title and every Keel user gets it.
Access by invitation

Keel is invite-only for now

Keel is pre-1.0 and its source is private. We are working with a small number of teams building games, apps and websites. Invited teams get the source, the documentation and the keel command-line tool.A contact address for invitation requests will be published here.
defer> defer> defer> defer> defer> defer> defer>