In Development October 2026

Flint

The 3D game engine I built from scratch, and the foundation under a growing family of games. Its worlds are written as plain text, so a person or an AI can read one, change it, and see the result.

rustgame-engine3dai-agentswgpurhaiphysicstools

Clips

Change a line, change the sky

A Flint world is a text file. Here the evening section of Float's scene counts down from sunset to night. The sun fades to nothing, the stars come out, and the foam around the raft begins to glow. Every frame is a fresh render of the file using the numbers on the card, plus a dozen more like them that didn't fit. The small squares show the colors those numbers describe.

How a frame is made

One moving shot through FlintLeap's clockwork hall, rendered four times and peeled back a layer at a time. First come the bare shapes (the wireframe), then their flat colors, then light and shadow, and finally the fog and glow that give the hall its mood. Every picture a game shows is built up this way, sixty times a second.

Screenshots

What Flint is

Every video game runs on an engine: the hidden machinery that draws each picture, moves things around, plays the sounds and enforces the rules. Most games are built on big commercial engines like Unity or Unreal. Flint is one I wrote myself, from scratch, starting in early 2026.

It isn’t a tech demo. Every world in the video at the top of this page runs on Flint, and each game has made the engine better by asking for something it couldn’t do yet. Float needed an ocean, so Flint learned how waves move. FlintLeap needed a world that warms up as you play, so Flint learned to shift light, fog and color on cue. Starchild needed a world that moves in time with its music, so Flint learned to keep time with the audio.

Written, not dragged

Most engines are built around a large visual editor, where you drag objects into a scene and click on them to change them. Flint turns that around. A Flint world is a plain text file that reads almost like a list: there is a sun, this bright and this color; there is a sea, this rough; there is a raft, right here.

[entities.sun.light]
intensity = 1.1
color     = [1.0, 0.34, 0.13]   # low, orange evening light

[entities.sky_dome.sky]
star_opacity = 0.06             # the first faint stars

Because the whole world is text, anything that can read and write text can build one: a person in a text editor, a small program, or an AI assistant. And because Flint can turn any of those files into a finished picture in a few seconds, whoever made a change can look at the result and check their work. That loop of write, render, look is the heart of the engine. The first clip above shows it at work.

Built to work with AI

Flint is also an experiment in a new way of building software. I built it in close collaboration with Claude, an AI coding assistant: more than nine in ten of its commits were written together. It was designed from the start so that an AI could do real work inside it. An agent can read a scene, ask it questions (“show me every door in this level”), change it, check it against the level’s rules, and render a picture to see whether the change looks right.

What makes Flint friendly to AI also makes it friendly to people. Nothing is locked inside a file format only a program can read, or behind a tool you can only operate with a mouse.

The family

Each game carries its own copy of the engine inside it and adds its own worlds, scripts and art on top. When a game teaches Flint something new, every game can use it.

  • Float: you sit on a raft on an endless ocean, and that’s the whole game. It gave Flint its ocean, sky and weather, along with the “reality tears” that briefly turn the world into falling code or a neon wireframe. Released.
  • FlintLeap: a clockwork 3D platformer about a small wind-up robot bringing a stopped hall back to life. It pushed character movement, moving platforms and a world mood that scripts can turn up and down.
  • Starchild: an early prototype of a rhythm game with a story told through its music. It drove Flint’s timing work: input read a thousand times a second and lined up with the audio clock.
  • Flint Kart and Trike: racing games, one with karts and one with stunt trikes that flip in mid-air. They needed spline-built tracks with banking and elevation, and computer opponents.
  • Doom FPS: a Doom-style shooter written entirely in Flint’s scripting language, with no engine code of its own.
  • Junior: solitaire and casino card games drawn entirely from shapes, with no image files.
  • Keep It Warm: a mobile climber. It brought Flint 2D sprites, touch controls and Android support.

How these videos were made

Flint made its own trailer. Most of the footage on this page was rendered by the engine frame by frame, each frame a separate render of the scene file, so every picture is exactly reproducible.

In Float, the raft rides the swell using the game’s own buoyancy math, replayed outside the game for each frame. The FlintLeap clips were recorded from the running game. The cover is one frozen moment in Starchild’s clay world shown three ways: as a wireframe mesh, as a map of its surface directions, and as the finished image. Two flint-like cracks split the three.

Build your own

Flint’s source is on GitHub, and the documentation walks through making your first scene. A new game starts with flint init, carries the engine inside it, and adds its own scenes, scripts and art. That’s how every game above was made. If something on this page makes you want to build a world of your own, that is the best thing it could do.

What’s inside

For the curious, here is what the engine can do, grouped by what it does for a game:

  • Pictures: physically based lighting and shadows; a cinematic post-processing stack (bloom, fog, god rays, depth of field, ambient occlusion, a painterly filter, color grading, film grain); a procedural sky; an endless ocean; terrain with wind-blown grass; GPU particles; and whole-screen stylized render modes
  • Motion: Rapier physics with character controllers and joints; skeletal animation with blending, layers and timed sequences
  • Sound: Kira spatial audio with mixer buses; sample-accurate music timing for rhythm games
  • Behavior: Rhai scripts that reload while the game runs. All game logic and every menu and HUD are written in script
  • Tools: a command line for everything; headless rendering to images; a scene viewer with a live inspector and a full Rendering & Effects menu; editors for particles, terrain, splines and procedural generation; a 3D model previewer with animation layers; a query language; rule checking with automatic fixes; optional AI-generated textures, models and audio
  • Platforms: Windows, plus an Android build target

Technical details

  • Language: Rust, about 140,000 lines across a 26-crate workspace
  • Rendering: wgpu with a Cook-Torrance PBR pipeline, HDR post-processing, cascaded shadows and GPU skinning
  • Physics: Rapier 3D, fixed 60 Hz timestep
  • Audio: Kira, with a 1 kHz gamepad capture thread stamped against the audio clock
  • ECS: hecs, with stable entity IDs that persist across save and load
  • Scripting: Rhai with hot reload; a deferred command queue for effects and immediate-mode 2D drawing for UI
  • Formats: TOML for scenes, schemas, animation and effects; glTF for models, skeletons and animation; WGSL for shaders
  • Workflow: games embed the engine as a git subtree and layer their own schemas over the engine’s

The last screenshot is where it started: Flint’s first walkable scene, in February 2026.