Skip to content
Docs
Open Promoeyes
abstract-tunnel-best

abstract-tunnel-best

ABSTRACT · REPETITION SUITE — shots 11-16 of the RICH-SCENES reel. Shot 11 is the second of the two shots that carry the port; 12-16 are it taken apart and re-pointed, five ways.

Read the rig's notes
THE ARGUMENT. Depth from REPETITION rather than from material: near-free
geometry repeated by an authored distribution (a thin ring is 8 x 120
segments — thirty of them cost less than one device), ONE accent colour
doing all the emissive work so the bloom pass has exactly one thing to find,
and the camera INSIDE the composition rather than looking at it.

  #   scene              dur   transition             device   the shot
  11  s11-tunnel         7.0   match-move             iphone   30 rings on a spline the camera flies
  12  s12-aperture       7.0   through=s12-phone      iphone   18 rings, one clip blade each, irising open
  13  s13-corridor       6.5   match-move             chrome   12 ui3d panels as a hall, a browser at the end
  14  s14-rain           7.0   match-move             iphone   54 falling streaks, lit by the phone's own flare
  15  s15-shaft          6.5   match-move             imac     ray fans + a blinds cookie
  16  s16-mirror         6.5   (was match-move)       iphone   two reflectors faced at each other

THE PORT DECISION — TUNNEL CAMERA (11). The source page flew its spline to
u = 0.92 and its rings ended there too. Here that runs the camera out of
tunnel in the last second, so the fly-through stops at 0.72 and looks 0.10
ahead instead of 0.06 — a short look-ahead through a curve points the camera
at the barrel wall.

THE TRAP IN THIS PART — REFLECTORS ON END (16). reflector-ground builds a
plane, and a plane's normal is +Z, so rotation "0 90 0" / "0 -90 0" faces
two of them inward. Each renders the scene once from its own virtual camera,
so this is one bounce per wall, not infinite recursion — at 680 mm apart it
still reads as a hall, and that is the honest claim.

Shots 11, 12 and 14 are three of the six that carry prismatic_dispersion as
a look (spread 0.01); 14 ran the reel's highest dispersion at 2.4 until the
camera suite's whip took it.
THE UNITS. 1 page unit = 100 mm. The kit is fist-sized (a 100 mm chamfered
cube, a 98 mm torus), the cameras sit 600-1200 mm out, and the devices render
at true physical size — 159.5 mm of iphone standing next to a 100 mm cube is
the whole reason the shots read as objects on a table rather than as
graphics. Every length in this file is a millimetre.

LOOK — shared across every part:
  ink        #e9e6df   dim  #7c7970   line  #23232a
  mark       #ffb347   the one accent; every emissive surface is this
  cool       #7ad7ff   the dark stage's side source
  warm       #ffa25e   its opposite
  backgrounds  s1 #101116 · s2 #0b0c10 · s3 #05060a · s4 #121014 ·
               s5 #04050a · s6 #04040a · s7 #0a0b0f

HAZE. Three lobes, hz0/hz1/hz2, matched across every scene, so the room is
continuous under the cuts. Colours per shot are the shot's own key/fill:
amber + cool on the studio shots, cool + warm on the dark stage. They drift on
a linear position track — no pulse, no decay, sizes 900-2600 mm so they read
as LOBES against the near-black background, never as a full-frame wash.

POST. bloom -> unreal_bloom, grain/vignette -> film_grain, then fxaa last on
every shot to settle thin-edge crawl. prismatic_dispersion is authored ONLY
on the shots that carry chroma-split as a look (spread 0.01) — running it at
spread=0 elsewhere is a full-screen pass per frame doing nothing.

THE EXPOSURE LADDER. Bloom strengths sit BELOW the source page's and the
thresholds well above them, and that is a port decision, not a transcription
error: the page shaded with no lights at all and its bloom picks highlights
out of an already-dim frame, where this reel has real area lights shaping
real device hardware. What survived: ambient 0.09-0.16, one area key at
1.5-2.6, env intensity 0.16 (dark stage) to 0.5 (studio). Anything above that
and the reel stops being a dark reel.

FOG is per-shot, tinted to that shot's background (fog(color= near= far=),
near/far x100 like everything else). It is what stops each floor plane from
reading as a lit grey slab behind the subject.

CAMERA GRAMMAR. Every shot is one continuous move authored as a <frame>
track: explicit position/look_at rows, and a node= fill= row wherever the
shot lands on its device. The device landing is the added beat — the source
page never framed anything, so each shot has somewhere to arrive.

NO AUDIO. This is a primitives reel: no VO clips exist for it and no music is
authored, so there is no <audio> block. Add one at assembly time.
SPLIT FROM abstract.promo. This file is one of eight parts cut out of the
943 KB abstract.promo; the reel-level document that used to head that file is
now README.md in this directory. Scene bodies are byte-identical to the
original.

BOUNDARY. s16-mirror closed on `transition=match-move transition-duration=0.8` when it had
a successor in the same file. It is the last scene here, so it carries
transition=none; restore the line above it when re-concatenating.

Capture: nx run tools:capture:webgl -- --project promos/primitives/scenes/abstract/abstract-tunnel.promo --width 1920 --height 1080
Preview: /packages/runtime/index.html?project=promos/primitives/scenes/abstract/abstract-tunnel.promo
Topic
scenes
Scenes
6
Kind
reference rig
//
    ABSTRACT · REPETITION SUITE — shots 11-16 of the RICH-SCENES reel. Shot 11
    is the second of the two shots that carry the port; 12-16 are it taken apart
    and re-pointed, five ways.

    THE ARGUMENT. Depth from REPETITION rather than from material: near-free
    geometry repeated by an authored distribution (a thin ring is 8 x 120
    segments — thirty of them cost less than one device), ONE accent colour
    doing all the emissive work so the bloom pass has exactly one thing to find,
    and the camera INSIDE the composition rather than looking at it.

      #   scene              dur   transition             device   the shot
      11  s11-tunnel         7.0   match-move             iphone   30 rings on a spline the camera flies
      12  s12-aperture       7.0   through=s12-phone      iphone   18 rings, one clip blade each, irising open
      13  s13-corridor       6.5   match-move             chrome   12 ui3d panels as a hall, a browser at the end
      14  s14-rain           7.0   match-move             iphone   54 falling streaks, lit by the phone's own flare
      15  s15-shaft          6.5   match-move             imac     ray fans + a blinds cookie
      16  s16-mirror         6.5   (was match-move)       iphone   two reflectors faced at each other

    THE PORT DECISION — TUNNEL CAMERA (11). The source page flew its spline to
    u = 0.92 and its rings ended there too. Here that runs the camera out of
    tunnel in the last second, so the fly-through stops at 0.72 and looks 0.10
    ahead instead of 0.06 — a short look-ahead through a curve points the camera
    at the barrel wall.

    THE TRAP IN THIS PART — REFLECTORS ON END (16). reflector-ground builds a
    plane, and a plane's normal is +Z, so rotation "0 90 0" / "0 -90 0" faces
    two of them inward. Each renders the scene once from its own virtual camera,
    so this is one bounce per wall, not infinite recursion — at 680 mm apart it
    still reads as a hall, and that is the honest claim.

    Shots 11, 12 and 14 are three of the six that carry prismatic_dispersion as
    a look (spread 0.01); 14 ran the reel's highest dispersion at 2.4 until the
    camera suite's whip took it.
    THE UNITS. 1 page unit = 100 mm. The kit is fist-sized (a 100 mm chamfered
    cube, a 98 mm torus), the cameras sit 600-1200 mm out, and the devices render
    at true physical size — 159.5 mm of iphone standing next to a 100 mm cube is
    the whole reason the shots read as objects on a table rather than as
    graphics. Every length in this file is a millimetre.

    LOOK — shared across every part:
      ink        #e9e6df   dim  #7c7970   line  #23232a
      mark       #ffb347   the one accent; every emissive surface is this
      cool       #7ad7ff   the dark stage's side source
      warm       #ffa25e   its opposite
      backgrounds  s1 #101116 · s2 #0b0c10 · s3 #05060a · s4 #121014 ·
                   s5 #04050a · s6 #04040a · s7 #0a0b0f

    HAZE. Three lobes, hz0/hz1/hz2, matched across every scene, so the room is
    continuous under the cuts. Colours per shot are the shot's own key/fill:
    amber + cool on the studio shots, cool + warm on the dark stage. They drift on
    a linear position track — no pulse, no decay, sizes 900-2600 mm so they read
    as LOBES against the near-black background, never as a full-frame wash.

    POST. bloom -> unreal_bloom, grain/vignette -> film_grain, then fxaa last on
    every shot to settle thin-edge crawl. prismatic_dispersion is authored ONLY
    on the shots that carry chroma-split as a look (spread 0.01) — running it at
    spread=0 elsewhere is a full-screen pass per frame doing nothing.

    THE EXPOSURE LADDER. Bloom strengths sit BELOW the source page's and the
    thresholds well above them, and that is a port decision, not a transcription
    error: the page shaded with no lights at all and its bloom picks highlights
    out of an already-dim frame, where this reel has real area lights shaping
    real