Tripo3D Remesh
통합
모델 id
tripo3d/tripo/remesh
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/tripo3d/tripo/remesh?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"mesh_url": "https://example.com/your-file.glb"
}'
# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY"
const API = "https://api.doitong.com/v1";
const headers = {
"Authorization": "Bearer " + process.env.DOITONG_API_KEY,
"Content-Type": "application/json",
};
// Run the model; wait up to 20 s for the finished result in the same call
let res = await fetch(API + "/run/tripo3d/tripo/remesh?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"mesh_url": "https://example.com/your-file.glb"
}),
});
let request = await res.json();
if (!res.ok) throw new Error(request.error.code + ": " + request.error.message);
// Not finished yet: long-poll until it is
while (request.status === "queued" || request.status === "running") {
res = await fetch(API + "/requests/" + request.id + "?wait=20", { headers });
request = await res.json();
}
if (request.status !== "succeeded") throw new Error(JSON.stringify(request.error));
console.log(request.outputs.map((o) => o.url), request.cost.credits + " API credits ($" + request.cost.usd + ")");
import os
import requests
API = "https://api.doitong.com/v1"
headers = {"Authorization": "Bearer " + os.environ["DOITONG_API_KEY"]}
payload = {
"mesh_url": "https://example.com/your-file.glb",
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/tripo3d/tripo/remesh", params={"wait": 20}, json=payload, headers=headers)
request = r.json()
if not r.ok:
raise RuntimeError(request["error"]["code"] + ": " + request["error"]["message"])
# Not finished yet: long-poll until it is
while request["status"] in ("queued", "running"):
request = requests.get(API + "/requests/" + request["id"], params={"wait": 20}, headers=headers).json()
if request["status"] != "succeeded":
raise RuntimeError(request["error"])
print([o["url"] for o in request["outputs"]], request["cost"]["credits"], "API credits", "$" + request["cost"]["usd"])
# 1. Connect once (Claude Code; Cursor, VS Code, Claude Desktop: https://doitong.com/ko/developers/docs/mcp)
claude mcp add --transport http doitong-models https://api.doitong.com/v1/mcp \
--header "Authorization: Bearer $DOITONG_API_KEY"
# 2. Your agent calls the "run" tool with:
{
"model_id": "tripo3d/tripo/remesh",
"input": {
"mesh_url": "https://example.com/your-file.glb"
}
}
Doitong API를 통해 Tripo3D Remesh 모델(tripo3d/tripo/remesh)을 호출합니다. 에이전트용 문서: https://doitong.com/ko/developers/models/tripo3d/tripo/remesh.md
POST https://api.doitong.com/v1/run/tripo3d/tripo/remesh?wait=20
Authorization: Bearer $DOITONG_API_KEY
Content-Type: application/json
{
"mesh_url": "https://example.com/your-file.glb"
}
응답 상태가 "queued" 또는 "running"이면 "succeeded"가 될 때까지 GET https://api.doitong.com/v1/requests/REQUEST_ID?wait=20을 폴링하세요. 파일은 outputs[].url에 있습니다. POST https://api.doitong.com/v1/quote/tripo3d/tripo/remesh에 동일한 본문을 보내면 실행 전에 정확한 가격을 반환합니다.
이 요청: ≈$0.40 400 API 크레딧 이 페이지에서 실행
새 API 키입니다. 지금만 표시되며 이미 아래 코드와 API 키 필드에 입력되어 있습니다. 안전하게 보관하세요. 브라우저에서 실행되는 코드에 절대 넣지 마세요.
Tripo · 3D
첫 번째 결과가 여기에 표시됩니다
아래에서 요청을 작성하고 API 키로 실행하세요. 출력은 스토리지에 복사되며, 영구 보관하거나 7일 동안 무료로 보관할 수 있습니다.
요청 만들기
컨트롤은 모델 스키마에서 생성됩니다. 값을 변경하면 코드와 가격이 업데이트됩니다.
POST
/run/tripo3d/tripo/remesh?wait=20
견적 → $0.40
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/tripo3d/tripo/remesh?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"mesh_url": "https://example.com/your-file.glb"
}'
# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
-H "Authorization: Bearer $DOITONG_API_KEY"
const API = "https://api.doitong.com/v1";
const headers = {
"Authorization": "Bearer " + process.env.DOITONG_API_KEY,
"Content-Type": "application/json",
};
// Run the model; wait up to 20 s for the finished result in the same call
let res = await fetch(API + "/run/tripo3d/tripo/remesh?wait=20", {
method: "POST",
headers,
body: JSON.stringify({
"mesh_url": "https://example.com/your-file.glb"
}),
});
let request = await res.json();
if (!res.ok) throw new Error(request.error.code + ": " + request.error.message);
// Not finished yet: long-poll until it is
while (request.status === "queued" || request.status === "running") {
res = await fetch(API + "/requests/" + request.id + "?wait=20", { headers });
request = await res.json();
}
if (request.status !== "succeeded") throw new Error(JSON.stringify(request.error));
console.log(request.outputs.map((o) => o.url), request.cost.credits + " API credits ($" + request.cost.usd + ")");
import os
import requests
API = "https://api.doitong.com/v1"
headers = {"Authorization": "Bearer " + os.environ["DOITONG_API_KEY"]}
payload = {
"mesh_url": "https://example.com/your-file.glb",
}
# Run the model; wait up to 20 s for the finished result in the same call
r = requests.post(API + "/run/tripo3d/tripo/remesh", params={"wait": 20}, json=payload, headers=headers)
request = r.json()
if not r.ok:
raise RuntimeError(request["error"]["code"] + ": " + request["error"]["message"])
# Not finished yet: long-poll until it is
while request["status"] in ("queued", "running"):
request = requests.get(API + "/requests/" + request["id"], params={"wait": 20}, headers=headers).json()
if request["status"] != "succeeded":
raise RuntimeError(request["error"])
print([o["url"] for o in request["outputs"]], request["cost"]["credits"], "API credits", "$" + request["cost"]["usd"])
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "run",
"arguments": {
"model_id": "tripo3d/tripo/remesh",
"input": {
"mesh_url": "https://example.com/your-file.glb"
},
"wait_seconds": 20
}
}
}
Tripo3D Remesh 정보
`mesh_url`의 메시(GLB, OBJ, FBX 또는 STL, 최대 150MB)를 가져와 목표 `face_limit` 500~20,000개의 면으로 재구성합니다. `quad`를 활성화하면 제한은 500~10,000개가 되고 출력은 FBX입니다. `bake`를 사용하면 결과물에 텍스처를 베이크할 수 있습니다. 이전 세분화의 `part_names`를 사용하면 해당 파트를 분리된 상태로 유지합니다.
매개변수
이름유형
기본값허용됨
설명
mesh_url필수
유형string
리메시 소스입니다. URL로 제공되는 3D 모델이며, 150 MB 이하이고 GLB, OBJ, FBX 또는 STL로 저장되어야 합니다.
quad선택 사항
유형boolean
기본값false
쿼드 토폴로지 전환 옵션입니다. 활성화하면 FBX 출력이 필요하고 지정되지 않은 'face_limit'에 10000이 할당됩니다. 면은 4변형이며, 그렇지 않을 때 사용하는 삼각형 토폴로지와 다릅니다.
face_limit선택 사항
유형integer | null
500 – 20,000
리메시에 사용할 면 수 목표입니다. 생략하면 모델이 적응적으로 선택합니다. 최소값은 500이고 최대값은 20000이며, 'quad'가 true이면 10000으로 줄어듭니다.
bake선택 사항
유형boolean
기본값true
생성 과정의 일부로 리메시된 모델에 텍스처를 베이크합니다.
part_names선택 사항
유형string[]
리메시 중 분리해 둘 파트입니다. 이전 메시 세그먼테이션에서 얻은 이름 목록으로 선택적으로 식별할 수 있습니다.
필수
출력
GET /requests/req_8k2m4q7x1z9c3v5b6n0p2r4t
{
"id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
"object": "request",
"model": "tripo3d/tripo/remesh",
"status": "succeeded",
"created_at": "2026-10-20T12:00:00Z",
"started_at": "2026-10-20T12:00:02Z",
"completed_at": "2026-10-20T12:00:09Z",
"queue_position": null,
"cost": {
"credits": 400,
"usd": "0.40",
"charged": 400,
"refunded": 0
},
"input": {
"mesh_url": "https://example.com/your-file.glb"
},
"output": {
"model_mesh": {
"url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
"content_type": "image/jpeg",
"file_name": "0-output.jpeg",
"file_size": 1843200
},
"model_urls": {
"glb": {
"url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
"content_type": "image/jpeg",
"file_name": "0-output.jpeg",
"file_size": 1843200
},
"fbx": {
"url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
"content_type": "image/jpeg",
"file_name": "0-output.jpeg",
"file_size": 1843200
},
"base_model": {
"url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
"content_type": "image/jpeg",
"file_name": "0-output.jpeg",
"file_size": 1843200
},
"pbr_model": {
"url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
"content_type": "image/jpeg",
"file_name": "0-output.jpeg",
"file_size": 1843200
}
},
"rendered_image": {
"url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
"content_type": "image/jpeg",
"file_name": "0-output.jpeg",
"file_size": 1843200
},
"task_id": "string"
},
"outputs": [
{
"type": "file",
"url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.jpeg",
"content_type": "image/jpeg",
"file_size": 1843200,
"stored": true
}
],
"error": null,
"metrics": {
"inference_seconds": 6.8
},
"urls": {
"self": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
"cancel": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
}
}
파일 보관 방식 선택모든 outputs[].url은 스토리지에 저장된 복사본입니다. 계정 설정 또는 ?storage=에 따라 영구 보관(GB-월 단위 과금)하거나 7일 동안 무료로 보관합니다.
모든 모델에서 동일한 구조이미지, 동영상, 오디오 모두 type, url, content_type, width, height 및 duration을 사용합니다. output은 모델 자체의 결과 객체입니다.
출력 필드
- model_mesh
- object {url, content_type, file_name, file_size}생성된 3D 모델을 포함하는 GLB 또는 FBX 파일입니다. 형식은 Tripo가 생성하는 결과에 따라 결정됩니다.
- model_urls
- object {glb, fbx, base_model, pbr_model}3D 모델의 대체 버전을 가리키는 URL입니다.
- rendered_image
- object {url, content_type, file_name, file_size} | null생성된 3D 모델을 보여 주는 렌더링된 미리보기입니다.
- task_id
- string | null생성된 모델을 식별하는 재사용 가능한 Tripo 작업 ID입니다. rig 또는 rig-check에 사용하면 모델을 다시 업로드하지 않고 해당 작업을 수행할 수 있습니다.
다른 Tripo3d 변형
더 많은 모델: 3D
AI 에이전트용: 이 페이지의 Markdown 버전: https://doitong.com/ko/developers/models/tripo3d/tripo/remesh.md. 모든 모델 및 가이드: https://doitong.com/developers/llms.txt