Official Java client for the Tripo API.
- JDK: 8+
- Maven:
ai.tripo3d:tripo-sdk
- Regions: Global (
https://openapi.tripo3d.ai) · China (https://openapi.tripo3d.com)
<dependency>
<groupId>ai.tripo3d</groupId>
<artifactId>tripo-sdk</artifactId>
<version>0.1.0</version>
</dependency>
import ai.tripo3d.sdk.api.TripoClient;
import ai.tripo3d.sdk.api.TripoClientConfig;
import ai.tripo3d.sdk.api.TripoRegion;
import ai.tripo3d.sdk.model.request.TaskRequestPayload;
import ai.tripo3d.sdk.model.response.TaskDetail;
try (TripoClient client = TripoClient.create(
TripoClientConfig.builder(System.getenv("TRIPO_API_KEY"))
.region(TripoRegion.GLOBAL)
.build())) {
// Create a text-to-model task
TaskDetail created = client.textToModel(TaskRequestPayload.builder()
.prompt("a wooden chair")
.model("v3.1-20260211")
.build());
// Poll until the task completes
TaskDetail done = client.pollUntilTerminal(created.taskId());
System.out.println("Status: " + done.status());
System.out.println("Output: " + done.output());
}
| Method |
Description |
textToModel |
Text to 3D model |
imageToModel |
Image to 3D model |
multiviewToModel |
Multi-view images to 3D model |
imageToMultiview |
Image to multi-view images |
imageToSplat |
Image to Gaussian Splat |
| Method |
Description |
refineModel |
Refine draft model |
textureModel |
Apply texture to model |
stylizeModel |
Stylize model |
convertModel |
Convert model format |
importModel |
Import external model |
| Method |
Description |
rigCheck |
Pre-rig check |
rig |
Rig model for animation |
retarget |
Retarget animation |
| Method |
Description |
meshSegment |
Mesh segmentation |
meshComplete |
Mesh completion |
meshDecimate |
Mesh decimation (low-poly) |
| Method |
Description |
getTask |
Query task status |
listTasks |
Batch query tasks |
uploadFile |
Upload file (presign or multipart) |
presignUpload |
Get presigned upload URL |
balance |
Query account balance |
usage |
Query usage history |
Full API reference: docs/API.md
The SDK supports multiple input formats:
// URL input
client.imageToModel(TaskRequestPayload.builder()
.mergeInput(new UrlInput("https://example.com/photo.png"))
.model("v3.1-20260211")
.build());
// Local file (auto-uploaded)
client.imageToModel(TaskRequestPayload.builder()
.mergeInput(new LocalFileInput(Paths.get("photo.png")))
.model("v3.1-20260211")
.build());
// Task reference (use output from a previous task)
client.textureModel(TaskRequestPayload.builder()
.mergeInput(new TaskIdInput("previous-task-uuid"))
.build());
// Multi-view input
client.multiviewToModel(TaskRequestPayload.builder()
.mergeInput(MultiviewInput.builder()
.front(new UrlInput("https://example.com/front.png"))
.left(new UrlInput("https://example.com/left.png"))
.back(new UrlInput("https://example.com/back.png"))
.right(new UrlInput("https://example.com/right.png"))
.build())
.model("v3.1-20260211")
.build());
See docs/INPUTS.md for details.
TripoAsyncClient asyncClient = TripoAsyncClient.create(config);
CompletableFuture<TaskDetail> future = asyncClient.textToModel(
TaskRequestPayload.builder().prompt("a robot").model("v3.1-20260211").build());
future.thenAccept(task -> System.out.println(task.taskId()));
TripoClientConfig config = TripoClientConfig.builder("tsk_your_api_key")
.region(TripoRegion.CN)
.build();
MIT