Build LogCreative Coding
#171
2026-06-285 min read

The bass portal doubled as a scene swap. The hole geometry already owned the reveal.

A bass-driven radial mask opens a hole in a spring panorama to reveal winter behind it. When the track hits its midpoint, the same mask — scaled to frame-covering size — swaps the two scenes without a cut. The reveal mechanism was already running from frame one.

Read post
Build LogTesting
#172
2026-06-286 min read

The diff check passed forever. That was the bug.

A test that checked whether verify.py was modified by a wiring PR became trivially true the moment PR #43 squash-merged. Phase X.8 replaced it with replay hashes, pre-registered gates, and hermetic sabotage cycles — tests designed to fail when they should.

Read post
Music VisualiserCanvas
#173
2026-06-276 min read

Bass as a seasonal portal: routing the kick into a radial alpha mask

The captain-random visualiser stacks two panoramas: spring in front, winter behind. The spring layer carries a radial alpha mask whose radius tracks bass energy. When the kick hits, the mask opens and winter shows through; when the energy decays, spring closes back over it.

Read post
iOSSwift
#174
2026-06-276 min read

One PR, three game systems: why pure generators kept the ledger honest

Shipping streaks, quests, and levels as a single PR forced a specific architecture: pure generators with no side effects, persisted targets decoupled from quest logic, and celebration overlays computed after state transitions. This is the constraint that produced those decisions.

Read post
iOSSwift
#175
2026-06-275 min read

Real quests, broken buttons: how Phase C and N closed bb finance's behaviour loop

Phase C replaced mockQuests with a generator that reads real transaction history. Phase N found that the quest blocks were non-interactive labels and the streak's Check In button opened the wrong screen. Both sprints were necessary. Only together did they close the loop.

Read post