Debug Loop Arena
shippedA fully client-side arena where a real program-synthesis agent writes, runs, fails, and rewrites its own control code for a simulated robot task, banking each working fix as a reusable skill — no LLM calls, no network, every iteration genuinely computed in the browser.
Approach
The robot task is a 2D grid world rendered on a canvas: a robot, walls, a goal tile, and (on later tasks) a block to grab and a drop zone. A 'program' is a short ordered list of human-readable IF-condition-THEN-action rules drawn from a small vocabulary (WALL_AHEAD, AT_GOAL, HOLDING_BLOCK, ... / FORWARD, TURN_LEFT, GRAB, DROP, ...), interpreted by a tiny deterministic VM that steps the robot each tick. A hill-climbing/genetic loop maintains a population of candidate rule-lists per task, scores each by running it to completion in the simulator (distance to goal, collisions, steps, task-specific success flags), keeps the fittest, and produces the next generation by mutation and crossover of rules — all pure JS, no model weights and no network calls. A fixed curriculum of six escalating tasks (open field, single wall, corridor, fetch-a-block, avoid-hazard, stack-two-blocks) runs in order; whenever a task is solved its winning rule-list is banked as a named skill, and later tasks seed part of their initial population with mutated copies of matching banked skills, so later programs visibly reuse earlier fixes. To satisfy 'demonstrates itself on load' honestly, the exact same engine is run once at authoring time with a fixed RNG seed for the first ~40 generations across the first two tasks; that run's full attempt log, skill bank, and final population/RNG state are serialized into the page as seed data. On load the page renders that real recorded trace instantly, then the live engine resumes computation from that exact serialized state (same RNG stream, same population) — nothing is faked or replayed as decoration, it is the identical computation continuing. No build step: one inline index.html keeps the VM, synthesizer, seed data, and renderer in sync and avoids any bundler for an hour-scoped build.
The source post
https://x.com/AIDropDaily/status/2111493349270024660
Scoring
Pick
| surprise | 4 |
|---|---|
| demonstrability | 5 |
| self_containedness | 5 |
| honesty | 5 |
NVIDIA ASPIRE's hook — an agent that writes control code, watches it fail, rewrites it, and keeps the fix as a reusable skill — is the one candidate tonight whose core mechanic (write, test, debug, retain) can be run for real with nothing but client-side search: a small genetic/hill-climbing program synthesizer against a simulated robot-arm task, no model weights, no live API, no account. Every other finalist either needs hardware (ASPIRE's actual Rubik's Cube, the LeRobot arm stack), GPU hours (Athanor), a CLI with no browser surface (ai-devkit, POLYROB, REA), or a verification pipeline (FEniCSx/FMI, Sakana's ablation runs) too heavy to author honestly for a one-night, build-time-network-dead sandbox. Reshaping ASPIRE's idea keeps the interesting claim — code is actually being searched, tested, and fixed in front of you — fully testable instead of faked, and a stranger can watch the arm fail and recover within ten seconds of load.
Review
| shipped | 5 |
|---|---|
| honest | 5 |
| worth_it | 4 |
| efficient | 5 |
No change: the gate passed first time with no repairs, pick/plan had one strong candidate with sound rejections for the rest (hardware- or GPU-bound finalists correctly excluded), and NOTES.md's deviations from plan (skill-slot count, generation count, which candidate gets inspected each cycle) are reasoned honesty-preserving choices rather than corner cuts — nothing here is a repeatable build failure worth a lessons entry, and no executor or scout/pick pattern stands out across the last several nights. The one real finding — the custom domain serving 522 right after publish — is pipeline code (stage_publish in auryn/build.py never calls publish.py's existing wait_for_https()), not something this stage's editable blocks (prompts/scout.md query, prompts/pick.md taste-rubric, prompts/build.md lessons, routing.yaml executors) can fix, so it goes to escalate again rather than being forced into an edit outside scope.
escalated: Re-raising the publish-propagation gap already escalated on 2026-10-13, 10-16, and 10-17: publish.py defines wait_for_https() specifically to tell a slow cert from a dead host, but stage_publish (auryn/build.py:443-467) still writes published.json immediately after attach_domain's API calls succeed, without ever calling it — confirmed by reading build.py just now, so this has not been fixed since the last escalation. Tonight's custom domain (code-debug-arena.fantasia.build) returned 522 about a minute after publish, continuing a pattern now observed on nearly every ship night since 10-13 (10-13, 10-14, 10-15, 10-16, 10-17, 10-18, 10-19). Every night so far has self-resolved by the time anyone checked, but that is luck in review timing, not a guarantee — gate runs before publish and never observes this window, so a night where the domain stays stuck would still be recorded as shipped. Three prior escalations have not produced a fix; wiring wait_for_https into stage_publish (or at minimum recording its result in published.json) would close the gap.
Cost
| total | $0.0000 |
|---|
What it looked at
Sakana AI’s open-source Agentic Scientist: multi-agent system where coding agents propose hypotheses, write/run experiments in parallel, share memory, run ablations/baselines, and produce paper evidence (e.g., extended Error Diffusion method).
Athanor: fully open agent system that autonomously post-trains a raw base model (Qwen3-4B) on real GPUs for 104 hours, matching official instruct performance.
ai-devkit agent orchestration: local agents that spawn sub-agents (tests + docs), assign tasks, wait for completion, and deliver passing results with README—purely local, no human intervention.
NVIDIA ASPIRE 1.0: Apache-2.0 open-source robot agent that writes control code, debugs failures, saves reusable skills, and learned a real Rubik’s Cube solve.
REA (Reverse Engineer Anything): open-source local MCP/CLI tool that lets any AI agent (Claude/Cursor/etc.) trace binaries, APKs, firmware, or Electron apps to assembly, extract offsets/confidence, and output working equivalent code.
LeRobot + openpi/Isaac-GR00T/π0.5 stack: ready-to-run open robot policy libraries (ACT, Diffusion Policy, GR00T) that train on a $122 arm or single 4090 from 10k+ hours of data.
POLYROB: open-source agent that takes a task overnight and returns researched code + executed steps instead of chat output.
End-to-end scientific AI assurance demo: records AI proposal, retrieves context, runs governed simulation, independently verifies results (including FEniCSx/FMI finite-element checks), rejects forgeries/faults, and produces hash-chained reproducible evidence package.
Gate
| pass | project directory exists — /Users/artax/code/builds/2026-10-19/project |
|---|---|
| pass | no build step needed — static project |
| pass | build output with index.html — /Users/artax/code/builds/2026-10-19/project |
| pass | index.html is a document — 55498 bytes |
| pass | local asset references resolve |
| pass | page loads without console errors |
Stages
| publish | local · ok · 9.9s |
|---|---|
| review | claude · ok · 162.2s |
Notes
Omitted for lack of
None. All required capabilities run locally in the page; no service, account, image generation, or API key is needed.