OpenSCAD Design Skill
Create versioned OpenSCAD files, render previews, and compare iterations for 3D printing designs.
Workflow
- Determine the Next Version Number
Before creating a new .scad file, find existing versions:
.claude/skills/openscad/scripts/version-scad.sh <name>
This returns the next version number and filename. For example, if piano_001.scad exists, it returns piano_002 .
- Create the Versioned .scad File
Write the OpenSCAD code to the versioned filename (e.g., piano_002.scad ).
- Render the Preview
.claude/skills/preview-scad/scripts/render-scad.sh <name><version>.scad --output <name><version>.png
This creates a PNG with the matching version number (e.g., piano_002.png ).
- Compare with Previous Version
Read both the current and previous PNG images to visually compare:
-
Current: piano_002.png
-
Previous: piano_001.png (if exists)
Evaluate what changed and whether the new version better matches requirements.
- Iterate
If the design needs improvement:
-
Analyze what's wrong
-
Create the next version (e.g., piano_003.scad )
-
Render and compare again
File Naming Convention
<model-name><version>.scad -> <model-name><version>.png
Examples:
-
phone_stand_001.scad -> phone_stand_001.png
-
phone_stand_002.scad -> phone_stand_002.png
-
gear_001.scad -> gear_001.png
Use underscores in model names, and always use 3-digit zero-padded version numbers.
Example Session
User asks for a piano model:
Check for existing versions:
.claude/skills/openscad/scripts/version-scad.sh piano
Output: piano_001 (no existing files)
Write piano_001.scad with initial design
Render preview:
.claude/skills/preview-scad/scripts/render-scad.sh piano_001.scad --output piano_001.png
Read piano_001.png to inspect the result
If improvements needed, create piano_002.scad , render to piano_002.png
Read both piano_001.png and piano_002.png to compare iterations
Render Options
See /preview-scad for full rendering options:
-
--size <WxH>
-
Image dimensions (default: 800x600 )
-
--camera <x,y,z,tx,ty,tz,d>
-
Camera position
-
--colorscheme <name>
-
Color scheme (default: Cornfield )
-
--render
-
Full render mode (slower, more accurate)
-
--preview
-
Preview mode (faster, default)
Next Steps
Once the design looks correct in PNG previews:
-
Export to STL: Use /export-stl to convert the final version to STL format
-
The export includes geometry validation to catch printability issues
Full Pipeline
/openscad → /preview-scad → /export-stl (with validation)
Tips
-
Start simple and add complexity in iterations
-
Use meaningful model names that describe the object
-
Keep each version's changes focused on specific improvements
-
Document what changed between versions in your response to the user
-
Only export to STL once the preview looks correct
-
Always run slice-check before considering a model print-ready