
What it does
An FFGL source for Resolume Arena and Avenue. A press wall is a grid of sponsor logos, and the tedious parts are all in the arrangement rather than the drawing: which logo goes where, how not to put two of the same one side by side, and how to give every sponsor the share of the wall they paid for. Gridiron does that part, and then gives the result something to do.
FFGL has no folder picker — its parameter types stop at a file dialog — so you pick any single image inside the folder and the directory is read around it. Stills, animated GIFs and SVG all work. Vector logos are rasterised at the size their cell actually is and redrawn when it changes, which matters more here than almost anywhere: a wall draws the same mark at wildly different sizes depending on how dense the grid is, and resampling one fixed bitmap across all of them is exactly what makes a sponsor board look cheap.
The arrangement obeys four rules, in this order when they conflict. It is reproducible, because a seed fixes it and a wall you cannot reproduce is a wall you cannot get approved. It never repeats a logo adjacently, because that is the first thing an eye picks out of a photograph. It gives every logo the same total time on screen across a cycle — the same duration, not the same number of placements. And it respects aspect, giving a long wordmark two cells rather than letterboxing it into one. The second beats the fourth because a duplicated neighbour is visible from across a room and a letterboxed logo is not.
Real sponsor packs never have consistent margins: one mark exported tight to its bounding box, the next sitting in a square canvas with a third of it air. Dropped into identical cells they read as wildly different sizes, which looks like a mistake by whoever built the wall. Trim margins measures where the opaque pixels actually are and normalises every mark to the same optical size.
- Point it at a folder — stills, animated GIF and SVG, rasterised at the size the cell actually is
- 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.1. v0.2.0 budgets the atlas upload, adds a solid cell fill and stops the cube resetting; v0.2.1 changed nothing but the Windows installer, which no longer touches the system PATH — the earlier one could overwrite it. Verified 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 could not — among them a phantom parameter that broke instantiation outright, and a loader that handed the folder over once and an empty list on every frame after, so the wall drew correctly and then vanished. Other people are now running it in Resolume, and the first field report was a Windows-only one — 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 are fixed in v0.1.2, and the plugin now writes the fleet's standard log file, which that report had nothing of. The pixel-level suite is macOS-only, so the Windows gap is wider. Try it in your own rig before trusting it in a show.
Watch it running
Nothing loads from YouTube until you press play.Watch it there instead