Skip to content

VAST-AI-Research/tripo-java-sdk

Repository files navigation

Tripo Java SDK

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)

Installation

<dependency>
  <groupId>ai.tripo3d</groupId>
  <artifactId>tripo-sdk</artifactId>
  <version>0.1.0</version>
</dependency>

Quick start

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());
}

Supported APIs

3D Generation

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

Model post-processing

Method Description
refineModel Refine draft model
textureModel Apply texture to model
stylizeModel Stylize model
convertModel Convert model format
importModel Import external model

Animation

Method Description
rigCheck Pre-rig check
rig Rig model for animation
retarget Retarget animation

Mesh operations

Method Description
meshSegment Mesh segmentation
meshComplete Mesh completion
meshDecimate Mesh decimation (low-poly)

Tasks & account

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

Input types

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.

Async client

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()));

China region

TripoClientConfig config = TripoClientConfig.builder("tsk_your_api_key")
        .region(TripoRegion.CN)
        .build();

Build

./mvnw verify

Documentation

License

MIT

About

No description, website, or topics provided.

Resources

License

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages