Artisan Grasshopper
How a definition is built
There are more than 240 components, but only a handful of patterns. Once you can tell which family a component belongs to, its ports explain themselves — and the reference becomes a lookup rather than a reading list.
The four families
Almost every component is one of these:
| Family | How to recognise it | What it does |
|---|---|---|
| Parameter | Named Something - … Parameters or … Params | Bundles a set of related settings into one value. |
| Builder | Named after the thing itself — Classic, Halo, Bezel, Bail | Takes parameter bundles and produces geometry. |
| Reader | In the Readers tab, named after its builder — Classic Reader, Halo Reader | Takes a design JSON and hands its builder the piece’s record. |
| Value list | A dropdown with no inputs | Offers the valid values for a text or numeric input. |
The rest are supporting cast: assets, exporters, manufacturing sprues and utilities, all in the Artisan tab.
Parameters go in bundles
A ring has too many settings to be one row of inputs, so they are grouped. Classic does not take twenty numbers — it takes a Top Profile bundle, a Mid Profile bundle, an External Profile bundle, an Advanced bundle and a Gems bundle, each built by its own parameter component.
This matters for how they behave: a parameter component only passes on the inputs you actually connect. Set carat on Classic - Gems Parameters and leave the rest alone, and the bundle carries carat and nothing else — every other setting keeps the value the builder already has, from its defaults or from its JSON. A parameter component has no default values of its own and never forces one, so wiring it in changes nothing until you connect an input. Connect a Panel to its output to see exactly which keys it sends, as JSON.
The same applies to builders. Every input on Classic is optional; drop it on the canvas with nothing wired in and it still produces a ring.
The inputs of a builder
A builder’s inputs follow the same order everywhere:
- What the piece is built on — the
Gem, theRing Diameter, a curve. - Its sections —
Top Profile,Gems,Prongs,Upper Rail… — each fed by a parameter component. Computation Mode,RENDERorMANUFACTURING. The same definition produces presentation geometry or production geometry depending on which you pass; theComputation Modevalue list (Artisan › Value List) gives you the two valid strings.- Last, the three wires that come from the piece’s reader:
JSON,MaterialandPart ID.
Builders produce more than geometry
A builder’s first outputs are the geometry — Breps for the metal, Gems and Meshes for the stones, kept separate so you can render, price or export them apart. The last four describe the piece:
- JSON. The complete record of what was built, with the same keys a design JSON uses. It is what a configurator stores to rebuild the piece later, and it can be fed back into the builder’s
JSONinput. - Semantic. A plain-language description of the piece — the sentence a product page or a quote shows to a customer.
- Scheme. Every field the piece’s record takes and its type, without values. Wire it into
Capsule Info. - Parts. The pieces apart (prongs, rails, bridge, stones…), each with its own id and material, for
Capsule Outputand the exporters.
Magnets
To snap one part to another — a head onto a shank — use the Magnets component (Artisan › Utils). Wire in the geometry and the gem (or any plane): it gives the centre of each face of the bounding box measured in that orientation — Top, Bottom, North, South, West, East — and the Width, Depth and Height of the box. Several pieces wired together are measured as one.
A few builders also give points only they know, such as the top of the finger-size circle or the top of a cathedral’s bridge.
Readers hand each builder its record
Readers exist because the interesting inputs often arrive as data rather than as slider values — from a configurator, an order, or another part of the definition. Each builder has its reader — Basket Reader, Halo Reader, Cathedral Reader, Classic Reader… (Readers › Global). It takes the design JSON and gives three outputs that wire straight into the builder’s last three inputs:
- JSON — the piece’s record. The builder builds every section from it.
- Material — the metal of the piece (shank readers also give the
Diameter). - Part ID — where the piece goes in the design, such as
gemset.main. When a design holds two pieces of the same kind, write which one in the reader’sIDinput (side) and the Part ID becomesgemset.side.
The parameter components then go on top of the JSON: wire Classic - Gems Parameters with only a carat connected, and the ring takes everything from the JSON except the carat.
Design JSON
→ Classic Reader (JSON · Material · Diameter · Part ID)
→ Classic (geometry · JSON · Semantic · Scheme · Parts)
↑ Classic - … Params (only the values you want to change)
→ Capsule Output / Exporters (3DM · STL · GLB · technical chart · SKU)
Named assets, not redrawn profiles
Profile components in Artisan › Assets — Ring Profile by Name, Bezel Profile by Name, Halo Profile by Name and the others — fetch a profile from RhinoArtisan’s asset library by name instead of making you rebuild the curve. They read the library that the RhinoArtisan plug-in installs, so the profiles available on the canvas are the same ones available in RhinoArtisan itself.
Ring sizes are diameters
Every shank component takes a ring diameter in millimetres, never a local size. The nineteen ring size value lists (Shanks › Ring Sizes) do the conversion: pick USA, Europe, Japan or any of the others, choose a size in that system, and the list outputs the diameter to wire in. Swapping the list swaps the sizing system without touching anything downstream.
Where a definition ends
The Artisan › Exporters group turns a result into deliverables: 3DM, STL and GLB, each as a file on disk or as a base64 string when the output is going straight into another application. Alongside them sit the non-geometry exports — technical charts, the semantic description, the JSON record, SKU generation and comparison, and UI files.
For casting, Artisan › Manufacturing builds the sprue tree — single sprues, inner branches, and full inner and external trees.
Next
Component reference — every component in every tab, with its exact inputs, outputs, types and defaults.