← ClaudeAtlas

openscad-organiclisted

Model organic high-detail 3D-printable figurines in OpenSCAD — characters, creatures, miniatures with precise small features. Use when the user asks for a figurine, miniature, character, creature, bust, toy figure, or any organic/decorative model that needs smooth curved surfaces and fine details, not just technical brackets or enclosures. ALWAYS load openscad-cad alongside (render/export commands live there); for multi-part articulated figures ALSO load scad-modeler (planning, joints, tolerances, validation).
Altern92/openscad-cad-skills · ★ 0 · AI & Automation · score 70
Install: claude install-skill Altern92/openscad-cad-skills
# OpenSCAD Organic — Figurines and Miniatures Builds on openscad-cad (§2 render/export commands still apply) and follows scad-modeler discipline (§0 project facts, calculations before geometry, validation). This skill adds what neither covers: smooth organic surfaces and print-safe fine details in a CSG modeler. **Not sure which skill to load, or where a fact lives? See `../references/retrieval.md` — the routing table (skill choice, passport format, abstention).** ## 0. Before anything else 1. Load openscad-cad (render/export) and, for 2+ interacting parts (articulated limbs, head+body+base), scad-modeler (planning, tolerances). 2. Read ../INCIDENTS.md — a logged organic bug never re-read will recur. 3. Require BOSL2 (`use <BOSL2/std.scad>`): skin(), path_sweep(), bezier() live there. No BOSL2 — single-hull blobs only, say so honestly. 4. RESEARCH-FIRST for replicas (INCIDENTS 2026-09-09): before modeling a real-world object, use agent-reach (Exa/GitHub/web) to fetch REAL dimensions + print practice. Never model from one artwork photo alone. v1 without research = blockout, not a model. ## 1. Core techniques (use in this order) ### 1.1 Piecewise hull, never single hull (jack rule) One hull() over all spheres = plastic-wrap box, not organic shape. Connect CENTER sphere to EACH satellite separately (makerblock jack trick): ```openscad for (i = [0 : len(pts)-1]) hull() { sphere_at(center); sphere_at(pts[i]); } ``` Each satellite = one limb joint, muscle bul