Skip to content
CodexfeatureWeb2 files · +1176 −4

Build F1 team-radio Gradio game with Tiny Aya ONNX judge

Session from pit-wall-chaos-traces on Hugging Face by build-small-hackathon · CC-BY-4.0 · condensed by Coders Talk

18msession
1interventions
GOAL

Implement a small hackathon game based on F1 team radio messages as a Gradio Space, using the HF dataset directly and a client-side Tiny Aya ONNX model (transformers.js) as judge, focused on just the main game loop.

  1. Prompt · +0
    Build a Gradio Space game from F1 team radio dataset, following the game spec, using transformers.js + Tiny Aya ONNX for the judge, focus only on the main game loop.
  2. Agent did · +0m
    Read hackathon rules and local spec/README files; decided to load the HF dataset directly at runtime and use a client-side Tiny Aya judge with a rule-based fallback.
  3. Agent did · +0m
    Investigated Gradio static asset serving, checked image sizes, confirmed no existing git repo, then planned a single-file app.py scaffold with the game state, judge prompt and JSON parsing all in the browser.
  4. Agent did · +6m
    Wrote app.py (~1170 lines) and requirements.txt implementing the game shell, background asset, and browser-side judge logic; cleaned up a stray non-ASCII glyph in a button.
  5. Fail · +6m
    Local Gradio launch kept hanging or refusing connections; eventually traced to Gradio 6 moving the `head` parameter from Blocks() to launch(), which the pinned dependency version didn't support cleanly.
  6. Agent did · +10m
    Patched app.py to drop head=HEAD from Blocks() and updated requirements.txt to pin Gradio; restarted the server and confirmed it responded with HTTP 200 on 127.0.0.1:7860.
  7. Agent did · +10m
    Attempted to verify the UI and game loop visually via the in-app browser tool, which repeatedly failed to start (sandbox spawn errors), then tried a Node/Playwright fallback that was missing its playwright package.
  8. Agent did · +11m
    Spent a long stretch debugging why the local Gradio server appeared to hang under foreground timeouts, isolating it to a Gradio 6 launch quirk in this runtime, then chased down a working Playwright + Chromium setup via bundled Node/pnpm paths to finally run a headless browser check, but the Chromium binary itself wasn't installed.
  9. Intervention · +18m
    The agent asked to download the Playwright Chromium browser executable to finish visual verification; the developer rejected the exec command and interrupted the session.
    Why: I didn't want it downloading a browser binary just to take a screenshot — that felt like overkill for verifying the game loop, and I wanted to check it myself instead.
  10. Outcome · +18m
    Session ended with app.py (~1170 lines) and requirements.txt in place, server confirmed responding on 127.0.0.1:7860 with HTTP 200, but the game loop was never visually verified before the developer stopped the browser-download attempt.
VERDICT

Next time I'd tell it upfront not to bother with in-app browser or Playwright automation on this machine — just get the server running and let me check it myself in a real browser. Rejecting the Chromium download was the right call: a huge chunk of the session went into fighting local verification tooling (in-app browser sandbox errors, missing playwright-core, a Gradio 6 launch() quirk) instead of building the actual game loop, so cutting that off saved time.

I tried this · 0

Discussion · 0

How Builds work