Live Β· current run
Transportβ
Modeβ
Entitiesβ
Target rateβ
Delivery Β· server β client
Updates receivedβ
Actual rateβ
Interval jitterβ
p95 intervalβ
Bandwidth (cost)β
Latency Β· emit β arrival
p50 / p95β
maxβ
Render Β· what you see
Frame rateβ
Stutter (CV)β
Worst jumpβ
Backward snapsβ
What the numbers mean (units in each value):
- Target rate (Hz) β updates/sec the server is told to emit.
- Actual rate (Hz) β updates/sec the browser actually received (the real delivered cadence).
- Interval jitter (ms) β std-dev of the gap between updates; lower = steadier.
- p95 interval (ms) β 95th-percentile gap between updates (worst-case spacing).
- Bandwidth (MB/hr) β the metered cost, projected from each delivery's byte size: RTDB = the whole frame's JSON (re-downloaded every change); Colyseus = the true binary patch off the wire (only changed fields). This is the apples-to-apples cost comparison β the whole reason for the migration.
- Latency p50/p95/max (ms) β server-emit β browser-arrival; includes client/server clock skew, so compare the spread (p95βp50) and the two transports to each other, not the absolute value.
- Frame rate (fps) β canvas redraws/sec.
- Stutter CV β variation in a dot's per-frame motion (std-dev Γ· mean step); 0 = perfectly even, higher = stalls + jumps.
- Worst jump (Ξx) β largest single-frame move as a fraction of track width (0β1); a visible snap.
- Backward snaps β count of frames a dot moved backward (the "jitter back and forth"); 0 is ideal.