Meshy v6 — a compact sculptural brand asset
3D
Meshy v6
by Henri Huotari · Oct 28, 2026
Reconstruct the pink Immersive wave sculpture as a textured GLB with PBR materials, remeshing and a 30,000-triangle target. Uses the same source as the Hunyuan3D and Rodin examples for a direct inspection of shape, surface and mesh detail.
This file couldn't be loaded. The link may have expired.
This file couldn't be loaded. The link may have expired.
The 3D model couldn't be loaded.
Download result.glb
This file couldn't be loaded. The link may have expired.
Run it yourself
Set IMMERSIVE_API_KEY to an API key from your account. Create a free account to get one.
curl -X POST 'https://ai.im.inc/api/v1/3d/generate' \
-H "Authorization: Bearer $IMMERSIVE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"pbr": true,
"image": "https://s3.eu-central-1.amazonaws.com/ai.im.inc/examples/inputs/98b4caad-2198-4f52-8e92-de30db93c5f8/input_image.png",
"model": "meshy-v6",
"topology": "triangle",
"should_remesh": true,
"symmetry_mode": "auto",
"should_texture": true,
"texture_prompt": "One continuous thick extruded waveform desk sculpture. Smooth warm-pink satin ceramic on every surface and on the unseen back. Consistent uniform pink material, rounded edges, no printed labels, no stickers, no lettering, no white patches, no metal or other material. Match the reference silhouette and keep its open waveform negative spaces.",
"target_polycount": 30000
}'
# Set JOB_ID to the response's "id", then poll every few seconds until the job has finished:
curl "https://ai.im.inc/api/v1/3d/$JOB_ID" \
-H "Authorization: Bearer $IMMERSIVE_API_KEY"
# The finished response has the result at url.
const headers = { Authorization: `Bearer ${process.env.IMMERSIVE_API_KEY}` };
const response = await fetch("https://ai.im.inc/api/v1/3d/generate", {
method: "POST",
headers: { ...headers, "Content-Type": "application/json" },
body: JSON.stringify({
"pbr": true,
"image": "https://s3.eu-central-1.amazonaws.com/ai.im.inc/examples/inputs/98b4caad-2198-4f52-8e92-de30db93c5f8/input_image.png",
"model": "meshy-v6",
"topology": "triangle",
"should_remesh": true,
"symmetry_mode": "auto",
"should_texture": true,
"texture_prompt": "One continuous thick extruded waveform desk sculpture. Smooth warm-pink satin ceramic on every surface and on the unseen back. Consistent uniform pink material, rounded edges, no printed labels, no stickers, no lettering, no white patches, no metal or other material. Match the reference silhouette and keep its open waveform negative spaces.",
"target_polycount": 30000
}),
});
const job = await response.json();
// Poll every few seconds while the job is still running.
const running = ["pending", "queued", "submitted", "starting", "processing", "running", "streaming", "in_queue", "in_progress"];
let result;
do {
await new Promise((resolve) => setTimeout(resolve, 5000));
result = await (await fetch(`https://ai.im.inc/api/v1/3d/${job.id}`, { headers })).json();
} while (running.includes(String(result.status).toLowerCase()));
console.log(result.url);
import os
import time
import requests
headers = {"Authorization": f"Bearer {os.environ['IMMERSIVE_API_KEY']}"}
job = requests.post(
"https://ai.im.inc/api/v1/3d/generate",
headers=headers,
json={
"pbr": True,
"image": "https://s3.eu-central-1.amazonaws.com/ai.im.inc/examples/inputs/98b4caad-2198-4f52-8e92-de30db93c5f8/input_image.png",
"model": "meshy-v6",
"topology": "triangle",
"should_remesh": True,
"symmetry_mode": "auto",
"should_texture": True,
"texture_prompt": "One continuous thick extruded waveform desk sculpture. Smooth warm-pink satin ceramic on every surface and on the unseen back. Consistent uniform pink material, rounded edges, no printed labels, no stickers, no lettering, no white patches, no metal or other material. Match the reference silhouette and keep its open waveform negative spaces.",
"target_polycount": 30000,
},
timeout=300,
).json()
# Poll every few seconds while the job is still running.
running = {"pending", "queued", "submitted", "starting", "processing", "running", "streaming", "in_queue", "in_progress"}
while True:
time.sleep(5)
result = requests.get(f"https://ai.im.inc/api/v1/3d/{job['id']}", headers=headers, timeout=60).json()
if str(result.get("status", "")).lower() not in running:
break
print(result["url"])
{
"id": "01a181ac-2a6d-7d80-9818-bb0904bbd8ab",
"url": "https://s3.eu-central-1.amazonaws.com/ai.im.inc/examples/outputs/98b4caad-2198-4f52-8e92-de30db93c5f8/result.glb",
"model": "meshy-v6",
"status": "succeeded"
}
Your browser blocked the clipboard. Select the text and copy it by hand.
How the job runs
- POST returns the job's id and status right away.
- Poll GET /api/v1/3d/{id} every few seconds while the job is running.
- When status is succeeded, download url. Failed jobs are refunded automatically.
- Endpoint
- POST /api/v1/3d/generate
- Model
- meshy-v6
- Output
- 3D model · GLB