coral
coral
morph="coral" — bioluminescent coral overgrows the element and recedes off its partner (match-morph-coral.ts). ONE scene, in-scene `morph-to` links, no cuts.
Read the rig's notes
A reef crust spreads over the outgoing element from its silhouette's edges
inward — dark cellular coral, polyp cups glowing cyan / magenta, a hot growth
front spilling light onto the picture ahead of it — while ≈90 seeded coral
trees sprout on the contour (and inside, as the crust reaches them), fork a
few levels with glowing tips, and pop fuzzy polyp blooms. Fully covered at
the middle of the window, the picture underneath swaps to the incoming
element; then the coral withdraws back to the edges and vanishes, leaving
the incoming element clean. G = 0 at both ends: exact hand-offs.
left attribute form, defaults (morph=coral)
1.40 → 3.20 stat card → iphone
5.20 → 7.00 iphone → stat card
right nested form, tuned: count=140 · size=1.3 · spread=1.3 · color=#7dfff0
1.80 → 3.60 music card → ipad
5.60 → 7.40 ipad → "reef"
Beats per window (linear clock): grow 0–0.46 · covered 0.46–0.54 (swap at
0.5) · recede 0.54–1.
Camera never stops: linear orbit (r 980, look_at 0 0 0) swings across each merged
hand-off window via ~0°, 8% closer — 1.4→3.6 +21°→−19° (narrowed: the iphone
proxy skewed at the 3.2 swap), 5.2→7.4 −38°→+24°.
Preview: http://localhost:4444/runtime?project=promos/primitives/morphs/coral.promo- Topic
- morphs
- Scenes
- 1
- Kind
- reference rig
//
morph="coral" — bioluminescent coral overgrows the element and recedes off its
partner (match-morph-coral.ts). ONE scene, in-scene `morph-to` links, no cuts.
A reef crust spreads over the outgoing element from its silhouette's edges
inward — dark cellular coral, polyp cups glowing cyan / magenta, a hot growth
front spilling light onto the picture ahead of it — while ≈90 seeded coral
trees sprout on the contour (and inside, as the crust reaches them), fork a
few levels with glowing tips, and pop fuzzy polyp blooms. Fully covered at
the middle of the window, the picture underneath swaps to the incoming
element; then the coral withdraws back to the edges and vanishes, leaving
the incoming element clean. G = 0 at both ends: exact hand-offs.
left attribute form, defaults (morph=coral)
1.40 → 3.20 stat card → iphone
5.20 → 7.00 iphone → stat card
right nested form, tuned: count=140 · size=1.3 · spread=1.3 · color=#7dfff0
1.80 → 3.60 music card → ipad
5.60 → 7.40 ipad → "reef"
Beats per window (linear clock): grow 0–0.46 · covered 0.46–0.54 (swap at
0.5) · recede 0.54–1.
Camera never stops: linear orbit (r 980, look_at 0 0 0) swings across each merged
hand-off window via ~0°, 8% closer — 1.4→3.6 +21°→−19° (narrowed: the iphone
proxy skewed at the 3.2 swap), 5.2→7.4 −38°→+24°.
Preview: http://localhost:4444/runtime?project=promos/primitives/morphs/coral.promo
promo#morph-coral
scene#reef(duration=9)
camera(type=perspective fov=42 near=8.5 far=17000 position="418.8 220.6 858.6" look_at="0 0 0")
properties
frame
keyframes
kf(time=0 easing=linear position="418.8 220.6 858.6" look_at="0 0 0")
kf(time=1.4 easing=linear position="344.9 187.1 898.5" look_at="0 0 0")
kf(time=2.5 easing=linear position="-15.7 78.6 898.5" look_at="0 0 0")
kf(time=3.6 easing=linear position="-318.0 -85.5 923.5" look_at="0 0 0")
kf(time=5.2 easing=linear position="-580.2 270.3 742.7" look_at="0 0 0")
kf(time=6.3 easing=linear position="47.1 62.9 898.6" look_at="0 0 0")
kf(time=7.4 easing=linear position="393.9 -153.4 884.7" look_at="0 0 0")
kf(time=9 easing=linear position="495.7 -187.1 825.0" look_at="0 0 0")
background(top=#071624 bottom=#020509)
environment(hdr="studio_small_04_2k" as_background=false background_color=#020509 exposure=1.0 blurriness=0.5 intensity=0.5)
lights
light#amb(type=ambient color=#8fb8ff intensity=0.7)
light#key(type=directional color=#ffffff intensity=1.8 position="340 680 510")
light#fill(type=directional color=#4fd8ff intensity=0.6 position="-510 170 340")
haze#hz0(blend=add opacity=0.14 position="-700 300 -1600" color=#0f4fa8 size="120000 100000" pulse=0 decay=0)
haze#hz1(blend=add opacity=0.1 position="800 -400 -1700" color=#6a2aa8 size="110000 90000" pulse=0 decay=0)
postprocessing
step(name=render)
step(name=unreal_bloom strength=0.55 radius=0.5 threshold=0.82)
step(name=aa method=ssaa samples=2)
text#title(text="coral" kind=layer font="Roboto" size=200 worldHeight=40 color=#e8fbff weight=700 align=center position="0 330 0")
text#sub(text="overgrow · swap under the reef · recede" kind=layer font="Roboto" size=110 worldHeight=18 color=#7fb6c8 weight=500 align=center position="0 290 0")
// ── left · attribute form · defaults ────────────────────────────────────
ui3d#dive-card(morph=coral morph-to=dive-phone morph-at=1.4 morph-dur=1.8 width=600 height=440 world_width=260 position="-230 -10 0" rotation="0 12 0")
card(x=0 y=0 w=600 h=440 r=34 fill=#08161f stroke=#3ff6ff stroke_width=3 shadow=true layout=column align=start padding="36 0 0 36" gap=16)
card(w=hug h=hug fill=transparent shadow=false layout=row align=center gap=14)
icon(set=tabler name=ripple size=40 color