Tiles that think

Mirrors, splitters and colour splitters always do the same thing to light: bend it, multiply it, take it apart. The logic tiles do something else. They look at what arrives, and then emit light of their own.

There are fourteen of them. Seven only compute — they combine two beams into one. Five have a memory: they remember what happened, long after the beam is gone. And two are clocks that blink all by themselves.

A logic tile never passes light through. It takes your beam as a question and answers with a new beam — in the same colour, because the colour it demands is also the colour it emits. What travels on is not your beam but the tile's answer. That is the whole trick — and the reason fourteen tiles are enough to build circuits that have nothing to do with optics any more.

This page assumes the ordinary guide — crystals, mirrors, colour mixing and doors are not explained again here.

← Back to the guide

The five rules

Read these first — nearly every surprise comes out of this list rather than out of any one tile.

  1. One colour, matched exactly Every logic tile has exactly one colour. It is both things at once: the colour you have to hit it with, and the colour it emits. And it has to match exactly — a white beam does not trigger a red tile. You can read the colour off the tinted input markers: those stay lit even when the tile itself is dark. The one exception is the Multiplexer — it only tests its select line for that colour, and relays whatever arrives on its data lines.
  2. A state change costs a tick The tile checks its conditions first, then changes state — and only on the next tick does the new light actually exist. A tick is a thirty-second of a second (31.25 ms). This is the most important timing fact in the game: it is why the Delay delays, and why a pulse is exactly one tick long.
  3. Dark is a real condition Several tiles require a side to be dark — not merely “not matching”. A Flip-Flop cannot be reset while set is still held, and the XOR gate tells “exactly one” from “both” in precisely this way.
  4. The Multiplexer is the exception It is the only tile that relays light instead of emitting its own. That is why passing through it costs no tick — and why the beam keeps its colour. Only switching costs it a tick.
  5. What you see here is the default rotation You cannot rotate tiles in play — but whoever builds a level can place any of them in all four rotations, so you will meet the same tile in any of the four. Every side named on this page is given for the unrotated tile; in a rotated one all the ports travel with it unchanged, and the only thing that differs is which way they face. The house rule for the default rotation: the main run enters at the bottom and leaves at the top, a second input is on the left, a second output on the right. Two tiles break it — both are flagged below.

All fourteen at a glance

The plates look alike — what tells them apart is the mark in the middle.

Overview of every logic tile with its inputs and outputs
Tile In Out In one line
OR Gate left, bottom top Lit while at least one of the two inputs is lit
XOR Gate left, bottom top Lit while exactly one of the two inputs is lit
XNOR Gate left, bottom top Lit while the inputs agree — including when both are dark
Half Adder left, bottom top, right Exactly one → top; both → right. Never both at once
Multiplexer bottom, left, right top Relays one of two beams — which one is decided by the right side
Delay bottom top Repeats its input one tick later
Edge Detector bottom top A pulse of exactly one tick, the moment light arrives
Flip-Flop bottom sets, left resets right Q, top Q′ Remembers a momentary trigger — permanently
D Latch bottom enables, left data right Q, top Q′ Follows the data while enabled — holds it the moment it is not
D Flip-Flop bottom clock, left data right Q, top Q′ Captures the data on every rising clock edge
T Flip-Flop bottom clock right Q, top Q′ Flips on every clock edge — halving the frequency
JK Flip-Flop bottom clock, left J, top K right Q The universal one: set, reset, hold or toggle
Beacon — none — right Blinks by itself, forever, with nothing from you
Gated Beacon bottom switches on right Blinks only while switched on — and pauses rather than starting over

Tiles that compute

No memory — what comes out depends only on what is going in right now.

About the pictures: the input markers are always tinted — they show the colour you have to hit the tile with, not whether light is arriving there. Where light is actually flowing, you can see it as short red beams at the edge of the tile. The Multiplexer further down is the exception: its data sides stay dark until something arrives there, and then take that thing's colour.

OR Gate

Lit while at least one of its two inputs carries its colour. With both dark, the gate is dark too.

Use it to merge two triggers into one line: two different crystals, two different switches — either one, same result. Without it, two sources aiming at one target need physical routing that often simply does not fit on the grid.

The simplest of the fourteen — and the one you will reach for most often.

In left · bottom
Out top

OR gate, dark: grey plate with a shield mark, the input markers on the left and bottom tinted red, the lamp on top grey.
Dark
The same OR gate, lit: on top of the inputs, the lamp at the top now glows red.
Lit

XOR Gate

Lit while exactly one of its two inputs carries its colour. It goes dark when both are lit — and equally when both are dark.

This is the tile that says “these two disagree”. A comparator. Paired with a Delay it even detects change on a single line — you simply compare now against a moment ago.

In left · bottom
Out top

XOR gate, dark: like the OR gate but with a second arc behind the shield mark.
Dark
The same XOR gate, lit: the lamp at the top glows red.
Lit

XNOR Gate

The opposite of the XOR gate: it is lit while the inputs agree. Both lit — it emits. Both dark — it emits as well.

And that is the catch: an untouched XNOR gate on an empty grid is already firing. It is a light source until something disturbs it. Of all fourteen tiles it is the only one that is permanently on by itself.

It gives you a line that is normally on and that the player switches off. Everything else in the game starts dark.

In left · bottom
Out top

XNOR gate at rest: the shield mark carries a small bubble at its nose, and the lamp on top is already glowing red.
At rest — on
The same XNOR gate when its inputs disagree: the lamp on top is grey.
Disagree — off

Half Adder

It adds its two inputs and keeps the two cases cleanly apart: with exactly one lit, the output on top comes on. With both lit, the output on the right comes on instead — the carry.

Never both at once. That is not a simplification; it is the arithmetic.

The XOR gate tells you that there is a difference. The Half Adder tells you which case you are in — and sends each one down its own line.

In left · bottom
Out top (sum) · right (carry)

Half adder, dark: plate with a cross mark, both lamps — top and right — grey.
Neither
Half adder with exactly one input lit: the lamp on top glows red, the one on the right stays grey.
Exactly one
Half adder with both inputs lit: the lamp on the right glows red, the one on top stays grey.
Both

Multiplexer

A set of points. Two beams arrive — one from below, one from the left — and one of them is relayed out of the top. Which one is decided by the right side: dark means bottom, lit means left.

It is the only tile that relays light instead of generating its own. That is why passing through it costs no tick, and why the very beam that went in comes out again — in any colour. Every other logic tile emits only its one colour, whatever hit it.

That is also why it reads differently from every other tile. Only its select side on the right is permanently in the tile's colour — that is the colour you have to switch it with. Both data sides and the output are dark while nothing is flowing there, and otherwise show the colour that is actually arriving.

So a multiplexer tells you what it is doing on its face: which colours are present, and which of them it is letting through right now.

In bottom (A) · left (B) · right (select)
Out top

Multiplexer with its select dark: a blue beam arrives at the bottom and a green one on the left. The select marker on the right is red, the pointer in the middle rests on the bottom input, and the blue beam leaves through the top.
Select dark — blue
The same multiplexer, now switched by a red beam from the right: the pointer rests on the left input, and green leaves through the top instead of blue. Blue and green are both still arriving.
Select red — green

Delay

Repeats exactly what arrives — one tick later. On the way up and on the way down alike.

You need it when two signals have to arrive together but have travelled paths of different length. Or when a pulse has to be held one tick longer than it lasts on its own.

Distance is not what counts — the number of tiles on the way is. Each one costs a tick.

In bottom
Out top

Delay, dark: plate with a double chevron mark pointing upwards.
Dark
The same delay one tick later: the lamp on top glows red.
One tick later

Edge Detector

It reports the moment light arrives — with a pulse of exactly one tick. After that it stays dark, however long the beam is held.

To get another pulse the input has to go out first and then come back. That is the difference between “light is present” and “light has just arrived”.

A laser is permanently on. The clocked tiles need a change. The Edge Detector is the adapter between the two.

In bottom
Out top

Edge detector, dark: plate with a step mark rising from a low bar to a high one.
Held — no pulse
The same edge detector during its pulse: the lamp on top glows red for one tick.
Pulse — 1 tick

Tiles with a memory

What they do depends on what happened before, too.

These five have two outputs: Q on the right and Q′ on top. Q′ is always the opposite of Q — exactly one of the two is lit, once the tile has left its starting state. While it is still untouched, both are dark. The one exception is the JK Flip-Flop, which only has Q.

In the pictures below no light arrives and yet light comes out. That is not a mistake — it is the whole point of these five. They keep emitting long after the beam that triggered them is gone.

Flip-Flop

Turns a brief trigger into a lasting state. A beam from below sets it, a beam from the left resets it — and in between it keeps whatever it was given, long after the light is gone.

Two traps. While it is still fresh, resetting does nothing at all — the tile ignores its reset line until it has been set at least once. And the opposite side must be dark: you cannot reset while set is still held.

A beam that sweeps past once leaves it on forever. That is how a moment becomes a result.

In bottom (set) · left (reset)
Out right (Q) · top (Q′)

Flip-flop in its starting state: plate with two horizontal bars, both lamps grey.
Fresh
The same flip-flop, set: the lamp on the right glows red.
Q on
The same flip-flop, reset: the lamp on top glows red, the one on the right is grey.
Q′ on

D Latch

A window. While the enable at the bottom is lit, the output tracks the data beam on the left continuously. Drop the enable and the tile freezes, keeping whatever was there last.

Every change needs the enable. Take it away and the tile is blind to everything happening on the left.

Capture a state and hold it — at exactly the moment you close the window again.

In bottom (enable) · left (data)
Out right (Q) · top (Q′)

D latch in its starting state: two bars with a wide plateau beneath them, both lamps grey.
Fresh
The same D latch holding a one: the lamp on the right glows red.
Q on
The same D latch holding a zero: the lamp on top glows red.
Q′ on

D Flip-Flop

Same ports as the D Latch, different behaviour: it looks only at the instant the clock at the bottom comes on. Whatever is on the left at that moment is captured and held until the next clock edge.

The difference from the D Latch in one sentence: if the data changes while the enable is held, the D Latch follows it — the D Flip-Flop does not.

Hang everything that must change together off one clock. Then every tile grabs its input at the same instant.

In bottom (clock) · left (data)
Out right (Q) · top (Q′)

D flip-flop in its starting state: two bars with a small wedge beneath them, the clock mark. Both lamps grey.
Fresh
The same D flip-flop after capturing a one: the lamp on the right glows red.
Q on
The same D flip-flop after capturing a zero: the lamp on top glows red.
Q′ on

T Flip-Flop

One input only: the clock, at the bottom. Every time it comes on, the output flips. Two clock edges bring it back where it started — so its output runs at half the clock's frequency.

Two uses. As a frequency divider: chain several off a Beacon and you get half, a quarter, an eighth of the base period — that is how you get long waits out of a fast clock. As a switch: one line that alternates between on and off each time it is triggered.

In bottom (clock)
Out right (Q) · top (Q′)

T flip-flop in its starting state: two bars with a loop beneath them. Both lamps grey, and no input on the left.
Fresh
The same T flip-flop after one clock edge: the lamp on the right glows red.
Q on
The same T flip-flop after the next clock edge: the lamp on top glows red.
Q′ on

JK Flip-Flop

The universal one. It can do everything the others do — what exactly is decided by two control lines at the instant the clock at the bottom comes on: J on the left, K on top.

J alone: set. K alone: reset. Both: flip. Neither: everything stays as it is.

It takes an input on top — the only one of the fourteen that does. In a rotated tile that side travels with it; look for where the triangle sits.

In bottom (clock) · left (J) · top (K)
Out right (Q)

JK flip-flop with Q at zero: two bars with a double clock mark. On top sits a triangle input rather than a lamp; the single lamp on the right is grey.
Q off
The same JK flip-flop with Q at one: the lamp on the right glows red.
Q on

Clocks

Two tiles that make time — one on its own, one on your command.

Beacon

Blinks on and off by itself, from the very first tick, with no input and nothing from you. It emits to the right. How long each half lasts is set by the level — a full cycle is twice that.

Anything that listens for clock edges needs a source like this, and the Beacon is the only one that runs without the player doing anything. It also turns timing itself into the puzzle: obstacles passable only during one half of a cycle.

The editor offers it twice — “starts lit” and “starts dark”. It is the same tile; you are only choosing which phase it begins in. Two beacons of equal length, one of each, run in antiphase.

In — none —
Out right

Beacon in its lit phase: plate with a round pip and three broadcast arcs opening to the right, the lamp on the right glowing red.
Lit half
The same beacon in its dark phase: the lamp on the right is grey, while the colour pip in the middle stays red.
Dark half

Gated Beacon

The same clock, with a switch. It blinks only while its enable side at the bottom carries its colour. Dark or wrong-coloured, and it stands still. It emits to the right, exactly like a plain Beacon, so one drops straight in for the other.

Unlike a plain Beacon it is not a light source at rest: it sits dark in the level until you switch it on.

And it pauses rather than starting over. Drop the enable mid-half and restore it, and you get the remainder of that half — not a fresh one. That makes it the first countdown in the game you can stop and resume.

In bottom (enable)
Out right

Gated beacon while switched off: broadcast arcs and the lamp on the right both grey, with the enable marker at the bottom tinted red.
Off
The same tile switched on, in the dark half of its cycle: the broadcast arcs are red, the lamp on the right still grey.
Running — dark
The same tile in the lit half of its cycle: the lamp on the right glows red.
Running — lit

Building blocks

What to combine when you need something particular.

Combinations of logic tiles by purpose
You want … Use Why
… to turn a steady beam into a clock Edge Detector The clocked tiles need a change; a laser just shines straight through
… to slow a clock down T Flip-Flop Each one halves the frequency — chained, you get ½, ¼, ⅛
… to make a moment permanent Flip-Flop Latches on the first hit and stays latched
… to make something permanent momentary Edge Detector Exactly the inverse of the Flip-Flop
… to merge two lines into one OR · XOR · XNOR · Half Adder Either will do → OR. Exactly one → XOR. Agreement → XNOR. Both cases kept apart → Half Adder
… to split one line onto two paths Multiplexer The select sits under your circuit's control, not chance's
… two signals to arrive together Delay One tick per tile — count tiles, not squares
… a line that is normally on XNOR Gate The only tile that starts on and stays on
… a countdown the player starts Gated Beacon It pauses and resumes instead of beginning again

For the curious

The exact states, and the timing rules circuits fail on. For anyone who wants the whole picture.

The exact states — tiles that compute
Tile State Emits Leaves it when
ORdefaulteither input matches
littopneither input matches
XORdefaultexactly one matches (the other must be dark)
littopboth match or neither matches
XNORdefaulttopexactly one matches
differboth match or neither matches
Half Adderdefaultneither input is lit
onetop (sum)exactly one input is lit
bothright (carry)both inputs are lit
Multiplexerdefaultrelays bottom → topthe select on the right matches
switchedrelays left → topthe select on the right goes dark
Delaydefaultthe input matches
littopthe input goes dark
Edge Detectordefaultthe input matches
pulsetopunconditionally, on the next tick
heldthe input goes dark
The exact states — tiles with a memory
Tile State Emits Leaves it when
Flip-Flopdefaultset is lit and reset is dark
Q onright (Q)reset is lit and set is dark
Q offtop (Q′)set is lit and reset is dark
D Latchdefaultenable + data lit → Q on; enable lit + data dark → Q off
Q onright (Q)enable lit and data dark
Q offtop (Q′)enable lit and data lit
D Flip-Flopdefaulta rising clock edge
Q on (clock high / low)right (Q)next rising edge with data dark
Q off (clock high / low)top (Q′)next rising edge with data lit
T Flip-Flopdefaultthe clock comes on
Q on (clock high / low)right (Q)the next rising edge
Q off (clock high / low)top (Q′)the next rising edge
JK Flip-FlopQ = 0 (clock low / high)a rising edge with J lit
Q = 1 (clock high / low)right (Q)a rising edge with K lit

The clocked tiles have two states per output, differing only in whether the clock is currently high or low. That is also why they look identical on the tile face: the clock beam is drawn on the grid anyway.

JK Flip-Flop — the truth table

J (left) K (top) On a rising clock edge
darkdarkhold — nothing changes
litdarkset — Q comes on
darklitreset — Q goes off
litlittoggle

Tie J and K to the same source and you have a T Flip-Flop.

Timing rules circuits fail on

A single tick cannot win a crystal

A crystal only counts once it has been lit for two consecutive ticks — becoming lit costs it a tick itself, and the check happens only afterwards. The Edge Detector, though, emits for exactly one. Put a Delay in parallel if a pulse has to win a crystal.

A single tick does lose a bomb

A bomb has no such grace period, and it does not distinguish colours either: any colour, one tick, level lost. A pulse too short for a crystal is more than enough for a bomb.

Every tile in the chain costs a tick

Two signals that must arrive together have to pass through the same number of tiles — not merely the same distance. The one exception is the Multiplexer: relaying costs nothing.

A tile in motion does not count down

Push a tile that carries a timer and its counter stops, resuming only once the tile comes to rest. A Beacon you send across the grid loses the time spent travelling.

The first cycle can be one tick short

The laser ignites only after the first light pass. Anything driven by it therefore starts one tick later than the same circuit running from tick zero. After that it stays in phase.

Try it yourself →