Inspector
The inspector is the right-hand panel, and it is where you edit. It shows three things at once: the component you have open, the child or compartment selected inside it, and the vertex selected inside that. The upper section is the component; the lower section is the selection. Drag the boundary between the two, or the panel’s left edge, to give whichever you are working in more room — both are remembered.
The header
The header names the open component and carries the three actions that apply to the component as a whole.
The name is editable in place and commits when you press Enter or click away. A name that is empty, already taken, or not a valid identifier is refused, and the field returns to the real name.
The star sets the component as the design’s root — its top-level component, the one the file opens at. It is disabled, and stays gray, when the component already is the root.
The trash deletes the component. The deletion is refused if the component is the root, or if another component places it; the button is disabled and the tooltip says which of the two applies.
A component opened from Libraries is another file’s definition, so the header drops to a plain heading marked built-in component (read-only) and no edit controls appear.
If the open component cannot be built — an expression that does not type-check, a missing argument — the reason appears in red under the header and stays there while you fix it. The viewport goes on showing the last version that built.
The tabs
The component has four tabs: Params, Computed, Pins and Body. A tab carries a count when there is something behind it. The + on the tab strip adds to the tab you are looking at, and appears only on Params and Computed — pins and children are created elsewhere. The tab you pick stays picked as you move between components. A built-in shows three tabs; it has no authored body.
Params
name │ type │ default │ 🗑
These are the component’s inputs — what someone placing it can set. + adds a row.
The type dropdown commits as soon as you pick. The default editor matches that type: drag a number and the viewport follows, release to commit; typed values commit on Enter or focus loss. A parameter loaded without a default reads (required) and is not editable here. Deleting a parameter that something refers to is refused, and the tooltip lists what refers to it.
Computed
name │ (type) │ expression │ 🗑
These are values derived from the parameters by expression. You author the name and the
expression; the type is inferred rather than declared, which is why the type column is
parenthesized and read-only. It reads (?) while the component does not type-check — the
error under the header says why.
The expression commits on Enter or focus loss. One that does not parse does not take effect.
Pins
name │ source │ 🗑
These are the connection points the component exposes to whoever places it — its published contract, and nothing else. What a terminal is — whether it is a world port, how big its punch is — sits in the terminal’s own detail, reached by selecting it here or in Body.
The name renames on Enter or focus loss. It locks, with the references in its
tooltip, while another component refers to the pin — a rename would break it. The
source names the terminal behind the pin (← p1, ← mixer / out); it is hidden when it would
only repeat the pin name. Clicking anywhere on the row selects that terminal, and hovering it
lights the terminal in the viewport.
There is no + here. You expose a pin from the terminal itself: right-click a point or a placed component’s pin, or use the Expose button in its detail block.
Body
The tab shows the component’s children as a tree: placed components, channels, points and regions, with a region’s compartments nested beneath it.
This is the same selection the viewport uses, so a row click and a click on the geometry are interchangeable, and selecting in the viewport scrolls the matching row into view. Hovering a row lights the child. The trash on a row deletes it, and is refused with a reason when something refers to the child by label.
The selection
The lower section shows what is selected. It is always there, and with nothing selected it says so.
The breadcrumb
Pinned at the top of the section, the breadcrumb names the chain of scopes down to what you are editing — child, compartment, vertex. Every crumb above the last is clickable, so it is also how you step back out. A compartment leaf carries a trash beside the chain, and it removes what that last crumb names; a child is deleted from the Body tab and a vertex from its own group below, so neither puts a trash here.
A selected child
What the detail shows depends on what kind of child it is.
A placed component shows its pos, rot and layer placement rows, then its args, one
row per parameter of the component it places. Each args row has a checkbox that overrides
the parameter or returns it to the placed component’s own default. Below those sits one row
per pin the placed component exposes, with an Expose button that forwards the pin through
the component you are editing, or a readout of the name it is already forwarded as.
A channel has no placement rows — its placement is fixed, anchored to the terminals at
its ends, and the panel says so. Instead it shows an ends block: one row per end, naming what
that end connects to (end 0 · at p1), each carrying that end’s width control, which is
either inherited or explicit. Hovering an end row lights the terminal it connects to.
A selected terminal inside a placed component — a pin row in Body — shows its own section under
the component’s detail: an offer row, the world port tick and the bore rows. The offer row is
the point’s own count and all tick plus a floor, since a terminal inside a component has no
layer row of its own to anchor to; unticked, it reads the offer the component published, dimmed
and marked · component. Both numbers are relative to the terminal, and the absolute range they
work out to is echoed after them.
Every terminal, wherever it is selected from, carries the same three blocks under whatever else
its detail shows: the world port tick with the face it exits by beside it, the offer row, and
the bore rows.
punch size is the hole’s diameter, operation is what cuts it (punch, drill, or molded in by
the tool itself), stage is whether it is cut before or after the layers are bonded, and
pad offset is how far the channel is widened where the hole lands, so the tool has something to
hit. Each row is an override checkbox: unticked, it shows the value it inherits, dimmed and marked
with where that came from — · point for a value the point behind a component’s pin authors,
· process for the shop’s default. Ticking seeds the value already showing, so the tick alone
changes nothing.
The rows describe the opening this terminal would form, so they stay editable on a terminal that
forms none, with a line above them saying nothing opens there yet. Two openings answer stage
themselves and the row greys out saying which: a molded-in hole is made with the part, and a
via buried between two layers has no way in once the stack is bonded, so both are cut before
assembly whatever the row was set to. What you authored is kept underneath and applies again if
the opening stops being either. See Channels & points for what
forms an opening in the first place.
A point shows its placement, its offer and width, and whether it is exposed
as a pin. The offer row is a count of layers with an all tick beside it, and the range it works
out to is echoed after them; a wall-bound point rides one slab, so its row is greyed — with an Expose as pin button when it is not. The detail also carries Dissolve into
channel, disabled with a reason where the point does not qualify. See
Channels & points for what it merges.
A region is edited one compartment at a time, so its detail is the compartment’s.
A selected compartment
The outermost compartment is the region child, so its detail opens with the region’s own
placement rows. A nested one opens with a name field — leave it empty and it falls back to
the derived label shown dimmed beside it — plus dx, dy and rot. See
Regions & compartments for what those rows move and why a nested
compartment has no layer row.
Under those, region · N vertices names the ring, and the fill control below it says what
the compartment is: void is a carved pocket, material is untouched slab. Switching a void
compartment to material is how you make a hole; switching it back makes a pocket. The
material direction is disabled where it would leave material inside material, and on a
region’s outermost compartment, which is always void; the tooltip says which case applies.
Fabrication
Void compartments and channels carry a fabrication group of override rows; a point carries the same group with the two corner-radius rows alone. Each row has a checkbox: ticked, the value is this child’s own; unticked, it is inherited, and the effective value is shown dimmed beside the name of what it came from. Ticking seeds the override from whatever the row is displaying, so ticking alone changes no geometry. Unticking clears it and returns to tracking the inherited value.
face chooses which side of the slab the shape is formed from, and appears only at the
scope that is the child itself. depth in µm is what makes a chamber deeper than the
channels running into it, or a pocket a step in that chamber’s floor. walls is the wall
profile — its second row appears only when the profile has a parameter to set. The two
corner-radius rows close the group, inner and outer.
face, depth and walls inherit from the child’s layer; corner radii inherit from the
process forming it. A child sitting off the stack has no layer to inherit from, so its
unset rows read — and cannot be ticked. Existing overrides stay removable either way.
A selected vertex
Selecting a single vertex adds a group at the very bottom, titled with what it is
(Selected vertex — rg · hole 1 · vertex 2 / 5) and carrying the delete for it. A
channel’s vertex shows its pos and width; a region’s shows its position local to the
compartment. A channel’s vertex carries both corner-radius rows; a region’s carries one, for
the class its own corner takes. Either overrides the child’s.
Deleting a region vertex is refused at three — a region needs at least three vertices. A channel’s interior vertex always deletes; removing one straightens the channel through it.
See also
- Components, parameters & pins — the model behind the Params, Computed and Pins tabs.
- Channels & points — what the children in the Body tab are.
- Regions & compartments — the model behind the compartment detail and the fill control.
- Fabrication overrides — the inherit/override rule the fabrication group and the corner rows follow.
- Layers, stacks & processes — what those rows inherit from.