CLI for converting sketches/images to 3D models and printing via Moonraker (OpenClaw skill)
Project description
claw3d
Open-source OpenClaw skill for converting sketches/images to 3D models and printing via Moonraker. Powers image-to-3D, sketch-to-print, and text-to-3D workflows.
What It Does
- Convert — Sketch/image or text prompt → 3D model (GLB) via FAL.ai (FLUX + Tripo)
- Search — Find 3D models on Thingiverse (
claw3d search "dragon") - Scale — Resize 3D model
- Slice — 3D model → G-code via CuraEngine
- Print — Upload G-code to Moonraker and start print
→ Full workflow map & architecture — coordinate systems, all flows, improvement roadmap
Install
From PyPI (recommended):
pip install claw3d
# or
uv tool install claw3d
From source (development):
cd claw3d
pip install -e .
The claw3d command is available after install.
Quick Start
# 1. Set your FAL API key
export FAL_API_KEY=your-key
# 2. Convert a sketch or prompt to 3D
claw3d convert --image sketch.png --prompt "a toy robot" --output model.glb # Sketch → Tripo
claw3d convert --prompt "a blue rocket figurine" --output model.glb # Text → image → Tripo
claw3d convert --image multiview.png --multiview --output model.glb # Multiview quad → Gemini → Hunyuan
claw3d convert --edit-3d model.glb --prompt "make it blue" --output edited.glb # 3D-to-3D: render → enhance → Hunyuan
claw3d convert --image sketch.png --no-enhance --output model.glb # Direct to Tripo (no enhance)
# Per-step model overrides (e.g. --sketch-enhance-model flux2_pro_edit)
claw3d convert --help # lists --*-model flags
# 3. Scale (optional)
claw3d scale --input model.glb --output scaled.glb --scale 0.5
# 4. Slice (requires CuraEngine API)
# Or search for models: claw3d search "dragon" --limit 5 (needs THINGIVERSE_ACCESS_TOKEN)
export CLAW3D_SLICER_URL=http://localhost:8000
claw3d slice --input scaled.glb --profile <profile_id> --output model.gcode
# Or GLB + 3MF: claw3d slice -i model.glb --profile-from-3mf settings.3mf -o model.gcode
# Run `claw3d profile list` first to get profile_id; if multiple, ask which one.
# 5. Print (requires Moonraker on LAN)
claw3d print --gcode model.gcode [--printer <id>]
# Run `claw3d printers` first; if multiple printers, ask which one.
Slicing API
claw3d uses the CuraEngine slicing API (curaengine-slicer-api). It lives in the sibling folder ../curaengine-slicer-api. With Docker Compose, the slicer runs as a companion service. Standalone:
# Run slicer (sibling folder)
cd ../curaengine-slicer-api
docker compose up -d
Then create a slicing profile via claw3d profile create --from-3mf settings.3mf --name my_printer or POST /profiles/from-3mf.
OpenClaw Skill
I have OpenClaw + Telegram. What's next? Run the setup script — it asks which skills you want:
cd claw3d
./scripts/setup-openclaw-docker.sh ../openclaw-base
- 3d-ai-forger — Convert images/text to 3D. Prompts for FAL_API_KEY.
- 3d-printing — Slice and print. Choose local or cloud slicer.
- 3d-directory — Search Thingiverse. Prompts for THINGIVERSE_ACCESS_TOKEN.
The installer prompts for API keys (FAL, Thingiverse) and writes them to .env. Use --force-recreate when starting so the gateway uses the freshly built image.
Test from scratch: docs/TEST_FROM_SCRATCH.md — cleanup, reinstall, verify claw3d search.
Full guides:
- docs/OPENCLAW_DOCKER.md — General Docker setup
- docs/INSTALL_LOCAL.md — Step-by-step install from local repo (pre-ClawHub)
Troubleshooting: If the bot says it can't convert images to 3D, see docs/TROUBLESHOOTING.md.
Manual (no Docker): Sync skills with ./scripts/sync-skills.sh
ClawHub — When published, use OpenClaw’s skill install (one-click via uv tool install claw3d).
Environment Variables
| Variable | Required | Default | Description |
|---|---|---|---|
FAL_API_KEY |
Yes | — | FAL.ai API key |
CLAW3D_SLICER_URL |
No | http://localhost:8000 |
CuraEngine API URL |
CLAW3D_PRINTER |
No | — | Default printer ip:port |
Project Structure
claw3d/ # This repo (claw3d CLI)
├── src/claw3d/ # convert, scale, slice, print, config
├── scripts/
│ ├── sync-skills.sh # Sync 3d-ai-forger + 3d-printing to workspace
│ └── setup-openclaw-docker.sh
├── reference/ # Architecture notes
├── pyproject.toml
└── README.md
curaengine-slicer-api/ # CuraEngine HTTP API (port 8000, sibling folder)
Related projects
| Repo | Description |
|---|---|
| clarvis-ai | One-command distro — bundles everything into a single Docker Compose stack |
| claw3d-skill | AI agent instructions that teach OpenClaw how to orchestrate the 3D printing workflow |
| curaengine-slicer-api | CuraEngine REST API for slicing and mesh conversion |
License
MIT
For a ready-to-use, anything-to-3D-print experience, check out clarv.is
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file claw3d-0.1.0.tar.gz.
File metadata
- Download URL: claw3d-0.1.0.tar.gz
- Upload date:
- Size: 93.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1aa9c0ba46f5945071a3ca7039da7fed7f6d6a4556dd26d2b42c3a50bead7dfe
|
|
| MD5 |
e1cd6d55b7124051b6c72294fa1a9ecd
|
|
| BLAKE2b-256 |
fa2d3c36d90c1fd2b9e214b1dc47182013bd40b76d1821b93e526c0919948fda
|
File details
Details for the file claw3d-0.1.0-py3-none-any.whl.
File metadata
- Download URL: claw3d-0.1.0-py3-none-any.whl
- Upload date:
- Size: 115.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4d4eb552fc609f29c4f4c69fc675e2774251e8062b52d8d836a4220230f27f99
|
|
| MD5 |
03f797104073687e11cb532500a864e7
|
|
| BLAKE2b-256 |
a23ad580e16eb75c0ff76efafb552d61a7393a60995ad0357d16f28545e98fcf
|