Skip to content

insodimension/gen-tripo

v0.1.0MIT

Tripo 3D generation on Tripo's own pay-per-use API: image or multiview to 3D, part separation, retopology, auto-rig, animation retarget and format conversion, chained by Tripo task id

Tripo 3D generation

What it is

Tripo's own pay-per-use API for the agent: turn one picture, or several views of the same thing, into a 3D model, then keep working on that model: split it into parts, re-mesh it, rig it, put animation clips on the rig, convert it for a game engine. It is a connector for the engine's generation jobs; it adds no tool of its own. Each step is a Tripo task, and a later step names the earlier one by its Tripo task id, so the rig lands on the exact mesh that was generated with no download and upload in between.

What it contains

  • A generation provider, id tripo. It produces model3d, parts, rig and retopo, and runs against Tripo's V3 API at openapi.tripo3d.ai/v3 (runtime: "api").
  • Seventeen models, listed in models.json with their options, prices and constraints:
    • image to 3D and multiview to 3D (2 to 4 images), each in three generations: H3.1, P2 (preview) and P1;
    • mesh segmentation segmentation/v1.0 and segmentation/v2.0 (beta), and part completion completion/v1.0;
    • smart retopology lowpoly/v2.0 and basic decimation lowpoly/v1.0;
    • auto-rig rig/v2.5 (biped, quadruped, hexapod, octopod, avian, serpentine, aquatic) and rig/v1.0 (biped only);
    • animation retarget, which bakes preset clips onto a rig;
    • format convert (GLTF, FBX, USDZ, OBJ, STL, 3MF);
    • re-texturing texture/v3.5 and texture/v3.0.
  • Chaining. A result carries Tripo's task id as its handle. A later request sets input.from.handle to continue from it; some models take a local mesh in input.model instead.

Nothing vendor-specific is hard-coded in index.ts: model ids, parameters, prices, upload limits and licences are all in models.json, next to the Tripo pages they were read from.

Who can use it

Off by default (defaultEnabled: false); switch it on, then open its Connect form. It is global: it declares no spaces, so once on it loads in every space. The form asks for two things:

  • a Tripo API key (starts with tsk_), made on the Tripo platform after you buy API credits;
  • Paid for Tripo credits? (yes / no). Answer no while you are on the free trial.

Connecting spends nothing. The settings are kept on this machine at ~/.config/dimension-gen-tripo/key.json, and the key is sent only to openapi.tripo3d.ai.

Limits and risks

  • Every job spends real money. One credit is $0.01. The price is quoted before submit and the engine refuses a job over generation.maxUsdPerJob, or one that would take the UTC day past generation.maxUsdPerDay. An H3.1 image to 3D starts at $0.20 untextured; P2 starts at $1.00, and $1.30 with an 8K texture. Tripo freezes the credits when a task is created and releases them if it fails, so a failed task is booked as billed only when Tripo reports credits consumed.
  • A task is never resent after a failure that might have reached Tripo, because each submit is billed. Only a 429 or 503, where Tripo declined the request unprocessed, is retried.
  • Trial credits give you no commercial rights. Output made on free or trial credits belongs to Tripo (Terms 5.2.1), and Tripo cannot tell trial credits from bought ones, so Dimension relies on your answer. Anything but yes, including an older connection that never answered, stamps the output tripo-api-trial: non-commercial and prototype-only. Credits you bought give tripo-api-paid: you own the output, but you may not build a competing model from it or expose Tripo's 3D service to third parties (Terms 3.2). The licence is fixed when the job is submitted.
  • Uploads leave this machine. The images and meshes you generate from are uploaded to Tripo (images up to 20 MB as png or jpg; meshes up to 150 MB as glb, gltf, fbx, obj or stl).
  • Parts and textures do not go together. generate_parts needs texture: false and pbr: false, and neither quad nor smart_low_poly; the pack refuses the request rather than let Tripo reject it or drop the parts.
  • Other combinations the pack refuses: texture_quality: "fast" without texture_version v3.5-20260815; force_symmetry without quad; vertex colours in anything but OBJ or GLTF; retarget with both animation and animations, or neither.
  • Some prices are inferred. Where Tripo's pages disagree or are silent, models.json says so in the model's priceBasis (the rig price, the P2 quad surcharge, segmentation with a reference image); the task's own reported credits are what counts.
  • The V3 API only. The V2 API stops serving on 2026-11-01 and this pack does not use it.

Build and test

There is no build step: the engine loads index.ts as it is. The tests run on an in-memory Tripo built from Tripo's documented responses (test/fixtures/), with no network and no key. From the Dimension repository root:

bun test marketplace/packs/gen-tripo/test