home/ atoms/ hydra-re-eval-semantics

Each Hydra save runs `hush()` then re-evals the whole file on the same GL context — frame buffers survive

In this rig, saving a Hydra file calls hush() then hydra.eval(wholeFile) on the same WebGL context — there is no page reload. The whole file is the patch, and no state persists across evals except the o0..o3 frame buffers, which survive: feedback loops keep rolling even after editing the file, sometimes surprisingly. A JS syntax error throws to #err but does not crash — the previous frame stays frozen until the fix is saved. s0.initCam() re-runs on every save, which can stutter video if called unconditionally.

Examples

// Feedback still rolling after save — expected (o0..o3 persist) // JS syntax error → previous frozen frame → fix and save to resume // Guard: if (!s0._init) { s0.initCam(); s0._init = true; }

Assessment

Explain why a Hydra feedback trail keeps running after you save a new non-feedback pattern, and describe two situations where surviving frame buffers are surprising rather than helpful.

“Each save runs `hush()` then `hydra.eval(wholeFile)` on the **same GL context** (never a reload). So: - The whole file is your patch; there's no persisted state between evals except the `o0..o3` frame buffers”
context/ · L1-instruments/hydra/gotchas.md · chunk 1