AI Research

A Pico Can Dream Games, But Not Much Else

SheepSeb puts a looped world model and Stream AC actor on a Pico 2W, but exact-frame and dreamed-play checks show Pac-Man and Doom-lite still break.

By StartupHub.ai Staff, Editorial team

3 min read

Raspberry Pi Pico 2W running tiny dreamed games generated by looped transformer
World model and actor run together on RP2350 core 1Credit: GitHub

SheepSeb says a looped transformer world model can generate five playable games and let a streaming actor play them entirely on a Raspberry Pi Pico 2W. The demo runs both networks on core 1 of the RP2350 while core 0 handles USB and display, with no cloud and no replay buffer. I find the engineering tight and the evaluation unusually honest, but I do not buy that this proves looped world models are ready for anything larger than token grids.

The dream is smaller than it looks.

Each game renders to a small grid of token ids, 20x16 for Breakout to 48x48 for Pac-Man lite, and the world model predicts next frame and reward from frame plus action, according to the README. Sizes range from 26k parameters and 4.3M multiply-adds for Breakout to 131k and 8.2M for Pac-Man lite, with 2 loops used on the Pico to trade accuracy for frame rate. Exact-frame scores on held-out transitions at 2 loops are 99.99% for Breakout, 83.6% for Doom-lite, 100% for Flappy Bird and 99.45% for Pong, but Pac-Man lite sits at 86.4% and the stricter dreamed-play check finds 742 wrong game states and 38 wrong rewards per 5,000 dreamed steps for Pac-Man.

That dreamed-play check is the core of the skepticism, and it is also the most interesting part. SheepSeb notes a world model that looks good on recorded data can still be exploited once an agent drives it into unseen states, which is why agents trained only in the Doom-lite dream scored 210 there against a real maximum of 56 and only 28 in the real game. The fix was iterative collect-and-fine-tune rounds plus tricks like global singleton placement, noise augmentation at 0.3 and a per-row int8 scale with QAT, and the approach works. Looped transformers more broadly reuse a shared block of layers to increase computational depth without increasing the number of trainable parameters and are typically trained with truncated backpropagation through time, per a community survey of the technique.

To be fair, the quantization and on-device learning claims hold up in detail. Every matrix is int8 with one scale per output row, activations are int8 per tensor and per loop, matmuls accumulate into int32 with two multiply-adds per SMLAD on the RP2350, and the Rust learner matches 200 PyTorch updates to within 3.5e-6, according to the repository. A fresh Stream AC agent with two hidden layers can learn inside the Rust int8 Flappy Bird dream to 6 pipes at 25k steps and 300 plus at 250k, and any button press hands control to you, so local physical access is required to interfere. That is the whole threat model: there is no remote attacker, no cloud data to steal, but also no evidence this survives outside five hand-coded numpy games inspired by World Models.

If you are a founder asking whether to bet a product on tiny looped world models now, I would say use this as a compression and controls demo, not as a world-model platform.

Sources

TopicsSheepSebTinyWorldFormerRaspberry Pi Pico 2WRP2350Stream ACDoom-litePac-Man

StartupHub.ai Staff

Written by

StartupHub.ai Staff

Editorial team

The staff writers of StartupHub.ai, ranging from investment analysts to avid AI tool users, early adopters and critical enthusiasts. Backgrounds span engineering, business and the arts. We hold every piece to rigorous standards of research and review.

Test your Agent Readiness now

Paste your website. How well ChatGPT, Claude and the other agents can read and use a site, in about a minute, free.

Watch

The videos behind the news, one flip at a time

The feed mixes the videos from our articles with startup demos and you flip through them like TV channels for free with no signup.