All projects Randomiser · Write-up
A draw at the fairZiehung auf der Kirmes
Randomiser draws a name for the afternoon meeting, at the fair: a painted wheel, a jackpot or a duck race, the winner picked before anything moves, and at the end a prize ticket in a spotlight.Randomiser zieht fürs Nachmittags-Meeting einen Namen, auf der Kirmes: am Glücksrad, am Jackpot oder beim Entenrennen, der Gewinner gezogen, bevor sich etwas bewegt, und am Ende ein Gewinnlos im Scheinwerferlicht.
randomiser.ewolution.cloud Source
- Type
- Web appWeb-App
- Stack
- Svelte 5 · Node · Canvas · Web Audio
- Year
- 2026
- Code
- Public on GitHubÖffentlich auf GitHub
Three ways to draw a name
Randomiser draws a name for the afternoon meeting, at the fair. The meeting's names go in once; then you pick a machine and press the ticket at the bottom. The wheel is a painted wooden Glücksrad with 22 bulbs on its rim, brass nails between the slices and a leather pointer that the nails push aside and that snaps back with a click; you can also drag it, flick it or tap it. The jackpot is a red-lacquer cabinet with a ring of bulbs, a lever and a reel of names, three rows tall, the payline in the middle. The duck race puts one duck per name on a pond, with a board above it calling the lead changes. Whichever runs, the winner comes up as a prize ticket: the room goes dark, a lamp under the canopy throws a spotlight, and the ticket you pressed rises into it with the name, its number on the stub and a First-prize stamp.
Decided before it moves
The winner is drawn first, uniformly, from the browser's crypto random source, and each machine only stages its way to a result that is already fixed. The staging is a set of plain functions without a page around them, and the tests check what the show promises: the wheel always comes to rest in the winner's slice, a near miss always shows the neighbour, the reel's strip starts on the name on show and ends on the winner, the winning duck always crosses first and no duck ever paddles backwards. Every duck swims in strokes towards a finishing point planned around the winner; its strokes grow towards the end and the runner-up's fade, so the lead changes by itself.
Drama, and how each machine runs
Drama decides the tricks. Chill has none; Normal adds the wheel's drumroll and the race's 3-2-1 countdown; Max lets the wheel stop against the neighbour's nail, creak and creep over, stops the reel one name short before it clicks on, has the race won by a beak and adds a clown horn to the Tusch. How long and how wild each machine runs is set in Settings: the wheel's length from 2 to 20 seconds, its speed and its direction (a flick by hand still goes the way it was flicked), the jackpot's length from 1 to 10 seconds and how fast the names roll past, and the race's length from 4 to 30 seconds and how much the ducks overtake. In 200 seeded races of six, "rarely" gives about one lead change, early on, and "constantly" four to five, two of them in the last stretch. The lengths are set on a slider whose knob follows the pointer and glides onto the nearest step.
The names
The names live in a drawer behind the count in the bar. They can be typed or pasted as a list, separated by commas, semicolons or line breaks, up to 30 of them and 24 characters each. A tap leaves a name out for today, and × removes it. Every name keeps one of eight fairground paints, each ink with at least 4.5:1 contrast on its ground, and keeps it when others come and go. With Everyone once on, the winners sit out until everyone has had a turn, then all come back in. The last twelve draws are listed with their time, so the next meeting can see who had it.
Made for the shared screen
Randomiser is made for a laptop in the meeting, shared in the call: the machine as big as the window allows in the middle, the three machines as painted signs down the left, Drama down the right with the current machine's length under it, and the ticket at the bottom. The page is exactly the window's height and the machine takes whatever the bar and the ticket leave, so nothing scrolls, from an ultra-wide screen to a small phone. Space draws, 1, 2 and 3 pick the machine, Escape closes the prize ticket. On a phone the signs fold into two rows under the bar and the drawer becomes a sheet.
The fair
The look is a German Kirmes: tent stripes, a scalloped canopy with a string of coloured bulbs, cream paper and navy ink, Rye for the signs, Alfa Slab One for the names and Bitter for the text, all self-hosted, and it stays light whatever the device prefers. The wheel is one canvas: its face is drawn once per list of names, and a frame only turns it and draws the bulbs and the pointer. The jackpot's reel is the family's shared slot reel, the same one Aale Spiele's draw runs on, and only its transform moves. The sounds are made with Web Audio on the spot, with no sound files: the ticks, the lever's ratchet, the drumroll, the Tusch, the clown horn, the quacks and the coins. They stay off until they're switched on in Settings. The app's icon is the wheel with its pointer and brass pin, and when the installed app opens, the wheel turns a little and the pin pops.
On one device
There's no account and nothing on a server: the names, the settings and the last draws stay in the browser. A small Node server without dependencies serves the files with security headers and forwards visit counts to the family's own counter, without cookies. The page installs to a home screen and works offline, in German and English.
Drei Arten, einen Namen zu ziehen
Randomiser zieht fürs Nachmittags-Meeting einen Namen, auf der Kirmes. Die Namen der Runde werden einmal eingetragen; dann wählt man eine Maschine und drückt unten auf das Los. Das Glücksrad ist ein bemaltes Holzrad mit 22 Lämpchen am Rand, Messingnägeln zwischen den Feldern und einer Lederzunge, die von den Nägeln zur Seite gedrückt wird und mit einem Klicken zurückschnappt; man kann es auch ziehen, anschubsen oder antippen. Der Jackpot ist ein rot lackierter Kasten mit einem Kranz aus Lämpchen, einem Hebel und einer Walze voller Namen, drei Zeilen hoch, die Gewinnlinie in der Mitte. Beim Entenrennen schwimmt für jeden Namen eine Ente über den Teich, und eine Tafel darüber kommentiert jeden Führungswechsel. Welche Maschine auch läuft, der Gewinner kommt als Gewinnlos: Der Raum wird dunkel, eine Lampe unter dem Vordach wirft einen Lichtkegel, und das gedrückte Los steigt hinein, mit dem Namen, seiner Nummer auf dem Abriss und einem Stempel „Hauptgewinn“.
Entschieden, bevor sich etwas bewegt
Der Gewinner wird zuerst gezogen, gleich verteilt, aus der kryptografischen Zufallsquelle des Browsers, und jede Maschine spielt sich nur noch zu einem Ergebnis hin, das schon feststeht. Diese Inszenierung besteht aus einfachen Funktionen ohne Seite drumherum, und die Tests prüfen, was die Show verspricht: Das Rad bleibt immer im Feld des Gewinners stehen, ein Beinahe-Treffer zeigt immer den Nachbarn, der Streifen der Walze beginnt beim Namen, der gerade zu sehen ist, und endet beim Gewinner, die Gewinnerente kommt immer zuerst ins Ziel, und keine Ente paddelt je rückwärts. Jede Ente schwimmt in Zügen auf einen Zielpunkt zu, der um den Gewinner herum geplant ist; ihre Züge werden zum Ende hin stärker und die des Zweiten schwächer, so wechselt die Führung von selbst.
Drama, und wie jede Maschine läuft
Drama entscheidet über die Tricks. Gemütlich hat keine; Normal bringt den Trommelwirbel des Rads und den Countdown 3-2-1 vor dem Rennen; bei Maximal bleibt das Rad am Nagel des Nachbarn hängen, knarzt und kriecht hinüber, die Walze hält einen Namen zu früh, bevor sie weiterklickt, das Rennen wird um Schnabelbreite gewonnen, und zum Tusch kommt eine Clownshupe. Wie lange und wie wild jede Maschine läuft, steht in den Einstellungen: beim Rad die Dauer von 2 bis 20 Sekunden, das Tempo und die Richtung (von Hand angeschubst dreht es weiter, wohin man schubst), beim Jackpot die Dauer von 1 bis 10 Sekunden und wie schnell die Namen vorbeirollen, beim Rennen die Dauer von 4 bis 30 Sekunden und wie oft die Enten überholen. In 200 Rennen mit sechs Enten und festem Zufall gibt „selten“ etwa einen Führungswechsel, früh im Rennen, und „ständig“ vier bis fünf, zwei davon auf den letzten Metern. Die Dauer stellt man an einem Schieberegler ein, dessen Knopf dem Zeiger folgt und auf die nächste Stufe gleitet.
Die Namen
Die Namen liegen in einer Schublade hinter der Zahl in der Leiste. Man tippt sie ein oder fügt eine Liste ein, getrennt durch Kommas, Semikolons oder Zeilenumbrüche, bis zu 30 Namen mit je 24 Zeichen. Ein Tippen lässt einen Namen heute aussetzen, × entfernt ihn. Jeder Name bekommt eine von acht Kirmesfarben, jede Schrift mit mindestens 4,5:1 Kontrast auf ihrem Grund, und behält sie, wenn andere dazukommen oder gehen. Mit „Jeder einmal“ setzen die Gewinner aus, bis alle dran waren; dann sind alle wieder im Topf. Die letzten zwölf Ziehungen stehen mit Uhrzeit in der Liste, damit das nächste Meeting sieht, wer es hatte.
Für den geteilten Bildschirm gemacht
Randomiser ist für einen Laptop im Meeting gemacht, der im Call geteilt wird: die Maschine in der Mitte, so groß, wie das Fenster es zulässt, links die drei Maschinen als bemalte Schilder, rechts Drama und darunter die Dauer der aktuellen Maschine, unten das Los. Die Seite ist genau so hoch wie das Fenster, und die Maschine nimmt sich, was Leiste und Los übrig lassen; so scrollt nichts, vom Ultrawide-Bildschirm bis zum kleinen Handy. Die Leertaste zieht, 1, 2 und 3 wählen die Maschine, Escape schließt das Gewinnlos. Auf dem Handy rücken die Schilder in zwei Reihen unter die Leiste, und die Schublade wird zum Sheet.
Die Kirmes
Der Look ist eine Kirmes: Zeltstreifen, ein gewelltes Vordach mit einer Kette bunter Lämpchen, cremefarbenes Papier und marineblaue Schrift, Rye für die Schilder, Alfa Slab One für die Namen und Bitter für den Text, alle selbst gehostet, und er bleibt hell, was auch immer das Gerät bevorzugt. Das Rad ist ein einziges Canvas: Seine Fläche wird einmal pro Namensliste gezeichnet, und ein Frame dreht sie nur und zeichnet Lämpchen und Zunge. Die Walze des Jackpots ist die gemeinsame Walze der Familie, dieselbe, mit der Aale Spiele zieht, und nur ihre Transformation bewegt sich. Die Klänge entstehen mit Web Audio im Moment, ohne Tondateien: das Ticken, die Ratsche des Hebels, der Trommelwirbel, der Tusch, die Clownshupe, das Quaken und die Münzen. Sie bleiben aus, bis man sie in den Einstellungen einschaltet. Das App-Symbol ist das Rad mit Zunge und Messingstift, und wenn die installierte App öffnet, dreht sich das Rad ein Stück und der Stift springt hervor.
Auf einem Gerät
Es gibt kein Konto und nichts auf einem Server: Namen, Einstellungen und die letzten Ziehungen bleiben im Browser. Ein kleiner Node-Server ohne Abhängigkeiten liefert die Dateien mit Sicherheits-Headern aus und leitet Besuchszählungen ohne Cookies an den eigenen Zähler der Familie weiter. Die Seite lässt sich auf den Home-Bildschirm legen und läuft offline, auf Deutsch und Englisch.