RL Recorder: replay files to every-player 4K video
Rocket League replays turned into 4K60 videos with every player's view side by side. 55 public videos. Paused.
paused Paused after a Sept-Oct run.
- AI did
- Most of the code, match recaps
- I did
- Rules, review of new video formats
Works
- 55 public every-player videos (Sept-Oct 2026).
- Reconstructed stick direction matched the known sign 79% of the time on one test game.
Designed only
nothing recorded
Failed or missed
- No automated test suite or version control yet; checks are render smoke tests.
- Camera reconstruction for name tags was a median of 50-80 px off in general play, so it stays off.
- A game patch once broke replay parsing until the parser was updated.
- Some 2v2 batches end one view short.
1Problem
A Rocket League replay file holds network data, not video. Only the game can render it, one camera at a time. So you can't watch every player's view side by side, or see what their hands were doing. This one is outside security.
2What I built
An OCR-driven agent loop operates the game's built-in replay viewer through a 23-state machine: launch, menus, find the replay row, verify the panel, watch, record, exit. It works on saved replays only and will not start while an online match is running.
Each replay becomes a 4K60 video with every player's view side by side, and a 21-table SQLite database. Stick input that the replay does not store is reconstructed from the car's physics. An LLM writes a short recap from the match data.

3How AI was used
Claude Code wrote most of the code: 17 Python modules, about 12,400 lines. The recap uses Claude through the CLI under a "facts only from the sheet" rule, with a data-driven fallback. No custom model was trained; the stick and camera work is physics and geometry.
4Results
55 public every-player videos (Sept-Oct 2026) in the playlist "Every Seat, Same Second". The reconstructed stick direction matched the known sign 79% of the time on one test game.
A measured negative result: camera reconstruction for name tags was a median of 50-80 px off in general play, so that feature stays off.

5Status and limits
Paused. Mostly unattended, with a person reviewing test builds before any new video format is published. A game patch once broke replay parsing until the parser was updated. There is no automated test suite or version control yet (checks are render smoke tests), and some 2v2 batches end one view short.
6What I learned
OCR doubled as free ground truth: the game's own name tags scored the camera model automatically. That is how I knew to keep that feature off.