Skip to main content
tripo3d avatar

Tripo v2.5 Text-to-3D API

tripo3d/tripo/v2.5/text-to-3d

Generate a downloadable, textured 3D mesh (GLB) from a text prompt — no input photo, ready for games, AR, and product viewers.

0.3

Model Input

Input

Text description of the object, product, character, or prop to generate as a 3D model.

Additional Settings

Customize your input with more control.

Attributes to steer the generation away from.

Caps the number of faces (triangles) on the output mesh. Leave unset to let mesh density adapt to the subject.

Random seed controlling geometry generation. Reuse the same seed to reproduce the same shape.

Random seed controlling texture generation. Reuse with the same seed to keep the shape but vary or reproduce textures.

Random seed for the internal prompt-to-image step that drives generation.

Automatically scale the model to real-world dimensions in meters.

You need to be logged in to run this model and view results.
Log in

Model Output

Output

Unsupported file type

Generated in 61.068 seconds
Logs (1 lines)

Model Example Requests

Examples

Example output 1Example output 2

Tripo v2.5 Text-to-3D API

Tripo v2.5 Text-to-3D is a text-to-3d AI model by tripo3d. On ModelRunner it runs through a REST API or via MCP from any AI assistant, at $0.3 per output.

POST https://queue.modelrunner.run/tripo3d/tripo/v2.5/text-to-3d

cURL

# Submit a request to the queue. Input fields go at the top level of the
# body. The optional reserved "metadata" object holds your own flat string
# tags — stored on the request, never sent to the model; filter later with
# GET https://queue.modelrunner.run/requests?metadata=<url-encoded JSON>.
curl -X POST https://queue.modelrunner.run/tripo3d/tripo/v2.5/text-to-3d \
  -H "Authorization: Key $MRUN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A sleek white ceramic coffee mug with a simple round handle, studio lighting, plain background.",
    "auto_size": false,
    "metadata": {
      "project": "my-project"
    }
  }'
# → { "request_id": "...", "status_url": "...", "response_url": "..." }

# Poll status_url until "COMPLETED", then fetch the result
curl "https://queue.modelrunner.run/tripo3d/tripo/v2.5/text-to-3d/requests/$REQUEST_ID/status" \
  -H "Authorization: Key $MRUN_API_KEY"
curl "https://queue.modelrunner.run/tripo3d/tripo/v2.5/text-to-3d/requests/$REQUEST_ID" \
  -H "Authorization: Key $MRUN_API_KEY"

JavaScript

import { modelrunner } from "@modelrunner/client";

const result = await modelrunner.subscribe("tripo3d/tripo/v2.5/text-to-3d", {
  input: {
    "prompt": "A sleek white ceramic coffee mug with a simple round handle, studio lighting, plain background.",
    "auto_size": false
  },
});
console.log(result);

Python

import os
import requests

headers = {"Authorization": f"Key {os.environ['MRUN_API_KEY']}"}

submitted = requests.post(
    "https://queue.modelrunner.run/tripo3d/tripo/v2.5/text-to-3d",
    headers=headers,
    json={
      "prompt": "A sleek white ceramic coffee mug with a simple round handle, studio lighting, plain background.",
      "auto_size": false
    },
).json()

# Poll submitted["status_url"] until "COMPLETED", then:
result = requests.get(submitted["response_url"], headers=headers).json()

Input parameters

NameTypeRequiredDescription
promptstringyesText description of the object, product, character, or prop to generate as a 3D model.
negative_promptstringnoAttributes to steer the generation away from.
face_limitintegernoCaps the number of faces (triangles) on the output mesh. Leave unset to let mesh density adapt to the subject.
seedintegernoRandom seed controlling geometry generation. Reuse the same seed to reproduce the same shape.
texture_seedintegernoRandom seed controlling texture generation. Reuse with the same seed to keep the shape but vary or reproduce textures.
image_seedintegernoRandom seed for the internal prompt-to-image step that drives generation.
auto_sizebooleannoAutomatically scale the model to real-world dimensions in meters. Default: false.

Machine-readable: OpenAPI schema · llms.txt

Use Tripo v2.5 Text-to-3D from Claude & Cursor (MCP)

Point Claude Code, Claude Desktop, Cursor, or any MCP client at the ModelRunner MCP server and Tripo v2.5 Text-to-3D becomes a tool your assistant can call directly — it authorizes via OAuth (no API key in config) and runs this model with the run_model tool using the endpoint tripo3d/tripo/v2.5/text-to-3d.

MCP client config (Claude Desktop, Cursor)

{
  "mcpServers": {
    "modelrunner": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.modelrunner.run/mcp"]
    }
  }
}

Claude Code

claude mcp add --transport http modelrunner https://mcp.modelrunner.run/mcp

Then ask your assistant, for example: “Run tripo3d/tripo/v2.5/text-to-3d on ModelRunner to generate 3d”. MCP setup guide.

Model Details

Model Details

Tripo v2.5 Text-to-3D builds a complete, textured 3D model from a text description alone — no reference photo required. You write a prompt describing the object, product, character, or prop you want, and it returns a downloadable GLB mesh with standard color textures baked in: geometry plus material, not just a point cloud or silhouette. The output is a regular `.glb` file you can drop into a game engine, AR viewer, 3D editor, or product-configurator, so it suits asset creation, rapid concepting, and prototyping a 3D model when you have an idea but no image or 3D source.

## Best for - Generating a 3D asset directly from a written description when you have no reference image - Concepting and prototyping props, objects, and characters for games, AR, and renders - Producing game-ready or render-ready GLB meshes from a short text brief - Building libraries of textured 3D assets from a list of prompts

## Choose another model when - You already have a photo of the object and want a faithful reconstruction — use an image-to-3D model - You want a 2D image from your prompt rather than a 3D mesh — use a text-to-image model - You want a video rather than a 3D model — use a text-to-video model - You need a printable, watertight, or CAD-grade solid for manufacturing — text-driven generation is for visual assets, not engineering tolerances

## Tips - Describe the subject, material, and finish concretely ("a sleek white ceramic coffee mug with a round handle") — specific prompts reconstruct more predictably than vague ones - Use `negative_prompt` to steer away from unwanted attributes (e.g. extra parts, busy surface detail) - Use `face_limit` to cap mesh density when you need a lighter asset; leave it unset to let density adapt to the subject - Pass a fixed `seed` (geometry) or `texture_seed` (textures) to reproduce a result, or vary `texture_seed` with the same `seed` to keep the shape but retexture; `image_seed` controls the internal prompt-to-image step

## Limitations - Generated detail is inferred from the prompt; fine or unusual structures may be approximate - Thin structures, transparent or highly reflective materials, and very busy descriptions can lose fidelity - Output is a textured visual mesh, not a precise measured or watertight solid

The generated 3D model is returned as a GLB file URL.

```js import { modelrunner } from "@modelrunner/client";

const result = await modelrunner.subscribe("tripo3d/tripo/v2.5/text-to-3d", { input: { prompt: "A sleek white ceramic coffee mug with a simple round handle, studio lighting, plain background.", }, }); ```