calesthio/tripo-3d
>- Produce 3D assets with Tripo (tripo3d.ai / Tripo AI by VAST) through its OpenAPI and Studio platform — text-to-3D, image-to-3D, and multiview-to-3D generation; PBR texturing; auto-rigging and preset animation; retopology/low-poly and quad remesh; format conversion (GLB/FBX/OBJ/USDZ/STL/3MF) and engine import (Unity/Unreal/Blender/3D printing). Use when an agent must drive the async task-based Tripo API (create task, poll or webhook, download), choose a model version (v3.0 / v3.1 / P1), write prompts or prepare input images, control mesh/texture parameters, estimate credits and respect rate limits, review generated mesh quality (topology, UVs, poly count, texture fidelity), run iteration and repair workflows, or reason about the rights/licensing of Tripo-generated assets. Trigger on requests to generate, texture, rig, animate, retopologize, convert, or evaluate a 3D model with Tripo, or to integrate the Tripo API into a pipeline. Not for choosing a 3D renderer, editing meshes by hand, or non-Tripo generators.
npx skills add https://github.com/calesthio/generative-media-skills --skill tripo-3d
Tripo (product of VAST AI Research; consumer brand "Tripo AI") turns text, single images, and multi-view
image sets into textured 3D meshes, then post-processes them into engine-ready assets: PBR texturing,
retopology, auto-rigging, preset animation, and format conversion. It ships as a web Studio, mobile apps,
and an async task-based REST API ("Tripo OpenAPI"). This skill is about producing production-usable
assets through that API and Studio.
> Evidence labels used below: [Doc] = official Tripo documentation/SDK; [1P] = first-party
> Tripo blog/marketing claim (directional, not independently verified); [3P] = disclosed third-party
> source; [Heuristic] = production judgment, not a documented guarantee. Volatile facts carry a
> verified 2026-07-10 date; re-check them, because Tripo ships model and pricing changes frequently.
Tripo's strength is speed and coverage: a usable single-object mesh in tens of seconds to a couple of
minutes, across a huge range of props, characters, and hard-surface objects, with texturing/rigging/format
export in one API. [Heuristic] Reach for it when you need many game/AR/previz/3D-print assets fast, when
you have a concept image or clean reference, or when you want a first-pass base mesh to refine by hand.
Do not rely on Tripo (or set expectations accordingly) for:
triangulation. Use quad remesh, smart low-poly, or retopo in a DCC tool before deforming/subdividing.
[Heuristic]
3D printing, verify scale, wall thickness, and manifold-ness.
Treat these as rights risks (see Rights & licensing).
[Heuristic]
Everything is an asynchronous task. You submit a task, receive a task_id, then poll (or receive a
webhook) until it succeeds, then read output URLs.
https://api.tripo3d.ai/v2/openapiAuthorization: Bearer YOUR_API_KEY. Create keys at platform.tripo3d.ai/api-keys.POST /v2/openapi/task with a JSON body whose type selects the operation.GET /v2/openapi/task/{task_id}. Response carries status, progress, output(download URLs), and consumed_credit (exact credits charged for that task).
queued → running → success (also failed, cancelled, banned, expired,unknown). Poll until terminal; read model URLs from output on success.
url (public JPEG/PNG, max 20 MB), a file_token fromdirect upload, or an object from STS upload (bucket: "tripo-data", key: <resource_uri>). STS upload
is Tripo's recommended path. Output download URLs are time-limited — fetch and store them promptly.
(original_model_task_id / draft_model_task_id), so a model → texture → rig → convert pipeline is a
chain of tasks, not a re-upload each time.
[Heuristic] Poll with backoff (e.g., 2 s, then 3–5 s) rather than tight loops; generation is
seconds-to-minutes depending on model/options. For batch/production, prefer webhooks if your integration
path supports them (native webhook support varies by API surface and by proxy providers such as fal/Runware,
which expose an X-Webhook-URL-style header [3P], verified 2026-07-10; confirm against current Tripo docs
before depending on it, otherwise poll).
Select with model_version on generation tasks. Volatile — re-check the changelog.
| Family | API model_version / selector | Character | Face/poly envelope |
|---|---|---|---|
| v3.0 (HD / "H3") | v3.0-20250812 | Stable, general default | up to ~1M–1.5M tris [Doc] |
| v3.1 (HD / "H3.1") | v3.1-20260211 | Higher geometric density, sharper edges, stronger PBR | up to ~1.5M–2M tris [Doc] |
| P1 (Smart Mesh P1.0) | p1 selector (premium tier) | Native 3D-diffusion, game-ready low-poly, orientation control, seeds; very fast | ~48–20,000 faces [Doc/1P] |
Marketed for hero game assets, cinematics, product shots. [1P]
(face_limit 48–20,000) and orientation control (default or align_image) so the asset faces a
predictable axis. Announced at GDC 2026 as a native-3D-diffusion architecture producing low-poly assets in
seconds. [1P] Costs more credits than v3.x per task. Older Turbo-v1.0, v1.4, and H2 versions also
exist for legacy/cheaper paths. [Doc]
The marketing "Hxx" names and the API model_version strings are not identical spellings — always drive the
API off the exact model_version string from the current docs, not the blog name.
type: "text_to_model", model_version, prompt (≤ 1024 chars; multilingual; no emoji/exotic Unicode).negative_prompt (≤ 255), image_seed, model_seed, texture_seed, style.type: "image_to_model", model_version, and a file (via file_token | url | object).enable_image_autofix cleans up the input; texture_alignment and orientation control how texture andthe asset's facing follow the image.
type: "multiview_to_model", files = an ordered list [front, left, back, right].More consistent views → better back/side reconstruction. [Doc]
texture (bool, default true; ~10 credits cheaper when false for geometry-only).pbr (bool, default true) — emit PBR maps (base color / metallic-roughness / normal) for lit pipelines.texture_quality: "standard" (default) or "detailed" (+10 credits).geometry_quality: "standard" or "detailed" (+20 credits) on supported versions.face_limit (int) — cap output triangles; the practical lever for engine budgets.quad (bool, default false, +5 credits) — quad-dominant remesh for cleaner edge flow / subdivision.smart_low_poly (bool, default false, +10 credits) — automatic low-poly-ization at generation time.auto_size (bool) — normalize real-world scale; compress for smaller GLB; export_uv; generate_parts(+20 credits) to split into named parts; style for stylized geometry presets.
Each references a prior task id, so you refine without re-generating:
original_model_task_id, texture, pbr,texture_quality, texture_alignment, texture_seed, part_names, bake, plus a text_prompt,
image_prompt, or style_image to redirect the look.
draft_model_task_id).partial geometry.
face_limit, quad, bake, part_names.style: LEGO, VOXEL, VORONOI, MINECRAFT, with block_size.type: "check_riggable", free) — validate a mesh can be auto-rigged before payingto rig. Always gate on this for characters.
original_model_task_id, out_format ("glb" | "fbx"),rig_type, spec (skeleton spec, e.g. humanoid). Auto-rigging expects a roughly upright,
symmetric, single-character mesh with clearly separated limbs. [Heuristic]
animation takes one or a list of "preset:<name>" values: preset:idle, preset:walk, preset:run,
preset:jump, preset:climb, preset:dive, preset:fall, preset:turn, preset:slash,
preset:shoot, preset:hurt, plus quadruped/hexapod/octopod/serpentine/aquatic variants for non-humanoids.
out_format, bake_animation, and export_with_geometry control the exported clip.
original_model_task_id + format ∈ GLTF, USDZ, FBX, OBJ, STL, 3MF(base 5 cr, +5 with extra options). Native generation output is GLB; convert to your target.
FBX; USD pipelines / Apple AR Quick Look → USDZ; 3D printing → STL or 3MF (STL drops
color; 3MF keeps color/material).
Text-to-3D prompts describe an *object*, not a scene: subject + form + material + style. Be concrete
about silhouette and material ("a low-poly stylized wooden treasure chest with iron bands, closed lid").
Use negative_prompt to suppress recurring artifacts ("extra limbs, floating parts, text"). Text-to-3D has
inherent ambiguity about unseen sides; expect to iterate on model_seed/image_seed.
Image-to-3D / multiview beats text for fidelity and control. For the best single-image result:
orientation/texture_alignment so the generated asset faces and textures consistently with the image.Multiview is the highest-control path: supply consistent front/left/back/right renders of the *same*
object (same lighting, same scale). It resolves the "hallucinated back" problem that plagues single-image and
text input. Front is mandatory; add as many real views as you have.
texture:false (geometry only) or a lower tier to judge form beforepaying for texture. Lock the silhouette, then re-texture the winning geometry with texture_model
rather than regenerating.
model_seed a few times beforerewriting the prompt.
controlled low-poly/oriented game asset. Don't pay for v3.1 detail you'll immediately decimate.
quad; wrong partsgranularity → mesh_segmentation; bad texture only → texture_model.
cleaner, upright, limb-separated topology first.
Before shipping a Tripo asset, check:
face_limit land where you need it? Overshoot → smart_lowpoly.demand quad remesh/retopo. Straight-to-static-prop tolerates raw triangulation.
pbr:true. Re-texture if the geometry is good but the surface is not.
auto_size) and that the pivot/facing matches yourengine's convention (P1 orientation helps here).
segmentation to separate).
Billing is in credits: $1.00 = 100 credits. New accounts get 300 free credits, valid ~2 weeks.
Each task response reports exact consumed_credit. Representative task prices [Doc] (subject to change):
| Operation | v3.0/v3.1 (H2/H3) | P1 |
|---|---|---|
| text_to_model | 10 (no tex) / 20 (tex) | 30 / 40 |
| image_to_model | 20 / 30 | 40 / 50 |
| multiview_to_model | 20 / 30 | 40 / 50 |
| import model | free | — |
Add-ons [Doc]: detailed texture +10, smart low-poly +10, quad +5, generate parts +20,
detailed geometry +20. Post-process: rig 25, retarget 10 per animation, pre-rig check free,
mesh_segmentation 40, mesh_completion 50, smart_lowpoly 30, convert 5 (+5 with options).
Consumer/Studio subscriptions differ from API credit purchasing. Reported tiers [3P], verified
2026-07-10: Basic free (~300 credits/month, 1 concurrent task), Pro/Professional ~$15.90/mo
(~3,000 credits, ~10 concurrent), Advanced ~$39.90/mo (~8,000 credits, ~15 concurrent). Treat exact
dollar/credit figures and tier names as unstable; confirm on tripo3d.ai/pricing before quoting.
Rate limits: exceeding limits returns HTTP 429; concurrent-task limits are plan-dependent
(free ≈ 1). Errors carry a code, message, and suggestion (e.g. code 2002 = unsupported task type).
Handle 429 with backoff and respect the concurrency cap by queueing. [Doc/3P]
[Doc/1P], verified 2026-07-10:
Creative Commons CC BY 4.0-style license — i.e., others may use them with attribution, and you do
not get private/exclusive assets. Do not treat free-tier output as confidential or exclusive.
which is what production/retail/print use requires.
license concerns the *asset you generate*, not the platform.
[Heuristic] Practical guidance for agents:
(tripo3d.ai/terms) — licensing wording changes and CC BY 4.0's "commercial-with-attribution" nuance is
easy to misread. Do not assert "you own it, full commercial rights" without checking the plan and terms.
designs, or images of identifiable real people you lack rights to, and don't launder those into a
"generated" asset. The generator does not grant you rights you didn't have in the source.
isn't infringing.
Intent: produce an engine-ready, game-budget stylized barrel prop for Unity, from a concept image, then
convert to FBX. Provider/model: Tripo OpenAPI, P1 (want controlled low-poly + oriented asset).
# 1) Create an image_to_model task with P1, budgeting ~4k faces, PBR on, image-aligned orientation.
curl -s https://api.tripo3d.ai/v2/openapi/task \
-H "Authorization: Bearer $TRIPO_API_KEY" -H "Content-Type: application/json" \
-d '{
"type": "image_to_model",
"model_version": "p1",
"file": { "type": "png", "url": "https://example.com/barrel_ref.png" },
"face_limit": 4000,
"texture": true,
"pbr": true,
"texture_quality": "detailed",
"orientation": "align_image",
"auto_size": true
}'
# -> { "code":0, "data": { "task_id": "TASK_A" } }
# 2) Poll until success, then read output URLs and consumed_credit.
curl -s https://api.tripo3d.ai/v2/openapi/task/TASK_A \
-H "Authorization: Bearer $TRIPO_API_KEY"
# status: queued -> running -> success; data.output has the GLB URL. Download it promptly (URL expires).
# 3) Convert the finished GLB to FBX for the Unity project (chained by task id).
curl -s https://api.tripo3d.ai/v2/openapi/task \
-H "Authorization: Bearer $TRIPO_API_KEY" -H "Content-Type: application/json" \
-d '{ "type":"convert_model", "original_model_task_id":"TASK_A", "format":"FBX" }'
Why structured this way: P1 with an explicit face_limit yields a game-budget mesh directly instead of a
million-triangle mesh you'd have to decimate; orientation:"align_image" keeps the pivot/facing predictable
for level design; texture+PBR give lit-pipeline maps; conversion is a cheap chained task off the same id.
Expected result: a ~4k-tri textured barrel, GLB then FBX. Likely failure modes: baked-in shadows from
a harsh reference photo (fix: cleaner lighting or enable_image_autofix); hallucinated back detail (fix:
supply a multiview set); topology too triangulated for later deformation (fix: quad:true or a
smart_lowpoly pass). Variations: swap to multiview_to_model with front/back/left/right renders for a
faithful hero prop; drop to v3.0 and texture:false for a rapid geometry-only silhouette review before
committing credits.
https://docs.tripo3d.ai/https://github.com/VAST-AI-Research/tripo-python-sdk/blob/master/docs/API.md
https://platform.tripo3d.ai/docshttps://www.tripo3d.ai/api; Pricing: https://www.tripo3d.ai/pricinghttps://www.tripo3d.ai/bloghttps://www.tripo3d.ai/terms and 3D-print copyright guide on tripo3d.aihttps://apidog.com/blog/how-to-use-tripo-3d-api/;3D AI Studio Tripo P1 docs; fal / Runware Tripo model pages (proxy webhook behavior)
Take calesthio/tripo-3d from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.