A Las Vegas slot machine in one HTML page — five reels, one button, sixteen symbols of 1950s science fiction — written around art that does not exist yet and shipped with the math sheet a real studio hands a regulator. The art is the model's prompts, drawn afterwards onto a fixed 4x4 contact sheet, so every machine in the round is the same shape and the sixteen objects are the model's own taste with nowhere to hide. And the payback is checkable: the declared reel strips get two hundred thousand spins, and the number that comes out sits next to the number the model claimed.
Rounds stay open: later videos added their new models to this one.
Build a self-contained HTML slot machine inspired by 1950s science fiction: optimistic, mechanical, and rooted in chrome, Bakelite, tubes, radar, hand-painted airbrush art, ruler-and-compass lettering, halftone printing, atomic orange, amber, and deep-space blue—not modern retro or synthwave.
You are designing the game, math, art direction, and implementation.
The machine has exactly one play control and may have one mute control. Do not add bet, line, autoplay, settings, or other game controls. Still make the paytable, feature, and results understandable. Handle zero credits and rapid double presses.
Use Web Audio only: synthesize spin, stop, coin or credit, win, near-miss, and feature sounds after the player gesture. Larger wins must sound more significant. Do not use audio files or data: audio.
Provide prompts for art/symbols.png: a 2048×2048, 4×4 contact sheet with cells 0–15, read left-to-right and top-to-bottom. Each cell is 512×512, contains one centered symbol at the same scale, and has a flat black background. The literal path art/symbols.png appears exactly once in the HTML.
Integrate the sheet's black background into the cabinet. Use CSS, canvas, or another local technique to display the cells. If the image is unavailable, the reels need readable fallbacks. You may request up to three optional cabinet images at ; the cabinet must still look complete without them.
Sorted by cost. Open a row to load its answer.
art/<id>.pngState your strips, paylines, paytable, base RTP, hit frequency, feature RTP, and volatility. The base game targets 94% RTP (acceptable 92.5–95.5%) and a 20–35% hit frequency. These must arise from the declared math.
The checker simulates 200,000 fixed-seed spins. It chooses one uniform stop on each reel, shows that stop plus the next two cells with wraparound, and evaluates the displayed grid. Total bet is lines × betPerLine. Per line, use the highest-paying consecutive left-to-right match, allowing wilds except for scatters; a line win is pays[count] × betPerLine. Scatter wins count across all 15 visible positions, ignore paylines, and multiply the total bet. Feature value is excluded from the base-game RTP.
Support both URL modes:
#demo: the next spin is a genuine win of at least 20× total bet, shown and scored through normal game logic.#audit=50000: no animation; run 50,000 normal-logic spins and display spins, wagered, won, RTP, hit frequency, largest win, and spins with 3+ scatters.art/ files.Respond with exactly four sections.
One line: the machine name and what it feels like to stand in front of it.
One fenced html block containing the complete page.
One fenced json block with this structure:
{
"machine": { "name": "ATOMIC BANDIT", "credits": 500, "betPerLine": 1, "lines": 20 },
"sheet": {
"style": "One paragraph appended to every cell prompt.",
"cells": [
{ "cell": 0, "id": "saucer", "name": "Saucer", "role": "wild", "prompt": "One object.", "pays": { "3": 25, "4": 100, "5": 500 } },
{ "cell": 1, "id": "beacon", "name": "Beacon", "role": "scatter", "prompt": "One object.", "pays": { "3": 2, "4": 10, "5": 50 } },
{ "cell": 2, "id": "helmet", "name": "Bubble helmet", "role": "pay", "prompt": "One object.", "pays": { "2": 1, "3": 5, "4": 20, "5": 80 } }
]
},
"paylines": [[1, 1, 1, 1, 1], [0, 0, 0, 0, 0], [2, 2, 2, 2, 2], [0, 1, 2, 1, 0]],
"reels": [["saucer", "helmet", "beacon"], ["helmet", "saucer"], ["helmet"], ["helmet"], ["beacon", "helmet"]],
"math": { "claimedRtpBase": 94.1, "claimedHitFrequency": 27.4, "claimedFeatureRtp": 2.0, "volatility": "medium" },
"cabinet": [{ "id": "backdrop", "aspect": "9:16", "prompt": "..." }]
}
cells has 16 unique cells numbered 0–15; ids are lowercase single tokens; roles are one wild, one scatter, and 14 pay symbols; pays may include "2" and must include "3" for every symbol; paylines are unique; there are five 20–60-cell reels; and cabinet has at most three entries. aspect is 16:9, 9:16, 1:1, 3:2, 2:3, 4:3, or 3:4. The JSON contains no comments or prose.
State base RTP, hit frequency, how you calculated them, celebration tiers by total-bet multiple, zero-credit behavior, and the missing-art fallback.
Name and explain the one mechanism meant to make a player press Play again. The feature should express the machine's personality. Do not call the mechanism “engagement.”
The HTML and math sheet must describe the same machine.