Skip to content
Docs
Open Promoeyes
electrostatic-contour

electrostatic-contour

ELECTROSTATIC CONTOUR — new-scenes shot 25 (Act V · space and environmental fields), built off images/rows/h5a_r0.png: a loose field of gold dust in dim haze · the dust drawn onto a phone's construction, feature by feature · the real device exposed in a burst as the polarity flips.

Read the rig's notes
THE CLAIM. The picture is not drawn, it is caused. Nothing here is keyframed
into a phone shape: seven emissive outline nodes (border wire, dynamic
island, front camera ring, three left-rail buttons, the power button) each
carry assembly(preset=swarm-converge granularity=triangle), and the ONLY
channel authored on them is 0 → 1 → 0. Scattered = the loose field in the
haze; assembled = the construction drawn in space. The release runs the same
rows 1 → 0, so the dust leaves along its own flight lines.

THE PHONE IS THERE FROM FRAME ONE. It is a dark shell on a near-black stage
under a key held at 0.15 — invisible the way a charged, unlit object is,
not hidden by an opacity trick. At 5.4 s the screen wakes and the area
key ramps to 2.4 in half a second: the product appears from ILLUMINATION,
and the dust leaving is what makes it immaculate.

THREE LAYERS OF DUST, and what each one is for:
  · the outline nodes  — the mechanism. Seven nodes, one channel each.
  · s25-dust (340)     — the loose field, circle MESHES (not sprites, so
                         camera_dof can act on them), screen-solved onto
                         depth shells, drifting inward while the charge
                         builds and outward once it flips.
  · s25-sparks (260)   — the release burst of frame three: parked at scale
                         0.001 until 5.4, then flown out along the slab's
                         normals (mostly +z, toward the lens) and gone by 7.0.

POSE. Phone at (0 20 0) rotation "0 22 -12" — the lean of the
reference frames. A <g> cannot carry a transform, so every outline node
states its own solved world position (Ry·Rz·p_local + phone) and wears the
phone's rotation. Re-pose by editing ROT_Y/ROT_Z/PHONE_POS in the generator.

BEATS (scene seconds):
  0.4 → 2.2   border wire converges
  1.4 → 3   dynamic island
  2.2 → 3.8   front camera ring
  3 → 4.4   action + volume buttons
  3.6 → 4.8   power button — construction complete
  5.4         screen activates, key light ramps 0.15 → 2.4
  5.5 → 7   polarity flips: outline dust leaves, sparks burst
  capture beats: 1.6 (field) · 3.9 (construction) · 6.3 (release)

LOOK — the new-scenes house grammar (plan §2): one accent (#ffb347), one
cool accent (#7ad7ff), three matched haze lobes (hz0/hz1/hz2) as the MEDIUM
the mechanism is visible in, a reflector-ground floor far below for the
fog tinted to the background; no floor — the sheet has none. Post ladder row 25: bloom 1.00 at
threshold 0.76, camera_dof named explicitly so film_grain lands AFTER the
lens, fxaa last. Ambient 0.10, env 0.20 (dark stage). Shadow maps off.

TRAPS PAID: a device node is its CENTRE (y = 20 is the phone's middle, not
its base — it floats in the field, as in the reference); area lights cast
no shadows and need none here; the outline nodes sit 1.5 mm proud of the
shell so they never z-fight the GLB; the release ends at 7.0, half a second
before the cut, so no beat lands under the reel's match-move gap.

IN THE REEL this scene runs transition=match-move (0.8 s) on match=hero into
s26-laminar-wake. Standalone here, so transition=none.

NO AUDIO — primitives scene; add at assembly time.

Capture: nx run tools:capture:webgl -- --project promos/primitives/scenes/abstract/new-scenes/electrostatic-contour.promo --width 1920 --height 1080 --times "1.6,3.9,6.3"
Preview: /packages/runtime/index.html?project=promos/primitives/scenes/abstract/new-scenes/electrostatic-contour.promo
Topic
scenes
Scenes
1
Kind
reference rig
//
    ELECTROSTATIC CONTOUR — new-scenes shot 25 (Act V · space and environmental
    fields), built off images/rows/h5a_r0.png: a loose field of gold dust in
    dim haze · the dust drawn onto a phone's construction, feature by feature ·
    the real device exposed in a burst as the polarity flips.

    THE CLAIM. The picture is not drawn, it is caused. Nothing here is keyframed
    into a phone shape: seven emissive outline nodes (border wire, dynamic
    island, front camera ring, three left-rail buttons, the power button) each
    carry assembly(preset=swarm-converge granularity=triangle), and the ONLY
    channel authored on them is 0 → 1 → 0. Scattered = the loose field in the
    haze; assembled = the construction drawn in space. The release runs the same
    rows 1 → 0, so the dust leaves along its own flight lines.

    THE PHONE IS THERE FROM FRAME ONE. It is a dark shell on a near-black stage
    under a key held at 0.15 — invisible the way a charged, unlit object is,
    not hidden by an opacity trick. At 5.4 s the screen wakes and the area
    key ramps to 2.4 in half a second: the product appears from ILLUMINATION,
    and the dust leaving is what makes it immaculate.

    THREE LAYERS OF DUST, and what each one is for:
      · the outline nodes  — the mechanism. Seven nodes, one channel each.
      · s25-dust (340)     — the loose field, circle MESHES (not sprites, so
                             camera_dof can act on them), screen-solved onto
                             depth shells, drifting inward while the charge
                             builds and outward once it flips.
      · s25-sparks (260)   — the release burst of frame three: parked at scale
                             0.001 until 5.4, then flown out along the slab's
                             normals (mostly +z, toward the lens) and gone by 7.0.

    POSE. Phone at (0 20 0) rotation "0 22 -12" — the lean of the
    reference frames. A <g> cannot carry a transform, so every outline node
    states its own solved world position (Ry·Rz·p_local + phone) and wears the
    phone's rotation. Re-pose by editing ROT_Y/ROT_Z/PHONE_POS in the generator.

    BEATS (scene seconds):
      0.4 → 2.2   border wire converges
      1.4 → 3   dynamic island
      2.2 → 3.8   front camera ring
      3 → 4.4   action + volume buttons
      3.6 → 4.8   power button — construction complete
      5.4         screen activates, key light ramps 0.15 → 2.4
      5.5 → 7   polarity flips: outline dust leaves, sparks burst
      capture beats: 1.6 (field) · 3.9 (construction) · 6.3 (release)

    LOOK — the new-scenes house grammar (plan §2): one accent (#ffb347), one
    cool accent (#7ad7ff), three matched haze lobes (hz0/hz1/hz2) as the MEDIUM
    the mechanism is visible in, a reflector-ground floor far below for the
    fog tinted to the background; no floor — the sheet has none. Post ladder row 25: bloom 1.00 at
    threshold 0.76, camera_dof named explicitly so film_grain lands AFTER the
    lens, fxaa last. Ambient 0.10, env 0.20 (dark stage). Shadow maps off.

    TRAPS PAID: a device node is its CENTRE (y = 20 is the phone's middle, not
    its base — it floats in the field, as in the reference); area lights cast
    no shadows and need none here; the outline nodes sit 1.5 mm proud of the
    shell so they never z-fight the GLB; the release ends at 7.0, half a second
    before the cut, so no beat lands under the reel's match-move gap.

    IN THE REEL this scene runs transition=match-move (0.8 s) on match=hero into
    s26-laminar-wake. Standalone here, so transition=none.

    NO AUDIO — primitives scene; add at assembly time.

    Capture: nx run tools:capture:webgl -- --project promos/primitives/scenes/abstract/new-scenes/electrostatic-contour.promo --width 1920 --height 1080 --times "1.6,3.9,6.3"
    Preview: /packages/runtime/index.html?project=promos/primitives/scenes/abstract/new-scenes/electrostatic-contour.promo
promo#electrostatic-contour(width=1920