A path is now a checkable object: the state-level simulator + 3-node default

Paul: "Are you able to fully simulate a path? At a state level, then test." tools/simulate-path.js is the fast middle fidelity between the glide sim and the realtime headless rides: it boots the REAL app headless and dynamic-imports the page's own targeting singleton (no forked logic to drift), then…

• The default loop is now THREE nodes: centre (reads ~96% disco) -> lasertemple -> doomdrone — three forms, three kit families, an energy arc that closes back on the dance floor

Verified: simulate-path-run.js is the committed gate: the default loop must arrive everywhere within the contract, no musicality hard-fails, byte-deterministic

▶ Play it: Subduction Hymnal → Saltwater Reliquary → Collimated Chapel — the three genres this change names, as one path https://stellate.app/?genre=doomdrone&seed=9948&path=1579.13027,940.12178,1161.12218&xdur=0.683

bf5571c https://github.com/aboard-io/stellate/commit/bf5571cc4daed01d89e46a073c82fe00ce940a94