bloom
bloom
morph="bloom" — flower bloom (match-morph-bloom.ts).
Read the rig's notes
The outgoing element splits along its length into `morph-count` strips that fan out about its foot and close the circle: a ring of cupped glass petals, each still printed with its strip of the picture. A glowing icon tile — the pistil, `morph-color` — pops in at the centre, the flower turns, a wave runs round the ring flipping every petal over (its back is the matching strip of the incoming element), and the petals fold back in as the incoming element. Exact at both ends: the first frame is the outgoing element, the last the incoming one. One scene, in-scene links (`morph-to`), so every mid-morph frame can be shot: 1.00 → 2.80 stat card → iphone defaults: 12 petals · stagger 0.45 · spread 1 4.00 → 5.80 iphone → ipad nested form: 16 petals · spread 1.25 · color #ff7ac8 7.00 → 8.60 ipad → stat card 8 petals · stagger 0.8 · size 1.3 · color #ffd166 Hold the elements and the camera still through each window (the proxy bakes from the live poses on its first frame). Camera never stops (linear kfs, r 720 about the origin): each hand-off swings across the subject — +24°→−37°, −30°→+22°, +35°→−28° azimuth, 8% closer mid-window. Preview: http://localhost:4444/runtime?project=promos/primitives/morphs/bloom.promo
- Topic
- morphs
- Scenes
- 1
- Kind
- reference rig
//
morph="bloom" — flower bloom (match-morph-bloom.ts).
The outgoing element splits along its length into `morph-count` strips that
fan out about its foot and close the circle: a ring of cupped glass petals,
each still printed with its strip of the picture. A glowing icon tile — the
pistil, `morph-color` — pops in at the centre, the flower turns, a wave runs
round the ring flipping every petal over (its back is the matching strip of
the incoming element), and the petals fold back in as the incoming element.
Exact at both ends: the first frame is the outgoing element, the last the
incoming one.
One scene, in-scene links (`morph-to`), so every mid-morph frame can be shot:
1.00 → 2.80 stat card → iphone defaults: 12 petals · stagger 0.45 · spread 1
4.00 → 5.80 iphone → ipad nested form: 16 petals · spread 1.25 · color #ff7ac8
7.00 → 8.60 ipad → stat card 8 petals · stagger 0.8 · size 1.3 · color #ffd166
Hold the elements and the camera still through each window (the proxy bakes
from the live poses on its first frame).
Camera never stops (linear kfs, r 720 about the origin): each hand-off swings
across the subject — +24°→−37°, −30°→+22°, +35°→−28° azimuth, 8% closer mid-window.
Preview: http://localhost:4444/runtime?project=promos/primitives/morphs/bloom.promo
promo#morph-bloom
scene#one(duration=9.6)
camera(type=perspective fov=42 near=8.5 far=17000 position="357 -88 619" look_at="0 0 0")
properties
frame
keyframes
kf(time=0 easing=linear position="357 -88 619" look_at="0 0 0")
kf(time=1 easing=linear position="292 -63 655" look_at="0 0 0")
kf(time=1.9 easing=linear position="-11 69 659" look_at="0 0 0")
kf(time=2.8 easing=linear position="-419 186 555" look_at="0 0 0")
kf(time=4 easing=linear position="-359 50 622" look_at="0 0 0")
kf(time=4.9 easing=linear position="0 23 662" look_at="0 0 0")
kf(time=5.8 easing=linear position="266 -113 659" look_at="0 0 0")
kf(time=7 easing=linear position="407 125 581" look_at="0 0 0")
kf(time=7.8 easing=linear position="23 58 659" look_at="0 0 0")
kf(time=8.6 easing=linear position="-338 13 636" look_at="0 0 0")
kf(time=9.6 easing=linear position="-392 0 604" look_at="0 0 0")
background(top=#101626 bottom=#05070d)
environment(hdr="studio_small_04_2k" as_background=false background_color=#05070d exposure=1.0 blurriness=0.5 intensity=0.6)
lights
light#amb(type=ambient color=#9fb4ff intensity=0.8)
light#key(type=directional color=#ffffff intensity=2 position="340 680 510")
light#fill(type=directional color=#7aa2ff intensity=0.6 position="-510 170 340")
haze#hz0(blend=add opacity=0.14 position="-900 400 -1600" color=#3b5bff size="120000 100000" pulse=0 decay=0)
text#title(text="bloom" kind=layer font="Roboto" size=200 worldHeight=30 color=#e8eefc weight=700 align=center position="0 205 0")
text#sub(text="strips peel into a ring of petals · the pistil glows · a flip wave swaps the print · the petals close as the next element" kind=layer font="Roboto" size=110 worldHeight=11 color=#8ea3c8 weight=500 align=center position="0 178 0")
// 1 · stat card → iphone (attribute form, defaults)
ui3d#card(morph=bloom morph-to=phone morph-at=1 morph-dur=1.8 width=600 height=440 world_width=240 position="0 -10 0" rotation="0 -12 0")
card(x=0 y=0 w=600 h=440 r=34 fill=#0b1622 stroke=#35e0ff 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=activity size=40 color=#35e0ff stroke_width=2.4)
text(text=Pulse size=32 weight=900 color=#f2fbff align=left)
text(text="Active users" size=22 weight=600 color=#8fb4c6 align=left)