Skip to content

Releases: stoatworks-labs/shunt

Release list

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 23 Sep 00:12

The first field report, answered. The operator who asked for Shunt had 0.1.0
running in Arena the night it shipped and sent back six notes; all six are in
this release.

Fixed: Mask Mode and Mix did nothing in SW Shunt. 0.1.0 declared both on
the source and ignored them there. On SW Shunt they now mean something:

  • Mask Mode is Over / Matte / Inverse Matte. Matte is white shapes on
    solid black and Inverse Matte black on white, for another layer to key
    against. It keeps Softness, Opacity and a picture's transparency, so a soft
    edge stays soft in the key.
  • Mix fades the source's whole output to transparent as one picture.

SW Shunt Mask's four modes are unchanged.

New: Lanes. A set is one cycle's worth of shapes. Step moves each new
set Lane Step across the frame, rolling over from one edge to the other.
Random puts it on a random lane that is never closer to the last set than
one shape's width. Both keep every shape fully on the frame, and a set only
changes lane off-stage.

New: drop shadows. Shadow, Shadow Distance and Shadow Blur. The
shadow falls away from the Light control, and each one lands on the shapes
its shape has slid over, never on the shape itself. The shading's light is now
fixed on the screen too, so highlight and shadow agree. In 0.1.0 the highlight
turned with each shape, so this is the one place a 0.1.0 look changes.

New: pictures on the shapes. Choose a file in Image, then pick what
Image From does with it:

  • Single puts the whole picture on every shape.
  • Folder uses every image beside the chosen file, sorted by name, up to 36.
  • Sprite Sheet cuts the picture into Columns × Rows.

Pick gives each shape the Same one (named by Sprite), a Random
one, or the next one In Order. A shape keeps its picture for its whole run.
Image Mix blends the picture with the shape colour. Pictures are
centre-cropped to a square, stay upright whichever edge the train enters from,
and turn with Angle.

New preset: Bullseye, the ring look found on the first night.

Nothing old moved. Every 0.1.0 control keeps its id. The new controls are
declared after Preset and all default to off, so a 0.1.0 composition opens as it
did apart from the shading's light.

Measured, not asserted. Four new harness checks, one per request:

  • --matte checks the source's three modes on the picture, and that Mix 0.5 is
    exactly half.
  • --lanes checks every shape of a set on one lane at every phase, Step exact
    over 440 sets, and Random never closer than one shape across 5,500 sets at
    four sizes.
  • --shadow checks that the shadow falls away from the light at three angles,
    that Shadow 0 is pixel-identical to the picture without shadows, and that
    Hide draws none.
  • --image checks upright pictures from three edges, sheet cells clean to their
    edges, Random and In Order across 48 shapes, and that a folder is read by
    name.

The dead-control sweep now covers all 47 controls on both plugins, with nothing
excused.

Checked in Resolume Arena before the tag. This release workflow's Windows
build went through the fleet's Arena gate in Resolume Arena 7.27.1 on win-lab
before v0.2.0 was tagged: 17 passed, 0 failed, 0 skipped. That covers:

  • both DLLs load and register;
  • all 50 controls on each plugin match their declarations, with Columns, Rows
    and Sprite as real integer ranges;
  • the Image control loaded a sprite sheet from a Windows path on both plugins;
  • both plugins render;
  • the log is clean.

Still honestly early. That run was on software rendering, so it says nothing
about a GPU, and the new controls have not been used in a show. Try it on a spare layer first, and please open
an issue for anything that misbehaves.

  • macOS: universal (Apple Silicon + Intel), .dmg or .zip.
  • Windows: x64, .exe installer or .zip.

Drop both bundles into ~/Documents/Resolume Arena/Extra Effects (or the Avenue
equivalent) and restart Resolume.

Guide: https://stoatworks-labs.com/software/shunt/guide/ ·
Browser demo: https://shunt-demo.stoatworks-labs.com

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 22 Sep 16:07

First release. Two FFGL plugins for Resolume Arena and Avenue: SW Shunt, a
source that draws its queue over its own background, and SW Shunt Mask, an
effect that draws the same queue over the clip or cuts it into it.

Shapes slide in from an edge you choose, stop a set distance in, bank up behind
one another — overlapping, newest drawn on top — stand for a moment, and are
drawn away off the far side. It was asked for by a Resolume operator through the
site's contact form; the mechanism is an accumulating conveyor, which is what a
shunting yard is.

Two things worth knowing before you reach for a control.

Dwell is one dial, not two modes. Turn it down and shapes cross slowly: the
head of the queue is still leaving as the fourth one arrives, and the train never
stands complete. Turn it up and they cross fast: the whole train is standing
before the head moves at all, then it peels off one at a time. Everything between
is reachable and nothing in the code branches on it.

Gap is offerable in both useful units. In multiples of the shape's own
thickness, 1.0 means edge to edge and anything below it is the overlap the effect
exists for — and the train still looks right when Size changes. In absolute
pixels it is exact, so it can be matched to a fixture pitch: a 64-pixel gap
measures 64.00 px at 1080p and at 720p alike.

Measured, not asserted. The offline harness drives the real plugin class in a
headless GL context and reads its answers off rendered frames: 27 shapes within
1.5 px of an independent prediction across four entry sides and five aspect
ratios; five bars at a gap of one thickness rendering as a single run 48.9 px
long against 5 × 9.72 predicted; the head stopping 1536.1 px into a 1920 px frame
where Travel 80% predicts 1536.0; a standing shape standing for 23, 119 and 215
frames of 240 where Dwell 10%, 50% and 90% predict 24, 120 and 216; and the newer
of two overlapping shapes being the one you see, at every phase. 92 slot runs
across nine configurations confirm the invariant the design rests on, and all 33
controls are shown to reach the picture.

Honestly early. These exact binaries have now been loaded into Resolume Arena
7.27.1 (added 2026-09-22): the Windows DLLs from this page, on the fleet's
win-lab VM, through its Arena release gate — 15 checks passed, 0 failed. Both
plugins register with the right name, id and type; all 38 controls on each match
what the plugin declares; both render; the log is clean. That run was on
software rendering, so it says nothing about a GPU, and nothing here has been
used in a show yet. The macOS builds are signed and notarised. There is no
OpenFX build. Try it on a spare layer first, and please open an issue for
anything that misbehaves.

  • macOS — universal (Apple Silicon + Intel). .dmg or .zip.
  • Windows — x64. .exe installer or .zip.

Drop both bundles into ~/Documents/Resolume Arena/Extra Effects (or the Avenue
equivalent) and restart Resolume.

Guide: https://stoatworks-labs.com/software/shunt/guide/ ·
Browser demo: https://shunt-demo.stoatworks-labs.com