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.
CAD modeling with build123d Python library. An agent skill from rawwerks/VibeCAD.
$ npx skills add rawwerks/VibeCAD --skill build123d -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install rawwerks/VibeCAD build123d --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-srcUse ~/.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/
Install the "build123d" agent skill from https://github.com/rawwerks/VibeCAD/tree/main/plugins/build123d/skills/build123d into .claude/skills/build123d/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "build123d", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/rawwerks/VibeCAD/tree/main/plugins/build123d/skills/build123dType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add rawwerks/VibeCAD --skill build123d -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install rawwerks/VibeCAD build123d --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rawwerks/VibeCAD.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/build123d/skills/build123d .agents/skills/build123d && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "build123d" agent skill from https://github.com/rawwerks/VibeCAD/tree/main/plugins/build123d/skills/build123d into .agents/skills/build123d/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "build123d", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add rawwerks/VibeCAD --skill build123d -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install rawwerks/VibeCAD build123d --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rawwerks/VibeCAD.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/build123d/skills/build123d .cursor/skills/build123d && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "build123d" agent skill from https://github.com/rawwerks/VibeCAD/tree/main/plugins/build123d/skills/build123d into .cursor/skills/build123d/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "build123d", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/rawwerks/VibeCAD.git --path plugins/build123d/skills/build123d--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add rawwerks/VibeCAD --skill build123d -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install rawwerks/VibeCAD build123d --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rawwerks/VibeCAD.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/build123d/skills/build123d .gemini/skills/build123d && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "build123d" agent skill from https://github.com/rawwerks/VibeCAD/tree/main/plugins/build123d/skills/build123d into .gemini/skills/build123d/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "build123d", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install rawwerks/VibeCAD build123dInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add rawwerks/VibeCAD --skill build123d -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/rawwerks/VibeCAD.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/build123d/skills/build123d .github/skills/build123d && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "build123d" agent skill from https://github.com/rawwerks/VibeCAD/tree/main/plugins/build123d/skills/build123d into .github/skills/build123d/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "build123d", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add rawwerks/VibeCAD --skill build123d -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install rawwerks/VibeCAD build123d --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rawwerks/VibeCAD.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/build123d/skills/build123d .opencode/skills/build123d && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "build123d" agent skill from https://github.com/rawwerks/VibeCAD/tree/main/plugins/build123d/skills/build123d into .opencode/skills/build123d/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "build123d", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
build123dCAD 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. 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.
Read from SKILL.md and the folder at commit 609e888. It shows what the files ask for, not the result of running them.
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.
Ships 1 file in scripts/ (Python, from the files we listed), which the agent can run.
Shell commands in SKILL.md call:
uvxbunxcurlshFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
github.comastral.shFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
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.
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.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
curl -LsSf https://astral.sh/uv/install.sh | shAutomated 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.
The full file from rawwerks/VibeCAD at commit 609e888, republished under its MIT licence (© rawwerks). 258 words, ~1,391 tokens.
.claude/skills/build123d/SKILL.md (or your agent's skills folder). This skill also uses 40 other files; get the full folder from GitHub.No installation required. Run any build123d script with:
uvx --from build123d python script.pyThis automatically downloads build123d and runs your script. First run takes ~30s, subsequent runs are instant.
Install uv (if not already installed):
curl -LsSf https://astral.sh/uv/install.sh | shAll exports are in the main module:
from build123d import Sphere, Box, Cylinder, export_gltf, export_step, export_stlNEVER use from build123d.exporters import ... - this module does not exist.
#!/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:
uvx --from build123d python my_model.pyTo inspect geometry properties, add this to your script:
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.
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)union = shape1 + shape2 # Fuse
difference = shape1 - shape2 # Cut
intersection = shape1 & shape2 # Common volumefrom build123d import Pos, Rot
moved = Pos(x, y, z) * shape # Translate
rotated = Rot(rx, ry, rz) * shape # Rotate (degrees)export_gltf(shape, "./out.glb", binary=True) # GLB for web
export_step(shape, "./out.step") # CAD interchange
export_stl(shape, "./out.stl") # 3D printing21 runnable examples in references/examples/:
01_simple_shapes.py - Box, Sphere, Cylinder, Cone, Torus02_boolean_operations.py - Union (+), difference (-), intersection (&)03_export_formats.py - GLB, STEP, STL, BREP export04_positioning.py - Pos(), Rot() transforms05_sketch_extrude.py - 2D sketch to 3D solid06_fillet_chamfer.py - Edge rounding and beveling07_csg_classic.py - Classic CSG operations08_hole_pattern.py - GridLocations for hole patternsloft.py - Connect multiple profilesvase.py - Revolve + edge filtering + shellingtea_cup.py - Revolve + sweep for handleroller_coaster.py - Helix + Spline curvespacked_boxes.py - pack() algorithmtoy_truck.py - Joints for assemblydual_color_3mf.py - Multi-color 3MF exportRun any example:
uvx --from build123d python references/examples/01_simple_shapes.pyFor builder mode, edge filtering, loft, sweep, revolve:
See references/advanced-patterns.md
For threads, fasteners, simple gears, pipes, flanges, and bearings: See references/bd-warehouse-reference.md
uvx --from build123d --with bd_warehouse python script.pyExamples: 09_bd_warehouse_threads.py through 14_bd_warehouse_bearings.py
For advanced parametric gears (spur, helical, bevel, planetary, cycloid, racks): See references/gggears-reference.md
uvx --from build123d --with "gggears @ git+https://github.com/GarryBGoode/gggears" python script.pyExamples: 15_gggears_spur.py through 20_gggears_rack.py
Quick example:
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)After exporting GLB, you can optimize and verify:
# 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.pngSee the gltf-transform and render-glb plugins for full documentation.
© rawwerks, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 40 other files (scripts, references) in plugins/build123d/skills/build123d of rawwerks/VibeCAD.
Open the folder on GitHubat commit 609e888
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Build123d this skillrawwerks/VibeCAD | 121 | — | ~1.4k | Automated safety check: Notes | MIT | |
| Image to Three.js Modelimg2threejs/img2threejs | 18k | 1 repos | ~8.2k | Automated safety check: Pass | Apache-2.0 | |
| Bambu Studio AIheyixuan2/bambu-studio-ai | 223 | — | ~4.3k | Automated safety check: Pass | MIT | |
| Text To 3D AssetLaurentiuGabriel/unreal-game-assets-creation-skill | 148 | — | ~2.1k | Automated safety check: Pass | None | |
| SimplecadapiPhySpace/SimpleCADAPI | 142 | — | ~2.5k | Automated safety check: Pass | Apache-2.0 | |
| Blender Web Export Pipelinefreshtechbro/claudedesignskills | 1k | — | ~4.2k | Automated safety check: Pass | MIT |
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.
heyixuan2/bambu-studio-ai
End-to-end 3D printing for Bambu Lab printers. An agent skill from heyixuan2/bambu-studio-ai.
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.
PhySpace/SimpleCADAPI
Build, assemble, inspect, reconstruct, and export parametric CAD models with the SimpleCADAPI Python SDK.
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.
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.
rawwerks/VibeCAD
Compare 3D CAD models using boolean operations (IoU, Dice, precision/recall).
rawwerks/VibeCAD
Optimize and post-process GLB/glTF 3D models. An agent skill from rawwerks/VibeCAD.
rawwerks/VibeCAD
Render GLB 3D models to PNG images for visual verification. An agent skill from rawwerks/VibeCAD.
Works with
Categories
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.
Build123d fits situations like: creating 3D models; exporting to GLB/STEP/STL; doing boolean operations (union; parametric design.
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.
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.
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.
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.
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.
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.
Build123d is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
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.
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.
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.