generate_soap_dish
Create a draining soap dish with optional bottom text or image branding, then open an interactive 3D preview to orbit, zoom, and iterate on the design.
Instructions
Generate a draining soap dish with optional bottom branding. Opens Kiln's interactive inline 3D stage on the result (orbit/zoom panel in MCP Apps hosts; hosted sessions add a browser stage link). MAKE DOORS: design_session, Kiln's front door for making an object, is not installed here (signed in to Kiln it runs on Kiln's servers). On this install compile_scad IS the make → preview → iterate loop: make it, show the preview, iterate.
INLINE 3D STAGE: on success this tool opens Kiln's interactive 3D stage — an inline viewer panel the user can orbit, zoom, and turn over — in hosts that render MCP Apps panels (Kiln's hosted connection attaches a browser stage link for hosts that don't). Oversized meshes are decimated automatically for the stage; the PNG preview is the floor, not the whole experience.
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "generate_soap_dish"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| brief_id | No | Optional saved-goal id from ``design_session``. When supplied, the produced mesh gets a ``design_brief:<id>`` intent sidecar so the audit's "matches what you asked for" gate, the brief failure_history wiring, and the ``compare_design_versions`` intent diff all light up against the saved goal. Omit to skip — REST callers without a goal still get an auto-inferred brief at dispatch time. Default: "". | |
| depth_mm | No | Front-to-back size of the dish body in mm (default 65), not how deep the basin is; the drain spout adds ``spout_length_mm`` beyond it. Default: 65.0. | |
| material | No | Material (default PETG). Default: "PETG". | |
| width_mm | No | Dish width in mm (default 90). Default: 90.0. | |
| height_mm | No | Total height in mm (default 15). Default: 15.0. | |
| body_color | No | Body color (default white). Default: "white". | |
| decoration | No | Bottom content — ``"text:..."`` for debossed text, a PNG/JPG path for an embossed image, or empty for plain. Default: "". | |
| photo_mask | No | Photo crop shape for a photograph (a logo on a clean field is carved unmasked whatever is passed; a name outside this list is refused) — ``"circle"``, ``"rectangle"`` or ``"rounded_rectangle"`` (the default; empty or ``"auto"`` reads the same, since the dish is rectangular). Default: "rounded_rectangle". | |
| ridge_count | No | Drain ridges across basin (default 6, range 3-12). Default: 6. | |
| include_step | No | Also emit a CAD-exact STEP file — REAL analytic B-rep (the tapered spout as an exact hull of circles, drain ridges as true capsules), never a tessellated conversion. On success the response gains a ``step`` block with ``step_path``. Image decorations refuse honestly — the mesh outputs are always unaffected. Default: false. | |
| spout_width_mm | No | Width of drain spout in mm (default 25). Default: 25.0. | |
| color_overrides | No | JSON dict mapping role → color name/hex. Default: "". | |
| spout_length_mm | No | Spout overhang in mm (default 18; 0 = closed basin). Default: 18.0. | |
| corner_radius_mm | No | Outer corner radius in mm (default 10). Default: 10.0. |