Chain reactions as graphs: the maths behind a Carillon tap
A Carillon field is a directed graph, a chain is a shortest-path search, and the goal is a count of source components, right up until the rules start to bend it.

On the screen, Carillon is rings spreading across a night sky. Underneath, every field is a small graph, and a handful of facts about graphs are what let the game promise that every goal is the true fewest and every hint is right. Here they are, with as little notation as I could manage.
Dots and arrows
Treat every dot as a point, and draw an arrow from dot to dot whenever ‘s ring reaches . In the game’s terms, with the distance between their centres, the radius of and the reach of , that is when
The picture you get is a directed graph: points joined by one-way arrows. A big dot can have an arrow to a small dot with no arrow coming back, because the small dot’s reach is short.
When you hold a dot in the game, the outline shows exactly its arrows.

A chain is a shortest-path search
A ring grows at units a second, and a live dot pops the moment the front reaches its edge. So if dot pops at time , a dot that its ring reaches pops at
unless some other ring got there sooner. The game runs this with an event queue: take the earliest pending pop, skip it if that dot has already gone, otherwise pop it and queue every live dot its ring reaches. That is Dijkstra’s shortest-path algorithm, the one behind route finding, with travel time as distance. Every travel time is positive, so the first time a dot comes out of the queue is its true earliest pop.
Take a tiny example: a big dot with two normal dots in a line, 130 and 250 units away. The near dot pops at 0.217 seconds, after the ring travels 104 units to its edge. The far dot is inside the big dot’s reach too, and that ring would arrive at 0.467 seconds, but the near dot’s own ring gets there first, at 0.413 seconds.
A dot reached by two rings pops once, from whichever arrives first, and exact ties go in a fixed order, which is why a chain always looks and sounds the same.
What a tap pops has nothing to do with time
The timing is for your eyes and ears. For the puzzle, what matters is that a popped dot always sends out its full ring, so a tap pops exactly the dots you can reach from it by following arrows, its closure, whatever order the rings arrive in.
Later taps stay simple. After any number of taps, everything a popped dot reaches has popped too, so a tap’s chain on what is left is just its chain on the full field, minus what has gone:
Store each chain as a 64-bit mask, one bit per dot, and that is a single AND.
Why the goal is the number of sources
Group the dots into strongly connected components: sets where every dot can reach every other through chains. Two dots that reach each other form one, and a lone dot is one on its own. Call a component a source if no arrow comes into it from outside.
Two facts follow.
- Every source needs a tap of its own, because nothing outside a source can pop it, and popping other dots only takes arrows away, so it stays a source until you tap it.
- One tap in each source is enough, because if you follow any dot’s arrows backwards you must end in a source, so every dot is downstream of one, and tapping each source once pops the whole field.
So on a plain field, the goal is exactly the number of sources, and the winning first taps are the dots inside them. A tap anywhere else removes no source, which is why one wasted tap never ruins a plain field.

Where the theorem stops
From chapter 5, dots carry rules, and some of them break the argument above. A heavy bell struck by one ring is still standing, a duet partner that rings alone comes back, and a damped dot ignores every ring until the pedal’s chain has ended. After taps like these, the popped dots are no longer closed under arrows, and the goal is no longer a count of sources.
Some rules survive. Echo stones, tuning forks, horns, glass and strings only add or remove arrows, so the theorem still holds on the new graph. The rest leave something behind for a later tap, and for those the solver searches through the field’s states. Every rule was picked so that a state needs very little: which dots are alive, which heavy bells are cracked, which slow dots and shell cores are waiting, and how many taps have been made, all packed into one integer.
Within a single tap, the dots that ring are still the least set closed under the rules, since each rule only ever adds dots as more dots ring. So the order the rings arrive in cannot change the result, and a tap is still a few dozen mask operations. The exception is the chord bell, which needs two rings to arrive within a beat of each other, so a tap that reaches one runs the real event queue.
Trust, but check
The solver does not lean on the theorem. Its search is plain: try each tap, skip taps that leave the same field as one already tried, recurse on what is left, and remember every position it has solved. On 150 random fields the search and the theorem agree every time: the fewest taps equal the number of sources, and the winning first taps are exactly the source dots.
The rules get the same treatment. The game runs real rings in an event queue and the solver runs mask closures, with no code shared between them, and on 200 random fields with random marks the solver must leave exactly the dots the queue left after every tap.
Difficulty as a formula
The same graph gives Carillon its difficulty measure. Picture a player who never reads the field and taps dot with weight , where is how many live dots its preview lights. With the total weight of every dot they could tap, their chance of clearing a field in its goal follows the winning taps through the field’s states:
and the difficulty is bits. For a one-tap plain field it comes out as
where is the number of dots, the number of arrows, the number of winning dots and the arrows out of them. More dots and more arrows push it up, and more winning dots pull it down. Each extra tap of the goal multiplies in another factor, so it adds bits of its own. How Carillon builds a level shows how this number puts the levels in order.
What it means when you play
You don’t need any of this to enjoy Carillon, but it explains the advice in reading a field: look for the dot nothing reaches, and don’t trust the one that lights up the most. It is also why the hint is right even after a mistake on a plain field, since a wasted tap never removes a source. And it is why the later chapters feel different: once a rule makes the order matter, holding every dot is no longer the whole answer, and you have to plan.
