skills/openscad/SKILL.md
Create and render OpenSCAD 3D models. Generate preview images from multiple angles, extract customizable parameters, validate syntax, and export STL files for 3D printing platforms like Printables.
npx skillsauth add goncalossilva/.agents openscadInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Create, validate, visually verify, and export OpenSCAD 3D models.
openscad executable is available on PATH (or discoverable in common locations like /Applications/OpenSCAD.app on macOS).This skill ships helper scripts under scripts/:
# Generate a single preview image
"$HOME/.agents/skills/openscad/scripts/preview.sh" model.scad output.png \
[--camera=x,y,z,rotx,roty,rotz,distance] [--size=800x600]
# Generate multi-angle previews (front, back, left, right, top, iso)
"$HOME/.agents/skills/openscad/scripts/multi-preview.sh" model.scad output_dir/
"$HOME/.agents/skills/openscad/scripts/export-stl.sh" model.scad output.stl [-D 'param=value']
"$HOME/.agents/skills/openscad/scripts/extract-params.sh" model.scad
"$HOME/.agents/skills/openscad/scripts/validate.sh" model.scad
"$HOME/.agents/skills/openscad/scripts/render-with-params.sh" model.scad params.json output.stl
"$HOME/.agents/skills/openscad/scripts/render-with-params.sh" model.scad params.json output.png
Always validate models visually after creating or modifying them:
read tool).Syntax validation alone will not catch common geometry problems (misaligned booleans, missing/floating geometry, inverted geometry, z-fighting, wrong proportions).
Put customizable parameters at the top and keep the model code below.
// Customizable parameters
wall_thickness = 2; // [1:0.5:5] Wall thickness in mm
width = 50; // [20:100] Width in mm
height = 30; // [10:80] Height in mm
rounded = true; // Add rounded corners
module main_shape() {
if (rounded) {
minkowski() {
cube([width - 4, width - 4, height - 2]);
sphere(r = 2);
}
} else {
cube([width, width, height]);
}
}
difference() {
main_shape();
translate([wall_thickness, wall_thickness, wall_thickness])
scale([1 - 2*wall_thickness/width, 1 - 2*wall_thickness/width, 1])
main_shape();
}
Parameter comment formats:
// [min:max] numeric range// [min:step:max] numeric range with step// [opt1, opt2, opt3] dropdown options// Description free-form description"$HOME/.agents/skills/openscad/scripts/validate.sh" model.scad
"$HOME/.agents/skills/openscad/scripts/multi-preview.sh" model.scad ./previews/
Use read to open each PNG in ./previews/ and confirm the model is correct.
"$HOME/.agents/skills/openscad/scripts/export-stl.sh" model.scad output.stl
# With parameter overrides:
"$HOME/.agents/skills/openscad/scripts/export-stl.sh" model.scad output.stl -D 'width=60' -D 'height=40'
Common camera angles:
--camera=0,0,0,45,0,45,200--camera=0,0,0,90,0,0,200--camera=0,0,0,0,0,0,200--camera=0,0,0,90,0,90,200Format: x,y,z,rotx,roty,rotz,distance
Typically you need:
export-stl.shSample models live under examples/.
tools
Interactive browser automation via Chrome DevTools Protocol. Use when you need to interact with web pages, test frontends, or when user interaction with a visible browser is required.
development
Design and implement distinctive, production-ready web interfaces with strong aesthetic direction. Use when asked to create or restyle web pages, components, or applications (HTML/CSS/JS, React, Vue, etc.).
documentation
Update CHANGELOG.md following Keep a Changelog (https://keepachangelog.com/en/1.1.0/)
development
Fetch and analyze Sentry issues, events, transactions, and logs. Helps agents debug errors, find root causes, and understand what happened at specific times.