- applyU now maps u to a shared global frame index uGlobal in [0, maxT-1]; each panel clamps to its own (T-1), so a shorter timeline pads its last frame while the longer one finishes — both advance at the same wall-clock tempo instead of rescaling their timelines. - tick() keeps u as a float closure variable; reading it back from the integer-step scrubber was quantizing du to 0 at slow tempo + high T (1600ms/frame, T=24: du ≈ 4e-4 → round to 0 on scrub), stalling playback after one frame. |
||
|---|---|---|
| .. | ||
| static | ||
| templates | ||
| __init__.py | ||
| main.py | ||
| plotly_parse.py | ||