Skip to content

feat(fx): drawOGBubbleFrame iridescent deformation + OGFireflySpec scroll velocity (1.48.0) - #10

Merged
ozgesolidkey merged 1 commit into
tools/layer-cutterfrom
feat/bubble-firefly-ext
Nov 13, 2026
Merged

ozgesolidkey merged 1 commit into
tools/layer-cutterfrom
feat/bubble-firefly-ext

Conversation

@ozgesolidkey

Copy link
Copy Markdown
Contributor

Summary

  • drawOGBubbleFrame gains scaleX/scaleY (volume-preserving squash via withTransform) and ripplePhase/rippleAmp (3-layer Newton-ring iridescent shimmer: cyan / magenta / gold ovals before rim+specular). All params default to identity/off — zero existing call sites break.
  • OGFireflySpec gains scrollVX/scrollVY: Float = 0f (serializable). OGFireflyState.update() adds these to each firefly's normalised position per frame on top of Brownian drift; frac() gives toroidal wrap. Use scrollVX = -gameSpeed * 0.001f to drive the mote field with a game scroller.

Fable review

Reviewed by claude-fable-5. Two warnings fixed before merge:

  1. iriAlpha clamped to [0,1] (Compose Color.copy(alpha) throws outside range)
  2. Early-return on r <= 0f (guards radialGradient radius > 0 invariant)

Test plan

  • New OGBubbleFireflyExtTest (7 tests): scroll-velocity defaults, sanitize survival, codec round-trip, position shift correctness, toroidal wrap
  • 1572 JVM tests green, 0 failures

🤖 Generated with Claude Code

…roll velocity (1.48.0)

Bubble: add scaleX/scaleY (withTransform squash) and ripplePhase/rippleAmp (3-layer
Newton-ring iridescent shimmer — cyan/magenta/gold ovals before rim+specular). Guards:
early-return on r<=0, iriAlpha clamped to [0,1] to satisfy Color.copy contract.

Firefly: add scrollVX/scrollVY Float=0f to OGFireflySpec (serializable, back-compat).
OGFireflyState.update() adds scrollV{X,Y}*dtC to per-fly position on top of Brownian
drift; frac() gives toroidal wrap. Codec prompt updated.

Reviewed by Fable. 1572 JVM tests green.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@ozgesolidkey
ozgesolidkey merged commit f2b5125 into tools/layer-cutter Nov 13, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants