A box whose width, height, colour and display mode are five controls on a panel drawn over the viewer, plus a button that writes the box to a 3MF file. Built from spare params, with no UI code.
geo/ControlPanel geo/ThreeMFExporter
Documentation / Node reference / geo nodes
Draws a panel of controls over the viewer, in the editor and in a runtime build.
Helpers
The panel's controls are this node's SPARE params: add one and it appears in the panel. Read a control from anywhere in the scene with an expression, pv("/controlPanel1/<param name>", FloatParam). A spare param of type Button presses the buttons of other nodes through its targets list, so a panel can hold a download or a rebake. This node's own params all start with an underscore so that every ordinary name, `width` and `title` included, is free for your controls. Geometry passes through untouched, so the node can sit anywhere in a graph, and a scene may hold several of these, one per panel.
THE PANEL IS AN OBJECT IN THE SCENE. On top of its input this node emits one object with no geometry, and the panel is drawn only when that object reaches a root geo/Output. A geo/Output reads one input and does not merge, so the panel goes through a geo/Merge on its way there. Bypass then hides the panel: bypass this node, or a subnet above it, and the object is never emitted, so nothing is drawn. Any other route that keeps the object from an output hides it the same way, and there is no `visible` param beside them. Panels sharing an anchor stack in scene order instead of overlapping, downward from a top or centre anchor and upward from a bottom one, with `_offset` adding on top.
You rarely add a control by hand. Right-click a param's name in the params panel and pick "Add To Control Panel": that adds the spare param here, carrying the param's current value, its range and its menu, and writes the pv() expression back onto the param so it follows the control. The panels it offers are the ones at that node's own level or above it, never one in another subnet or below; with several it asks which, and with none it creates one at the root and wires it into an output through a merge. A Button offers the same entry on a right-click of the button itself, and can be appended to a panel button that is already there so one press fires both. An expression already on the param is replaced, and one undo takes the whole gesture back.
A control an expression drives shows the VALUE the expression produces, and its field is read-only: the panel is where a configurator's user turns a knob, not where an expression is written. To see or edit that expression, select this node and use the params panel.
The entry toggles. A param a panel already drives reads "Remove From Control Panel" instead: the param keeps the value the control last gave it, as a plain value, and the control goes away unless another param still reads it. A panel button loses that target, and goes itself once it presses nothing.
| Name | Type | What it does |
|---|---|---|
| _anchor | UInt8 TOP_LEFT · TOP_CENTER · TOP_RIGHT · CENTER_LEFT · CENTER · CENTER_RIGHT · BOTTOM_LEFT · BOTTOM_CENTER · BOTTOM_RIGHT | Corner or edge of the viewer the panel is pinned to. |
| _offset | Vector2 | Nudge from that anchor, in reference-frame pixels. 0,0 sits flush against the viewer edge. Panels sharing an anchor already stack, and this adds on top of that. |
| _width | Float | Panel width in reference-frame pixels. 0 draws the panel at its default width, the one the editor's params panel opens at. |
| _title | String | Heading drawn at the top of the panel. Empty uses the node name. |
| _backgroundAlpha | Float | Opacity of the panel background, 0 (invisible) to 1 (solid). |
Scenes you can open in the editor that teach this node.
A box whose width, height, colour and display mode are five controls on a panel drawn over the viewer, plus a button that writes the box to a 3MF file. Built from spare params, with no UI code.
geo/ControlPanel geo/ThreeMFExporter
This page is generated from the engine, so it describes the release you can download. The same text is in the editor's Help panel next to the node itself.