MCP
Tools
RhinoArtisan MCP exposes the same automation surface that powers Flow Studio scripts — design, editing, analysis, manufacturing, pricing and reporting. Your assistant picks up new tools automatically: connect once, and every release makes it more capable.
Read-only tools are separated from tools that modify the document, so assistants can explore your design safely before they act. Anything they create lands in your document as a normal, undoable Artisan operation — parametric, grouped and layered exactly as if you had used the panel yourself.
All dimensions are millimetres. Omitting a dimensional argument (or passing 0) keeps the tool’s default — the same defaults you have saved in RhinoArtisan.
Gems
| Tool | What it does |
|---|---|
get_gem_options | Returns the valid values for the shape and material arguments of add_gem. (read-only) |
list_gems | Lists every Artisan gem in the active Rhino document with its id, shape, material, carat weight, size in mm and position. (read-only) |
add_gem | Creates a gem in the active Rhino document using RhinoArtisan (same pipeline as QuickGems: proportions derived from carat weight, material and layer applied). |
edit_gem | Edits an existing gem in place: material, carat weight, explicit size in mm, uniform scale, rotation around its own axis, translation, or flip upside down. |
check_gem_collisions | Finds pairs of gems that touch or overlap. (read-only) |
Parametric objects (query / edit / delete)
| Tool | What it does |
|---|---|
list_objects | Lists the parametric Artisan objects in the document (shanks, halos, bezels, baskets, pegheads, clusters, micro-settings, gems-on-curve rows, channels, cutters…) with their ids and parameters. (read-only) |
get_selection | Lists what the user has selected in Rhino right now: Artisan gems (with shape, material, carats, size), parametric Artisan objects (kind and id), and any other object (Rhino type, name, layer, and the parametric group it belongs to). (read-only) |
describe_object_parameters | The contract of edit_object for one parametric object (object_id) or one type (type: BEZEL, BASKET, GRADUATED, CLASSIC…): current values, every snake_case key its setters accept with the value type, and its sections (support, cutters, air_gaps, prong, upper_rail, top_profile, gems…) with their own keys — generated from the live SDK, so it is exact. (read-only) |
select_objects | Selects objects in the Rhino document so the user sees them highlighted, or to feed tools that read the selection. |
edit_object | Edits a parametric Artisan object in place (it regenerates with the same id). |
delete_objects | Deletes objects by id: gems, parametric Artisan objects (the whole group) or plain Rhino geometry. (destructive) |
Shanks and ring bodies
| Tool | What it does |
|---|---|
create_ring | Creates a classic comfort-fit ring shank (band), optionally with a row of gems around the top. |
create_cathedral | Creates a cathedral shank: a band whose arms rise toward the setting — the classic body under halo and solitaire designs. |
create_eternity | Creates an eternity ring (a band with gems all around) at the document’s finger size. |
create_toi_et_moi | Creates a Toi et Moi ring top: two independent stones straddling the top of the finger size, one leaning to each side (classic combinations mix shapes, e.g. pear + round). |
create_three_stones | Creates a Three Stones (trilogy) ring top: one center stone plus two symmetric side stones placed around the finger size. |
create_ring_curve | Creates the editable ring rail curve that curve shanks and gems-on-curve build on. kind: CLOSED (full circle at the finger size), OPEN (circle with a gap, for open/adjustable rings), BYPASS (crossed ends) or SHAPE (circle blended with a top shape). |
create_graduated | Creates a graduated shank: a band whose section grows toward the centre stone, carrying a run of stones that shrink toward the finger (the ArtisanGraduated tool). |
create_bypass | Creates a bypass shank: a band whose two arms cross past each other instead of meeting (the ArtisanBypass tool), optionally with a stone run along the arms. |
create_signet_ring | Creates a signet ring: a flat face carried on a band (the ArtisanSignetRing tool). |
create_split_shank | Creates a split shank: a band that opens into two arms toward the setting (the ArtisanSplitShank tool). |
create_advanced_cathedral | Creates an advanced cathedral shank: the station-based cathedral body with a fully parametric arm and bridge, plus an optional stone run (the ArtisanAdvancedCathedralShank tool). |
Settings around gems
| Tool | What it does |
|---|---|
add_prong_setting | Creates a peghead (prong head) around an existing gem, as a parametric child of it. |
add_bezel_setting | Creates a bezel around an existing gem, as a parametric child of it. |
add_basket_setting | Creates a basket setting under existing gems (one basket per gem). |
create_halo | Builds a halo of small stones around an existing gem (halo-friendly shapes: ROUND, CUSHION, EMERALD, OVAL, RADIANT, ASSCHER, PEAR). |
create_cutters | Builds one cutter per gem: the cutting/drilling solid used to open the gem seat in the metal (subtract it with boolean_operation). |
create_microsetting | Builds the micro-setting for a run of small gems: cutters, V-cutters, optional channel and row prongs (the pavé infrastructure). |
create_cluster | Builds a cluster (a ring of small stones with prongs hugging the mother gem, illusion-style). |
create_hidden_halo | Builds a hidden halo (the stone ring tucked under the setting, visible from the side). |
create_tulip | Builds a tulip setting (prongs blooming from a stem under the gem). prong_count 4 or 6; height is a vertical scale factor (default 1.7), not mm. |
create_martini | Builds a martini setting (the V-shaped basket for studs). |
create_trellis_setting | Builds a trellis setting (interwoven curved prongs). |
create_cabochon | Creates a cabochon (a domed, unfaceted stone) at the given point — it makes its own stone, no mother gem needed. |
create_pearl | Creates a pearl (with optional calotte cap and wire post — the stud-earring infrastructure). |
add_advanced_bezel | Creates an advanced bezel around an existing gem (the bezel with per-point profile control; this facade exposes the main dimensions). |
add_advanced_basket | Creates an advanced basket under existing gems (one per gem): individually modeled prongs (ROUND, DOUBLE, TRIPLE, CLAW, OFFSET or CUSTOM with a profile) and configurable rails. 0/omitted keeps the tool default: 4 diagona… |
gem_tools | Utility operations over gems. operation: CENTERS (read-only: each gem’s center), ADD_CENTER_POINTS (point object per center), CENTER_BETWEEN_GEMS (shared-prong circles between adjacent gems), CURVE_FROM_GEMS (curve through the centers, in list order), EXTRACT_GEM_CURVES (girdle curves), OFFSET_GEM_CURVES (outward girdle offsets at distance mm, history-linked), COPY_BY_GEMS (copy object_ids onto every target gem plane; scale No/2D/3D), COLOR_BY_SIZE (display color per stone size), ROTATE_GEMS (rotate each gem angle_degrees around its own axis), ADD_TAGS (measure/carat/material text on each gem), RECOVER_GEMS (rebuild Artisan gems from imported meshes). |
create_trilogy | Dresses a Three Stones set (center + 2 side gems) with one of the trilogy settings. style: BEZEL_SET (three bezels), EAST_WEST (three advanced baskets with shape-aware prong layouts), HALO (three halos of small stones, side halos fused into the center one), INDIVIDUAL (a tulip on the center and a single-rail basket on the sides, each slot switchable to TULIP / MARTINI / ADVANCED_BASKET) or TRELLIS (crossed prongs over the center stone plus under-girdle rails, down to the ring curve). |
Gems along geometry
| Tool | What it does |
|---|---|
gems_on_curve | Distributes a row of identical gems along an existing curve (use create_ring_curve or any Rhino curve id). |
create_channel | Builds a metal channel with a run of gems inside, following an existing curve. |
pave_surface | Automatic pavé: fills the given surfaces/breps/meshes with diamonds (and optional prongs and cutters), sized and packed automatically. |
list_elements | Lists the saved ELEMENTS (the named presets the panels store: a bezel called “Chunky”, a basket called “Client A”…). (read-only) |
gems_on_network | Fills a network of intersecting curves with stones, sized so they meet at the nodes — for lattice and filigree patterns. |
pave_automatic | The automatic (relaxed) pavé: fills surfaces by relaxing a spring network over the mesh, which lets it MIX SEVERAL STONE SIZES and follow an irregular boundary — the difference from pave_surface, which packs one size in a regular grid. |
gems_on_two_curves | Fills the strip between two curves with round gems whose diameter adapts to the local width (tapering rows, graduated shanks, halos between two offsets). |
gems_on_curve_advanced | Distributes a PATTERN of gems along a curve: several groups run one after another, each with its own quantity, shape, rotation and a size graduating from sizes[i] to sizes2[i] mm (e.g. sizes [2.0, 1.5], quantities [1, 6], sizes2 [2.0, 1.0] = one 2 mm stone followed by six stones going 1.5 -> 1.0). |
gems_from_circles | Converts circle curves into ROUND gems of the same diameter, each placed on its circle’s plane (typical after drawing or arraying circles as a stone layout). |
tapered_baguettes | Places tapered baguette gems spanning straight between two rail curves: each point in points is one gem, its wide (top) edge on the rail closest to the point and its length following the span to the other rail. |
pave_along_surface | Lays rows of round diamonds along the isocurves of a surface (Pave UV): each point in points yields one row along the isocurve through it, in direction U (default) or V. |
add_gem_by_size | Adds a single gem sized by its dimensions in millimetres instead of carats (use add_gem when the brief gives a carat weight). size_x is the width (diameter for ROUND); size_y (length) and size_z (depth) 0 = the shape’s standard proportions. |
find_gems_by_size | Returns the ids of every gem in the document whose width (size_x) matches one of the reference gems (0.001 mm tolerance) — e.g. ‘all the 1.5 mm stones’. gem_ids empty = the selected gems. (read-only) |
Booleans
| Tool | What it does |
|---|---|
boolean_operation | Artisan’s parametric-aware booleans: UNION merges target_ids (+cutter_ids when given); DIFFERENCE, INTERSECTION and SPLIT apply cutter_ids to target_ids. (destructive) |
Components and decoration
| Tool | What it does |
|---|---|
create_bail | Creates a bail (the pendant hanger loop) as an editable smart component. |
text_on_curve | Creates text along an existing curve and returns the ids of the added objects. height = letter height in mm (default 1.5); thickness = extrusion depth in mm, 0 = flat curves only; horizontal_align LEFT|CENTER|RIGHT|JUSTI… |
create_component | Creates a smart component: BANGLE (rigid bracelet; options width 50, height 30, aperture 10, closed), BEAD (options width 10, height 10, hole_diameter 3), CHARM (options width 8, height 6, thickness 2.8), LINK (chain link; options width 9, height 6, diameter 3, twist_angle 90), NAMED_PENDANT (needs text; options height 5, thickness 0.4, font), HINGE (needs brep_id + point; DESTRUCTIVE: replaces the solid with the hinged parts; options diameter 0.7, cut_diameter 4, thickness 1, number_of_males 1, opening_angle 10), MILGRAIN (beaded edge; needs curve_id; options diameter 0.8, overlapping 0.1), ROPE (needs curve_id; options diameter 1.6, width 3, threads 3, turns 5), VORONOI (pattern inside a closed curve; needs curve_id; options points 100, thickness, height, both_sides), HONEYCOMB (needs curve_id; options diameter 6, thickness 0.8, height), TEXTURE3D (image-driven relief; needs surface_id; options texture_path, u 1, v 1, height 0.6, rotation), CHAIN (repeat objects along a curve; needs object_ids + curve_id; options copies). |
vectorize_image | Converts a raster image file into vector curves in the document (threshold-based tracing). |
Relief
| Tool | What it does |
|---|---|
create_relief | One-shot relief bake (auto-fitted workbench): IMAGE from a grayscale heightmap (image_path, optional region_curve_ids to clip), CURVES from closed curves (curve_ids, with a profile), GEOMETRY from meshes/breps projected top-down (object_ids). |
relief_operations | The relief project’s layered operation stack (same project the Relief panel edits). action ADD appends an operation: type PROFILE|EXTRUDE|IMAGE|TEXTURE|GEOMETRY with its inputs (curve_ids / image_path / texture_name / object_ids), or SCULPT|SMOOTH (the brush strokes, headless: a polyline of points with radius and height/strength), plus options (height, profile, feather, combine ADD|SUBTRACT|ZMAX|ZMIN|ABSOLUTE|MULTIPLY, name…). (destructive) |
relief_project | The relief project itself. action SETUP creates/reconfigures it (world_width, world_height, resolution, solid, cap_distance, delete_base — keeps the operation stack); INFO and PROFILES are read-only; BAKE recomputes at f… |
Accessories extra
| Tool | What it does |
|---|---|
user_elements | LIST returns the named user elements in the document (the Outliner’s user elements); CREATE tags the given objects as a new named element (object_ids + name). |
Document
| Tool | What it does |
|---|---|
describe_document | Returns a human-readable summary of the active document: design type and subtype, finger size, metals, gems and the parametric elements it contains. (read-only) |
get_document_settings | Returns the document’s computation mode, the metals configured for the Metal 01/02/03 layers, the finger size, the valid finger size regions and the valid metal names. (read-only) |
set_document_settings | Changes document settings: the metal of a metal layer, the finger (ring) size, or the computation mode (Render = smooth display quality, Manufacturing = production-accurate geometry; switching regenerates every parametri… |
regenerate_objects | Regenerates the document’s parametric objects, like the Outliner’s Refresh button: by default only the ones pending regeneration (e.g. children whose mother gem or curve moved); force=true regenerates EVERYTHING (long on heavy documents). |
File lifecycle
| Tool | What it does |
|---|---|
open_document | Opens a 3dm file, replacing the active document (like File > Open, but never prompting: it fails if the current document has unsaved changes unless discard_changes is true). (destructive) |
save_document | Saves the active document. |
new_document | Creates a new document, replacing the active one (like File > New without the template picker). (destructive) |
Viewports (batch rendering)
| Tool | What it does |
|---|---|
describe_views | Returns the open viewports (marking the active one), the saved named views and the available display modes — the vocabularies set_view and capture_viewport accept. (read-only) |
set_view | Points a Rhino viewport for rendering: restore a named view, place the camera explicitly (location + target, optional 35mm lens length), switch the display mode (e.g. |
capture_viewport | Captures a Rhino viewport. |
Analysis, weight and price
| Tool | What it does |
|---|---|
calculate_weight | Weighs the metal geometry of the document (Metal 01/02/03 layers). (read-only) |
calculate_price | Recomputes the price of the current document with the active manufacturer/market (the same engine as the Breakdown panel). (read-only) |
get_pricing_settings | Returns the Breakdown’s cost tables as JSON: Markets (Gold/Silver/Platinum/Palladium spot prices), Metals, Diamonds (per-size and per-sieve price tables, CertificateFromCt threshold), Printing, Cfp (cast-finish-polish), AdditionalProcesses, GemSetting (labor per setting type), Timing and Info (currency). (read-only) |
set_pricing_setting | Updates ONE value of the Breakdown’s cost settings by path and persists it (Manufacturer.json), e.g. path “Markets.Gold” value “68.5”, or “Diamonds.CertificateFromCt” value “0.30”. |
analyze_thickness | Measures the material thickness at a point on/near the surface of the given objects, in mm. |
global_thickness | Measures wall thickness over EVERY vertex of the given objects and returns min/max/average in mm, the percentage of thin samples, and the 100 thinnest spots (point + thickness) below thin_threshold_mm (default 0.6). |
create_breakdown_table | Draws one of the Breakdown cost tables into the document at point (production-sheet annotations): METALS, GEMS, PROCESSES or EXTRAS. |
create_gems_table | Draws the gems list table (shape, sizes, carats, quantities) into the document at point — the production-drawing companion of export_gems_list. |
create_metals_table | Draws the metals weight table into the document at point, weighing the visible metal geometry in each named metal (see get_document_settings for valid names). |
scale_to_dimensions | Uniformly (or per-axis) scales the objects so their bounding box hits the target sizes in mm — “make it 20 mm wide”. (destructive) |
deform_objects | Artisan’s deformations, headless. (destructive) |
place_on_objects | COPY places copies of the objects onto the target surfaces at each point (frame from the target’s render mesh: closest point + normal); MOVE relocates them once to point. |
move_by_normal | Moves the objects along the normal of surface_id at each object’s closest point — lift or sink elements relative to the metal. |
mirror_objects | OPPOSITE mirrors the objects across the plane (history-linked copies); QUAD produces the three mirrored quadrant copies. plane omitted = the active construction plane. |
transform_objects | Basic transforms on any objects (gems, parametric groups, plain geometry). |
array_objects | Copies the objects in a pattern. |
scale_by_weight | Uniformly scales the objects so they weigh exactly target_grams when cast in metal (empty = the document’s primary metal). (destructive) |
Manufacturing
| Tool | What it does |
|---|---|
check_printability | Verifies each mesh is valid and watertight, and recolors it green when printable, red when not. |
repair_for_printing | Repairs the given objects into a single watertight printable mesh (closes gaps, fixes normals; gems are skipped automatically). (destructive) |
add_identifier | Adds an identifier tag to a closed ring mesh (the ArtisanIdentifier tool): a small pipe between two points on the mesh carrying an engraved reference text (model number, metal, size…). |
add_sprue | Adds casting connectors to closed meshes, in every style of the sprues family. kind: SINGLE (one tapered post at contact_points[0] on mesh_id), INNER_TREE (trunk at base_point + branches to contact_points), INNER_BRANCHES (central post + branches, options symmetry 0-3), EXTERNAL_TREE (trunk beside the mesh at base_point + branches), EXTERNAL_FRAMES (rounded frame around mesh_ids with inward stubs), TREE (radial casting tree at base_point with copies of mesh_ids), CLUSTER_TREE (helix-grid cylinder with a copy per node), CURVE (perimeter frame from the silhouette or curve_id, on mesh_id), HELIX / SPIRAL (chain-link casting trees for the mesh in mesh_id), MULTIPLE_COPIES (trunk from trunk_start to trunk_end + branch per contact point, over mesh_ids). |
resize_ring | Takes a CLOSED ring mesh and produces one resized copy per target inner diameter, laid out in a row on child layers under a Resizer parent layer. (destructive) |
decimate_mesh | Reduces the polygon count of the given meshes: by percentage (default 50) or, when tolerance_mm is given, to the coarsest mesh within that deviation. (destructive) |
Reports, exports and render
| Tool | What it does |
|---|---|
list_report_templates | The report template names create_report accepts (the 3dm templates saved from the Report panel). (read-only) |
create_report | Creates a report layout page. |
create_gems_map | Draws the gems map (the per-size gem legend used in production drawings) at the given point. |
generate_dimensions | Generates automatic dimensions. kind: AUTO (default, generic), RING (ring-specific: bottom, top, size), BOX (bounding-box dimensions of object_ids) or BANGLE (bangle-specific over object_ids). |
import_named_views | Imports the named views saved in another 3dm file into the active document — keep your standard render angles in a template file, import them into each opened document, then set_view + capture_viewport per angle. |
apply_materials | Switches every visible object’s materials: RENDER = the catalog render materials (gems by compound, metals per Metal 01/02/03 layer, studio environment installed if none) for shooting; DESIGN = back to the flat design ma… |
batch_render | Renders every .3dm in a folder with Rhino’s current renderer, saving one image next to each file (same base name). |
list_render_scenes | Lists the Render Studio’s scene environments and material families. (read-only) |
apply_render_scene | Applies Render Studio state: environment by name (omit for the studio default scene), and/or a material (material_family + material) to object_ids (omit for the selection; Grounds materials go to the ground plane). |
render_still | Renders a still with Rhino’s current renderer (Cycles) through the Render Studio pipeline and saves it to path. |
render_turntable | Renders a turntable MP4 orbiting the current camera target: per-frame Cycles renders (or fast viewport captures with raytraced=false) assembled with ffmpeg. |
export_gems_list | Exports the document’s gems list to a CSV file. |
export_stl | Exports all visible geometry of the active document to a binary STL file for 3D printing. |
export_pdf | Exports a layout page to a 300-dpi PDF (vector where possible). page_name defaults to Template — the layout create_report produces. |
export_glb | Exports the whole document to a GLB file (the same conversion the Realtime Render pipeline uses). |
show_realtime_render | Opens (or activates) the web-based Realtime Render viewer window and pushes the current model to it. |
set_viewer_material | Applies a viewer catalog material to every part on a layer of the open Realtime Render viewer (viewer-only; the document is untouched). |
set_viewer_background | Sets the Realtime Render viewer’s background gradient. |
set_viewer_environment | Sets the Realtime Render viewer’s lighting environment: a preset (studio, sunset, dawn, night, warehouse, forest, apartment, city, park, lobby) or an HDR/EXR url. |
set_viewer_option | Sets one Realtime Render viewer option by key: bevelEnabled/bevelRadius, jewelryShadow* (Enabled, Darkness, Blur…), effectComposerN8ao* (AO), effectComposerDepthOfField* (Enabled, FocusDistance, BokehScale), effectComposerBloom* (Enabled, Intensity), effectComposerVignette*, effectComposerHueSaturation*, caustics*, autoRotate, toneMappingExposure… |
viewer_camera | Moves the camera of the Realtime Render viewer: a named preset (front, back, left, right, top, bottom, three-quarter, three-quarter-left, detail, dramatic-low), an explicit position + target in document millimetres, or zoom_extents=true to frame the whole design. |
list_viewer_items | Lists the parts loaded in the Realtime Render viewer with their uuids and current materials — the vocabulary for set_viewer_material / edit_viewer_material. (read-only) |
update_render | Re-exports the current document geometry to the Realtime Render viewer (the panel’s Update button). |
edit_viewer_material | Live-edits a Realtime Render viewer catalog material everywhere it is applied: color (CSS color), roughness 0-1, ior (~1.4-2.4, gems), opacity 0-1. Ephemeral: re-applying the material from the catalog resets it. |
capture_viewer_views | Captures the 8 standard orbital views of the open Realtime Render viewer (front, back, left, right, two three-quarters, top, bottom) as PNGs into a folder, restoring the camera afterwards. |
record_viewer_turntable | Records a 360 turntable of the open Realtime Render viewer: turns auto-rotation on, records seconds seconds of video to path, and turns the rotation off when done. |
record_viewer_video | Records the open Realtime Render viewer to a video file at path for seconds seconds (1-3600) and saves automatically when done. |
render_screenshot | Opens (or activates) the Realtime Render viewer, optionally moves its camera to a preset, and saves a PNG of the frame. |
Library and services
| Tool | What it does |
|---|---|
list_assets | Without type, lists the asset types (RING_PROFILE, BEZEL_PROFILE, CHANNEL_PROFILE, PEGHEAD_PROFILE…). (read-only) |
search_diamonds | Searches certified diamonds on Nivoda matching a shape and carat weight (range [carats-0.01, carats+0.1]). (read-only) |
search_files | Searches the indexed local design library (file names, gems, metals, design semantics). (read-only) |
Scripting
| Tool | What it does |
|---|---|
list_commands | Lists the command names available in this Rhino (Artisan* first), optionally filtered by substring — to find the exact name before run_command. (read-only) |
run_tool_smoke_test | Diagnostic: opens a NEW document (discarding unsaved changes), runs a scripted design flow through the catalog (ring, gems, every setting, shanks, rows, solids, curves, edits, analysis, exports) and then probes every remaining tool with empty arguments, classifying OK / SOFT (friendly ArgumentException) / FAIL (any other exception). |
gh_reference | The reference of Artisan’s ~219 Grasshopper components, for building graphs with the Rhino MCP Platform tools (g1_search_components / g1_place_component / g1_apply_graph / g1_solve_graph). (read-only) |
get_scripting_reference | Returns the reference for run_script: the idiom, and (part API) every Api facade with its static methods plus each I handle’s read properties and Set*/Move/Delete mutators — generated from the live SDK, so it is exhaustive and exact. (read-only) |
run_script | Runs Python against the full RhinoArtisan Scripting API and Rhino itself — for anything without a typed tool: any handle setter or nested section, reading/setting the selection, loops over many objects, native Rhino curves/surfaces/booleans via rhinoscriptsyntax. (destructive) |
run_command | Runs a Rhino command-line script exactly as typed in Rhino’s command prompt (RhinoApp.RunScript): native Rhino commands and Artisan commands alike. (destructive) |
Ring bodies
| Tool | What it does |
|---|---|
create_advanced_ring | Creates an advanced ring body (the ArtisanAdvancedRing tool): a ring curve swept through profile sections placed along it, each with its own width and height — the free-form way to shape a shank (tapered, knife-edge, bypass…). |
create_class_ring | Creates a class ring (the ArtisanClassRing tool): a heavy signet-style body with a flat top seat holding one stone — a faceted gem or a cabochon — regenerated together with the ring. |
create_scoop_ring | Hollows a ring shank from the inside (the ArtisanScoopRing tool): removes material behind the given faces of an existing closed ring solid, leaving a wall of thickness mm, fully scooped over central_angle degrees at the bottom of the ring plus transition_angle degrees of fade-out on each side. |
ring_extrude | Creates a ring body by extruding two silhouettes (the ArtisanRingExtrude tool): a frontal silhouette (EXTERNAL_RING_PROFILE asset) and a lateral silhouette (RING_SIDE_CURVE asset) grown around the finger circle and intersected — the quick way to get a wide, sculpted band. |
Ring size tools
| Tool | What it does |
|---|---|
cut_by_ring_size | Cuts the finger hole through the given objects (the ArtisanCutByRingSize tool): subtracts a cylinder of the ring-size diameter running along world Y (rings are modelled at the origin) from each brep, extrusion, SubD or mesh. |
estimate_ring_size | Estimates the finger size of an existing ring model (the ArtisanEstimateRingSize tool): sections the geometry with the XY and YZ planes through the origin, measures the inner gap along X (diameter) and Z (inner height), scores how ring-like the result is (0-100) and looks up the closest catalog size in the given region. ids omitted = every visible brep/surface/mesh. (read-only) |
Shanks and ring bodies (wedding, pavé, two rows, matching)
| Tool | What it does |
|---|---|
create_wedding_band | Creates a single wedding band (the ArtisanWeddingBand tool): a plain band lofted from a RING_PROFILE asset at the document’s finger size, optionally with a row of stones around it. |
create_wedding_ring | Creates a wedding set (the ArtisanWeddingRing tool): two bands — his and hers — baked together as one group, each with its own section, metal, finger size and optional stones. |
create_pave_shank | Creates a pavé shank (the ArtisanPaveShank tool): a classic band carrying one or more longitudinal rows of round stones running along the band. |
create_two_rows_shank | Creates a two-rows shank (the ArtisanTwoRowsShank tool): a classic band with a channel carved on each face, each carrying a row of round stones held by prongs — the knife-edge pavé band. |
create_matching_shank | Creates a matching shank (the ArtisanMatchingShank tool): a band shaped to sit against an existing ring at the origin — the mother — so the pair stacks without a gap (wedding band next to an engagement ring). |
Prongs, prong axis and azure
| Tool | What it does |
|---|---|
create_dynamic_prongs | Creates loose (non-parametric) prongs, the ArtisanDynamicProngs tool. |
create_custom_prongs | Copies a custom prong (your own surface, polysurface, mesh or SubD) onto every Artisan prong, the ArtisanCustomProngs tool: the source is mapped from the bottom-centre of its bounding box on the active CPlane to each prong’s base plane. |
create_prong_axis | Draws the central axis line of every prong around each gem (curves only, no thickness), the ArtisanProngAxis tool: one editable ProngAxis group per gem, useful as a guide to sweep custom prongs. 0 keeps the tool default (or the user’s saved defaults): prongs 4, height 4 mm, over_girdle 0.3, gem_inside 0, bottom_rail_inside 0, straight true. |
create_azure | Open-work under stones (the Azure / SmartAzure tool): one hexagonal hole per gem, centred under its girdle and projected onto a closed solid, then subtracted from it. |
flip_gem_plane | Flips the parametric plane stored in each gem (reverses its Z axis) WITHOUT moving the stone, the ArtisanGemsFlipPlane tool, and regenerates its children. |
update_baskets | Migrates baskets saved by old Artisan versions (a single object carrying its parameters) into the current editable basket groups, recomputing each one against its mother gem with the current kernel; the ArtisanBasketUpdate tool. |
Solid modelling
| Tool | What it does |
|---|---|
solid_cut | Cuts one or more solids with planar closed curves (ArtisanCut): each curve is extruded straight through the solids, along its plane normal, and subtracted. |
solid_recess | Sinks (recess, default) or raises (protrusion) the region a closed curve marks on a solid’s face (ArtisanRecess): the curve is pulled onto the face, the face is split and the inner piece is offset height mm and subtracted or united. |
cap_round | Builds a domed (rounded) cap over a closed planar curve (ArtisanCapRound): a parametric RoundCap object linked to the curve, placed on the metal layer with the metal material. |
curve_shell | Builds a hollow shell (a wall plus a floor) from one or more closed planar curves (ArtisanCurveShell): one parametric CurveShell object per curve on the metal layer with the metal material — the classic way to make a hollow signet top, a locket half or a bezel cup. |
sweep_rails | Orients flat profile curves along one rail (ArtisanCurves1Rail) or between two rails (ArtisanCurves2Rails) and sweeps a solid through them — the way Artisan builds free-form shanks and bands from section curves. |
Solid booleans (parametric)
| Tool | What it does |
|---|---|
list_dismantled_booleans | Lists the Artisan booleans that were dismantled by ArtisanEdit (the result was removed, the operands are visible again, the boolean group keeps its operation and operand ids): id, operation, target_ids, cutter_ids and missing_ids (operand ids that no longer exist, e.g. after a parametric edit recreated the object). (read-only) |
update_booleans | Recomputes the dismantled Artisan booleans (ArtisanBooleanUpdate) from their stored operands: the result breps go back into the boolean group and the operands are hidden again. |
Curve helpers
| Tool | What it does |
|---|---|
curve_advanced | Draws the ArtisanAdvancedCurve: a smooth degree-3 control-point curve through the given points, optionally mirrored (X, Y or XY = both axes) around the symmetry plane, optionally closed, plus an offset copy with connecting lines (offset 1 mm by default; 0 = no offset). |
curves_auto_join | Runs ArtisanAutoJoin: joins every open curve whose ends touch (document tolerance), like selecting all open curves and running Join. curve_ids restricts the candidates; omitted = every visible curve in the document. |
curve_cross_builder | Creates the ArtisanCrossBuilder outline: a closed cross-shaped curve centred at the world origin (move it afterwards with transform_objects), stored as a parametric Cross object on the primary user layer. |
curves_connect | Runs ArtisanCurveConnect: builds an arc blend that leaves the first solid/surface along its normal at the point closest to first_point and arrives at the second one against its normal near second_point. |
curve_infinite | Runs ArtisanInfiniteCurve: adds a very long reference line (type LINE, centred on base_point) or ray (type RAY, starting at base_point) to use as a construction guide. |
curve_infinite_loop | Runs ArtisanInfiniteLoopCurve: a closed lemniscate (infinity symbol, figure eight) centred at the given point on the construction plane. kind BERNOULLI (default, rounded lobes) or GERONO (figure-eight). width is the total width in mm (default 100), height_ratio scales the lobe height (default 0.5), height lifts the strands in Z at the crossing so one passes over the other (0 = flat, signed), flat_bottom raises only the upper lobe, samples = points per loop (default 180), rotation in degrees. |
surface_iso_curves | Runs ArtisanIsoCurve: extracts the isocurve(s) of a surface (or single-face solid) passing through the point of the surface closest to the given point. direction U (default), V or BOTH. |
curve_waves | Runs ArtisanWaves: builds a smooth wave (waves = number of full periods, default 3; height = peak-to-peak amplitude in mm, default 3) and flows it along an existing curve from start to end. |
add_sketch_images | Runs ArtisanAddSketches: places reference sketch images (PNG/JPG file paths) on the faces of a 10 x 10 x 10 mm box at the origin, two textured surfaces per view (top: z=0 and z=10; front: y=0 and y=10; side: x=0 and x=10), rendered display mode, grouped together. |
Transform: placement and flow
| Tool | What it does |
|---|---|
center_objects | Moves the objects, as one set, so the center of their common bounding box lands on the world origin (0,0,0) — the ArtisanCenter command. |
move_random | Moves EACH object by distance mm along its own random direction (a different direction per object) — the ArtisanMoveRandom command, used to break the perfect regularity of pavé stones or beads so a render looks hand-set. distance 0/omitted = 0.05 mm (range -1000..1000). |
scale_by_center | Scales the objects uniformly by factor (> 0; 1 = no change) about the center of their common bounding box, so the set grows or shrinks in place — the ArtisanScaleByCenter command. |
orient_on_surface | Places copies of the objects on a surface, polysurface or extrusion, one copy set per point in points, each oriented to the surface normal at the point closest to the pick — the ArtisanOrientOnSurface command (a bead, a gem+setting or a pattern cell dropped on a ring surface). |
flow_by_curve | Flows objects from a base curve onto a target curve (Rhino Flow space morph) — the ArtisanSmartFlowbyCurve panel. |
flow_by_surface | Flows objects from a base surface onto a target surface (Rhino Sporph space morph) — the ArtisanSmartFlowbySurface panel. |
Manufacturing: trays
| Tool | What it does |
|---|---|
distribute_objects | Lays the objects out in a row along +X for a print/casting tray — the ArtisanDistribute command: each piece rests on Z = 0 with its back edge on Y = 0, chained left to right with a 10% gap of each piece’s width. |
copy_objects | Duplicates the objects count times along -Y for a production tray — the ArtisanCopies command: each copy is one selection-height further (the union bounding box’s Y extent), all objects shift together so multi-part models stay assembled and the copies touch edge to edge. count 0/omitted = 1, max 100. Use distribute_objects afterwards to space them. |
Parametric relations
| Tool | What it does |
|---|---|
meet_mothers_and_children | Re-matches every parametric child with its mother, like the ArtisanRefreshRelations command: each bezel, cutter, halo, basket, rope, milgrain… re-adopts the nearest gem or curve as mother. |
apply_element | Copies the parameters of one existing Artisan element in the document onto other mothers and builds the same element there — the ArtisanApplyElement command: ‘put the bezel of this gem on those gems’, ‘apply this rope to those curves’. |
Production exports
| Tool | What it does |
|---|---|
export_all_in_one | Merges solids/meshes into ONE printable mesh and writes a binary STL (the ArtisanExportAllInOne tool). |
export_from_layers | Writes one STL per visible layer holding MESH objects, named ‘ |
import_to_layers | Imports every .stl in folder, each file into a layer named after the file with a distinct color per layer (the ArtisanImportToLayers tool) — the reverse of export_from_layers, and the way to bring a set of printed parts back for checking. |
Production checks
| Tool | What it does |
|---|---|
reduce_thickness | Hollows a wall down to a uniform minimum thickness to save metal (the ArtisanReduceThickness tool). |
check_balance | Checks how a pendant or earring hangs (the ArtisanBalancerChecker tool): the piece hangs from base_id (the bail, jump ring or hook) and gravity pulls the volume centroid of geometry_ids straight below it. |
detect_non_printable | Flags the objects that would not print (the ArtisanQuickNonPrintableDetector tool) using Rhino’s own selectors: bad objects, duplicates, open surfaces and open polysurfaces. (read-only) |
Document and library
| Tool | What it does |
|---|---|
standardize_document | Standardizes a document that came from elsewhere (the ArtisanStandardize tool), running the tool’s sequence: explode every block instance, recover the gems (ArtisanGemsRecover), move solids/meshes/surfaces/SubDs to the metal layers (ArtisanOrganizeObjectsByLayers), purge all render materials, re-apply the Artisan design materials and estimate the ring size. |
export_elements | Exports every saved element of one library type (the user’s presets: bezels, baskets, halos, pegheads…) to a JSON file (the ArtisanExportElementsByType tool) — the way to carry presets to another machine or to back them up. type is one of the names list_elements accepts (Bezel, Basket, Halo, Peghead, AdvancedBasket…). |
import_elements | Imports elements into the user’s library (the ArtisanImportElementsByFile tool): either a single ‘.raelement’ bundle (element + preview) or a ‘.json’ array as written by export_elements. |
save_as_template | Saves the active document as the Artisan template (the ArtisanSaveAsTemplate tool): Rhino’s SaveAsTemplate to ‘ |
Drafting extras
| Tool | What it does |
|---|---|
reduce_dimensions | Reduces the DISPLAYED value of distance dimensions by a percentage (the ArtisanDimensionsReduce command): only the dimension text is overridden, the geometry and the model are untouched. |
restore_dimensions | Restores distance dimensions to their real measured value by putting back the <> placeholder, removing any text override made by reduce_dimensions or by hand (the ArtisanDimensionsRestore command). |
add_logo | Creates the logo used by the report sheet from the given objects (curves, text, surfaces…), like the ArtisanAddLogo command: copies them, scales the copies so the largest extent is 28 mm, centers them at (65, 25, 0), saves them as logo.3dm in the Artisan user folder and deletes the copies. |
export_gems_excel | Exports the gems list of specific gems to a semicolon-delimited CSV that opens in Excel (the ArtisanGemsListToExcelBySelection / BySelectionGroups commands): columns Shape, Size X, Size Y, Carats, Quantity, Total Carats, identical gems merged with a quantity. |
create_technical_chart | Recomputes the production breakdown and returns the technical chart (the ArtisanTechnicalChart panel): per metal the net weight, waste, total and wax weight in grams, volume (mm3) and surface area (mm2); the gems by shape and size with count, carats, sieve and setting type; the printing sizes, setting processes, additional processes and extra components — everything except prices (for prices use calculate_price). |
save_report_template | Saves the ACTIVE document as a report template (the ArtisanSaveReportTemplate command): a Save As into the report-templates folder, so the document adopts that path. |
open_report_template | Opens a report template file as the active document to edit its layout (the ArtisanOpenReportTemplate command). |
apply_artisan_layout | Applies the Artisan window layout to Rhino (the ArtisanLayout command / the ribbon’s Window Layout button): imports ArtisanSkin.rhw and activates the ‘Artisan’ layout of panels and toolbars. (read-only) |
Pricing profiles
| Tool | What it does |
|---|---|
get_markup | Returns the company’s markup profile as JSON (the ArtisanMarkup dialog, Markup.json — NOT part of get_pricing_settings): Name, Notes, the main-stone cost bands P100_90 … (read-only) |
set_markup | Updates one or more values of the markup profile and saves Markup.json (the ArtisanMarkup dialog’s Accept). values maps field name to value, e.g. {“P100_90”: 35, “OnlySettingMarkup”: 120, “Name”: “Retail”}; names are matched ignoring case and underscores, fields not given keep their value. |
get_taxes | Returns the company’s tax profile as JSON (the ArtisanTaxes dialog, Taxes.json — NOT part of get_pricing_settings): Mode (None, European, American, Canadian, OtherCountry), the region and tax id of that mode (EuropeanCou… (read-only) |
list_tax_regions | Lists the valid regions for a tax mode, to pick the region of set_taxes: EU member countries (European), US states (American), Canadian provinces (Canadian) or every country (OtherCountry). (read-only) |
set_taxes | Updates the company’s tax profile and saves Taxes.json (the ArtisanTaxes dialog’s Accept). |
Assistant
| Tool | What it does |
|---|---|
get_design_summary | Full snapshot of the current design: file name, design type, metals, ring size and available sizing regions, layer names, a semantic description of every element (gems, settings, shanks…) and the document notes. (read-only) |
get_pricing_and_boutique | Pricing data for the current design: the INTERNAL manufacturing cost breakdown (materials, weights, labor) and the Boutique RETAIL data (regular/sale price, SKU, description). (read-only) |
undo | Undoes the last action in the document (Rhino undo). (destructive) |
redo | Redoes the last undone action in the document (Rhino redo). (destructive) |
set_render_material | Applies a metal or gem render material to everything on a layer. layer_name e.g. |
lie_on_ground | Rotates the design so it lies as flat as possible on the ground plane (render staging). |
delete_dimensions | Removes every annotation (dimensions) from the document. (destructive) |
save_as | Saves the document under a new file name, next to the current file (or in Documents when the file has never been saved). ‘.3dm’ is appended when missing. |
Example session
You: Make me a 1-carat halo engagement ring, size 54, and tell me what it weighs in 18k white gold.
Your assistant places the center stone, builds the halo around it, creates the shank, adds the prong setting, and weighs the result — then shows you a render.
A finished, editable, parametric design appears in your viewport.
Every tool requires the RhinoArtisan plugin to be loaded with a valid license. If there’s a workflow you want your AI assistant to drive, tell us about it — real use cases decide what ships next.