CoolFace
Apppublic

ddevin2002/tiny-self-forcing-doom

sourceHugging Facemitupdated 22d agoView on Hugging Face
0likes
README.md56 linesDownload Raw Back to root
1---2title: Playable Neural DOOM3emoji: ๐ŸŽฎ4colorFrom: red5colorTo: gray6sdk: gradio7sdk_version: 6.26.08app_file: app.py9python_version: 3.12.1210pinned: false11license: mit12short_description: A 58M diffusion model generating DOOM, no engine running13---14 15# Playable neural DOOM16 17**No game engine is running.** Every frame is generated by a 58M-parameter pixel-space18diffusion transformer, conditioned on the key you press and on the last twelve frames of19its own output. Eight frames per press, four denoising steps each.20 21The model comes from [tiny-self-forcing](https://github.com/devt287/tiny-self-forcing), a22project that reproduces end to end, at roughly 1/1000 scale on a single rented GPU, the23path from a bidirectional video diffusion model to a real-time interactive world model:24 251. train a **bidirectional** 58M DiT on 1.33M ViZDoom frames with flow matching;262. **causalise** it to a chunk-causal mask so it can be rolled forward with a KV cache;273. **distil** 48 denoising steps down to 4 โ€” 557 ms โ†’ 69 ms per 4-frame chunk on an28   RTX 4090, **8.1ร— faster**;294. take the distillation context from the student's **own rollout** rather than from real30   frames, which is what stops it going progressively blurrier.31 32Step 4 is the ablation the repo exists to measure. Paired on held-out episodes, the33teacher-forced student is significantly blurrier than the engine by frame 44834(โˆ’0.0093, 95% CI [โˆ’0.0189, โˆ’0.0007]); the self-forcing student โ€” the one you are playing โ€”35is not (โˆ’0.0000, CI [โˆ’0.0095, +0.0092]).36 37## A limitation shown on purpose38 39The context window is 16 frames, about 1.8 seconds. **Turn away from a room and back and40the room is re-imagined**: the model has no longer memory. That is a boundary of this41design rather than a bug, and it is what long-memory work such as LingBot-World 2.042addresses.43 44The first twelve frames of a session are real ViZDoom renders. **From frame 13 on,45everything you see is generated.**46 47## Speed and quota48 49Runs on Hugging Face's shared free GPU pool (ZeroGPU). Measured on the deployed Space:50**171 ms of model time for 8 frames โ€” 46.8 fps** โ€” inside a ~0.9 s round trip, which is51about real time for the 0.9 s of game footage each press produces.52 53ZeroGPU quota is per visitor and per day. Anonymous visitors get 2 minutes at the lowest54queue priority; **signing in to any Hugging Face account gets you much further**. The55first press waits about 2 s for a cold GPU allocation, then roughly 0.9 s each.56