Leaderboard open

Port NetHack 5.0 C → JavaScript with bit-exact parity
Loading…
# Team Points / 22,670 PRNG Screen Anim Speed Playable Sessions / 88 Progress

Loading…

Category is based on how the team plans to produce most (over 50%) of the code. Agentic codebases are mostly produced by generating code with an LLM and Transpiled codebases rely mostly on transpiling the C sources with tools. Points shown as public + held-out: matched 80×24 screens, one point per recorded step where the fork’s render matches C exactly. The 88 sessions split 44/44 across the public corpus and a held-out set kept private until contest end. PRNG is advisory — the structural prerequisite for screens to match, but no points on its own. Anim is a supplemental count of matched animation frames: forks that opt in via the new animation API render in-between frames (dart trajectories, explosion expansion, etc.) and earn one credit per matched frame. Reported as a raw integer rather than a percentage so a fork that opts in stays visible even when most contestants haven’t wired up the API. Not part of the official ranking. Speed is a linear fit on the offline scoring path of the form startup_ms + per_move_ms × moves, computed against the same 88 sessions every fork is scored on. Two roughly-comparable numbers in one cell: how much fixed cost a session pays before the first move, and how much each move adds. Playable is a two-part browser-playability check. First, the judge loads the fork's index.html in real headless Chromium and watches for failed module fetches, top-level script errors, or 4xx/5xx on any subresource — catches deploy mistakes (missing files, broken import paths) that look fine in offline scoring but break the actual play page. Second, it drives the fork the same way the browser does (one moveloop call per keypress) and asks whether the aggregate ms/move stays under 5 ms. Both must pass. Neither column is part of the official ranking; both are reported as diagnostics. Play opens that contestant’s build in your browser. Tests opens the Session Viewer scoped to the fork — scrub through each public session frame by frame and see where it diverges from C.

100% match 50–99% <50%