A falling dominoes game simulates a real chain reaction on a fixed 5×5 grid, where each upright tile you place either extends the cascade or stops it short of the goal. In Domino Chain Reaction, every workbench begins with one fixed START tile, one goal bell, a set of visually identical open slots, and a strict tile budget. You do not launch a moving ball or drag a physics object — you toggle tiles upright, plan an orthogonal route, and press Push the start to commit. The engine then walks the connected component from START in a deterministic breadth-first order, numbering every tile it reaches on the board. If the cascade touches the goal, you earn 200 points. If it stops in a gap or on a stray branch, the run continues only until a second genuinely different failed layout closes the game. That combination of deliberate placement, visible propagation, and exact scoring is what separates this falling dominoes game from decorative physics toys.
For background on the original physical domino toppling art that inspired the cascade metaphor, the overview of the domino effect on Wikipedia is a useful starting point.

Play a Falling Dominoes Round in Three Phases
- Inspect the board. Locate the START tile, the goal bell, every open slot, and the tile budget displayed alongside the grid. Open slots look identical before you push, so do not look for color hints, labels, or accessibility text that might reveal the route.
- Plan a route from both ends. Identify which open slots share an edge with START, which share an edge with the goal, and how many placements are needed to bridge the remaining Manhattan gaps. Counting before you commit prevents wasted placements.
- Toggle upright dominoes into open slots. Tap or click any open slot to place a tile; tap it again to remove it. The tile budget applies only to your placed count, and the START and goal tiles never consume it.
- Trace the proposed sequence cell by cell. Every handoff must share a top, right, bottom, or left edge. Diagonal contact never carries the reaction, and a single empty gap stops that branch.
- Press Push the start. The engine runs a deterministic breadth-first traversal from START using a stable neighbor order of up, right, down, left. Each reached tile is rotated into a fallen state and numbered on the board.
- Read the result. A successful test stops when the goal is reached; a failed test stops when no newly connected upright tile remains. The numbered sequence shows exactly how far the cascade traveled.
Orthogonal Edges Only: Why Diagonals Never Fall
The single most important rule in this falling dominoes game is that the reaction only moves along shared edges. A falling tile can trigger only the tile directly above, right, below, or left of it. Corner contact is invisible to the propagation engine. This rule matters for two practical reasons. First, it lets you design deliberate branches: if you want a switchback, you must lay down the corner tile that performs the orthogonal turn yourself, because there is no special L-shaped piece that bends for you. Second, it makes stray branches observable. If a piece sits one cell diagonally from a placed tile, the cascade will never reach it, no matter how close it looks. The numbered fall order after a push will simply stop on the tile before that gap, and a future one-tile near miss is a deliberate fixture used in the engine's own tests to confirm propagation halts correctly.
| Placement configuration | Does the reaction carry? |
|---|---|
| Placed tile shares a top, right, bottom, or left edge with a fallen tile | Yes — counted as a connected tile |
| Placed tile only touches a fallen tile at a corner (diagonal neighbor) | No — corners do not propagate |
| Placed tile is two cells away with an empty slot between | No — the empty gap stops that branch |
| Placed tile sits on a connected route to the goal | Yes — numbered in fall order |
| Placed tile sits on a branch with no route to the goal | Yes initially — but it cannot reach the goal and burns a placement |
Reading the Numbered Fall Order
When you press Push the start, the engine walks the connected component and writes a number on every tile it reaches. The first tile marked is START itself. The next tile marked is whichever connected neighbor appears first in the deterministic order — up, then right, then down, then left. The numbering continues until the goal is reached or the cascade stops. That sequence is your post-push report card: if the goal is the highest number on the board, the level is solved; if the highest number sits somewhere short of the bell, you can read the chain backward to find the first gap, branch, or stray tile that ended the cascade. Because the order is stable, the same placement always produces the same numbering, so there is no animation timing to second-guess.
The Fall recorder also lists the same sequence as compact position labels, which lets you compare runs without staring at the board. Two distinct stopped layouts end the run, so it pays to keep the recorder open while you edit placements and watch the cascade shorten or extend in response to each change.
Scoring, Misses, and the 1,000-Point Route
Each workbench awards exactly 200 points when the cascade reaches the goal. Solve all five workbenches and the score freezes at exactly 1,000, computed as 200 × 5 = 1,000. There is no partial credit for a cascade that travels far but does not reach the bell, and the engine treats a fifth-level success as the unique route to the final score.
A push that stops short does not subtract points, but it does count toward the run's miss budget. Each level permits two genuinely different failed layouts before the run ends. If you push the same placement twice in a row, the engine deduplicates the signature, so an accidental double press does not waste a miss. Change at least one tile and try again, and the new stopped layout counts as miss one. A second genuinely different failure closes the run. The only way to clear the failure history is to push a layout that actually reaches the goal; the next workbench then opens with a clean slate.
Restart always performs an exact reset to level one with zero score, no placed tiles, no fallen sequence, no recorded layouts, and no terminal state, which makes Restart a safe undo for an entire run rather than just a single board. Closed spaces, fixed endpoints, out-of-range cells, budget overflow, solved levels, and terminal runs are atomic no-ops that never partially alter score, placement state, or the observed sequence.
Keyboard, Touch, and the 390-Pixel Viewport
Tile targets stay at least 44 pixels high, so the full 5×5 board fits comfortably inside a 390-pixel mobile viewport. On touchscreens and with a mouse, tap any open slot to place or remove a domino. Keyboard play is scoped to the board: focus a grid cell, move the visible cursor with the arrow keys, press Space to toggle an available slot, and press Enter to push. When focus is on Restart, Push, or Next workbench, native button behavior stays intact instead of being intercepted by game shortcuts.
The game runs entirely in your browser, and placement choices, pushes, fall sequences, scores, and mistakes are not uploaded for processing. No account, subscription, server request, or new download is required, which makes the puzzle a compact route-planning break, an introduction to graph traversal, or a visual reasoning exercise where the consequence of every placement becomes visible only when the chain begins.