Skip to content
Docs
Open Promoeyes
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