abstract-area-light
abstract-area-light
ABSTRACT · AREA LIGHT — seven premium (amber-noir) rooms built on the one idea of promos/primitives/lights/rect-area-light.promo: a RECTANGLE of light you can see in the shot (`helper=true` draws the panel at colour × intensity), read three ways at once — as the panel, as a specular rectangle on every polished surface, and as a wash on every matte one. The port's roughness-checker floor rides the set-dressed rooms for the same reason: its dark squares mirror the panels and its light squares only take their spill; the bare rooms stand on a reflector mirror instead.
Read the rig's notes
A device stands in every room, and it is the subject; the primitives are the
set the light is read on.
THE SECOND SET. The first twenty-five rooms are gone from here — thirteen of
them live on as scene-fit library parts in projects/parts/ (s01-ring s02-clock
s03-split s05-corridor s06-shards s07-sea s10-macro s11-overhead s12-backlight
s13-blade s19-typography s23-tilt s24-lantern) and the rest were cut. These seven
are those thirteen taken one step further, each one a variation on a room
that worked: the ring grown into a colonnade, the clock's bar over spheres,
the split turned on its side, the corridor closed into arches, the shards
laid down, the macro on the laptop, and the lantern seen from above.
# scene dur device the claim
01 s01-colonnade 8.0 iphone the triad on fifteen clearcoat columns in two rings round the phone;
every column wears three vertical bands
02 s02-tide 8.0 ipad one cream bar overhead, face down, a slow hand over 72 clearcoat
spheres — a point of light walking every ball
03 s03-seam 8.0 iphone an amber panel face down over the phone, a cool one low behind, on a
MIRROR: warm above the seam, cool below, reversed in the floor
04 s04-arcade 8.0 iphone six arches of light receding 3 m behind the phone — two sides and a
lintel each, eighteen panels converging on one vanishing point
05 s05-strewn 8.0 macbook forty clearcoat capsules strewn round the laptop under three panels;
every one carries a different band, the orbit slides them all
06 s06-deck 8.0 macbook 420 mm from the laptop's corner, shallow focus, one cool strip: a line
along the deck edge and the foot of the lid
07 s07-cage 8.0 iphone the phone flat on the mirror inside six thin strips of light: a star of
six lines seen from straight above, then through the open side
PREMIUM (amber-noir), the library's authored look: near-black stage (#0a0806 → #010101),
amber #ffb347 + warm #ffa25e against cool #7ad7ff, the charcoal `shell` on
every device, clearcoat plastic / brushed metal / matte clay / emissive amber
for the kit. ACESFilmic, bloom → grain → fxaa, fog tinted to the stage, three
matched haze lobes (hz0 amber · hz1 cool · hz2 warm) at z ≈ -1900 behind the
set, studio HDR at the dark-stage 0.16. Ambient 0.1. The panels are still
the light of every shot; the rest is the room they stand in.
WHERE THIS DEPARTS FROM THE PORT. The port has no ambient, no environment
and no haze — that is its demonstration. These rooms keep the panels as the
only KEY, but carry the library's env at 0.16 (a clearcoat or a metal has no
diffuse term and goes black without one), a 0.1 ambient, and the haze the
cut needs to match-move on. Tone mapping is ACES, not None.
UNITS ARE MILLIMETRES. Devices render at true size — 159.5 mm of phone
standing among 420 mm columns — so the cameras sit 1–2 m out at fov 40–45.
THE PANELS DO NOT MOVE. The port spins its lights because the three.js
example does; a studio holds its soft-box still and turns the product, and
that is what these rooms do. Every panel is aimed once (`look_at` on the
triads and the ladder pair, a `rotation` attr on the louvre's side-stand and
the halo ring) and then left alone, so it is a calm, constant source and the
helper never flips between plate and outline. What moves the rectangles
across the rail, the deck and the blades is the DEVICE turning and the
CAMERA moving. The one exception is 02's overhead bar, which drifts 25° in
8 s over the spheres — the room's claim is the point it walks, so it walks, slowly.
ORIENTATION. A panel emits along its local -Z, the face `look_at` aims. The
camera sits on +Z (the library's convention, devices face +Z unrotated), so
a panel authored with `rotation` faces the set at rotation.y = 180. Euler
order is XYZ, so for 02's overhead bar (`rotation="-90 0 0"`, face down) a
`rotation.z` track turns it IN ITS OWN PLANE — z first, the tilt last.
Never `look_at` straight down: parallel to the up vector the lookAt
degenerates and the light vanishes (02, 03 and 04 use a rotation attr).
SHADOWS. An area light casts none — three has no shadow map for
RectAreaLight — so on panels alone a device floats. Every room therefore
carries ONE directional shadow key standing where its main panel stands,
aimed where the panel aims, at 1.6–2.1 — enough that its ABSENCE reads,
which is what a shadow is: its job is the device's shadow on the floor (and down the stairs, and
across the mirror), pcf-soft, 4096 map, a shadow camera box sized to the
room. Nodes cast and receive by default, so nothing else is flagged.
THE HELPER IS ONE-SIDED. RectAreaLightHelper draws its plate BackSide, i.e.
only from the emitting side; from behind you get the outline. That is why
02's bar is a thin outline overhead and a bright plate in the floor, and why
04's lintels read as outlines from below the arches.
ENGINE NOTE. The selective bloom pass used to swap the helper's materials
for its shared black singleton, and the helper then wrote the light's colour
into that singleton every frame — a cream panel whited out the whole frame.
lib/postprocessing/selective-bloom-pass.ts now hides helpers for the light
pass instead; this reel is the case that found it.
CAMERA. Plain position / look_at tracks, as in the port. look_at has to be a
track wherever position is one — a static attr is read once at build. 01 and 05's
orbits are authored as chords: a position track interpolates in a straight
line. 06 carries the reel's one shallow focus:
`camera_dof` first in the chain, dof_range / dof_blur in mm, and `focus` a NODE
ID (the laptop) rather than a distance — the pass resolves the plane against
the machine every frame, so the push keeps it sharp with nothing hand-computed.
Preview: /packages/runtime/index.html?project=promos/primitives/scenes/abstract/abstract-area-light.promo- Topic
- scenes
- Scenes
- 7
- Kind
- reference rig
//
ABSTRACT · AREA LIGHT — seven premium (amber-noir) rooms built on the one idea of
promos/primitives/lights/rect-area-light.promo: a RECTANGLE of light you can
see in the shot (`helper=true` draws the panel at colour × intensity), read
three ways at once — as the panel, as a specular rectangle on every polished
surface, and as a wash on every matte one. The port's roughness-checker floor
rides the set-dressed rooms for the same reason: its dark squares mirror the
panels and its light squares only take their spill; the bare rooms stand on
a reflector mirror instead.
A device stands in every room, and it is the subject; the primitives are the
set the light is read on.
THE SECOND SET. The first twenty-five rooms are gone from here — thirteen of
them live on as scene-fit library parts in projects/parts/ (s01-ring s02-clock
s03-split s05-corridor s06-shards s07-sea s10-macro s11-overhead s12-backlight
s13-blade s19-typography s23-tilt s24-lantern) and the rest were cut. These seven
are those thirteen taken one step further, each one a variation on a room
that worked: the ring grown into a colonnade, the clock's bar over spheres,
the split turned on its side, the corridor closed into arches, the shards
laid down, the macro on the laptop, and the lantern seen from above.
# scene dur device the claim
01 s01-colonnade 8.0 iphone the triad on fifteen clearcoat columns in two rings round the phone;
every column wears three vertical bands
02 s02-tide 8.0 ipad one cream bar overhead, face down, a slow hand over 72 clearcoat
spheres — a point of light walking every ball
03 s03-seam 8.0 iphone an amber panel face down over the phone, a cool one low behind, on a
MIRROR: warm above the seam, cool below, reversed in the floor
04 s04-arcade 8.0 iphone six arches of light receding 3 m behind the phone — two sides and a
lintel each, eighteen panels converging on one vanishing point
05 s05-strewn 8.0 macbook forty clearcoat capsules strewn round the laptop under three panels;
every one carries a different band, the orbit slides them all
06 s06-deck 8.0 macbook 420 mm from the laptop's corner, shallow focus, one cool strip: a line
along the deck edge and the foot of the lid
07 s07-cage 8.0 iphone the phone flat on the mirror inside six thin strips of light: a star of
six lines seen from straight above, then through the open side
PREMIUM (amber-noir), the library's authored look: near-black stage (#0a0806 → #010101),
amber #ffb347 + warm #ffa25e against cool #7ad7ff, the charcoal `shell` on
every device, clearcoat plastic / brushed metal / matte clay / emissive amber
for the kit. ACESFilmic, bloom → grain → fxaa, fog tinted to the stage, three
matched haze lobes (hz0 amber · hz1 cool · hz2 warm) at z ≈ -1900 behind the
set, studio HDR at the dark-stage 0.16. Ambient 0.1. The panels are still
the light of every shot; the rest is the room they stand in.
WHERE THIS DEPARTS FROM THE PORT. The port has no ambient, no environment
and no haze — that is its demonstration. These rooms keep the panels as the
only KEY, but carry the library's env at 0.16 (a clearcoat or a metal has no
diffuse term and goes black without one), a 0.1 ambient, and the haze the
cut needs to match-move on. Tone mapping is ACES, not None.
UNITS ARE MILLIMETRES. Devices render at true size — 159.5 mm of phone
standing among 420 mm columns — so the cameras sit 1–2 m out at fov 40–45.
THE PANELS DO NOT MOVE. The port spins its lights because the