Skip to content
Docs
Open Promoeyes
aurora

aurora

AURORA — one tag, two light fields.

Read the rig's notes
<aurora> is a billboard plane wearing its own fragment shader. It started as
the HyperFrames ribbon aurora (three families of simplex-ridge ribbons over
a dark gradient — S35, the default) and now also carries `type=fold`: the
openshaders.com light field, an ITERATED FOLD. Per pixel, up to 96 dependent
layers each sine-warp the coordinate, multiply it by a fixed rotate-shear
matrix and shrink it, then add an inverse-square glow from one point,
tinted per layer in OKLCH; ACES, a per-channel lift, a vignette and a
page-colour blend finish it. Nothing here is a <bands> surface, and could
not be: bands are independent Perlin octaves summed once and coloured by a
ramp — this is a recursion whose colour is the sum of every layer.

EVERY OPENSHADERS FIELD IS 34 NUMBERS, and those numbers are a pure function
of the username (FNV seed → PCG stream → the first of 16 draws that passes
the site's coverage gate). The engine carries that generator, so
`name=<user>` is that user's field exactly — S1 writes @sumit's 34 out by
hand, S2 says `name=sumit`, and the two frames are identical. Any of the 34
can be overridden on the tag (S6 layers, S9 zoom/tilt, S11 light mode).

TWENTY-THREE SCENES.
  S1       @sumit, all 34 constants explicit — the copied module, verbatim.
  S2       the same field as `name=sumit`, nothing else on the tag.
  S3–S12   ten names from openshaders.com/explore, chosen to walk the hue
           wheel and the generator's branches: no echo / echo, flow
           direction ±1, wide and narrow hue spread, 70-odd and 90-odd
           layers. Each is its own field; a few carry one override so the
           tag's knobs are visible.
  S13–S22  TEN INVENTED FIELDS — outside the generator's ranges, which is
           where the site never goes. The generator draws shear in
           0.955..0.972, shrink in 0.946..0.96, aspect-y in 0.13..0.22,
           chroma under 0.17, softness over 0.0012, echo under 0.7; each of
           these scenes breaks one of those on purpose, and the header of
           each says which. A vortex (shear 0.992 · shrink 0.972), round
           glows instead of streaks (aspect 0.9/0.9), hot wires (softness
           0.0006), a monochrome that lives on light-swing alone, blue
           light on paper, a doubled field (echo 1.0), a storm, a nebula, a
           complementary pair and a silver noir.
  S23–S24  REACT. `react=<id>` makes either field reflow around a device.
           The phone's bounding box is projected into the plane every
           frame: where it presses on or passes through, the field is
           pushed out from the contact (the filaments part), dragged along
           the phone's velocity, and lit at the rim; each first touch
           births a ring that runs outward. Nothing is read live — the
           phone's pose is SAMPLED from its own tracks with the runtime's
           evaluator, so a scrub lands on the same dent a play-through
           does. S23 presses and slides; S24 flies straight through, twice.
  S25–S34  REACT, PLURAL. `react="a b c"` takes up to eight nodes, and any
           node with geometry counts — the contact is the box's own
           in-plane ellipse, so a word dents a trough and a phone a slot.
           Two phones crossing (S25), a laptop and a phone (S26), three
           words landing in turn (S27), one long word dragged across the
           field (S28), a ui3d card pressed and dragged (S29), three cards
           holding three dents at once (S30), a sphere and a knot looping
           through (S31), two words bouncing on the ribbons (S32), a
           laptop on paper in light mode (S33), and a phone that only
           HOVERS — `react-reach=380` lets the field lean toward it before
           anything touches (S34).
  S35      the ribbon aurora, the default `<aurora>` — for the record.

PLACEMENT. The plane is 1920×1080 mm at the origin and the camera sits at
z = 540 / tan(25°) = 1158 mm at fov 50, so the frame IS the plane: the
field's own centre, vignette and edge are composed for the full card, and
cropping it would move them. Scenes cut with `blur-dissolve` — two fold
fields never morph; they are different numbers in the same program, so the
focus dissolve is the honest handoff.

Preview: /packages/runtime/index.html?project=promos/primitives/backgrounds/aurora.promo
Scenes
35
Kind
reference rig
//
    AURORA — one tag, two light fields.

    <aurora> is a billboard plane wearing its own fragment shader. It started as
    the HyperFrames ribbon aurora (three families of simplex-ridge ribbons over
    a dark gradient — S35, the default) and now also carries `type=fold`: the
    openshaders.com light field, an ITERATED FOLD. Per pixel, up to 96 dependent
    layers each sine-warp the coordinate, multiply it by a fixed rotate-shear
    matrix and shrink it, then add an inverse-square glow from one point,
    tinted per layer in OKLCH; ACES, a per-channel lift, a vignette and a
    page-colour blend finish it. Nothing here is a <bands> surface, and could
    not be: bands are independent Perlin octaves summed once and coloured by a
    ramp — this is a recursion whose colour is the sum of every layer.

    EVERY OPENSHADERS FIELD IS 34 NUMBERS, and those numbers are a pure function
    of the username (FNV seed → PCG stream → the first of 16 draws that passes
    the site's coverage gate). The engine carries that generator, so
    `name=<user>` is that user's field exactly — S1 writes @sumit's 34 out by
    hand, S2 says `name=sumit`, and the two frames are identical. Any of the 34
    can be overridden on the tag (S6 layers, S9 zoom/tilt, S11 light mode).

    TWENTY-THREE SCENES.
      S1       @sumit, all 34 constants explicit — the copied module, verbatim.
      S2       the same field as `name=sumit`, nothing else on the tag.
      S3–S12   ten names from openshaders.com/explore, chosen to walk the hue
               wheel and the generator's branches: no echo / echo, flow
               direction ±1, wide and narrow hue spread, 70-odd and 90-odd
               layers. Each is its own field; a few carry one override so the
               tag's knobs are visible.
      S13–S22  TEN INVENTED FIELDS — outside the generator's ranges, which is
               where the site never goes. The generator draws shear in
               0.955..0.972, shrink in 0.946..0.96, aspect-y in 0.13..0.22,
               chroma under 0.17, softness over 0.0012, echo under 0.7; each of
               these scenes breaks one of those on purpose, and the header of
               each says which. A vortex (shear 0.992 · shrink 0.972), round
               glows instead of streaks (aspect 0.9/0.9), hot wires (softness
               0.0006), a monochrome that lives on light-swing alone, blue
               light on paper, a doubled field (echo 1.0), a storm, a nebula, a
               complementary pair and a silver noir.
      S23–S24  REACT. `react=<id>` makes either field reflow around a device.
               The phone's bounding box is projected into the plane every
               frame: where it presses on or passes through, the field is
               pushed out from the contact (the filaments part), dragged along
               the phone's velocity, and lit at the rim; each first touch
               births a ring that runs outward. Nothing is read live — the
               phone's pose is SAMPLED from its own tracks with the runtime's
               evaluator, so a scrub lands on the same dent a play-through
               does. S23 presses and slides; S24 flies straight through, twice.
      S25–S34  REACT, PLURAL. `react="a b c"` takes up to eight nodes, and any
               node with geometry counts — the contact is the box's own
               in-plane ellipse, so a word dents a trough and a phone a slot.
               Two phones crossing (S25), a laptop and a phone (S26), three
               words landing in turn (S27), one long word dragged across the
               field (S28), a ui3d card pressed and dragged (S29), three cards
               holding three dents at once (S30), a sphere and a knot looping
               through (S31), two words bouncing on the ribbons (S32), a
               laptop on paper in light mode (S33), and a phone that only
               HOVERS — `react-reach=380` lets the field lean toward it before