Skip to main content

CLI for converting sketches/images to 3D models and printing via Moonraker (OpenClaw skill)

Project description

claw3d

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

  1. Convert — Sketch/image or text prompt → 3D model (GLB) via FAL.ai (FLUX + Tripo)
  2. Search — Find 3D models on Thingiverse (claw3d search "dragon")
  3. Scale — Resize 3D model
  4. Slice — 3D model → G-code via CuraEngine
  5. 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:

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


Clarvis

For a ready-to-use, anything-to-3D-print experience, check out clarv.is

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

claw3d-0.1.0.tar.gz (93.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

claw3d-0.1.0-py3-none-any.whl (115.6 kB view details)

Uploaded Python 3

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

Hashes for claw3d-0.1.0.tar.gz
Algorithm Hash digest
SHA256 1aa9c0ba46f5945071a3ca7039da7fed7f6d6a4556dd26d2b42c3a50bead7dfe
MD5 e1cd6d55b7124051b6c72294fa1a9ecd
BLAKE2b-256 fa2d3c36d90c1fd2b9e214b1dc47182013bd40b76d1821b93e526c0919948fda

See more details on using hashes here.

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

Hashes for claw3d-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4d4eb552fc609f29c4f4c69fc675e2774251e8062b52d8d836a4220230f27f99
MD5 03f797104073687e11cb532500a864e7
BLAKE2b-256 a23ad580e16eb75c0ff76efafb552d61a7393a60995ad0357d16f28545e98fcf

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page