Timing a signal tree so every lamp lights at once
A signal leaves a source and splits down a tree of towers. Each tower holds the signal for its own delay before passing it on. Set the dials so all the lamps at the bottom of the tree light at the same instant.

The rules of the puzzle
A tree of towers grows downward from a single source at the top. The signal starts at the source and travels through the tree, splitting at forks. Each tower adds its own delay to the signal passing through it. A lamp at the bottom of a branch lights after a time equal to the sum of every delay along the path from the source to that lamp.
Each lamp shows its arrival time, which is the total of all the delays above it. The scoreboard displays the spread, which is the difference between the latest lamp and the earliest lamp. Your goal is to reduce the spread to zero so that every lamp lights at the same moment.
You do this by turning the dials on the towers. Each dial controls that tower's delay. Tapping a dial raises the delay by one. Past the maximum of five, it wraps back to one.
Controls and interactions
Each tower has a clickable dial showing its current delay. Tap the dial to increase the delay by one. When the delay reaches five, the next tap wraps it back to one. Each tap costs one turn from your budget.
The tree is laid out in tiers. The source sits at the top, intermediate towers fill the middle rows, and the lamps sit at the bottom. Lines connect each tower to its parent so you can trace the path a signal takes.
A dropdown labelled Network sets the puzzle size. Small produces a shallow tree with three lamps. Medium goes deeper with four lamps. Large builds the deepest tree with five lamps.
Scoring and the turn budget
The stats bar shows the current spread, the number of turns remaining, and the par. The par is the number of dials that were disturbed to create the puzzle, so it represents the minimum number of changes needed to solve it.
The budget is the par plus a slack allowance. You do not need to match the par to win. Any set of dial values that brings the spread to zero counts as a solution, and there is often more than one way to get there.
If you use all your turns without reaching zero spread, the puzzle is lost. Your best turn count is saved on this device.
Why the source dial is useless
The source tower sits at the root of the tree. Every path from the source to every lamp passes through it. That means changing the source dial moves all lamp times up or down by the same amount. The spread stays exactly the same.
This is worth understanding because it reveals a general rule: a tower that sits above all the lamps can never fix a mismatch between them. The only towers that can change the relative timing of two lamps are the ones below the point where their paths diverge.
Spending a turn on the source dial is always a waste. Recognising this pattern and applying it to other shared towers is the key to efficient solving.
Finding the fork that matters
When two lamps disagree, trace their paths back up the tree until the paths meet at a common tower. That tower is their fork. Every tower above the fork is shared, and changing those cannot fix the gap between these two lamps.
The dials that can fix the gap are the ones below the fork, on one path or the other. Raising a delay on one side pushes that lamp later. Lowering a delay, which means wrapping it forward past five to one, pulls a lamp earlier.
Once you find the fork, you know exactly where to look for the fix. This is much faster than adjusting dials at random and watching the spread.
Working from the latest lamp
The lamp with the highest arrival time sets the ceiling. Every other lamp must either be brought up to meet it or it must be brought down. Bringing one lamp down is usually cheaper than pushing several others up.
Look at the latest lamp and trace its path. Find a dial on that path that, if reduced, would lower the arrival time without affecting other lamps. The best candidate is the lamp's own dial, because that dial sits at the very bottom of the tree and affects nothing else.
If the lamp's own dial is already at one and cannot be reduced further by wrapping, move one tier higher and look for a tower that serves only that lamp. Adjusting a tower that serves multiple lamps requires checking all of them.
Using private dials for final adjustments
Each lamp has its own dial at the bottom of the tree. That dial affects only that one lamp. No other lamp's arrival time changes when you tap it.
This makes lamp dials the safest adjustment you can make. After using shared towers to bring the lamps roughly into alignment, use the private dials to make the final corrections. A one-unit nudge on a private dial fixes one lamp without risking any others.
The solving order should flow from the top of the tree down. Settle the shared towers first because they move many lamps at once. Then fine-tune with the private dials at the bottom.
Common mistakes to avoid
The first mistake is adjusting the source dial. It moves every lamp by the same amount and cannot change the spread. Every turn spent on it is wasted.
The second mistake is adjusting a shared tower without checking how many lamps it affects. A tower that sits above three lamps will change all three arrival times. If you only needed to fix one of them, the other two are now wrong.
The third mistake is not counting the path lengths before tapping. The arrival time is the sum of every delay from the source to the lamp. A tower deep in the tree has a short path above it, and its contribution to the total is small. A tower near the source has a long path below it, and changing it has a large effect. Understanding the position of each tower saves turns.
- Never tap the source dial. It cannot change the spread.
- Trace the paths of disagreeing lamps to find the fork tower.
- Adjust private lamp dials last, after settling the shared towers.
- Count the full path sum before deciding which dial to change.
- Check how many lamps a tower serves before tapping its dial.
The three difficulty levels
Small builds a two-tier tree with three lamps and a par of two. The tree is shallow enough to see every path at once, and with only three lamps there are few disagreements to fix. The slack gives room for a couple of extra turns.
Medium uses a three-tier tree with four lamps and a par of three. Deeper trees mean longer paths, and more lamps mean more pairs that can disagree. You need to identify the right forks efficiently to stay within budget.
Large creates a four-tier tree with five lamps and a par of four. The tree is deep enough that shared towers high up affect most of the lamps. Planning which dials to change and in what order becomes critical.
How the puzzles are constructed
Each tree is built by growing tiers so that every lamp sits at the same depth. Delays are then assigned by dividing a fixed budget evenly down each path so that all lamps start in perfect agreement. The generator then disturbs a few dials at random. The number of dials disturbed becomes the par.
Because the puzzle starts from a state where all lamps agree and is broken by a known number of changes, it can always be put right. The budget gives you enough turns to undo the damage plus a small safety margin.
Everything runs in your browser
The tree, the delays, and the scoring all run inside your browser. Nothing is uploaded to a server, no account is needed, and your best score is saved in local storage on this device only. Once the page has loaded, the puzzle works without an internet connection.
