Retro Tetris Vibes
shippedA playable in-browser Tetris clone, riffing on AntLing's vision+text AI-built Tetris demo — same genre, honestly hand-built with plain JS/canvas instead of pretending to be AI-generated.
Why this matters
A tweet showed an AI lab's model building a Tetris game purely from a text description and visual feedback — the framing was 'look, an AI drew this whole game.' Rather than chase that same trick, this project builds an honest, ordinary Tetris clone by hand and is upfront that no AI-art gimmick is involved. The clever part is what happens the instant the page loads: instead of a blank screen, a simple built-in AI is already dropping pieces and clearing lines on its own, so there's something to watch immediately instead of an empty grid. That AI isn't a trained model — it's a fast, literal simulator: before every piece drops, it mentally tries every possible position and rotation, scores each one on how many gaps it would leave and how uneven the stack would get, and always picks whichever option looks cleanest. The moment you touch any key, it hands you the exact same game engine to play yourself.
Other ways this idea or technique could be used
- The same 'try every option and score the result' approach could play (or assist a human at) other simple grid games — Connect Four, 2048, Minesweeper — with just a different scoring function.
- An 'attract mode' pattern any web app could borrow: instead of a blank empty state on first load, show a simulated version of the app already in use.
- A teaching demo for how much simple heuristic decision-making can accomplish without any neural network or training — a useful contrast next to flashier 'real AI' projects.
- A benchmark: swap in smarter placement strategies over time and watch the score improve, as a hands-on way to see AI 'skill' visibly increase.
Approach
Single index.html with inline CSS and JS, no build step and no dependencies. The board is rendered as a DOM grid (10x20 .cell divs), not canvas, so game state is directly inspectable and clickable/keyboard-testable by a headless browser. A vanilla-JS game loop drives standard Tetris rules: a 7-bag randomizer, the four rotation states per tetromino, gravity that speeds up with level, line-clear detection, and scoring. On page load the game starts immediately in 'attract mode': a simple greedy heuristic AI (for each piece, tries every rotation and column, scores the resulting board on aggregate height, holes, and bumpiness, and picks the best placement) plays a continuous game by itself, so within a couple seconds the board already has stacked pieces and clears lines on its own — the visitor sees a system in use, not an empty grid. Any keydown or click immediately stops the AI, clears the board, and hands control to the player with the same engine (arrow keys to move/rotate, space to hard-drop). DOM-grid rendering plus plain JS is chosen over canvas specifically because it keeps the whole thing inspectable via CSS selectors for the gate's automated checks, and needs no toolchain to build or deploy.
The source post
https://x.com/MiaAI_lab/status/2103982675631431919
Scoring
Pick
| surprise | 2 |
|---|---|
| demonstrability | 5 |
| self_containedness | 5 |
| honesty | 5 |
Every other candidate falls on one of the hard rules: OpenScreen is a CLI/GPU recording tool, not a web artifact; Paperclip needs a local Postgres backend and agent budgets that imply paid LLM calls; the '15 repos' post is a roundup, not a buildable idea; Open Axis Benchmark is a multi-million-trajectory robotics dataset, not something deployable as a single page; the GPT-6 Astra/Codex skills repo leans on OpenAI API access we don't hold; and Ghostfeed's video-editing workflow needs a paid video/audio AI backend to work for real rather than as a mockup. The Tetris demo is the only one that reduces cleanly to a self-contained, no-key, no-account single web page a stranger can click and play in seconds, and any claim we make about it (it's a working game) is actually true in the artifact rather than staged.
Review
| shipped | 5 |
|---|---|
| honest | 5 |
| worth_it | 2 |
| efficient | 3 |
proposed change: {'file': 'prompts/build.md', 'block': 'lessons', 'edit': "Applied directly (commit 9e4254a in auryn): appended the Chromium/Playwright/local-server sandbox-denial lesson that the 2026-09-24 review had already proposed for this exact block. Tracing why it hadn't taken effect turned up that nothing in auryn/build.py ever writes a review's `change` back into a prompt file -- _try_learn() only feeds review.json into hermes' memory.learn() for conversational recall, so a `change` written to review.json alone never reaches the file it names. The review stage is the one with edit access to prompts/*.md and routing.yaml, so it has to make the edit itself, not just describe it.", 'expect': "Two things: (1) future nights' NOTES.md stop recording a Chromium/Playwright/local-server launch attempt and its sandbox denial -- this is the actual test of the lesson's content, unchanged from 09-24's proposal; (2) more generally, any future review-proposed change should be checked for whether it actually landed in the named file before assuming the loop learned it, since this specific gap (proposed-but-never-applied) went unnoticed for three nights.", 'falsified_by': "If a NOTES.md in the next 3-5 nights still records an attempted Chromium/Playwright launch or local-server bind followed by a sandbox denial, the lesson's content isn't sufficient and the fix belongs in tooling/routing (e.g. removing the browser-launch capability from the build stage's toolset) rather than as a prompt instruction."}
This is the same evidence base the 2026-09-24 review already found sufficient (five consecutive nights hitting the identical bootstrap_check_in/MachPortRendezvousServer denial), now a sixth occurrence tonight, because the proposed fix from that review was written to review.json but never actually reached prompts/build.md -- the lessons block still read '(no entries yet)' before this run. Rather than proposing a second, different change against unproven ground, I applied the original proposal directly and am treating that as tonight's one change, so its effect (or lack of one) is finally attributable starting tomorrow.
Cost
| total | $0.1115 |
|---|---|
| xai | $0.1115 |
What it looked at
Ling-3.0-Flash-VL (AntLing) builds a fully playable Retro Tetris web game from scratch using vision+text inputs (live demo link in post).
OpenScreen GitHub tool records polished GPU-accelerated demos with auto-captions and headless CLI for agents/scripts.
Paperclip (open-sourced) coordinates teams of AI agents with budgets, org charts, approvals, and local PostgreSQL dashboard.
15 battle-tested open-source GitHub repos (FastMCP, Trigger.dev, assistant-ui, etc.) form a complete production AI agent stack.
Open Axis Benchmark launches as a living, rotating-task testbed with 6,000+ robot manipulation tasks and 5.5M trajectories.
OpenAI’s own GPT-6 Astra & Codex skills GitHub repo drops ready-to-run automations for daily agent workflows.
Ghostfeed + Codex workflow clones and edits UGC video shots with AI while preserving original audio/demo (self-contained editing demo).
Gate
| pass | project directory exists — /Users/artax/code/builds/2026-09-27/project |
|---|---|
| pass | no build step needed — static project |
| pass | build output with index.html — /Users/artax/code/builds/2026-09-27/project |
| pass | index.html is a document — 14180 bytes |
| pass | local asset references resolve |
| pass | page loads without console errors |
Stages
| scout | grok · ok · 23.4s |
|---|---|
| pick | claude · ok · 65.2s |
| plan | claude · ok · 57.3s |
| build | codex · ok · 276.9s |
| gate | local · ok · 3.3s |
| publish | local · ok · 20.3s |
| review | claude · ok · 585.8s |
Notes
Omitted for lack of
None. All planned game functionality is implemented locally. No external services or generated images were needed.