KS
Killer-Skills

vibe-model — how to use vibe-model how to use vibe-model, vibe-model setup guide, vibe-model alternative, vibe-model vs OpenSCAD, parametric 3D modeling with OpenSCAD, VibeCad Studio model creation

v1.0.0
GitHub

About this Skill

Perfect for CAD-focused Agents needing parametric 3D modeling capabilities with OpenSCAD vibe-model is a skill for creating and modifying parametric 3D models using OpenSCAD, compiling to STL via openscad-wasm for VibeCad Studio

Features

Creates parametric 3D models using OpenSCAD
Compiles models to STL via openscad-wasm
Supports auto-discovery of models in VibeCad Studio
Uses a specific file structure with src/models/<slug>/model.scad
Allows modification of existing models for customization

# Core Topics

jehna jehna
[0]
[0]
Updated: 3/7/2026

Quality Score

Top 5%
30
Excellent
Based on code quality & docs
Installation
SYS Universal Install (Auto-Detect)
Cursor IDE Windsurf IDE VS Code IDE
> npx killer-skills add jehna/vibecad-studio/vibe-model

Agent Capability Analysis

The vibe-model MCP Server by jehna is an open-source Categories.community integration for Claude and other AI agents, enabling seamless task automation and capability expansion. Optimized for how to use vibe-model, vibe-model setup guide, vibe-model alternative.

Ideal Agent Persona

Perfect for CAD-focused Agents needing parametric 3D modeling capabilities with OpenSCAD

Core Value

Empowers agents to create and modify parametric 3D models for VibeCad Studio using OpenSCAD, leveraging .scad files and compiling to STL via openscad-wasm for seamless integration with browser-based parametric CAD workbenches

Capabilities Granted for vibe-model MCP Server

Creating custom 3D models for VibeCad Studio
Modifying existing parametric models using OpenSCAD
Automating 3D model generation for specific use cases

! Prerequisites & Limits

  • Requires OpenSCAD knowledge
  • Limited to VibeCad Studio and OpenSCAD-compatible models
  • Compilation to STL via openscad-wasm required
Project
SKILL.md
4.5 KB
.cursorrules
1.2 KB
package.json
240 B
Ready
UTF-8

# Tags

[No tags]
SKILL.md
Readonly

VibeCad Model Author

Create or modify parametric 3D models for VibeCad Studio using OpenSCAD.

Project Context

VibeCad Studio is a browser-based parametric CAD workbench. Models are written in OpenSCAD (.scad files) and compiled to STL via openscad-wasm. Models are auto-discovered — no manual registration needed.

Model File Structure

Each model lives in src/models/<slug>/ with a single file:

src/models/<slug>/model.scad

scad
1// Description shown on the home page gallery 2length = 40; // [10:100] 3width = 30; // [5:80] 4height = 20; // [5:60] 5 6cube([length, width, height]);

Conventions:

  • First line: // comment becomes the model description for the gallery
  • Parameters: name = value; // [min:max] or name = value; // [min:step:max] become UI sliders
  • The folder name becomes the slug, which is auto-converted to a display name (example-boxExample Box)

Key Conventions

  • Parameter names should be snake_case and descriptive (e.g. wall_thickness, not wt)
  • All parameter values are numbers
  • Use $fn for controlling curve resolution (32 is a good default)
  • Keep models manifold (watertight) for 3D printing compatibility

OpenSCAD Quick Reference

3D Primitives

scad
1cube([x, y, z]); // box 2cube([x, y, z], center=true); // centered box 3sphere(r=radius, $fn=64); // sphere 4cylinder(h=height, r=radius, $fn=32); // cylinder 5cylinder(h=height, r1=bot, r2=top, $fn=32); // cone/frustum

2D Primitives (for extrusion)

scad
1square([w, h]); 2square([w, h], center=true); 3circle(r=radius, $fn=64); 4polygon(points=[[x1,y1], [x2,y2], ...]); 5text("hello", size=10);

Transformations

scad
1translate([x, y, z]) { ... } 2rotate([rx, ry, rz]) { ... } // degrees 3scale([sx, sy, sz]) { ... } 4mirror([x, y, z]) { ... } 5color("red") { ... } 6color([r, g, b, a]) { ... }

Boolean Operations

scad
1union() { a(); b(); } // combine shapes 2difference() { a(); b(); } // subtract b from a 3intersection() { a(); b(); } // keep overlap only

Extrusions

scad
1linear_extrude(height=h, twist=deg, scale=s) { 2d_shape(); } 2rotate_extrude(angle=360, $fn=64) { 2d_profile(); }

Hull & Minkowski

scad
1hull() { a(); b(); } // convex hull 2minkowski() { a(); b(); } // Minkowski sum (rounding)

Modules (reusable components)

scad
1module rounded_box(size, radius) { 2 minkowski() { 3 cube([size[0]-2*radius, size[1]-2*radius, size[2]/2]); 4 cylinder(r=radius, h=size[2]/2, $fn=32); 5 } 6} 7 8rounded_box([40, 30, 20], 3);

Loops & Conditionals

scad
1for (i = [0:5]) { translate([i*10, 0, 0]) cube(5); } 2for (a = [0:60:300]) { rotate([0, 0, a]) translate([20, 0, 0]) sphere(3); } 3if (wall > 0) { difference() { outer(); inner(); } }

Useful Patterns

scad
1// Hollow box (shell) 2difference() { 3 cube([outer_w, outer_d, outer_h]); 4 translate([wall, wall, wall]) 5 cube([outer_w - 2*wall, outer_d - 2*wall, outer_h]); 6} 7 8// Rounded edges via minkowski 9minkowski() { 10 cube([w - 2*r, d - 2*r, h/2]); 11 cylinder(r=r, h=h/2, $fn=32); 12} 13 14// Circular pattern 15for (i = [0:n-1]) { 16 rotate([0, 0, i * 360/n]) 17 translate([radius, 0, 0]) 18 child_shape(); 19}

Workflow

When creating a new model:

  1. Read 1-2 existing models for reference patterns
  2. Create the folder: mkdir -p src/models/<slug>/
  3. Write src/models/<slug>/model.scad
  4. Run node scripts/verify-model.js src/models/<slug>/model.scad to verify
  5. If errors, fix and re-run until exit code 0

When modifying an existing model:

  1. Read the current model.scad
  2. Make the requested changes
  3. Run node scripts/verify-model.js src/models/<slug>/model.scad to verify

Tips

  • Start simple, iterate. A basic cube is better than a broken complex shape.
  • OpenSCAD error messages include line numbers — use them to pinpoint issues.
  • minkowski() is expensive — use it sparingly and with low-poly shapes.
  • $fn controls facet count: higher = smoother but slower. 32 for cylinders, 64 for spheres.
  • difference() subtracts all children after the first from the first child.
  • Use center=true on primitives to simplify positioning.
  • The dev server supports HMR — model changes appear live in the browser.

Existing Models for Reference

ModelSlugTechniques
Example Boxexample-boxminkowski rounding, difference for hollow interior, parametric dimensions

Related Skills

Looking for an alternative to vibe-model or building a Categories.community AI Agent? Explore these related open-source MCP Servers.

View All

widget-generator

Logo of f
f

widget-generator is an open-source AI agent skill for creating widget plugins that are injected into prompt feeds on prompts.chat. It supports two rendering modes: standard prompt widgets using default PromptCard styling and custom render widgets built as full React components.

149.6k
0
Design

chat-sdk

Logo of lobehub
lobehub

chat-sdk is a unified TypeScript SDK for building chat bots across multiple platforms, providing a single interface for deploying bot logic.

73.0k
0
Communication

zustand

Logo of lobehub
lobehub

The ultimate space for work and life — to find, build, and collaborate with agent teammates that grow with you. We are taking agent harness to the next level — enabling multi-agent collaboration, effortless agent team design, and introducing agents as the unit of work interaction.

72.8k
0
Communication

data-fetching

Logo of lobehub
lobehub

The ultimate space for work and life — to find, build, and collaborate with agent teammates that grow with you. We are taking agent harness to the next level — enabling multi-agent collaboration, effortless agent team design, and introducing agents as the unit of work interaction.

72.8k
0
Communication