Install
$ agentstack add skill-max-786-claude-3d-harness-image-to-3d ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ● Network access Used
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Image to 3D Blender Skill
Converts a user-provided photo into a textured 3D model using the Meshy AI API, then imports it into the active Blender scene.
When to Use
Trigger this skill when:
- User wants to turn a photo/image into a 3D model
- User says "make this 3D", "convert to 3D", "3D model from image"
- User provides an image and wants it in Blender as a 3D object
Prerequisites
- Meshy API Key: Already set in the environment variable
MESHY_API_KEY. Never ask for it in chat, never put it on a command line or in a file - Blender MCP: Must be connected (blender-mcp addon running on port 9876)
- Image: Local file path (.jpg, .jpeg, .png) or publicly accessible URL. The image is uploaded to meshy.ai, a paid third-party service: say so before starting
Flow
Step 1: Prepare the Image
If the user provides a local file path, base64 encode it:
BASE64_IMAGE=$(base64 -i "")
DATA_URI="data:image/png;base64,${BASE64_IMAGE}"
Step 2: Create Image-to-3D Task
curl -s https://api.meshy.ai/openapi/v1/image-to-3d \
-X POST \
-H "Authorization: Bearer ${MESHY_API_KEY}" \
-H 'Content-Type: application/json' \
-d '{
"image_url": "",
"ai_model": "meshy-6",
"enable_pbr": true,
"should_remesh": true,
"should_texture": true,
"topology": "quad",
"target_polycount": 30000,
"target_formats": ["glb"]
}'
Response gives a task ID: {"result": ""}
Step 3: Poll for Completion
curl -s https://api.meshy.ai/openapi/v1/image-to-3d/ \
-H "Authorization: Bearer ${MESHY_API_KEY}"
Poll every 10 seconds. Check status field:
PENDING— queuedIN_PROGRESS— generating (checkprogressfield for %)SUCCEEDED— done,model_urls.glbhas the download URLFAILED— checktask_error.message
Step 4: Download the GLB
curl -L -o "/.glb" ""
Step 5: Import into Blender
Use the Blender MCP execute_blender_code tool:
import bpy
# Import GLB (into the scene as it is: nothing is cleared)
bpy.ops.import_scene.gltf(filepath="/.glb")
# Center and frame the imported object
bpy.ops.object.select_all(action='SELECT')
bpy.ops.view3d.view_selected()
Configuration Options
| Option | Default | Description | |--------|---------|-------------| | ai_model | meshy-6 | Model to use. Options: meshy-5, meshy-6, latest | | model_type | standard | standard for detail, lowpoly for clean game meshes | | topology | triangle | quad or triangle mesh | | target_polycount | 30000 | 100–300,000 polygons | | enable_pbr | true | Generate metallic/roughness/normal maps | | symmetry_mode | auto | off, auto, or on | | pose_mode | "" | a-pose, t-pose, or empty | | should_texture | true | Generate textures (costs extra credits) | | remove_lighting | true | Clean textures without baked lighting |
Output
After completion, the user gets:
- 3D model imported into Blender scene
- Textured with PBR materials (if enabled)
- Ready for rendering, animation, or further editing
Error Handling
- 402: Insufficient Meshy credits — inform user
- 429: Rate limited — wait and retry
- FAILED status: Report
task_error.messageto user - Blender MCP disconnected: Ask user to reconnect addon
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: MAX-786
- Source: MAX-786/claude-3d-harness
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.