Polyhedral
Polyhedral dice that land where you tell them, for Resolume

What it does
Two FFGL plugins for Resolume Arena and Avenue in one download. SW Polyhedral is a source that throws dice onto a table (or onto nothing, so only the dice and their shadows go over the layers below), and SW Dice Over is an effect that throws them over the clip and can put the clip itself on every face.
Press Roll and the dice come in over the edge of the frame, tumble, bounce off the edges and each other, and come to rest on a random result, or on the Fixed Total you set, at exactly the Roll Time you set. The d4, d6, d8, d10, d12 and d20 are all there, and the d100 as the real pair: a tens die and a units die thrown together. Up to six dice at once, and a Fixed Total over several is split across them with every combination that makes it equally likely.
The trick is that every die in the set is face-transitive: for any two faces there's a rotation of the solid onto itself that carries one to the other. So the throw is simulated properly ahead of time, with gravity, an impulse at every contact, friction and restitution. The plugin reads which face the physics left on top, then draws the die turned by the symmetry that carries the wanted face onto that one. Every frame of the outline, every bounce and every shadow is the physics'. Only the paint has turned, so the number is chosen and nothing in the motion gives it away.
The numbering matches a proper set: opposite faces add up as they do on a real die, the d6 runs 1, 2, 3 anticlockwise round a corner, the d20 is balanced so no corner hoards the high numbers, the d4 prints each number at its vertex and is read at the top, and 6 and 9 are marked. A die that comes to rest cocked against another or against a wall gets rethrown, as it would at a table. Real dice settle in about half a second, so a longer Roll Time plays the throw in slow motion, easing into the reveal.
- A source and an Over effect in one download
- The d4, d6, d8, d10, d12, d20 and the d100 as a tens and units pair; up to six dice
- Random results, or a Fixed Total split across the dice
- Real rigid-body physics; the result set by the die's own rotation symmetry, not by animation
- Lands at exactly Roll Time, 0.4 to 8 seconds
- Numbers in any installed font, a font file or a built-in face; painted or engraved; pips on the d6
- Plastic, marble, pearl, metal, gem, stone, wood, galaxy, a picture, a wireframe, or the clip on every face
- A felt or wooden table, or none: the dice and their shadows over the layers beneath
- Universal macOS bundles and Windows x64 DLLs
Where it stands
v0.1.0, and early days. It's never been loaded into Resolume on macOS. On Windows, a CI build loads in Resolume Arena 7.27.1 on software rendering (no GPU): both plugins register, all 47 and 49 host controls match what's declared, both render with a font and a picture loaded from file, and every control that can change the picture without a throw does, 33 on the source and 35 on the effect. The check never presses Roll, though, so nothing has actually been thrown in Resolume. Offline on a Mac, 220 Fixed throws covering every value of every die all showed the value asked for, read back out of the picture; every die comes to rest flat, still and inside the walls exactly at Roll Time; free flight is the exact parabola; and ten deliberately wrong models and six one-character sabotages are all caught. Not yet tried: a real throw on Arena's clock, how Arena restores a saved composition, and any real GPU but mine. There's a user guide, but no presets and no OpenFX port. Try it in your own rig before you trust it in a show.
Watch it running
Nothing loads from YouTube until you press play.Watch it there instead