1a6ffc74a1
Gate the universe on one clip per altitude + connecting morphs (~126 MB, ~10-20s), then grow the pool in the background. The random pick (pickPoolClip/pickRandomMember) is restricted to fully-loaded clips — base + connecting morphs both ways cached (HEFPreload.eligibleDestinations) — so a transition never stalls on un-downloaded media and new clips become reachable only once fully loaded. Pure planner in preload.js (+ node tests). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Simulator unit tests
Pure-logic JS unit tests (no browser), run with Node's built-in test runner:
node --test simulator/unit/*.test.js
scrub.test.js covers simulator/static/scrub.js — the pure altitude-scrub math
(position→segment, frac→currentTime, audio gains, integer-crossing detection).