Stoatworks Labs

Gridiron

A sponsor wall that plays no favourites, for Resolume

Releasedv0.2.4Plugin & ModuleC++ / GLSL
Gridiron — A sponsor wall that plays no favourites, for Resolume
Rendered by the plugin's own offline harness rather than captured from Resolume. The logos are the demo pack that ships with the download: Stoatworks' own marks, a few project graphics, and a set of invented sponsors named after the trade — Colour Bars & Grill, Haze & Confused, Gobo Getters, Truss Issues. The Resolume product marks are Resolume's own, included as sample content only.

What it does

An FFGL source for Resolume Arena and Avenue. A press wall is a grid of sponsor logos, and the tedious part is the arrangement, not the drawing: which logo goes where, how to avoid two of the same side by side, and how to give every sponsor the share of the wall they paid for. Gridiron does that bit, then gives the result something to do.

FFGL has no folder picker (its parameter types stop at a file dialog), so you pick any one image inside the folder and it reads the folder around it. Stills, animated GIFs and SVG all work, and a GIF plays at the speed it was made to. An SVG is drawn at 512 pixels on its longer side, which is plenty for a cell on any wall you'd want to read. Convert its text to outlines before you export it, though: the vector parser has no fonts, so live text draws as nothing at all, and the plugin says so rather than leaving a sponsor's name off the wall in silence.

The arrangement follows four rules, in this order when they clash. It's reproducible, because a seed fixes it, and a wall you can't reproduce is a wall you can't get signed off. It never puts the same logo next to itself, because that's the first thing anyone spots in a photo. It gives every logo the same total time on screen across a cycle: the same number of placements, each one step long, with a wordmark across two cells counted once. And it respects aspect, giving a long wordmark two cells instead of letterboxing it into one. The second beats the fourth because you can see a duplicated neighbour from across the room and you can't see a letterboxed logo.

Real sponsor packs never have consistent margins. One mark's exported tight to its bounding box, the next sits in a square canvas that's a third air. Drop them into identical cells and they come out wildly different sizes, which looks like a mistake by whoever built the wall, even when it was the logos' fault. Trim margins measures where the opaque pixels actually are and brings every mark to the same optical size.

  • Point it at a folder — stills, animated GIFs that play, and SVG
  • Seeded arrangement: same folder and seed, same wall, across a reload and across a machine
  • No logo ever touches a copy of itself, including around the hero block
  • Equal airtime — every sponsor on screen the same total time per cycle, exactly
  • Trim margins, which normalises a pack of inconsistently-exported logos to one optical size
  • A hero block at top, middle or bottom for the headline sponsor or the event name
  • Slot Machine: each column a reel at its own speed, decelerating to land on a whole cell
  • Rubik: the wall on a cube, one slice at a time, scrambling and then solving so the loop does not snap
  • Twinkle and Fade Cycle, with every cell at its own point in its own cycle
  • Burin, Nib and Vectrix line-art treatments, applied to the whole wall or to individual logos

Where it stands

Released at v0.2.4, which fixes five things its browser demo turned up. Fit, Fill and Stretch were squashing every logo that isn't square (a 4:1 wordmark came out at about 16:1, and Fit is the default), animated GIFs never animated, scrolling drew the mark entering at each edge unfitted, a wordmark on the cube turned with whichever slice a rounding error picked (Apple Silicon and Intel picked differently), and some cells had a faint line along one edge. v0.2.3 renamed it SW Gridiron so the Stoatworks plugins sit together in Resolume's browser, v0.2.2 is dependency maintenance, v0.2.1 only changed the Windows installer, which no longer touches the system PATH (the earlier one could overwrite it), and v0.2.0 budgets the atlas upload, adds a solid cell fill and stops the cube resetting. It's tested as far as an offline harness reaches: four suites check the arrangement, the geometry, the decoding and a real render in a headless GL context, and oxbow confirms the bundle registers and instantiates. Testing found six faults that a clean build and a green test run didn't, including a phantom parameter that broke instantiation outright, and a loader that handed over the folder once and an empty list on every frame after, so the wall drew perfectly and then vanished. Other people are now running it in Resolume, and the first field report was Windows-only: a black wall from a stale GL error read as a refused upload, and a whole-grid scroll that slid off frame and never wrapped. Both were fixed in v0.1.2, and the plugin now writes the fleet's standard log file, which that report had nothing from. The pixel-level suite is macOS-only, so the Windows gap is wider. Try it in your own rig before you trust it in a show.

Watch it running

Gridiron video thumbnail

Nothing loads from YouTube until you press play.Watch it there instead