Agent skill

Build123d

by rawwerks in rawwerks/VibeCAD

CAD modeling with build123d Python library. An agent skill from rawwerks/VibeCAD.

MITAuto-check: notesGame Development

Install Build123d

skills CLI
$ npx skills add rawwerks/VibeCAD --skill build123d -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install rawwerks/VibeCAD build123d --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/rawwerks/VibeCAD.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/build123d/skills/build123d .claude/skills/build123d && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
build123d
GitHub stars
121
Token cost
~1.4k tokens
SKILL.md length
258 words
Files
41 (incl. scripts, references)
Skills in repo
4
Repo updated
First seen
Licence
MIT

At a glance

CAD modeling with build123d Python library. An agent skill from rawwerks/VibeCAD.

  • Creating 3D models
  • SKILL.md covers Zero-Setup with uv, Critical: Imports, Quick Start Example and Geometry Inspection (Optional), plus 7 more sections
  • Runs Python scripts from its folder; calls uvx, bunx and curl; reaches github.com and astral.sh
  • Exporting to GLB/STEP/STL

What it does

Build123d is an agent skill from rawwerks/VibeCAD. CAD modeling with build123d Python library. Use when creating 3D models, exporting to GLB/STEP/STL, or doing boolean operations (union, difference, intersection). Triggers on: CAD, 3D modeling, sphere, box, cylinder, mesh export, GLB, STEP, STL, solid modeling, parametric design, threads, fasteners, bolts, nuts, screws, gears, pipes, flanges, bearings, bdwarehouse, spur gear, helical gear, bevel gear, planetary gear, ring gear, cycloid gear, rack and pinion, gggears, herringbone, gear mesh, gear train.

Its SKILL.md is about 1.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 42 other files, including scripts and reference files (for example `references/advanced-patterns.md`, `references/bd-warehouse-reference.md` and `references/examples/01_simple_shapes.py`).

It sits in Game Development, covering 3D graphics and WebGL. It works with Python. The repository describes itself as: A library of Claude Code skills for teaching coding agents how to use various CAD tools. The licence is MIT.

When your agent uses it

  • Creating 3D models
  • Exporting to GLB/STEP/STL
  • Doing boolean operations (union
  • Parametric design

Example prompts

  • “/build123d”

Requirements

  • Python 3

What it can do on your machine

Read from SKILL.md and the folder at commit 609e888. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (Python, from the files we listed), which the agent can run.

    Shell commands in SKILL.md call:

    • uvx
    • bunx
    • curl
    • sh

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • github.com
    • astral.sh

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Build123d loads about 1.4k tokens when it runs, and up to ~22k if it reads all its reference files. Until then it costs about 130 tokens; SKILL.md has 258 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~130
When it runs · the whole SKILL.md, loaded when a task matches
~1.4k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~22k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePipes a well-known installer script into a shellSKILL.md:20
    curl -LsSf https://astral.sh/uv/install.sh | sh

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from rawwerks/VibeCAD at commit 609e888, republished under its MIT licence (© rawwerks). 258 words, ~1,391 tokens.

Download SKILL.mdSave it as .claude/skills/build123d/SKILL.md (or your agent's skills folder). This skill also uses 40 other files; get the full folder from GitHub.
name
build123d
description
CAD modeling with build123d Python library. Use when creating 3D models, exporting to GLB/STEP/STL, or doing boolean operations (union, difference, intersection). Triggers on: CAD, 3D modeling, sphere, box, cylinder, mesh export, GLB, STEP, STL, solid modeling, parametric design, threads, fasteners, bolts, nuts, screws, gears, pipes, flanges, bearings, bd_warehouse, spur gear, helical gear, bevel gear, planetary gear, ring gear, cycloid gear, rack and pinion, gggears, herringbone, gear mesh, gear train.

build123d CAD Modeling

Zero-Setup with uv

No installation required. Run any build123d script with:

bash
uvx --from build123d python script.py

This automatically downloads build123d and runs your script. First run takes ~30s, subsequent runs are instant.

Install uv (if not already installed):

bash
curl -LsSf https://astral.sh/uv/install.sh | sh

Critical: Imports

All exports are in the main module:

python
from build123d import Sphere, Box, Cylinder, export_gltf, export_step, export_stl

NEVER use from build123d.exporters import ... - this module does not exist.

Quick Start Example

python
#!/usr/bin/env python3
from build123d import Sphere, Box, export_gltf, Pos

# Create shapes
sphere = Sphere(radius=20)
box = Pos(15, 0, 0) * Box(10, 10, 10)

# Boolean union
result = sphere + box

# Export to GLB (for web viewers, Three.js)
export_gltf(result, "./model.glb", binary=True)
print("Exported model.glb")

Run it:

bash
uvx --from build123d python my_model.py

Geometry Inspection (Optional)

To inspect geometry properties, add this to your script:

python
def inspect(shape):
    bbox = shape.bounding_box()
    print(f"Size: {bbox.max.X - bbox.min.X:.1f} x {bbox.max.Y - bbox.min.Y:.1f} x {bbox.max.Z - bbox.min.Z:.1f}")
    print(f"Volume: {shape.volume:.1f}")
    print(f"Faces: {len(shape.faces())}, Edges: {len(shape.edges())}")

inspect(result)

A full inspection harness is available in scripts/harness.py for advanced use.

Quick Reference

Shapes
python
Box(length, width, height)
Sphere(radius=20)
Cylinder(radius=10, height=25)
Cone(bottom_radius=15, top_radius=5, height=20)
Torus(major_radius=20, minor_radius=5)
Boolean Operations
python
union = shape1 + shape2           # Fuse
difference = shape1 - shape2      # Cut
intersection = shape1 & shape2    # Common volume
Positioning
python
from build123d import Pos, Rot
moved = Pos(x, y, z) * shape      # Translate
rotated = Rot(rx, ry, rz) * shape # Rotate (degrees)
Export
python
export_gltf(shape, "./out.glb", binary=True)  # GLB for web
export_step(shape, "./out.step")              # CAD interchange
export_stl(shape, "./out.stl")                # 3D printing

Examples by Capability

21 runnable examples in references/examples/:

Basics (01-08)
  • 01_simple_shapes.py - Box, Sphere, Cylinder, Cone, Torus
  • 02_boolean_operations.py - Union (+), difference (-), intersection (&)
  • 03_export_formats.py - GLB, STEP, STL, BREP export
  • 04_positioning.py - Pos(), Rot() transforms
  • 05_sketch_extrude.py - 2D sketch to 3D solid
  • 06_fillet_chamfer.py - Edge rounding and beveling
  • 07_csg_classic.py - Classic CSG operations
  • 08_hole_pattern.py - GridLocations for hole patterns
3D Operations
  • loft.py - Connect multiple profiles
  • vase.py - Revolve + edge filtering + shelling
  • tea_cup.py - Revolve + sweep for handle
Advanced Techniques
  • roller_coaster.py - Helix + Spline curves
  • packed_boxes.py - pack() algorithm
  • toy_truck.py - Joints for assembly
  • dual_color_3mf.py - Multi-color 3MF export

Run any example:

bash
uvx --from build123d python references/examples/01_simple_shapes.py

Advanced Patterns

For builder mode, edge filtering, loft, sweep, revolve: See references/advanced-patterns.md

bd_warehouse - Parametric Parts Library

For threads, fasteners, simple gears, pipes, flanges, and bearings: See references/bd-warehouse-reference.md

bash
uvx --from build123d --with bd_warehouse python script.py

Examples: 09_bd_warehouse_threads.py through 14_bd_warehouse_bearings.py

gggears - Advanced Gear Generation

For advanced parametric gears (spur, helical, bevel, planetary, cycloid, racks): See references/gggears-reference.md

bash
uvx --from build123d --with "gggears @ git+https://github.com/GarryBGoode/gggears" python script.py

Examples: 15_gggears_spur.py through 20_gggears_rack.py

Quick example:

python
from gggears import SpurGear, UP
from build123d import export_gltf

gear1 = SpurGear(number_of_teeth=12, module=2.0, height=10.0)
gear2 = SpurGear(number_of_teeth=24, module=2.0, height=10.0)
gear1.mesh_to(gear2, target_dir=UP)

assembly = gear1.build_part() + gear2.build_part()
export_gltf(assembly, "./gears.glb", binary=True)

Post-Processing Pipeline

After exporting GLB, you can optimize and verify:

bash
# 1. Optimize for web delivery (optional)
bunx @gltf-transform/cli optimize model.glb optimized.glb --compress draco

# 2. Render to image for visual verification
bunx render-glb model.glb preview.png

See the gltf-transform and render-glb plugins for full documentation.

Source Repositories

© rawwerks, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 40 other files (scripts, references) in plugins/build123d/skills/build123d of rawwerks/VibeCAD.

  • SKILL.md
  • references/advanced-patterns.md
  • references/bd-warehouse-reference.md
  • references/examples/01_simple_shapes.py
  • references/examples/02_boolean_operations.py
  • references/examples/03_export_formats.py
  • references/examples/04_positioning.py
  • references/examples/05_sketch_extrude.py
  • references/examples/06_fillet_chamfer.py
  • references/examples/07_csg_classic.py
  • references/examples/08_hole_pattern.py
  • references/examples/09_bd_warehouse_threads.py
  • references/examples/10_bd_warehouse_fasteners.py
  • references/examples/11_bd_warehouse_gears.py
  • references/examples/12_bd_warehouse_pipes.py
  • references/examples/13_bd_warehouse_flanges.py
  • references/examples/14_bd_warehouse_bearings.py
  • references/examples/15_gggears_spur.py
  • references/examples/16_gggears_helical.py
  • … and 22 more

Open the folder on GitHubat commit 609e888

Compare with similar skills

Build123d next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Build123d compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Build123d this skillrawwerks/VibeCAD121—~1.4kAutomated safety check: NotesMIT
Image to Three.js Modelimg2threejs/img2threejs18k1 repos~8.2kAutomated safety check: PassApache-2.0
Bambu Studio AIheyixuan2/bambu-studio-ai223—~4.3kAutomated safety check: PassMIT
Text To 3D AssetLaurentiuGabriel/unreal-game-assets-creation-skill148—~2.1kAutomated safety check: PassNone
SimplecadapiPhySpace/SimpleCADAPI142—~2.5kAutomated safety check: PassApache-2.0
Blender Web Export Pipelinefreshtechbro/claudedesignskills1k—~4.2kAutomated safety check: PassMIT

Similar skills

  • Image to Three.js Model

    img2threejs/img2threejs

    Rebuilds the object in a reference image as a procedural, animation-ready Three.js model written entirely in code, using staged sculpting with quality checks.

    18k GitHub starsUsed in 1 repo~8.2k tokens
    Game DevelopmentAuto-check passed
  • Bambu Studio AI

    heyixuan2/bambu-studio-ai

    End-to-end 3D printing for Bambu Lab printers. An agent skill from heyixuan2/bambu-studio-ai.

    223 GitHub stars~4.3k tokensUpdated 21 days ago
    Game DevelopmentAuto-check passed
  • Text To 3D Asset

    LaurentiuGabriel/unreal-game-assets-creation-skill

    Generate a game-ready 3D asset by running the local AI pipeline sequentially: Fooocus (SDXL text-to-image) - Hunyuan3D-2 (image-to-textured-GLB) - optional Blender FBX convert + Unreal import.

    148 GitHub stars~2.1k tokensUpdated 2 mo ago
    Game DevelopmentAuto-check passed
  • Simplecadapi

    PhySpace/SimpleCADAPI

    Build, assemble, inspect, reconstruct, and export parametric CAD models with the SimpleCADAPI Python SDK.

    142 GitHub stars~2.5k tokensUpdated 8 days ago
    Game DevelopmentAuto-check passed
  • Blender Web Export Pipeline

    freshtechbro/claudedesignskills

    Exports and optimizes Blender 3D models and animations for the web as glTF, covering batch Python scripting, texture baking, decimation and LOD generation for Three.js and Babylon.js.

    1k GitHub stars~4.2k tokensUpdated 10 mo ago
    Game DevelopmentAuto-check passed
  • Gen Part

    partcad/partcad

    Generate a PartCAD part from a natural-language description (and optional reference images/requirements) by authoring a CAD script and validating it with the PartCAD CLI.

    503 GitHub stars~1.9k tokensUpdated yesterday
    Game DevelopmentAuto-check passed

More from rawwerks/VibeCAD

  • Model Compare

    rawwerks/VibeCAD

    Compare 3D CAD models using boolean operations (IoU, Dice, precision/recall).

    121 GitHub stars~1.4k tokensUpdated 9 mo ago
    Auto-check passed
  • Gltf Transform

    rawwerks/VibeCAD

    Optimize and post-process GLB/glTF 3D models. An agent skill from rawwerks/VibeCAD.

    121 GitHub stars~825 tokensUpdated 9 mo ago
    Auto-check passed
  • Render Glb

    rawwerks/VibeCAD

    Render GLB 3D models to PNG images for visual verification. An agent skill from rawwerks/VibeCAD.

    121 GitHub stars~527 tokensUpdated 9 mo ago
    Auto-check passed

Works with

Questions about Build123d

What does Build123d do?

CAD modeling with build123d Python library. An agent skill from rawwerks/VibeCAD. Build123d is an agent skill from rawwerks/VibeCAD. CAD modeling with build123d Python library.

When should I use Build123d?

Build123d fits situations like: creating 3D models; exporting to GLB/STEP/STL; doing boolean operations (union; parametric design.

How do I install Build123d in Claude Code?

Run `npx skills add rawwerks/VibeCAD --skill build123d -a claude-code`. Or copy the skill folder (plugins/build123d/skills/build123d in rawwerks/VibeCAD) into .claude/skills/build123d in your project. Claude Code loads it when a task matches its description.

How do I install Build123d in Codex?

Run `npx skills add rawwerks/VibeCAD --skill build123d -a codex`. Or copy the skill folder (plugins/build123d/skills/build123d in rawwerks/VibeCAD) into .agents/skills/build123d in your project. Codex loads it when a task matches its description.

Can I use Build123d in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add rawwerks/VibeCAD --skill build123d -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/build123d, .gemini/skills/build123d, .github/skills/build123d and .opencode/skills/build123d in your project.

What does Build123d need to run?

Going by SKILL.md and its folder, Build123d needs Python for the scripts in its folder and the command-line tools its instructions call (uvx, bunx, curl and sh). Our summary lists: Python 3.

Does Build123d access the network?

SKILL.md names 2 domains. In commands or code: github.com and astral.sh; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.

Is Build123d safe to install?

Our automated static check of SKILL.md found notes only (pipes a well-known installer script into a shell), nothing it rates as a warning. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Build123d use?

Build123d is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Build123d use?

About 1.4k tokens (SKILL.md is roughly 5.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 21k tokens, read only when the agent opens those files.

What are the alternatives to Build123d?

Skills that share tags, products or a category with Build123d: Image to Three.js Model (img2threejs/img2threejs, 18k stars), Bambu Studio AI (heyixuan2/bambu-studio-ai, 223 stars), Text To 3D Asset (LaurentiuGabriel/unreal-game-assets-creation-skill, 148 stars) and Simplecadapi (PhySpace/SimpleCADAPI, 142 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Build123d?

rawwerks (a GitHub user) maintains it in rawwerks/VibeCAD, which has 121 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on January 5, 2026.

Source: rawwerks/VibeCAD on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.