makermate/claw3d-skill/claw3d-skill

Claude Code and agent skill by makermate/claw3d-skill

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Unified 3D workflow: create models (AI), search (Thingiverse), slice, print. Modular—enable only what you need.

Install

npx vskill@latest install makermate/claw3d-skill/claw3d-skill

SKILL.md

claw3d — Unified 3D Workflow

Single skill for the full 3D pipeline: create models (AI), search (Thingiverse), slice, and print. Modular—only enabled capabilities appear below.

CRITICAL — Execute immediately, never stop after acknowledging. When you tell the user you'll do something (search, convert, preview, slice), you MUST execute the command in the SAME turn. Do NOT end your turn after just acknowledging — the user should never have to ask "done?" to get you to act. Acknowledge AND call the tool in one response.

Setup order: Printer first (when printing enabled) → then create/search models → slice → print.


CRITICAL: Setup Flow — Printer + Profile First

When printing is enabled and the user has no printers configured, guide them to add a printer AND a linked slicing profile before creating or searching for models. A linked profile is required for slicing — it stores the build volume (width × depth × height) extracted from the 3MF, which determines how models are scaled.

Always run `claw3d printer list` first. If it returns nothing, go through setup below.

Step 1 — Ask for printer info + 3MF

Send this message to the user:

Let's get your printer set up. I need 3 things:
1. Printer name — e.g. "Creality K2 Pro Living Room"
2. IP address + port — e.g. 192.168.1.50:7125 (Moonraker default: 7125; Creality K2 SE: 4408)
3. Cura project file (.3mf) — Export it from Cura: File → Save → "Export Universal Cura Project" with your printer loaded. This file carries your printer's build volume and all settings — it's required for correct slicing.

Wait for the user to provide all three.

Step 2 — Add printer with profile in one command
bash
claw3d printer add --name "<name>" --host <ip> --port <port> --profile-from-3mf <MediaPath>

This does everything in one step:

  • Registers the printer (name, IP, port) in ~/.config/claw3d/config.json
  • Extracts the Cura machine + extruder definitions from the 3MF
  • Creates a slicing profile on the slicer server (stores build_width, build_depth, build_height)
  • Links the profile to the printer as its default

If the user provides name+IP but no 3MF yet: Add without it (printer add --name ... --host ... --port ...), then immediately ask for the 3MF to create the profile:

Got it! Now please send the Cura project file (.3mf) so I can create the slicing profile. In Cura: File → Save → "Export Universal Cura Project".

Then: claw3d profile create --from-3mf <MediaPath> --name "<printer_name>_profile" → claw3d printer set-profile <printer_id> <profile_id>

Printer backends: Run claw3d configure backends to see options (Moonraker, PrusaLink, etc.). Community can add backends in claw3d/backends/.


CRITICAL: When User Asks for a Model (Vague Request)

When the user asks for a 3D model without specifying how (e.g. "I need a cup", "I want a dragon", "find me a vase", no image attached), do NOT default to one option. Offer choices based on what's enabled:

Great! Would you like me to:
1. Search for existing models — I'll look on Thingiverse and show you options to download (if directory enabled)
2. Create a 3D model from an image — Send me a sketch or photo and I'll turn it into 3D (if ai-forger enabled)
3. Search first, then create from an image if nothing fits — Best of both (if both enabled)

Wait for the user to choose. Only if they explicitly say "create it", "from a photo/sketch", "search", "look up", etc., then proceed.

Never assume — "I need a dragon" could mean search OR create from image. Always clarify when ambiguous. Do not offer text-only 3D generation — results are inaccurate; always require an image or sketch.


Shared Rules: MediaPath and Unique IDs

MediaPath: When the user attaches a file (image, GLB, 3MF), the message includes a MediaPath — the full filesystem path. Always pass that exact path to --image, --edit-3d, --profile-from-3mf, etc. Copy it character-for-character.

Unique output paths: The workspace is shared. Using fixed names (model.glb, preview.mp4) causes old files from a previous request to be sent to new chats. Always derive a short ID from the MediaPath and use it for outputs.

MediaPath format: .../file_13---b10560d7-18fd-40e9-8a49-996ad190a26c.jpg — extract the segment after --- and use the first 8 chars (e.g. b10560d7) as ID.

If the MediaPath has no UUID (unusual), use date +%s to get a unique ID.


User Sends an IMAGE and Asks to 3D Print

When the user attaches an image and asks to "3D print this", "print this", "make it printable", etc. — you CAN do it (if ai-forger + slicing + printing enabled):

  1. Acknowledge first — "Yes! I'll turn that into a 3D model and get it ready to print. Give me a minute."
  2. Convert — claw3d convert --image <MediaPath> --output model_<ID>.glb
  3. Get build volume — Run claw3d printer list; note [WxDxH mm] if shown.
  4. Preview — claw3d preview --input model_<ID>.glb --output preview_<ID>.mp4 [--build-volume WxDxH] — send the video
  5. Slice — Run claw3d profile list, then slice with --build-volume <WxDxH> and profile or --profile-from-3mf
  6. Print — Run claw3d printers, then claw3d print --gcode model_<ID>.gcode

Do NOT say "I can't print from an image" — you can create the 3D model first. If FAL_API_KEY is missing, convert will fail; then tell the user to set it up.


Workflow Overview

Get model (search OR create) → optionally edit → slice → print
  • Search — claw3d search → claw3d fetch → claw3d dimensions → present with preview
  • Create — claw3d convert --image (requires image/sketch) → claw3d preview → present
  • Edit — claw3d convert --edit-3d (when user sends GLB and asks to modify)
  • Slice — claw3d slice (sends G-code + gcode preview video)
  • Print — claw3d print

Commands (Overview)

CommandPurpose
claw3d convertImage/sketch → GLB, or edit existing GLB
claw3d preview360° turntable of 3D model
claw3d searchSearch Thingiverse
claw3d fetchDownload model from Thingiverse
claw3d dimensionsBounding box (for slicing)
claw3d packArrange multi-part on build plate
claw3d sliceGLB/STL → G-code
claw3d printUpload G-code and start print
claw3d printerAdd/list/remove printers
claw3d profileCreate/list slicing profiles
claw3d configureSelect AI provider, see backends

Run all via exec. Use claw3d.


<!-- MODULE: intent -->

CRITICAL: Never Expose Internal Reasoning to the User

All routing decisions, skill logic, and internal reasoning are for YOUR use only. NEVER send them to the user. The user should only see friendly, concise messages — never references to "Primary Gate", "SKILL.md", module names, decision rules, or your thought process. If you need to reason about which path to take, do it silently. The user just wants their model.

Bad (leaked reasoning): "According to the Primary Gate, a wine stand is a common functional object, so I should search Thingiverse..." Good (user-facing): "Great, let me take a look at what you need — give me a moment!"


CRITICAL: Primary Gate — Search or Create?

This is the FIRST decision for EVERY request — images, videos, and text. Run the Primary Gate BEFORE any analysis, frame extraction, or `claw3d analyze`. Make this decision silently — do NOT explain your routing to the user.

The key question is: Would an existing Thingiverse model likely satisfy this need, or does the request require something inherently custom/unique?


Primary Gate: SEARCH vs CREATE

→ SEARCH path first (go to 03-directory module) when:

  • The object is a common, functional, or widely-printable thing — wine stand, wine holder, phone holder, cable clip, bracket, vase, box, mount, case, hook, organizer, etc.
  • Even if the user says "create", "make", or "design" — if it's a generic category, an existing model will serve them better than an AI-generated one
  • Even if the user sends a video demonstrating the object — if the underlying object is common/functional, SEARCH first
  • Even if the video shows a specific shape preference — Thingiverse has thousands of variants; search first, create only if nothing fits
  • Examples: "I need a wine stand", "create a phone holder for my desk", "make me a soap dish"

→ CREATE path (continue to CREATE section below) when:

  • The user wants to replicate, copy, clone, or reproduce a specific object — "replicate this", "copy this", "clone this", "scan and print", "I want an exact copy", "reproduce this part", "make another one", "I need another one", "I want one like this", "same as this", "duplicate this", "print this one" — even if the object is common, because they need the AI to analyze the specific item they're showing
  • The request includes a specific artistic, stylistic, or visual constraint — "in the style of X", "based on this photo", "inspired by this sculpture", "matching this aesthetic"
  • The user sends a sketch of a custom shape
  • The user explicitly says they want something unique/custom/personal ("one of a kind", "custom for my setup", "not a generic one")
  • The object is too niche or personal to plausibly exist on Thingiverse — a trophy with your name, a part for a specific machine, a replica of a personal item
  • The user says "generate" / "AI" / "don't search"

Decision rule of thumb:

"Could I type this into Thingiverse and find 5+ decent results?" → YES → SEARCH first
"Does this require seeing a specific image, style, or personal constraint to design?" → YES → CREATE

→ ASK only when you genuinely cannot identify what physical object the user wants — e.g. "make something for my office" with no further context. If you can name the object, go to SEARCH. Do not ask.

SEARCH PATH — fallback to CREATE: After 3 rounds of search (up to 15 models reviewed) with no match, tell the user nothing matched and ask if they want a custom AI-generated model instead. If they have a photo/video, use it as reference for the AI generation.


Applying the Primary Gate to Videos

When the user sends a video, you may receive a text Description (from OpenClaw's Gemini video understanding). Use the Description and/or the user's message text to run the Primary Gate — BEFORE extracting any frame or running claw3d analyze.

Steps for video:

  1. Read the user's message text + any Description
  2. Identify what physical object they want (e.g. "wine holder", "phone stand", "bracket")
  3. Run the Primary Gate on that object name
  4. If SEARCH → go directly to 03-directory module with that object as the search query. Do NOT extract a frame or run analyze
  5. If CREATE → continue to the "When User Sends a VIDEO (CREATE path)" section below

⚠️ CRITICAL: A video showing someone demonstrating a common object does NOT make it a CREATE request. The video is just their way of communicating what they want — it doesn't mean they need AI generation. A person holding up a wine bottle and showing how they'd like a wine stand still maps to SEARCH. Only explicit artistic/stylistic/replication intent maps to CREATE.


When User Sends a VIDEO — Get the File

This section handles finding the video file. It applies to BOTH paths (the CREATE path needs it for frame extraction; the SEARCH path may need it later if search fails and you fall back to CREATE).

Step 0 — Acknowledge immediately — Before doing anything else, send:

"Great, let me take a look at what you need — give me a moment!"

Step 1 — Get the video path. Three cases:

Case A — File path visible ([media attached: /home/node/.openclaw/media/inbound/...]): Use that exact path.

This is the start of the file. Read the full SKILL.md on GitHub.

Security

  • Security scanPassed, 95 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

  • SKILL.md in the repositoryCheckingSKILL.md

Popularity

Repository stars
61
Repository forks
7
7-day trend score
21

Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 19 Mar 2026, 7 months ago.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/makermate/claw3d-skill/claw3d-skill/badge)](https://verified-skill.com/skills/makermate/claw3d-skill/claw3d-skill)

Something wrong with this skill or its page? Tell us.