Shadow Match

Runs entirely on your device โ€” works with the network off, no ads, no account, no tracking.

  • Works offline
  • Keyboard playable
  • Screen-reader playable
  • No ads, no account
  • No betting, no money, no prizes
  • 2โ€“4 minAll ages

How do you work out a 3D shape from its front, side and top views?

With one rule, and it is short enough to hold in your head: a square is the smaller of its column's front bar and its row's side bar โ€” unless the top view leaves it blank, in which case it is 0. The reason is a pair of one-line arguments. A stack cannot be taller than its column's front bar, or it would poke out of the front silhouette; it cannot be taller than its row's side bar either, for the same reason from the other direction. So the smaller of the two is a ceiling on every square. And building every square right up to that ceiling always reproduces all three views, so it is always a valid answer. Put those together and, whenever the drawing has only one answer, that answer is the one you get by taking nine minimums. In this game that is not a rule of thumb: every board is checked for a second answer before it is dealt, and boards with one are thrown away, so the minimum rule always lands on the right shape. The order that saves moves is to do the tallest bars first โ€” a bar of 3 has to be reached by some square in that column, and usually only one square is allowed to reach it.

Moves 0 / 12Views 0 / 3Left 12

0 of 3 views match. 12 moves left. Cursor on column 1, row 1, 0 high. Its front bar is 1, its side bar is 3, and the top view wants blocks here.

Front view

Front view, one bar per column: column 1 wants 1 high and yours is 0 high; column 2 wants 2 high and yours is 0 high; column 3 wants 3 high and yours is 0 high. This view does not match yet.

Side view

Side view, one bar per row: row 1 wants 3 high and yours is 0 high; row 2 wants 1 high and yours is 0 high; row 3 wants 1 high and yours is 0 high. This view does not match yet.

Top view

Top view, the footprint: column 1 row 1 carries blocks; column 2 row 1 carries blocks; column 3 row 1 carries blocks; column 1 row 2 is empty; column 2 row 2 carries blocks; column 3 row 2 carries blocks; column 1 row 3 carries blocks; column 2 row 3 is empty; column 3 row 3 is empty. This view does not match yet.

3 of the 3 views are still wrong. A square can never stand taller than the smaller of its column's front bar and its row's side bar โ€” and when only one solid fits, it is never shorter either.

โ† โ†’ โ†‘ โ†“ move around the grid ยท Enter raises the square by one and wraps 3 back to 0 ยท Shift or F lowers it. Every press costs one move, either way. Click the board first, or press Tab to focus it.

What this builds

SKILL โ€” read a solid out of three flat views โ€” each square is the smaller of its column's front bar and its row's side bar

Rebuild a solid from the three shadows it casts

A small stack of blocks sits on a three-by-three plan, and you never get to see it. What you get are its three shadows: the front view, one bar per column; the side view, one bar per row; and the top view, a flat footprint showing only which squares carry anything at all. Your job is to put the blocks back โ€” give every square a height from 0 to 3 until all three shadows agree with the ones you were handed.

Those three drawings are the oldest notation in engineering. Every machined part, every bracket and every flat-pack instruction sheet in your house is described the same way: a front elevation, a side elevation and a plan. This is that convention, shrunk to nine squares and given a move budget, so the skill it wants is the one drawings actually need โ€” reading a solid out of three flat pictures instead of guessing at it. Every board is checked before it is dealt: exactly one arrangement of blocks casts those three shadows, so a shape that fits all three is never a lucky coincidence, it is the answer.

It runs entirely on your device: 0 network requests, works offline. No ads, no account, nothing to buy, and no betting, money or prizes of any kind.

How to play

  1. Focus the board โ€” click it, or press Tab until it is outlined.
  2. Read the three panels. A solid pip is a block you can see from that direction; a dashed outline is empty space. The front panel has one bar per column of the plan, the side panel one bar per row, and the top panel is the footprint, with no height information in it at all.
  3. Move with the arrow keys or W A S D. The square under the cursor is outlined.
  4. Raise it with Enter or Space. Heights run 0, 1, 2, 3 and then wrap straight back to 0.
  5. Lower it with Shift or F, or with the Lower one button. From 0 this wraps up to 3 โ€” which is the cheapest way to build a full-height stack, one press instead of three.
  6. Or just tap. Clicking a square raises it by one, exactly as Enter does, and moves the cursor there. Every press costs one move, up or down, so the budget in the status row is the real constraint.
  7. Watch the ticks and crosses. Each front bar and each side bar carries its own โœ“ or โœ—, so you can see which column or row is still wrong without counting pips. A square that disagrees with the top view about whether anything stands there gets a โœ— in its corner.
  8. Finish when all three views read โœ“. There is nothing else to confirm โ€” the moment the shadows match, the round is won, because no other arrangement produces them.

FAQ

How do you work out a 3D shape from its front, side and top views?

With one rule, and it is short enough to hold in your head: a square is the smaller of its column's front bar and its row's side bar โ€” unless the top view leaves it blank, in which case it is 0. The reason is a pair of one-line arguments. A stack cannot be taller than its column's front bar, or it would poke out of the front silhouette; it cannot be taller than its row's side bar either, for the same reason from the other direction. So the smaller of the two is a ceiling on every square. And building every square right up to that ceiling always reproduces all three views, so it is always a valid answer. Put those together and, whenever the drawing has only one answer, that answer is the one you get by taking nine minimums. In this game that is not a rule of thumb: every board is checked for a second answer before it is dealt, and boards with one are thrown away, so the minimum rule always lands on the right shape. The order that saves moves is to do the tallest bars first โ€” a bar of 3 has to be reached by some square in that column, and usually only one square is allowed to reach it.

Why is the top view needed if the other two give me every height?

Because the two elevations cannot tell an empty square from a hidden one. Front and side bars are maxima: a tall stack in front of a short one hides it completely, and a square with nothing on it looks exactly like a square standing behind something taller. On a typical board here, dropping the top view leaves somewhere between fifty and several hundred different solids casting the same two elevations. The footprint is what collapses that to one. The result card tells you how much each view was carrying: it reports the fewest arrangements that would still fit if any single view were taken away, so a board where that number is 2 or more is a board where nothing on screen was spare.

Why does raising past 3 go back to 0?

Because one button that cycles is fewer things to learn than two buttons that clamp, and because the wrap is worth knowing. Heights live on a four-value ring โ€” 0, 1, 2, 3, back to 0 โ€” so 3 is one step below 0 as well as three steps above it. Lowering an empty square once gets you a full-height stack for a single move. The budget is set from the shortest possible route with that shortcut included, so a player who never notices it will feel the budget as tight and a player who does will finish with moves to spare. It is the same arithmetic that makes a clock face useful: going back two hours is cheaper than going forward ten.

What happens when I run out of moves?

The round ends and counts as a loss, and the grid then shows the one solid that casts those three shadows โ€” so you can compare it against what you built and see where the reasoning went. The budget is always the shortest possible number of presses plus five, so it is never impossible; it is only tight enough that changing your mind repeatedly costs you the round. Lowering a square costs a move just as raising it does, which is deliberate: the point is to work the answer out first and then build it, not to nudge squares until the ticks appear.

Is there any money, betting or in-app purchase in this?

None, and there never will be. There is no currency, nothing to buy, no lives to refill and nothing to win or lose but the puzzle. Your score is derived from the finished board, and it stays on your device.

Does it work offline, and can I play it with a keyboard or a screen reader?

Yes to all three. After the page has loaded once, the board, the rules, the generator and the checker all live on your device, and nothing is sent anywhere while you play โ€” it is the same code with the network on or off. Everything is reachable from the keyboard: arrows or W A S D move, Enter raises, Shift or F lowers. Nothing depends on telling colours apart either. Each of the three panels is announced in words, bar by bar, with what it wants and what your build currently gives it; every square announces its height as a number; and each verdict is a โœ“ or a โœ— rather than a hue.

Limits

Nine squares, heights 0 to 3, one board at a time, no timer and no undo. Every board is verified to have exactly one answer, which is a stronger promise than most three-view exercises make โ€” but it also means the maximum-height rule always works, so once you have the rule the difficulty is in execution and in the move budget rather than in the deduction. The "gentle", "steady" and "tight" rating on the result card is the fewest arrangements that would fit with any one view removed, counted up to four hundred; a gentle board is one where a view turned out to be spare. Blocks float: a square of height 2 is a column two blocks tall, and there is no gravity or support rule to worry about, because a silhouette cannot see one.

Related

Mirror Fold is the same family of reasoning in two dimensions โ€” a shape and its reflection, where the axis column mirrors itself. Block Fit asks the opposite question about the same kind of grid: not how tall each square is, but which piece covers it. Grid Paint and Tilt Maze are the other spatial games where the shape of the board, rather than its size, is what makes it hard.

Bookmark this page (Ctrl+D, or โŒ˜D on Mac) or install the app โ€” it works offline the next time you need it.

Have a question or feedback about this game?

Private: this note isn't tracked, and nothing you did in this game is sent โ€” only what you type here.