{
  "schemaVersion": "1.0",
  "item": {
    "slug": "printpal-3d",
    "name": "PrintPal 3D Generation",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/plebbyd/printpal-3d",
    "canonicalUrl": "https://clawhub.ai/plebbyd/printpal-3d",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/printpal-3d",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=printpal-3d",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "references/api-reference.md",
      "scripts/save_image.py",
      "scripts/seo_product_photos.py",
      "scripts/generate_3d.py",
      "scripts/serve_files.py",
      "SKILL.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/printpal-3d"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/printpal-3d",
    "agentPageUrl": "https://openagent3.xyz/skills/printpal-3d/agent",
    "manifestUrl": "https://openagent3.xyz/skills/printpal-3d/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/printpal-3d/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "PrintPal 3D Model Generator",
        "body": "Generate 3D models from images or text prompts for 3D printing."
      },
      {
        "title": "Quick Start",
        "body": "From an image path or URL:\n\npython3 {baseDir}/scripts/generate_3d.py --image /path/to/image.png\n\nFrom text prompt:\n\npython3 {baseDir}/scripts/generate_3d.py --prompt \"a cute robot toy\""
      },
      {
        "title": "Installation",
        "body": "Required Python packages:\n\npip install printpal requests\n\nFor text-to-image and SEO features:\n\npip install wavespeed\n\nConfigure API keys in your OpenClaw settings (~/.openclaw/openclaw.json under env):\n\nPRINTPAL_API_KEY - required for 3D generation\nWAVESPEED_API_KEY - for text-to-image and product photos\nOPENROUTER_API_KEY - for SEO metadata generation"
      },
      {
        "title": "Workflow",
        "body": "Get the image:\n\nIf user provides a file path → use it directly\nIf user provides a URL → download it\nIf user pastes an image → use it directly (it will be available as a file path or URL in context)\nIf user provides text → generate image via WaveSpeed first\n\n\n\nGenerate 3D model:\n\nUse PrintPal API with super quality (768 cubed)\nDefault output format: STL\nSave to printpal-output/ directory in workspace\n\n\n\nProvide downloads:\n\nStart file server if needed\nReturn clickable URLs"
      },
      {
        "title": "Default Settings",
        "body": "SettingDefaultOptionsQualitysuperdefault, high, ultra, super, super_texture, superplus, superplus_textureFormatstlstl, glb, obj, ply, fbx"
      },
      {
        "title": "generate_3d.py",
        "body": "Main script for generating 3D models.\n\npython3 scripts/generate_3d.py [OPTIONS]\n\nOptions:\n  -i, --image PATH      Input image file path or URL\n  -p, --prompt TEXT     Text prompt (uses WaveSpeed to generate image first)\n  -q, --quality TEXT    Quality level (default: super)\n  -f, --format TEXT     Output format (default: stl)\n  -o, --output-dir DIR  Output directory\n  --json                Output results as JSON"
      },
      {
        "title": "serve_files.py",
        "body": "Start HTTP server for file downloads.\n\npython3 scripts/serve_files.py [OPTIONS]\n\nOptions:\n  -d, --directory DIR   Directory to serve (default: printpal-output/)\n  -p, --port PORT       Port number (default: 8765)\n  --host HOST           Host to bind to (default: 127.0.0.1)\n  --public              Bind to 0.0.0.0 to allow network access\n  --url-only            Just print URL without starting server"
      },
      {
        "title": "Quality Levels",
        "body": "QualityResolutionCreditsEst. Timedefault256³420 sechigh384³630 secultra512³860 secsuper768³203 minsuperplus1024³304 min"
      },
      {
        "title": "Output Formats",
        "body": "FormatBest ForSTL3D printing (default)GLBWeb/gamesOBJUniversal compatibilityPLYPoint cloudsFBXAutodesk software"
      },
      {
        "title": "API Keys",
        "body": "Required environment variables (configure in ~/.openclaw/openclaw.json under env):\n\nPRINTPAL_API_KEY - Get from https://printpal.io/api-keys (required for 3D generation)\nWAVESPEED_API_KEY - Get from https://wavespeed.ai/accesskey (optional, for text-to-image)\nOPENROUTER_API_KEY - Get from https://openrouter.ai/keys (optional, for SEO generation)"
      },
      {
        "title": "Output Directory",
        "body": "Default output is printpal-output/ in the skill's workspace. Override with:\n\nEnvironment variable: PRINTPAL_OUTPUT_DIR=/path/to/output\nCommand option: --output-dir /path/to/output"
      },
      {
        "title": "Security Notes",
        "body": "File server: The serve_files.py script defaults to localhost (127.0.0.1) for security. Use --public flag to expose to network.\nThird-party packages: Scripts import printpal, wavespeed, and requests packages. Review these packages before installing.\nDownloaded content: The skill downloads images from user-supplied URLs. Treat as untrusted input."
      },
      {
        "title": "Error Handling",
        "body": "ErrorSolutionWAVESPEED_API_KEY not setProvide image directly or configure API keyPRINTPAL_API_KEY not setConfigure in OpenClaw settingsInsufficient creditsPurchase at printpal.io/buy-creditsPackage not installedRun pip install printpal wavespeed"
      },
      {
        "title": "SEO Product Listing Generator",
        "body": "Generate SEO-optimized metadata and product photos for selling 3D models/prints on marketplaces like Etsy, TikTok Shop, etc."
      },
      {
        "title": "Quick Start",
        "body": "python3 scripts/seo_product_photos.py \\\n  --image /path/to/model_photo.jpg \\\n  --description \"A cute dragon figurine\" \\\n  --purpose \"Collectible toy for fantasy fans\" \\\n  --audience \"Fantasy enthusiasts, collectors, parents buying for kids\""
      },
      {
        "title": "Workflow",
        "body": "Input: User provides an image of their 3D model/print + description, purpose, and target audience\nSEO Generation: OpenRouter MiniMax generates optimized title, description, tags\nPhoto Generation: WaveSpeed nano-banana/edit creates 5 polished product photos\nOutput: ZIP file with metadata + photos, served via local HTTP server"
      },
      {
        "title": "Required Environment Variables",
        "body": "# OpenRouter (for SEO generation)\nOPENROUTER_API_KEY=your_openrouter_key\n\n# WaveSpeed (for product photos)\nWAVESPEED_API_KEY=your_wavespeed_key\n\nGet OpenRouter key: https://openrouter.ai/keys\nGet WaveSpeed key: https://wavespeed.ai/accesskey"
      },
      {
        "title": "Options",
        "body": "OptionShortDescriptionDefault--image-iPath or URL to input image(required)--description-dDescription of the 3D model/print(required)--purpose-pWhat the item is for/its use(required)--audience-aTarget audience/customers(required)--num-photos-nNumber of photos to generate5--port-Download server port8766--json-Output results as JSONfalse"
      },
      {
        "title": "Output",
        "body": "The script generates:\n\nseo_metadata.txt - Full metadata (title, description, tags, features, etc.)\nproduct_photo_01.png through product_photo_05.png - Generated product photos\nseo_product_listing.zip - All files packaged for download\n\nDownload URL is provided at the end (e.g., http://hostname:8766/seo_product_listing.zip)"
      },
      {
        "title": "SEO Metadata Fields",
        "body": "The generated metadata includes:\n\ntitle: Full SEO title (max 140 chars, keywords included)\nshort_title: Catchy thumbnail title (max 40 chars)\ndescription: Detailed listing description (500-1000 words)\ntags: 15 optimized tags for search\ncategory: Primary marketplace category\nsearch_terms: 5 high-value search terms\nkey_features: 4 key product features\ntarget_marketplace: Recommended platform"
      },
      {
        "title": "Example",
        "body": "python3 scripts/seo_product_photos.py \\\n  --image /workspace/my_mug_holder.jpg \\\n  --description \"A custom 3D printed mug holder with dragon design\" \\\n  --purpose \"Keeps mugs organized on desk or kitchen, great gift\" \\\n  --audience \"Office workers, coffee lovers, home office enthusiasts\""
      },
      {
        "title": "Troubleshooting",
        "body": "ErrorSolutionOPENROUTER_API_KEY not setConfigure in OpenClaw settingsPhoto generation failsCheck WAVESPEED_API_KEY and creditsPort in useUse --port to specify different port"
      },
      {
        "title": "Reference",
        "body": "For detailed API documentation, see api-reference.md."
      }
    ],
    "body": "PrintPal 3D Model Generator\n\nGenerate 3D models from images or text prompts for 3D printing.\n\nQuick Start\n\nFrom an image path or URL:\n\npython3 {baseDir}/scripts/generate_3d.py --image /path/to/image.png\n\n\nFrom text prompt:\n\npython3 {baseDir}/scripts/generate_3d.py --prompt \"a cute robot toy\"\n\nInstallation\n\nRequired Python packages:\n\npip install printpal requests\n\n\nFor text-to-image and SEO features:\n\npip install wavespeed\n\n\nConfigure API keys in your OpenClaw settings (~/.openclaw/openclaw.json under env):\n\nPRINTPAL_API_KEY - required for 3D generation\nWAVESPEED_API_KEY - for text-to-image and product photos\nOPENROUTER_API_KEY - for SEO metadata generation\nWorkflow\n\nGet the image:\n\nIf user provides a file path → use it directly\nIf user provides a URL → download it\nIf user pastes an image → use it directly (it will be available as a file path or URL in context)\nIf user provides text → generate image via WaveSpeed first\n\nGenerate 3D model:\n\nUse PrintPal API with super quality (768 cubed)\nDefault output format: STL\nSave to printpal-output/ directory in workspace\n\nProvide downloads:\n\nStart file server if needed\nReturn clickable URLs\nDefault Settings\nSetting\tDefault\tOptions\nQuality\tsuper\tdefault, high, ultra, super, super_texture, superplus, superplus_texture\nFormat\tstl\tstl, glb, obj, ply, fbx\nScripts\ngenerate_3d.py\n\nMain script for generating 3D models.\n\npython3 scripts/generate_3d.py [OPTIONS]\n\nOptions:\n  -i, --image PATH      Input image file path or URL\n  -p, --prompt TEXT     Text prompt (uses WaveSpeed to generate image first)\n  -q, --quality TEXT    Quality level (default: super)\n  -f, --format TEXT     Output format (default: stl)\n  -o, --output-dir DIR  Output directory\n  --json                Output results as JSON\n\nserve_files.py\n\nStart HTTP server for file downloads.\n\npython3 scripts/serve_files.py [OPTIONS]\n\nOptions:\n  -d, --directory DIR   Directory to serve (default: printpal-output/)\n  -p, --port PORT       Port number (default: 8765)\n  --host HOST           Host to bind to (default: 127.0.0.1)\n  --public              Bind to 0.0.0.0 to allow network access\n  --url-only            Just print URL without starting server\n\nQuality Levels\nQuality\tResolution\tCredits\tEst. Time\ndefault\t256³\t4\t20 sec\nhigh\t384³\t6\t30 sec\nultra\t512³\t8\t60 sec\nsuper\t768³\t20\t3 min\nsuperplus\t1024³\t30\t4 min\nOutput Formats\nFormat\tBest For\nSTL\t3D printing (default)\nGLB\tWeb/games\nOBJ\tUniversal compatibility\nPLY\tPoint clouds\nFBX\tAutodesk software\nAPI Keys\n\nRequired environment variables (configure in ~/.openclaw/openclaw.json under env):\n\nPRINTPAL_API_KEY - Get from https://printpal.io/api-keys (required for 3D generation)\nWAVESPEED_API_KEY - Get from https://wavespeed.ai/accesskey (optional, for text-to-image)\nOPENROUTER_API_KEY - Get from https://openrouter.ai/keys (optional, for SEO generation)\nOutput Directory\n\nDefault output is printpal-output/ in the skill's workspace. Override with:\n\nEnvironment variable: PRINTPAL_OUTPUT_DIR=/path/to/output\nCommand option: --output-dir /path/to/output\nSecurity Notes\nFile server: The serve_files.py script defaults to localhost (127.0.0.1) for security. Use --public flag to expose to network.\nThird-party packages: Scripts import printpal, wavespeed, and requests packages. Review these packages before installing.\nDownloaded content: The skill downloads images from user-supplied URLs. Treat as untrusted input.\nError Handling\nError\tSolution\nWAVESPEED_API_KEY not set\tProvide image directly or configure API key\nPRINTPAL_API_KEY not set\tConfigure in OpenClaw settings\nInsufficient credits\tPurchase at printpal.io/buy-credits\nPackage not installed\tRun pip install printpal wavespeed\nSEO Product Listing Generator\n\nGenerate SEO-optimized metadata and product photos for selling 3D models/prints on marketplaces like Etsy, TikTok Shop, etc.\n\nQuick Start\npython3 scripts/seo_product_photos.py \\\n  --image /path/to/model_photo.jpg \\\n  --description \"A cute dragon figurine\" \\\n  --purpose \"Collectible toy for fantasy fans\" \\\n  --audience \"Fantasy enthusiasts, collectors, parents buying for kids\"\n\nWorkflow\nInput: User provides an image of their 3D model/print + description, purpose, and target audience\nSEO Generation: OpenRouter MiniMax generates optimized title, description, tags\nPhoto Generation: WaveSpeed nano-banana/edit creates 5 polished product photos\nOutput: ZIP file with metadata + photos, served via local HTTP server\nRequired Environment Variables\n# OpenRouter (for SEO generation)\nOPENROUTER_API_KEY=your_openrouter_key\n\n# WaveSpeed (for product photos)\nWAVESPEED_API_KEY=your_wavespeed_key\n\n\nGet OpenRouter key: https://openrouter.ai/keys Get WaveSpeed key: https://wavespeed.ai/accesskey\n\nOptions\nOption\tShort\tDescription\tDefault\n--image\t-i\tPath or URL to input image\t(required)\n--description\t-d\tDescription of the 3D model/print\t(required)\n--purpose\t-p\tWhat the item is for/its use\t(required)\n--audience\t-a\tTarget audience/customers\t(required)\n--num-photos\t-n\tNumber of photos to generate\t5\n--port\t-\tDownload server port\t8766\n--json\t-\tOutput results as JSON\tfalse\nOutput\n\nThe script generates:\n\nseo_metadata.txt - Full metadata (title, description, tags, features, etc.)\nproduct_photo_01.png through product_photo_05.png - Generated product photos\nseo_product_listing.zip - All files packaged for download\n\nDownload URL is provided at the end (e.g., http://hostname:8766/seo_product_listing.zip)\n\nSEO Metadata Fields\n\nThe generated metadata includes:\n\ntitle: Full SEO title (max 140 chars, keywords included)\nshort_title: Catchy thumbnail title (max 40 chars)\ndescription: Detailed listing description (500-1000 words)\ntags: 15 optimized tags for search\ncategory: Primary marketplace category\nsearch_terms: 5 high-value search terms\nkey_features: 4 key product features\ntarget_marketplace: Recommended platform\nExample\npython3 scripts/seo_product_photos.py \\\n  --image /workspace/my_mug_holder.jpg \\\n  --description \"A custom 3D printed mug holder with dragon design\" \\\n  --purpose \"Keeps mugs organized on desk or kitchen, great gift\" \\\n  --audience \"Office workers, coffee lovers, home office enthusiasts\"\n\nTroubleshooting\nError\tSolution\nOPENROUTER_API_KEY not set\tConfigure in OpenClaw settings\nPhoto generation fails\tCheck WAVESPEED_API_KEY and credits\nPort in use\tUse --port to specify different port\nReference\n\nFor detailed API documentation, see api-reference.md."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/plebbyd/printpal-3d",
    "publisherUrl": "https://clawhub.ai/plebbyd/printpal-3d",
    "owner": "plebbyd",
    "version": "1.0.2",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/printpal-3d",
    "downloadUrl": "https://openagent3.xyz/downloads/printpal-3d",
    "agentUrl": "https://openagent3.xyz/skills/printpal-3d/agent",
    "manifestUrl": "https://openagent3.xyz/skills/printpal-3d/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/printpal-3d/agent.md"
  }
}