Skip to content
Agentmart
Submit a tool

3d-parametric-models

Model parametric 3D geometry as code and edit mesh files programmatically.

Skill by github.com/kryptobaseddev

IndexedMIT
Write a review

Install

Works with Claude Code. Read the repository before you give any tool access to your data.

npx agentmarket install skill/kryptobaseddev-3d-parametric-models

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Model parametric 3D geometry as code and edit mesh files programmatically. OpenSCAD (.scad) is the core for scripting solid models with named parameters; pair it with a Python mesh toolkit (trimesh/manifold3d) to inspect, repair, measure, scale, boolean, convert, and batch-generate STL/3MF — then optionally slice and print (Bambu Lab / OrcaSlicer). Use whenever the user wants to create, generate, design, model, script, parametrize, modify, repair, convert, or batch-produce a 3D model, part, or mesh: write or improve OpenSCAD/.scad code, turn a description into an STL or 3MF, make a part with adjustable/customizable dimensions, fix a non-watertight or non-manifold STL, scale/cut/boolean/convert an existing STL, render many variants, or design something to 3D print. Trigger even if they only say 'OpenSCAD', '.scad', 'STL', '3MF', 'edit/repair this STL', 'parametric model', 'CAD', 'make me a bracket/box/holder/knob', 'design for 3D printing', 'Bambu', 'Fusion 360', or 'Blender'. Bridges Fusion 360 and Blender.

Use cases: design, writing

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found
Runs as
Python package

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/3d-parametric-models

Tools it pre-approves 7

From allowed-tools in SKILL.md: the agent may use these without asking you each time.

  • Bash
  • Read
  • Write
  • Edit
  • Glob
  • Grep
  • WebFetch

What's inside

Skill name
3d-parametric-models
Description
Model parametric 3D geometry as code and edit mesh files programmatically. OpenSCAD (.scad) is the core for scripting solid models with named parameters; pair it with a Python mesh toolkit (trimesh/manifold3d) to inspect, repair, measure, scale, boolean, convert, and batch-generate STL/3MF — then optionally slice and print (Bambu Lab / OrcaSlicer). Use whenever the user wants to create, generate, design, model, script, parametrize, modify, repair, convert, or batch-produce a 3D model, part, or mesh: write or improve OpenSCAD/.scad code, turn a description into an STL or 3MF, make a part with adjustable/customizable dimensions, fix a non-watertight or non-manifold STL, scale/cut/boolean/convert an existing STL, render many variants, or design something to 3D print. Trigger even if they only say 'OpenSCAD', '.scad', 'STL', '3MF', 'edit/repair this STL', 'parametric model', 'CAD', 'make me a bracket/box/holder/knob', 'design for 3D printing', 'Bambu', 'Fusion 360', or 'Blender'. Bridges Fusion 360 and Blender.
License
MIT
Compatibility
OpenSCAD 2021.01+ (a 2023+/nightly build gets the fast Manifold backend) for generating geometry, and Python 3.8+ with trimesh + manifold3d + numpy-stl for mesh inspect/repair/convert/boolean. A slicer (Bambu Studio or OrcaSlicer) is needed only to produce G-code and print. Bundled scripts use bash + Python 3. Run scripts/preflight.sh to check the toolchain and get install commands.
Allowed tools
Bash, Read, Write, Edit, Glob, Grep, WebFetch
Metadata
author: github.com/kryptobaseddev · version: 1.0.0 · category: 3d-modeling · last_updated: 2026-06-15 21:30:00
Instructions
293 lines in SKILL.md · view on GitHub

Before installing

  • Ships executable scripts
  • Pre-approves any shell command

Files (22)

  • SKILL.md
  • Makefile.tmpl · assets/templates/
  • parametric-box.scad · assets/templates/
  • evals.json · evals/
  • box-hardcoded.scad · evals/files/
  • broken.stl · evals/files/
  • cable-clip.scad · evals/files/
  • part.stl · evals/files/
  • trigger_queries.json · evals/
  • bambu-lab.md · references/
  • blender.md · references/
  • design-for-printing.md · references/
  • fusion360.md · references/
  • mesh-and-stl.md · references/
  • openscad-cli.md · references/
  • openscad-for-llms.md · references/
  • openscad-language.md · references/
  • mesh_tool.py · scripts/
  • preflight.sh · scripts/
  • render.sh · scripts/
  • scad_params.py · scripts/
  • scaffold.py · scripts/

SKILL.md (first lines)

# 3D Parametric Models — script OpenSCAD, edit STL/3MF, then (optionally) print

Build and edit 3D models the way you write software: as **parametric code** you can
read, diff, version, and regenerate — not hand-pushed vertices. Two capabilities sit
at the core, and each stands on its own:

1. **Model by scripting OpenSCAD** — describe a solid with primitives + boolean ops +
   named parameters; OpenSCAD is text-first and fully declarative, which is exactly
   what an LLM is good at, and one command renders a watertight mesh.
2. **Edit meshes programmatically** — a small Python toolkit (trimesh/manifold3d)
   inspects, validates, repairs, measures, scales, booleans, arranges, and converts
   any STL/3MF/OBJ that already exists — including files you downloaded, which carry
   no parametric history.

3D **printing is a common destination, not the point**: when you want a physical
object, a slicer (Bambu Studio / OrcaSlicer) turns the model into a print — and this
skill documents that path well — but the modeling and mesh-editing work is just as
useful for visualization, asset pipelines, conversion, measurement, and CAD interop.

```
            ┌──────────── model ────────────┐        ┌──────── (optional) make ───────┐
 idea ──► parametric .scad ──► render.sh ──► .stl / .3mf ──► mesh_tool.py (validate/edit) ──► slice ──► print
          (OpenSCAD code)      (OpenSCAD CLI)                (trimesh/manifold3d)            (Bambu / Orca)
   ▲                                                              │
   └────── tune named parameters / scad_params.py batch ◄────────┘   edit ANY existing mesh, print or not
```

## Pick the right engine (don't fight the tool)

| The request… | Use | Why |
|---|---|---|
| Mechanical / functional part — bracket, box, enclosure, mount, holder, knob, gear, jig, adapter, spacer | **OpenSCAD** (`render.sh`) | Exact dimensions, named parameters, reproducible, manifold output, LLM-writable |
| "Make it adjustable / customizable / in several sizes" | **OpenSCAD + `scad_params.py batch`** | One file → many STLs from a parameter grid |
| Edit a mesh that already exists (a downloaded STL/3MF): scale, cut a hole, boolean, repair, measure, convert | **`mesh_tool.py`** (trimesh/manifold3d) | Mesh editing without a GUI; STL has no parametric history to recover |
| Organic / sculpted / artistic shape (figurine, character, terrain) | **Blender** (or a generative tool), then validate | OpenSCAD is poor at freeform; see `references/blender.md` |
| User already has it in Fusion 360 / wants assemblies, fillets, drawings | **Fusion 360**, export STEP/3MF | See `references/fusion360.md` for the bridge |

Default to **OpenSCAD** for anything dimensional. Reach for mesh tools to *modify*
existing files, and the Fusion/Blender references to *translate* a user's existing
workflow into this one.

## Facts that prevent broken work

- **Everything is millimeters. Z is up. The build plate is XY at z = 0.** STL/OpenSCAD
  are unitless and slicers assume mm — a model authored in "inches" prints 25.4× too
  small. Sit the finished part on the bed (min z = 0) so the slicer doesn't have to.
- **A printable solid must be watertight + 2-manifold with outward normals.** OpenSCAD
  CSG (union/difference/intersection) produces this *by construction*; downloaded or
  mesh-edited models may not — always run `mesh_tool.py info FILE` before slicing.
- **The OpenSCAD CLI defaults `.stl` to ASCII**, not binary (a real, long-standing quirk:
  the GUI defaults to binary, the command line to ASCII). ASCII STL is ~3× larger. The
  bundled `render.sh` forces **binary** (`--export-format binstl`); if you call `openscad`
  directly and want small files, pass `--export-format binstl` yourself.
- **Prefer 3MF over STL for Bambu.** 3MF carries mm units, color, materials, and per-object
  settings, is smaller, and is *required* for AMS multicolor. Emit STL only for legacy tools.
- **The Manifold backend is now default** in OpenSCAD nightlies (since 2025-08-17) and is
  dramatically faster for booleans; older builds (incl. 2021.01) use CGAL. `render.sh`
  auto-passes `--backend=manifold` when the build supports it. (The old `--enable=manifold`
  was removed; the selector is `--backend=manifold|cgal`.)
- **Print-fit clearances are printer-specific — never hardcode blindly.** Good FDM starting
  points: ~0.1 mm tight/press, ~0.2 mm snug, ~0.3–0.4 mm sliding/loose. Drive every mating
  gap from ONE `clearance` variable and tell the user to print a tolerance test once.
- **Design against gravity:** unsupported overhangs ≤ ~45° from vertical (modern printers
  reach ~50–70°), unsupported bridges ≤ ~10 mm, walls ≥ 0.8 mm (2× a 0.4 mm nozzle),
  horizontal holes as teardrops or ≥ 2 mm, chamfer build-plate edges to fight elephant's
  foot. Full numbers in `references/design-for-printing.md`.
- **FDM parts are anisotropic:** the Z (layer-to-layer) bond is only ~30–55% as strong as
  in-plane. Orient so loads run *along* layers, like wood grain — this often competes with
  minimizing supports, so surface the tradeoff instead of choosing silently.
- **Add `eps` overlap (≈0.01 mm) to boolean cuts/joins** so coincident faces don't create
  zero-thickness walls or z-fighting. Idiomatic OpenSCAD; see the templates.

## Preflight

Check the toolchain and get exact install commands for whatever is missing:

```bash
bash scripts/preflight.sh
```

It verifies OpenSCAD (+ Manifold backend), the Python mesh stack, and any slicer,
then prints per-OS install lines. You need OpenSCAD *or* the Python stack to start;
both for the full loop.

## Make a part in one command (scaffold)

Stand up a runnable parametric project — a Customizer-annotated `.scad`, a Makefile,
a parameter set, a batch grid, helper scripts, and a README:

```bash
python3 scripts/scaffold.py my-box           # -> ./my-box/
cd my-box && make                            # -> my-box.stl (needs openscad on PATH or $OPENSCAD)
python3 mesh_tool.py info my-box.stl         # confirm watertight + manifold + size
make 3mf            # my-box.3mf (preferred for Bambu)
make variants       # render every combo in variants.json into ./build/
make png            # preview (headless server: xvfb-run -a make png)
```

`scaffold.py my-thing --starter blank` gives a minimal stub instead of the box+lid example.

## Quick start — author, render, validate, iterate

The core inner loop without scaffolding:

**1. Write parametric `.scad`** (parameters at the top, geometry from small modules):

```scad
// shelf-bracket.scad — units mm, Z up, sits on bed
/* [Size] */
length = 60;      // [20:200]
height = 50;      // [20:200]
thick  = 4;       // [2:0.5:10]   plate thickness (>= 2x nozzle)
hole_d = 4.5;     // [3:0.5:8]    M4 clearance hole
/* [Quality] */
fn = 48;          // [16:8:128]
$fn = fn;
eps = 0.01;

module bracket() {

From kryptobaseddev/awesome-skills, MIT.

More from kryptobaseddev/awesome-skills

Signals

Stars
0
Forks
0
Open issues
0
Last commit (this folder)
Jun 16, 2026 (4 months ago)

From GitHub (fetched Oct 24, 2026).

Details

Version
1.0.0
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from github.com/kryptobaseddev

Cite this page

3d-parametric-models skill. Agent Mart. https://agentmart.dev/skills/kryptobaseddev-3d-parametric-models (last updated 2026-10-24)