Dara's notes from testing the viewer: - Smokes block view cones. Every smoke (Omen, Brimstone, Clove, Jett, Miks, Astra, Viper's orb, Harbor's Cove, Cypher's cage) hides itself and the shadow behind it; Viper's Toxic Screen, Phoenix's Blaze and Harbor's High Tide hide what lies behind their line. Standing in a smoke, nothing shows. - Thrown utility is shown in flight: its icon along the replay's path with a short trail (Omen and Jett smoke orbs, mollies, Sova's bolts, Fade's Seize, Reyna's Leer, Curveball and others), and a ring spreads where it activates. - Utility that ends (destroyed, expired or popped) fades out where it stood with a burst, rather than vanishing. The replay does not say which. - Ranges and areas players stand in are drawn at 30% so the agents and cones under them stay readable; smokes stay solid. - Playback is smooth. Players moved a few at a time before (the cone cut was the cost); now every player moves every frame, moving utility glides between its 10 Hz path points, and cones are cut on a worker isolate (ReplayConeWorker) and drawn from their latest cut carried along with the agent, all in one layer clipped to the floor once (ReplayConesPainter). The roster, killfeed, dock and match card rebuild when what they show changes, and utility sits on its own cached layer. Measured with the profile playback harness on Split: UI thread 3.0 ms and raster 3.9-5.7 ms a frame (the window runs at its 144 Hz cap), from 13.5 ms UI and 4.6 ms raster at 73 fps before. The editor's view cone is unchanged apart from a hook that lets the replay draw cones itself, and the height model's cone query is split so the horizontal cut, which needs no dart:ui paths, can run off the root isolate. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Dara Adedeji committed on 10/2/2026, 10:58:07 PMparenta3452aa
20 files changedLine totals unavailable