effectcraft/crates/keyframe
Claude 1c9b5f1828
Graph Editor: the speed graph of a curved motion path is smooth, not jagged (#456)
Spatial properties move along their path by arc length: a table of 96 chords per segment,
read back by linear interpolation of the curve parameter. Within each cell that mapping is
linear, so the speed (the Graph Editor's speed graph, a central difference of the
position) jumped at every cell boundary and was off by up to ~2 % on a curved path: a
sawtooth over a constant-speed move, and a slight wobble in the motion itself.

The table now holds Gauss-Legendre arc lengths, and `at_length` refines the cell's linear
guess with Newton steps on the true arc length (|B'(u)| as the derivative), so position and
speed follow the path exactly.

Test: linear keys along a strongly curved path give a constant speed (within 0.1 %) at
every sample; the old mapping was off by 2 %.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QiAJeFttZp83Fh7YuzAR5f
2026-10-10 20:42:34 +00:00
..
examples G2: improve editing reliability and Windows rendering fidelity 2026-10-06 00:00:31 -05:00
src Graph Editor: the speed graph of a curved motion path is smooth, not jagged (#456) 2026-10-10 20:42:34 +00:00
Cargo.toml M0.1–M0.7: workspace, time/geom/color/keyframe/project/raster/path/text/effects/render crates 2026-10-01 14:05:20 -04:00