One of the things I got hooked on when moving to New York City is the improv theatre show sequence The Campaign — a troupe plays out a D&D-style dungeon-crawling campaign on stage.
On a whim, I decided that I really should give them a Christmas gift, and realized that I had a pile of red mirror-acrylic scraps sitting around. After looking around for giant D20s, I decided to simply build my own to give them.
Cutting the acrylic into 20 equilateral triangles is easy enough on the laser cutter, and etching out numbers is (at least in theory) also perfectly decent. I was being cheap about it, though, and cut out outlines with the laser, going at the interior of each digit by pretending a power drill was a router (encouraged by Widget! It wasn’t my idea!) all the way until I made my drill bit snap into pieces.
The plan was to illuminate the D20 from the inside, and make it pulse or blink on a critical hit or critical miss (ie 20 or 1). Since 20 and 1 are opposite sides, this amounts to checking whether either of the sides is horizontal. An easy solution here would have been to put in an Arduino and a sensor — so clearly that’s not something I did. Instead, I realized that (in theory), a circle of tilt sensors should detect flat orientation.
With a ring of switches, any one of which closes if it tilts more than ~30º from horizontal, the entire thing conducts electricity whenever it is tilted, and breaks the connection whenever it is flat.
So putting one of these on either the 1- or the 20-face should get us a circuit that detects crits. Pulsing is easy enough with a simple oscillator, and I got some help putting together an Astable Multivibrator — a square wave generator — out of transistors, capacitors and resistors.
I ordered myself some ball tilt switches — metal tubes with a tiny steel ball inside, and connectors, one to a metal pin inside, and one to the outer tube — and soldered a ring of 8. I built a multivibrator, and then with quite a lot of help figured out how to get the vibrator circuit to only power up when the tilt switch was open.
Meanwhile, I ordered myself a large amount of foam rods for stuffing holes before caulking, to work as edges for the dice to land on, keeping the acrylic sides from shattering from rolling the D20. I started cutting slits in the foam rods, and hot-gluing the acrylic sides to the foam rods, while at the same time hotgluing in white LEDs for illumination and red LEDs for the blinky circuit. Eventually I got to testing the circuits, and … well …
It turns out that the ball tilt switches are extremely noisy signals. I didn’t so much detect tilt as anything touching, disturbing or moving any part of the D20 in any way whatsoever. Shortly after realizing this, a couple of wires pulled out of their soldering joints on a board hotglued down generously deep inside the glued up dice. So I gave up on the blinky plans, and hotglued in a few more white LEDs for illumination.
The end result has 4 battery-packs with switches packed in under the foam rods, each taking a pair of coin cells. These battery packs drive LEDs on the inside arranged so that they illuminate all sides from the inside. In use, this gives the D20 numbers that show up as eerily glowy purple numbers around the red reflective surface.
We test-rolled the D20 several times in the space as I had finished gluing it together — and then I took it down to the Christmas show. Before going, I wrapped the entire thing in Christmas paper, and managed to keep it quiet from the actors and the director. As we all entered the theatre, I took the 5 in D20 from the table the Director / GM had set up, and put my own 2 ft D20 there instead. The audience all settled into our seat, and the show got started.
Making it a surprise, unfortunately, means that I wasn’t able to give any sort of instructions to the GM on how to roll the dice, and she managed to throw it high in the air, breaking 6-7 hot glue joints in the process. We caught it all on video: enjoy!