MASHBOX Creature
Pipeline by MASHBOX Labs.
One text prompt to a textured, rigged 3D creature as GLB.
- What you send
- text
- What you get
- rigged, textured 3D model (GLB)
A pipeline of several models
Each request runs these steps in order:
- A concept image from your prompt, made with Z-Image Turbo.
- A 3D mesh built from that image.
- Texture painted onto the mesh.
- A skeleton and skin weights fitted to the mesh.
- Motion clips for that skeleton, from our own motion model.
- Everything packed into one GLB file for your game.
Our cost per creature: $0.136, pipeline loaded, 23 October 2026.
Examples
Parameters
| Name | Type | Allowed | Default |
|---|---|---|---|
prompt | string | up to 200 characters | |
seed optional | integer | 0 to 2147483647 |
1. Get a key
export MASHBOX_API_KEY=...2. Send the first request
curl https://inference.mashbox.gg/v1/creatures \
-H "Authorization: Bearer $MASHBOX_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "mbx-creature", "prompt": "a lean grey wolf with a scarred muzzle"}'import os, requests
r = requests.post(
"https://inference.mashbox.gg/v1/creatures",
headers={"Authorization": "Bearer " + os.environ["MASHBOX_API_KEY"]},
json={
"model": "mbx-creature",
"prompt": "a lean grey wolf with a scarred muzzle"
},
timeout=60,
)
r.raise_for_status()
out = r.json()
print(out)const r = await fetch("https://inference.mashbox.gg/v1/creatures", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.MASHBOX_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"model": "mbx-creature",
"prompt": "a lean grey wolf with a scarred muzzle"
}),
});
const out = await r.json();
console.log(out);3. Get the result
The request answers at once with a job. Poll GET /v1/jobs/{id} about every 2 seconds until status is completed or failed. Output links are signed and last 10 minutes; get fresh ones from GET /v1/jobs/{id}/files.
import os, time, requests
H = {"Authorization": "Bearer " + os.environ["MASHBOX_API_KEY"]}
job = out # the response from step 2
while job["status"] in ("queued", "in_progress"):
time.sleep(2)
job = requests.get("https://inference.mashbox.gg/v1/jobs/" + job["id"], headers=H).json()
print(job["status"], [o["url"] for o in job.get("outputs", [])])Headers: Authorization: Bearer $MASHBOX_API_KEY and Content-Type: application/json. Model: mbx-creature.
For approved evaluation accounts. The MASHBOX Creature demo plays here once your company is approved for a free evaluation.
Request access Approved already? This account is not approved yet.
More models

3D point tracks of a moving body in; skeleton, skin and bone motion out as GLB.

Auto-rig and skin any mesh.
An image to a rigged 3D model.

Text to image.