Instances: SREF and AREF
A SREF is a single instance of a cell placed at (x, y) with rotation / magnification / reflection. An AREF is a rectangular array of instances (rows × cols with separate column and row step vectors).
Inserting an SREF
- In the Cells panel, click the "Insert Instance" icon on the target cell.
- Enter rotation / magnification / reflect in the dialog.
- Click on the canvas to place.
- Rotation etc. can be edited later in the Properties panel when the SREF is selected.
Inserting an AREF
- In the Cells panel, click the "Insert Array" icon on the target cell.
- Fill in rows, cols, and the col-step / row-step vectors (nm per column and nm per row).
- Click on the canvas to place the origin.
- All array parameters can be edited later in the Properties panel.
Refs are selected and moved just like shapes. Selection colors: accent (orange) for shapes, amber for refs.
Component library (parametric cells)
View → Component library opens a dock on the left edge with several libraries, chosen from the dropdown at its top:
- Standard cells — parametric fab marks: alignment cross, Greek cross (van der Pauw), a true dual-scale overlay vernier, box-in-box, die frame, line/space grating, bond-pad array.
- Metrology / PCM — process-control & metrology structures: Siemens star and USAF-1951 three-bar resolution targets (correct 2^(1/6) pitch step and 5:1 bar aspect), a CD/dose step wedge, a four-terminal Kelvin cross, a TLM ladder, a via/contact chain, an interdigitated leakage comb, a cross-in-box alignment fiducial, a seal ring, corner crop marks, and a dummy-fill tile.
- Microfluidics — channels (straight / serpentine / spiral / taper), inlet-outlet ports, reservoirs, observation chambers, junctions (T / Y / cross), a flow resistor, mixers (serpentine / staggered-herringbone with the correct asymmetric grooves / split-and-recombine / Y), a pillar array (DLD with a fractional row-shift ε / filter), a weir gap filter, a cell-culture chamber, a Christmas-tree gradient generator, a cell-trap array, a Tesla fluidic-diode valve, a capillary burst valve, and droplet structures (T-junction, flow-focusing, and a parking array).
- Passive photonics — silicon-photonics building blocks on one waveguide-core layer: straight waveguides, Euler bends, S-bends, spot-size tapers, waveguide crossings, directional couplers, MMI 1×2 / 2×2 splitters, Y-branches, ring and racetrack resonators, grating couplers, and spiral delay lines. Parts expose optical ports, so the Connect ports router works here too.
- Diffractive optics — single-layer (binary) diffractive elements: Fresnel zone plate, spiral/vortex zone plate, photon sieve, Dammann fan-out grating, and a diffractive (Fresnel) microlens array.
- Marks & targets — ready-made fixed-size fab marks placed as plain shapes: alignment cross, L-mark, bullseye (box-in-box), vernier scale, fiducial, die frame, dicing scribe lane, and orientation arrow. Click a card, then click the canvas to drop it.
Each component shows a live thumbnail. Drag a card onto the canvas to drop it at the cursor, or click a card then click the canvas to place it. A placed component is a normal cell + instance, so it moves, rotates, copies, and exports to GDS like anything else.
Connect ports. For libraries whose parts have connection ports (Microfluidics and Passive photonics), a Connect ports button appears under the library dropdown. Click it, then click one component's port and another's, to route a channel between them. The connector stays attached: move or rotate either component and it re-routes automatically. Select it and toggle Tangent in the Properties panel for a smooth curve that leaves and enters along each port's direction (with a Bend control), or turn it off for a straight run; its width follows the channel it joins. Esc cancels mid-route. On GDS export the connector is written as an ordinary path (the live link is app-only).
Configure before you place. When you click a card to arm click-to-place, a ghost follows the cursor and the Properties panel shows that component's parameters — set them before dropping, and the ghost updates live. While the ghost is armed you can also rotate it with [ / ] (∓90°, hold Shift for ∓45°) or R (90° clockwise) and mirror it with F; the orientation carries into the drop. Esc cancels. The library remembers the last parameters you used for each component, so re-placing a part keeps your settings (within the session).
Snap on place. The ghost is magnetic — its anchor latches onto nearby existing geometry (vertices, edges, and aligned coordinates), with pink guide lines showing the alignment, and the grid as the fallback. So you can drop a fiducial exactly on a die corner or align a test structure to an existing feature without eyeballing it. (Microfluidic components additionally snap their ports to mating channels, which takes priority.)
Multi-layer components. Most components draw on the active layer alone. A few — the thermo-optic phase shifter in Passive photonics — need several: a waveguide core, a heater strip, and contact metal. When you arm one of these, the Properties panel shows a Layers section with one picker per role; set them before you click the canvas. Roles you leave alone default to the active layer, so the component still appears (just not fabricable). The mapping is stored with the placed component, so editing its parameters later regenerates every part onto the layer you chose.
Resize by parameter. Select a placed component and edit its parameters (channel width, length, turn count, pillar pitch, …) in the Properties panel — each field shows its valid range, and a Reset link restores the defaults. The geometry regenerates on each change as a single undo step. Parameters live with the document and survive autosave; a .gds export keeps the geometry as polygons but not the parametric link (the same way text and letterSpacing are flattened on export).