Play Light Up (Akari) Online
Place light bulbs to illuminate every white cell. Numbered walls tell you exactly how many bulbs must be adjacent. No two bulbs may see each other!
Created by Brian Hamilton
Tap a white cell to place a bulb
How to play Light Up
Place bulbs in the white cells so that every white cell is lit.
- A bulb lights its own cell and travels along its row and column until a wall stops it. Light does not turn corners or move diagonally.
- No bulb may light another bulb. Two bulbs can share a row only if a wall sits between them; bulbs touching diagonally are fine.
- A numbered wall has exactly that many bulbs in the four cells directly beside it. Diagonal neighbours do not count.
- Walls without a number can have any number of bulbs beside them.
- Every puzzle has exactly one solution.
Controls: tap a white cell to place a bulb, tap again to mark it as empty, and once more to clear it. Marking the cells you have ruled out is how most of the board gets solved.
Bulbs light along lines, not around corners
Light Up gives you a grid of white cells and black walls. Put bulbs in white cells so that every white cell ends up lit, and no bulb shines on another. A bulb lights its own square and then travels outward along its row and column, stopping at the first wall it meets. It does not spread sideways, and it does not light diagonally.
That single fact settles most of the puzzle. Two bulbs may sit diagonally adjacent quite happily — neither is in the other's line. Two bulbs in the same row are illegal no matter how far apart they are, unless a wall stands between them.
A number counts its four neighbours, and nothing else
A numbered wall says how many bulbs sit orthogonally beside it — above, below, left and right. Diagonal neighbours do not count, and the number says nothing about the rest of the board.
The extremes do the work. A 0 forbids bulbs in all four neighbours at once, and 18% of numbers are zeros — 92% of boards carry at least one. A 4 is rarer at 3%, but it fills all four neighbours with no reasoning at all.
| Number | 0 | 1 | 2 | 3 | 4 |
|---|---|---|---|---|---|
| Share of numbers | 18% | 37% | 31% | 11% | 3% |
Count a number's free neighbours before you read it
Here is the deduction most solvers skip. A number on the edge of the grid has only three neighbours, one in a corner has two, and any wall touching other walls has fewer still. So compare the number with how many free cells it actually has.
If they match, every one of those cells is a bulb. A 2 against the edge with exactly two free neighbours is not a hint, it is an answer. On these boards 20% of numbers are in exactly that position — one number in five is fully determined the moment you count around it, before any other reasoning at all.
The same comparison run the other way is just as useful: a number with more free neighbours than its value tells you nothing yet, so leave it. Work the tight ones first and the loose ones will tighten as the walls around them fill in.
Unlit cells are clues too
The rule that every white cell must be lit is a constraint you can drive, not just a condition to satisfy at the end. Take any cell that is still dark and ask which cells could possibly light it — itself, and the cells along its row and column up to the nearest walls. If only one candidate remains, that candidate is a bulb.
This is what cracks the middle of a board, where numbers are sparse. About 30% of the grid is wall and 22% ends up holding a bulb, so a little under half the cells are lit purely from a distance — and each of those is a corridor you can reason along.
Where solvers get stuck
Treating diagonal bulbs as a conflict. They are fine. Light travels in straight lines only, so two bulbs touching at a corner never see each other.
Forgetting that a wall blocks the beam. Two bulbs may share a row if a wall sits between them, and on a board that is 30% wall this comes up constantly.
Reading a number as a total. It counts only the four cells beside that wall. A 1 does not mean one bulb nearby; it means exactly one of those four, and none of the other three.
Placing bulbs before marking exclusions. Most progress comes from ruling cells out — from a 0, from a satisfied number, from a cell already lit. Marking those first turns the remaining choices into forced ones.
Two things you can check about these puzzles
Every puzzle now has exactly one solution. This was badly untrue before. Uniqueness was only tested on Hard, that test failed most of the time, and generation then fell through to a simpler routine that checked nothing at all. Measured against an exhaustive counter: 7×7 Easy managed 6 boards in 8, but Medium and Hard were 0 in 8 — while the page claimed a unique solution in three separate places.
The cause was that difficulty worked by removing walls. A hard 7×7 ended up with about four walls on a 49-cell grid, and a board that open cannot have one answer however its walls are numbered. Measured with every wall numbered — the most generous case there is — 17 walls gave 9 unique boards in 10, 10 walls gave 3, and 4 walls gave 0. Walls are now fixed at 30% of the grid, and difficulty is how many numbers are taken away instead: every wall starts numbered, and numbers come off one at a time only while exactly one solution survives. 64 boards across all three sizes were then re-checked against a separate counter written from the rules alone; all 64 were unique.
All three sizes still work. 7×7 and 10×10 build in well under a tenth of a second, and a hard 14×14 in about a second, which is why there is a progress bar on the larger boards.
Light Up and its neighbours
Light Up is Nikoli's, and also goes by Akari. It shares the numbered-wall look with Kuromasu and Heyawake, but what its numbers count is different again.
Kuromasu's numbers count cells visible along the lines — a sightline total. Heyawake's count shaded cells inside a room. Light Up's count only the four cells touching the wall, which makes them intensely local; all the long-range reasoning comes from the lighting rule instead, not from the numbers.
More puzzles like this
If you like reasoning along sightlines, try these: