gimbal-room
gimbal-room
GIMBAL ROOM — scene 27 of the NEW-SCENES plan, built off new-scenes/images/rows/h5a_r2.png (sheet 5, third storyboard row).
Read the rig's notes
THE CLAIM. The phone and the camera never move. The ROOM — floor, walls,
ceiling, the plinth, the two back-wall pilasters, the lit slot — rolls 90
degrees clockwise about a pivot 888 mm above the phone, and three loose
spheres roll toward the wall that is coming down to meet them. At the end
that wall is a desk, the phone drops 8 mm onto it, and nothing in the
frame has turned.
beat t what
setup 0.0-1.2 level room, phone on a round stone plinth, three spheres at rest
roll 1.2-5.8 the room turns 0 → -90 (easeInOutSine, sampled every 0.1 s, linear rows)
roll 1.5-6.5 the spheres run: floor → corner → along the wall as it levels
lock 5.8 the slab face is horizontal at y=28
land 5.8-6.34 the phone falls 8 mm and settles — its only track
hold 6.5-7.5 desk, phone, three spheres, the slot light lying as a line
HOW IT IS CAUSED, NOT DRAWN.
· One pivot: primitive#room is a bare group at (0 888 0) with a sampled
rotation track; every piece of the room carries parent=room and is
authored in the pivot's local frame (world - pivot). The camera and the
phone are ordinary scene nodes with no parent and no camera track.
· The pivot height is SOLVED: the slab face on the right wall sits at
x=860; after a -90 turn it lies at y = 888 - 860 = 28, which is the
phone's base after its 8 mm landing. The old floor becomes a wall at
x=-888 (the plinth disc protrudes from it, top-left of frame); the
left wall becomes the ceiling at y=1748.
· The floor is tangent to a circle of radius 888 about the pivot and the
phone's base corners sit at radius 852.74 — the plinth
top slides out from under the phone by less than a millimetre of
overlap, which is why the pivot must be straight above the phone.
· Lights cannot be parented to a node (only to the camera), so the three
area lights carry position AND look_at rows re-solved from the same
rotation samples — the rig is inside the room, as the plan requires,
and the phone's shading is what changes.
· The spheres are WORLD nodes under world gravity. Each is authored as a
path in room coordinates (along the floor to the corner, then along
the wall — momentum carries it up the wall as the wall levels, friction
stops it on the desk) and every row is that room point spun by the
same angle the room has at that time, so ball and floor cannot
disagree. They start 0.3 s after the room moves, per the plan — earlier
and they read as the cause.
UNITS: millimetres. iphone 159.5 mm tall, centre 79.75 above its base.
LOOK: the reel palette — ink #e9e6df · mark #ffb347 · cool #7ad7ff.
POST: bloom 0.60 / threshold 0.84 (plan ladder), grain 0.012, fxaa last.
Shadow maps ON here (one spot on the hero, ~20 nodes — cheap), because
three spheres on a floor without contact shadows float.
Capture: nx run tools:capture:webgl -- --project promos/primitives/scenes/abstract/new-scenes/gimbal-room.promo --width 1920 --height 1080 --times "0.6,3.5,7.2"
Preview: /packages/runtime/index.html?project=promos/primitives/scenes/abstract/new-scenes/gimbal-room.promo- Topic
- scenes
- Scenes
- 1
- Kind
- reference rig
//
GIMBAL ROOM — scene 27 of the NEW-SCENES plan, built off
new-scenes/images/rows/h5a_r2.png (sheet 5, third storyboard row).
THE CLAIM. The phone and the camera never move. The ROOM — floor, walls,
ceiling, the plinth, the two back-wall pilasters, the lit slot — rolls 90
degrees clockwise about a pivot 888 mm above the phone, and three loose
spheres roll toward the wall that is coming down to meet them. At the end
that wall is a desk, the phone drops 8 mm onto it, and nothing in the
frame has turned.
beat t what
setup 0.0-1.2 level room, phone on a round stone plinth, three spheres at rest
roll 1.2-5.8 the room turns 0 → -90 (easeInOutSine, sampled every 0.1 s, linear rows)
roll 1.5-6.5 the spheres run: floor → corner → along the wall as it levels
lock 5.8 the slab face is horizontal at y=28
land 5.8-6.34 the phone falls 8 mm and settles — its only track
hold 6.5-7.5 desk, phone, three spheres, the slot light lying as a line
HOW IT IS CAUSED, NOT DRAWN.
· One pivot: primitive#room is a bare group at (0 888 0) with a sampled
rotation track; every piece of the room carries parent=room and is
authored in the pivot's local frame (world - pivot). The camera and the
phone are ordinary scene nodes with no parent and no camera track.
· The pivot height is SOLVED: the slab face on the right wall sits at
x=860; after a -90 turn it lies at y = 888 - 860 = 28, which is the
phone's base after its 8 mm landing. The old floor becomes a wall at
x=-888 (the plinth disc protrudes from it, top-left of frame); the
left wall becomes the ceiling at y=1748.
· The floor is tangent to a circle of radius 888 about the pivot and the
phone's base corners sit at radius 852.74 — the plinth
top slides out from under the phone by less than a millimetre of
overlap, which is why the pivot must be straight above the phone.
· Lights cannot be parented to a node (only to the camera), so the three
area lights carry position AND look_at rows re-solved from the same
rotation samples — the rig is inside the room, as the plan requires,
and the phone's shading is what changes.
· The spheres are WORLD nodes under world gravity. Each is authored as a
path in room coordinates (along the floor to the corner, then along
the wall — momentum carries it up the wall as the wall levels, friction
stops it on the desk) and every row is that room point spun by the
same angle the room has at that time, so ball and floor cannot
disagree. They start 0.3 s after the room moves, per the plan — earlier
and they read as the cause.
UNITS: millimetres. iphone 159.5 mm tall, centre 79.75 above its base.
LOOK: the reel palette — ink #e9e6df · mark #ffb347 · cool #7ad7ff.
POST: bloom 0.60 / threshold 0.84 (plan ladder), grain 0.012, fxaa last.
Shadow maps ON here (one spot on the hero, ~20 nodes — cheap), because
three spheres on a floor without contact shadows float.
Capture: nx run tools:capture:webgl -- --project promos/primitives/scenes/abstract/new-scenes/gimbal-room.promo --width 1920 --height 1080 --times "0.6,3.5,7.2"
Preview: /packages/runtime/index.html?project=promos/primitives/scenes/abstract/new-scenes/gimbal-room.promo
promo#gimbal-room(width=1920 height=1080 fps=30)
materials
// concrete: matte, near-black, and the only thing most of the frame is made of
standard#concrete(color=#141519 metalness=0 roughness=0.9)
// the slab that becomes the desk — a shade lighter and a little polished
standard#slabstone(color=#1b1c22 metalness=0.15 roughness=0.48 envmap-intensity=0.8)
// the plinth: polished dark stone
standard#plinthstone(color=#111318 metalness=0.2 roughness=0.38 envmap-intensity=0.8)
// the spheres: pale plaster, a touch