Skip to content

Parts reference

Select a part to edit its parameters in the inspector. Hover any part on the grid for a short description and its current readings.

Ports are named so you can tell them apart: light ports are round (left edge = in, right edge = out); signal terminals are square (top edge = in, bottom edge = out).

Light & detection

Part What it does Signal terminals
Laser Source with amplitude, phase, wavelength (with presets from violet to the telecom C band), a source and an optional colour. Points right; R rotates it in 90° steps. Own source (the default): its light never interferes with other lasers, as with real separate lasers. Shared A–H: lasers on the same letter are phase-locked, like light split from one laser, and interfere; the letter shows next to the laser. in: amplitude, multiplies the amplitude (0 switches it off, 1 leaves it on)
Detector Photodiode: absorbs light from any direction and reads its power. out: power
Threshold detector A detector whose bit option is on: outputs 1 when the power reaches the threshold, else 0. Any detector can be switched between the two in the inspector. out: power (as 0/1)

Free-space optics

Part What it does Signal terminals
Beam Splitter Partially reflecting mirror; reflectivity sets the split. Rotates in 45° steps. —
Mirror Reflects light; the dark side absorbs. Rotates in 45° steps. —
Phase Shifter Adds a phase to light passing through. in: phase, adds π per unit (1 flips an interferometer)
Attenuator Passes a fraction of the power (transmission 0–1). in: transmission, multiplies it

Older projects can contain a Lens; it is no longer in the library because a ray-on-grid model can’t focus, so it only passes light through.

Electronics & I/O

Block What it does Terminals
Number input A number you set (1–16 bits), sent out as bits, most significant first. Click a lamp to toggle that bit. out: b(n-1)…b0
Display Shows the bits on its inputs, as lamps and as a decimal number. in: b(n-1)…b0
Register Memory. On each clock tick it stores its d inputs when write is high or unconnected, and holds them on its q outputs. in: d…, write; out: q…
Function cell Computes outputs from expressions over its inputs. Can read received light and emit light. See Electronics. in: in1…; out: out1…; light in: p1…; light out: light1…

Example components

Ready-made components built from the parts above. Placing one adds a copy to your project that you can open with Tab and change.

Component Ports
Full adder signals in a, b, cin; out sum, cout. A teaching model: see Examples.
Mach–Zehnder interferometer light in1; out out1, out2. The phase shifter inside picks the output.
Fabry–Pérot filter light in, out. Passes only resonant wavelengths.
1→4 splitter light in; four outputs with a quarter of the power each.

My components

Every layout you save as a component appears here. See Components.

Waveguide blocks

On-chip building blocks, drawn as boxes and connected with waveguides.

Block Light ports Parameters
Directional coupler 2 in, 2 out (bar and cross) coupling (power to the cross port)
Phase shifter 1 in, 1 out phase
Attenuator 1 in, 1 out loss in dB
Delay line 1 in, 1 out length (µm), effective index; phase depends on wavelength
MZI switch 2 in, 2 out θ (internal: π = bar, 0 = cross), φ (input phase)
Y-splitter 1 in, 2 out — (equal split)
Y-combiner 2 in, 1 out — (only the in-phase part is guided)
Crossing 2 in, 2 out — (no coupling)
Ring resonator in → through coupling, length, effective index, loss (dB/cm)
Add–drop ring in, add → through, drop coupling, length, effective index, loss; resonant wavelengths go from in to drop (and from add to through)
Splitter tree 1 in, 2^levels out levels
Switch tree 1 in, 2^levels out levels, address (which output gets the light)
Optical DFT n in, n out modes; an MZI mesh computing the discrete Fourier transform

A ring of length L and effective index n resonates at wavelengths λ where n·L = m·λ for a whole number m. The WDM link uses L = 20·λ / 2.4 to put each ring on its own channel.

Component ports

Used inside a layout to give it a boundary when it becomes a component.

Part Becomes on the box
Input port a light input on the left edge (ordered top to bottom)
Output port a light output on the right edge
Signal in a signal terminal on the top edge (ordered top to bottom, then left to right). In the layout’s own tab, click it to switch it between 0 and 1.
Signal out a signal terminal on the bottom edge

Name a port in the inspector; the name shows on the box.