SUPERBEAM 🤗 Hub repo

Hugging Face × Reflection · Build with Beam

Beam plays a game
that runs inside Beam.

Beam-1.0-501B plays live. The game’s CPU, RAM and clock run as tokens inside a hand-built BeamForCausalLM, and every frame is verified.

FRAME1 BEAM MOVE- COINS0 TO FLAG- CHIP-8 INSTR0
Keys Beam is holding
◀
▶
JUMP
Beam chose
 
Inside the model · this frame
Whole level · Beam's path
groundpipescoins (dim = collected)walkersflagcastleBeam's pathon screen
computed in the weights, equal to emulatoremulator frame, not yet computed in the weightstick = jump pressed

What you’re looking at

1 · A game console made of a language modelWe set the weights of a small model by hand, using the exact same design as Beam (a stock BeamForCausalLM), so that it works as a tiny game console. It runs our game, SUPERBEAM, by writing out tokens: each token is one step of the computer. Try it live: press Play it yourself, then ⚡ Play on the real model.
2 · Beam plays on itBeam-1.0-501B looks at the screen (as text) and decides which keys to press. The small model then computes the next screen. Repeat until Beam reaches the flag.
3 · Every screen is checkedA normal emulator runs the same game side by side. All 211 screens the model computed matched it exactly.

By the numbers

211 / 211screens computed by the model, every one correct
15 / 20new levels Beam beat on its first try (a hand-written bot beat 11)
126 / 126memory lookups in one frame that found the right value
382,327tokens the model wrote to run the whole game

How one turn works repeated 43 times in the run

1 · BEAM LOOKS

Beam-1.0-501B (on Hugging Face Inference) gets the screen as text, plus short hints like “gap 12 px ahead”.
→

2 · BEAM PRESSES KEYS

It answers with a move, such as right+jump, which is held for 4 frames.
→

3 · THE MODEL RUNS THE GAME

The small model writes about 1,800 tokens per frame: every instruction, memory write and pixel the game produces.
→

4 · NEW SCREEN

The screen is rebuilt from those tokens, checked against the emulator, and sent back to Beam.

Look inside the model every part is known

Normal AI models are black boxes. This one was built by hand, so we know what every part does, and we can check it inside the real model.

Example: how the model remembers. The game asks “what is in register V0 right now?” Over the game, 24 different values were stored in V0. One attention head in layer 5 looks back over everything the model has written (4,036 tokens) and puts 100% of its attention on the most recent value, and 0% on the 23 older ones. Attention, used this way, is the computer’s memory.

Memory lookups checked
126 / 126

Every time the game read a register in this frame, the head found the newest value (over 99% of its attention).

Attention on old values
0%

Old values and every other token get no attention at all.

Why it is useful
Ground truth

A Beam-design model where the right answer is known is a test for interpretability tools: can your method find the memory head we know is here?

Reproduce: in the Hub repo's vendor/ (full source of the computer), run python scripts/attention_probe.py --frames 6 --draft-tokens 1400. It takes about a minute on a CPU.

The live run

Train your own agent on it an OpenEnv RL environment

What it is

Anyone can plug an AI agent into SUPERBEAM and train it. reset() starts a level; step(action) presses keys and returns the new screen and a score. It follows the OpenEnv standard, so it works with TRL and other RL tools.

6 actions: noop, left, right, jump, right+jump, left+jump text + pixels: labelled ASCII screen, facts line, raw 32x64 bits reward: 100 x progress, +5 per coin, +50 win, -25 death endless new levels, each checked to be winnable; separate training and test levels

Two engines: a fast emulator for training (CPU only), and the model-as-console above for checked evaluation.

Try it
from superbeam_env import SuperBeamAction, SuperBeamEnv

URL = "https://baptinjean20--superbeam-env-web.us-east.modal.run"
with SuperBeamEnv(base_url=URL).sync() as env:
    r = env.reset()
    while not r.done:
        r = env.step(SuperBeamAction(action="right"))
    print(r.observation.facts)

That URL is a public server that is already running (the first request after a quiet spell takes ~30 s). Code, docs and a TRL GRPO training example: huggingface.co/StarAtNyte1/superbeam-env.

Leaderboard 20 new levels nobody trained on

Prior work: Qwenputer and Nesformer put CPUs inside Qwen weights. Super Beam adds a frontier model playing live against a verified in-weights computer, shipped as an RL environment.