Jesse A. Green / notebook

RL Recorder: replay explorer

One real 2v2 match from September 2026, exported by RL Recorder from the game's replay file into SQLite and replayed here from a static data file. Other players appear as Player 2-4. No video, no server calls: everything you see is computed from the replay's network data in your browser.

Blue 4 5 Orange overtime
arena
NeoTokyo
mode
2v2
playback
needs JavaScript
watching
Sir Lankershim (Blue)

1Match timeline

press Space, drag the scrubber, or click a goal

This block needs JavaScript: it replays the match from the data file in your browser.

2Hands: controller readout

follows the play head

Stick up/down and roll are reconstructed from the car's spin; they are not in the replay file. Left/right and throttle are replicated inputs.

This block needs JavaScript: the stick is drawn from the data file at the play head.

3Players

and what the game never shows
Table 2 One row per player. Score, goals, assists, saves, shots and demolitions are the game's own; supersonic, powerslide and airborne seconds, boost collected at pads (the replicated value rising at a pickup) and used, and ball-cam share are computed from the stream.
PlayerTeamScoreGoalsAssistsSavesShotsDemosSupersonicPowerslideAirborneBoost inBoost outBall cam
Sir Lankershim ownerBlue658214 (1 epic)2033.6 s48.0 s125.6 s2363 (19 big)256086%
Player 2Blue5682114050.3 s13.5 s86.6 s2838 (24 big)252575%
Player 3Orange703321 (1 epic)5141.7 s3.4 s103.6 s2486 (21 big)282077%
Player 4Orange6502218157.2 s6.2 s130.8 s3145 (27 big)311076%
Camera profiles (what each player saw)
Table 3 Camera profile per player, as replicated in the stream.
PlayerFOVHeightAngleDistanceStiffnessSwivelTransition
Sir Lankershim11090-52700.3571.8
Player 29990-42700.741.2
Player 3110100-42800.44.31.3
Player 4110100-32700.42.31.5

Field of view, height, angle, distance, stiffness, swivel speed and transition speed are per player in the replay; the videos render each player's view with their real camera.

4Boost economy

click a chart to move the play head

Reconstructed between server updates (last replicated value minus 33.3 per second while boosting, plus pads); typical error under 2 boost. Goals as vertical rules, big-pad pickups as dots.

This block needs JavaScript: the charts are drawn from the data file.

5How it works

five steps
  1. A replay is network traffic, not video. The game's server records about 22 snapshots a second of which objects exist and which of their properties changed. The game re-simulates the match from it; that is why a replay is one or two megabytes and why any camera can be rendered from it afterwards.
  2. RL Recorder operates the game's own replay viewer through a screen-reading state machine, records every player's view, composes them into one synced video, and exports 21 tables to SQLite: frames, cars, ball, inputs, boost, events, camera profiles. This page is one such export, reduced to a static data file.
  3. The stick. The file replicates steering and throttle, but not the stick's up/down nor the air-roll input. It does replicate the car's angular velocity, and the game's air control is deterministic: per axis a = T·u + D·ω with torque T = 36.08 (roll), 12.15 (pitch), 8.92 (yaw) rad/s² per unit of input, damping D = −4.47, −2.80, −1.89 per second, and a 5.5 rad/s cap. Solve for u from the measured acceleration, median-filter three samples. At the cap the game discards the torque along the spin axis, so there the hidden part is restored by assuming the stick is at its edge.
  4. Measured, not assumed. The sign conventions were checked on real replays (which rotation is nose-down, which is roll-left, which way steer turns). With the air-roll button held, the reconstructed roll matched the measured stick x in sign 79% of the time and roughly in size (mean 0.76 against 0.92), on one test game. That is the honest number; the label above the pad says "reconstructed" for a reason.
  5. What is not in the file. The camera stick beyond its yaw and pitch bytes, button bindings, aerial sensitivity and deadzones never leave the player's PC. So the pad on this page draws the owner's mapping for everyone, and "time airborne" uses the project's rule: clear of the floor and off the walls, or mid-jump by the car's jump components.
Table 1 What a replay contains, and where this page gets each thing
LayerWhat it holdsUsed here
HeaderBox score written when the replay was saved: map, team size, scores, per-player stats, goal frames, identities and build numbersNot read. Everything on this page comes from the stream; identities never ship.
ActorsEvery object with an id: the game event, two teams, one replication record per person, a car per player per life, the ball per kickoff, 34 boost pads, camera settingsCars, ball and boost pads (pickups).
PropertiesOnly changes: rigid-body state (position, rotation, velocities), clock and game state, scores and stat popups, throttle and steer bytes, handbrake, jump/dodge/boost counters, replicated boost, camera profilePositions at 10 Hz, clock and state, inputs and angular velocity at 20 Hz in the air, camera profiles.
DerivedPlayback clock from frame deltas (goal replays are gaps), boost between server updates, airborne windows, supersonic and powerslide time, assist attribution, the stick inversion, the written recapAll of it, computed once by the extractor; the browser only draws.

More on the project page: the story, figures, and the negative result on camera reconstruction. The videos themselves: the public playlist (YouTube, new tab).

6Recap

written by an LLM from the match fact sheet

This block needs JavaScript: the recap text is rendered from the data file.