Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Generate 3d Printable Models

ASecurity

Generate 3D models for 3D printing from images or text prompts using PrintPal API. Use when the user wants to create 3D printable models, convert images to STL/GLB/OBJ files, or generate 3D assets from text descriptions. Supports text-to-image via WaveSpeed when WAVESPEED_API_KE…

19 stars
0 votes
0 copies
1 views
Added 9/19/2026
ai-agentspythonrustgobashapisecuritydocumentation

Works with

cliapi

Security Analysis

A96/100
mediumInstalls packages at runtime which could introduce malicious dependencies

Scanned 9/19/2026

Install to Claude Code

$npx -y skills add rondoflow/rondoflow --skill generate-3d-printable-models --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Generate 3d Printable Models?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Generate 3d Printable Models
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/rondoflow-generate-3d-printable-models/badge)](https://www.skillsdirectory.com/skills/rondoflow-generate-3d-printable-models)

More formats (shields.io, HTML) on the badges page.

Download with Pro
Files
SKILL.md
---
name: generate-3d-printable-models
description: "Generate 3D models for 3D printing from images or text prompts using PrintPal API. Use when the user wants to create 3D printable models, convert images to STL/GLB/OBJ files, or generate 3D assets from text descriptions. Supports text-to-image via WaveSpeed when WAVESPEED_API_KE…"
category: "Media"
author: community
version: "1.0.2"
icon: image
---

# PrintPal 3D Model Generator

Generate 3D models from images or text prompts for 3D printing.

## Quick Start

**From an image path or URL:**
```bash
python3 {baseDir}/scripts/generate_3d.py --image /path/to/image.png
```

**From text prompt:**
```bash
python3 {baseDir}/scripts/generate_3d.py --prompt "a cute robot toy"
```

## Installation

**Required Python packages:**
```bash
pip install printpal requests
```

**For text-to-image and SEO features:**
```bash
pip install wavespeed
```

**Configure API keys** in your OpenClaw settings (`~/.openclaw/openclaw.json` under `env`):
- `PRINTPAL_API_KEY` - required for 3D generation
- `WAVESPEED_API_KEY` - for text-to-image and product photos
- `OPENROUTER_API_KEY` - for SEO metadata generation

## Workflow

1. **Get the image:**
   - If user provides a file path → use it directly
   - If user provides a URL → download it
   - If user pastes an image → use it directly (it will be available as a file path or URL in context)
   - If user provides text → generate image via WaveSpeed first

2. **Generate 3D model:**
   - Use PrintPal API with `super` quality (768 cubed)
   - Default output format: STL
   - Save to `printpal-output/` directory in workspace

3. **Provide downloads:**
   - Start file server if needed
   - Return clickable URLs

## Default Settings

| Setting | Default | Options |
|---------|---------|---------|
| Quality | super | default, high, ultra, super, super_texture, superplus, superplus_texture |
| Format | stl | stl, glb, obj, ply, fbx |

## Scripts

### generate_3d.py

Main script for generating 3D models.

```bash
python3 scripts/generate_3d.py [OPTIONS]

Options:
  -i, --image PATH      Input image file path or URL
  -p, --prompt TEXT     Text prompt (uses WaveSpeed to generate image first)
  -q, --quality TEXT    Quality level (default: super)
  -f, --format TEXT     Output format (default: stl)
  -o, --output-dir DIR  Output directory
  --json                Output results as JSON
```

### serve_files.py

Start HTTP server for file downloads.

```bash
python3 scripts/serve_files.py [OPTIONS]

Options:
  -d, --directory DIR   Directory to serve (default: printpal-output/)
  -p, --port PORT       Port number (default: 8765)
  --host HOST           Host to bind to (default: 127.0.0.1)
  --public              Bind to 0.0.0.0 to allow network access
  --url-only            Just print URL without starting server
```

## Quality Levels

| Quality | Resolution | Credits | Est. Time |
|---------|-----------|---------|-----------|
| default | 256³ | 4 | 20 sec |
| high | 384³ | 6 | 30 sec |
| ultra | 512³ | 8 | 60 sec |
| **super** | 768³ | 20 | 3 min |
| superplus | 1024³ | 30 | 4 min |

## Output Formats

| Format | Best For |
|--------|----------|
| **STL** | 3D printing (default) |
| GLB | Web/games |
| OBJ | Universal compatibility |
| PLY | Point clouds |
| FBX | Autodesk software |

## API Keys

Required environment variables (configure in `~/.openclaw/openclaw.json` under `env`):

- `PRINTPAL_API_KEY` - Get from https://printpal.io/api-keys (required for 3D generation)
- `WAVESPEED_API_KEY` - Get from https://wavespeed.ai/accesskey (optional, for text-to-image)
- `OPENROUTER_API_KEY` - Get from https://openrouter.ai/keys (optional, for SEO generation)

## Output Directory

Default output is `printpal-output/` in the skill's workspace. Override with:
- Environment variable: `PRINTPAL_OUTPUT_DIR=/path/to/output`
- Command option: `--output-dir /path/to/output`

## Security Notes

- **File server**: The serve_files.py script defaults to localhost (127.0.0.1) for security. Use `--public` flag to expose to network.
- **Third-party packages**: Scripts import `printpal`, `wavespeed`, and `requests` packages. Review these packages before installing.
- **Downloaded content**: The skill downloads images from user-supplied URLs. Treat as untrusted input.

## Error Handling

| Error | Solution |
|-------|----------|
| WAVESPEED_API_KEY not set | Provide image directly or configure API key |
| PRINTPAL_API_KEY not set | Configure in OpenClaw settings |
| Insufficient credits | Purchase at printpal.io/buy-credits |
| Package not installed | Run `pip install printpal wavespeed` |

---

# SEO Product Listing Generator

Generate SEO-optimized metadata and product photos for selling 3D models/prints on marketplaces like Etsy, TikTok Shop, etc.

## Quick Start

```bash
python3 scripts/seo_product_photos.py \
  --image /path/to/model_photo.jpg \
  --description "A cute dragon figurine" \
  --purpose "Collectible toy for fantasy fans" \
  --audience "Fantasy enthusiasts, collectors, parents buying for kids"
```

## Workflow

1. **Input**: User provides an image of their 3D model/print + description, purpose, and target audience
2. **SEO Generation**: OpenRouter MiniMax generates optimized title, description, tags
3. **Photo Generation**: WaveSpeed nano-banana/edit creates 5 polished product photos
4. **Output**: ZIP file with metadata + photos, served via local HTTP server

## Required Environment Variables

```bash
# OpenRouter (for SEO generation)
OPENROUTER_API_KEY=your_openrouter_key

# WaveSpeed (for product photos)
WAVESPEED_API_KEY=your_wavespeed_key
```

Get OpenRouter key: https://openrouter.ai/keys
Get WaveSpeed key: https://wavespeed.ai/accesskey

## Options

| Option | Short | Description | Default |
|--------|-------|-------------|---------|
| --image | -i | Path or URL to input image | (required) |
| --description | -d | Description of the 3D model/print | (required) |
| --purpose | -p | What the item is for/its use | (required) |
| --audience | -a | Target audience/customers | (required) |
| --num-photos | -n | Number of photos to generate | 5 |
| --port | - | Download server port | 8766 |
| --json | - | Output results as JSON | false |

## Output

The script generates:
- `seo_metadata.txt` - Full metadata (title, description, tags, features, etc.)
- `product_photo_01.png` through `product_photo_05.png` - Generated product photos
- `seo_product_listing.zip` - All files packaged for download

Download URL is provided at the end (e.g., `http://hostname:8766/seo_product_listing.zip`)

## SEO Metadata Fields

The generated metadata includes:
- **title**: Full SEO title (max 140 chars, keywords included)
- **short_title**: Catchy thumbnail title (max 40 chars)
- **description**: Detailed listing description (500-1000 words)
- **tags**: 15 optimized tags for search
- **category**: Primary marketplace category
- **search_terms**: 5 high-value search terms
- **key_features**: 4 key product features
- **target_marketplace**: Recommended platform

## Example

```bash# Generate SEO listing for a custom 3D printed mug holder
python3 scripts/seo_product_photos.py \
  --image /workspace/my_mug_holder.jpg \
  --description "A custom 3D printed mug holder with dragon design" \
  --purpose "Keeps mugs organized on desk or kitchen, great gift" \
  --audience "Office workers, coffee lovers, home office enthusiasts"
```

## Troubleshooting

| Error | Solution |
|-------|----------|
| OPENROUTER_API_KEY not set | Configure in OpenClaw settings |
| Photo generation fails | Check WAVESPEED_API_KEY and credits |
| Port in use | Use `--port` to specify different port |

## Reference

For detailed API documentation, see [api-reference.md](references/api-reference.md).

Attribution

rondoflowrondoflow
View sourceMore from rondoflow →
SSkills DirectorySkills Directory

Know which skills are safe — weekly.

Best new skills + every skill we flagged as malicious. From the team that scanned 103,619.

Join free

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Know which skills are safe — weekly.

Best new skills + every skill we flagged as malicious. From the team that scanned 103,619.

Join free

Related Skills

Caveman

Ultra-compressed communication mode that cuts output tokens while keeping technical accuracy. Levels: lite, full, ultra and the wenyan variants. Use for /caveman, "caveman mode", "talk like caveman", "be brief" or "less tokens".

1066601 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

693161 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3351 votes

catchup

Recovers the conversation and failed tool calls of a previous Codex, Claude Code, Antigravity, Cline, Copilot CLI, Cursor, DeepSeek Harness, Kimi, OpenCode, Pi Agent, or ZCode session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", asks to recover/summarize a previous session before continuing, or asks to diagnose or report a catchup failure. Do NOT use for the current conversation, git history, or any non-agent log.

691 votes

math-skill

A comprehensive mathematical reasoning skill for AI assistants — handles arithmetic to research-level problems with rigorous step-by-step reasoning, systematic verification, and transparent uncertainty handling

381 votes
View all in ai-agents →