- Memoize each operation's choreography effect set in a computed, so
nodes sharing an edge stop re-evaluating it (linear, not quadratic,
in chain depth).
- Cache the scene viewport and refresh it from a ResizeObserver and at
each begin(), instead of measuring the container per node per frame.
- Index operations by origin key so outgoing lookups no longer scan
every operation; all map changes go through attach()/detach().
- Resolve px and % gesture edge distances arithmetically; only other
CSS lengths use the off-screen probe. Verified in Chromium to match
the probe within its 1/64px layout rounding.
The differential suites against main still match exactly. Benchmarks
vs main: styleForNode 2.0x (3 live ops) and 2.4x (10 live ops),
rendered frames 1.14x.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Faarh2Ts6StJPcz2mRiHiR