FUNCTOR

Game development from an alternate timeline.

A free, open-source game engine. Write a game as a few pure functions, or describe a change and watch an agent make it while the game runs.

loading

Direct the game.
Watch it change.

Run functor in a project and it opens a workbench with your game on one side and a coding agent on the other. The agent can see the running game: its state, its frames, its inputs. So you can talk about what is on screen.

The desktop app on the platformer: the hero's jump falls into the gap, a request is typed, the agent edits jumpVelocity in game.fun, the game reloads, the timeline is dragged back, the jump clears the gap, and the change is kept
  1. Describe it

    Say what should change, in plain words. The jump falls short. Make it clear the gap.

  2. The agent edits

    It reads the live game state and changes the code. It can press keys, step frames and capture the picture to check.

  3. The game reloads

    The running game picks up the new code in place. No rebuild, no restart, and your state survives.

  4. Scrub to check

    Pause, step a frame at a time, or drag back along the timeline and watch the moment again.

  5. Keep or revert

    Read the diff, then keep the change or revert it. Each task is one change you can undo.

The app is a preview, on macOS first, and is not in the prebuilt download yet. To try it today, build it from source: npm run build:app && npm run build:cli, then ./target/release/functor -d <project>.

After a run, the walkthrough card steps through the changed line of game.fun, opened beside the game, then the diff, then the game, and Keep change is clicked

It shows its work

When a run ends, the agent can open the lines it changed beside your work and step you through them. It never moves your cursor or closes your tabs, and one click puts your layout back.

The game pane's transport bar: the game is paused mid-jump, walked back and forward a frame at a time, dragged back along the rail past key and hot-reload marks, and resumed

Rewind before you decide

The transport bar under the game works like the web player's. Marks on the rail show where you pressed a key and where the code reloaded, so the moment you care about is easy to find again.

The same loop, headset on

Some changes have to be judged from inside the game. Functor reloads a running game on a Meta Quest the same way it does on the desktop.

What the loop stands on

Editing a value in the live editor grows the orbs on screen instantly, with no reload

Instant Feedback

Edit your game while it runs. The runtime swaps your code under the live model. No rebuild, no restart, no losing your place.

Rewinding a physics scene and extrapolating its future along the timeline

Travel Through Time

Rewind while editing, make changes, or extrapolate forward to see how your edits ripple through gameplay.

Live values from the running game appearing inline in the code as time scrubs

Introspective

Read the live values moving through your game at any moment. The whole state is plain data, so nothing is hidden from you or from an agent.

An MCP client launching a game, pausing it, injecting a keypress, and stepping a jump four frames at a time while reading the model back as JSON

AI Native

The app is one client of an open door. Register functor mcp and any coding agent, in any terminal, can launch, inspect, drive and rewind your game with the same tools.

A rigged character streamed from a CDN, animating with an idle/walk/run blend

Batteries Included

Asset management, networking, physics, and spatial audio. In the box, ready to use.

Put the fun in functional programming.

How does it work?

Functor is a functional language built for game development, inspired by Elm and F#. Pure functions, interpreted, no compilation. It lives in a Rust runtime that does the heavy lifting: graphics and physics. Because a game is plain data and pure functions, it can be reloaded, rewound and read, by you or by an agent.

Build and run anywhere

Native

Windows · macOS · Linux

Browser

WebAssembly · no install

VR

Meta Quest

Build a game as a pure function.

Nothing to install. Try it in the browser now.

▶ Open the sandbox Get started