Jonas c5fd4de09b Implement labeling frontend and the backend support it needs
Add a framework-free HTML/CSS/JS labeling UI: set/session/status
filters, a frame browser, drag-to-draw/move/resize bounding boxes with
a per-set class picker, per-frame status control, and Left/Right frame
navigation. No login - a locally cached username is sent for
attribution only, matching the backend's get-or-create user model.

Backend additions the frontend needed: serve frame images from a
configurable FRAMES_ROOT via a /images static mount, permissive CORS
(internal tool, not publicly exposed), and a GET /sets/{id}/frames
endpoint returning frames joined with their per-set label status
(defaulting missing rows to unlabeled) for the frame browser.

Verified the full call chain end-to-end against a running backend +
static frontend server (set/class creation, frame ingest, image
serving, label CRUD, status updates, CORS preflight) - every field
name the JS reads matches the API responses. 18/18 backend tests
pass. Not yet verified: actual interactive browser use (no browser
tooling available here) - try drag-to-draw/resize locally.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-16 11:34:26 +02:00

SpelunkAI

A multi-stage AI system that learns to play Spelunky Classic HD: trained perception models, deterministic HUD-state classifiers, and a control agent that first imitates human play (behavior cloning) and later learns autonomously (reinforcement learning).

Full project spec, architecture, timing constraints, and roadmap live in CLAUDE.md — that document is the source of truth. This README is just a map of the repo.

Layout

Directory Component Spec section
recording/ Recording Tool — captures gameplay video + input log on the recording PC 3.1
labeling/ Web-Based Labeling Tool — backend + frontend for bounding-box labeling 3.2
training/ Per-set training pipeline for the anchor-free CNN detectors 3.3
inference/ Runtime inference loop — capture → detectors → HUD classifiers → state vector, within the 66ms/tick budget 3.4, 3.5
control/ Control Agent — behavior cloning now, RL later 3.6

Each component directory has its own README with more detail and its own .venv (per CLAUDE.md §6), since components run on different machines (recording PC vs. jai) and have independent dependencies.

Status

Repo scaffold only — no components are implemented yet.

Description
No description provided
Readme 105 KiB
Languages
Python 83.1%
JavaScript 12.7%
CSS 2.3%
HTML 1.9%