Thrixel API

Detail & Texture

Phase 4 detailer + texture endpoints — GPU-powered mesh refinement and retexturing.

Phase 4 takes a completed submission as the source mesh and produces a high-resolution textured model. You can also remesh or retexture an existing result without regenerating from scratch.

Endpoints split across two routers:

  • /api/v1/detailer/* — full detail + texture pass, geometry-only operations (remesh).
  • /api/v1/texture/* — texture-only operations on an existing mesh (generate, rebake).

Detail and texture a model

POST /api/v1/detailer/submit

Requires API key.

Generate a high-resolution textured mesh from a parent submission. A reference image and prompt guide the texture style; if omitted, they are auto-generated from the parent.

Request Body

NameTypeDescription
parent_submission_idstring (required)ID of the submission to detail.
imagestringReference image (base64 or HTTPS URL). Auto-generated if omitted.
meshstringOverride source mesh (base64 or URL). Defaults to the parent's GLB.
promptstringText description of the desired appearance.
seedintegerRandom seed for reproducibility. 0–999,999. Default: 42.
texture_sizeintegerOutput texture resolution. Values: 512, 768, 1024, 2048. Default: 768.
decimation_targetintegerTarget triangle count after decimation. 10,000–500,000. Default: 160000.
preserve_partsbooleanKeep separate mesh parts intact during decimation. Default: true.
focus_on_node_namesstring[]Node names to focus the generation on. Empty = whole mesh.
project_idstringAssign to a project.

Example Request

curl -X POST https://api.thrixel.com/api/v1/detailer/submit \
  -H "Authorization: Bearer sk-thrixel-<YOUR_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "parent_submission_id": "a1b2c3d4-...",
    "prompt": "weathered bronze, green patina",
    "texture_size": 1024
  }'

Example Response

{
  "submission_id": "e5f6a7b8-...",
  "status": "queued",
  "created_at": "2026-04-20T14:45:30Z",
  "reference_image_url": "https://api.thrixel.com/api/v1/detailer/reference/e5f6a7b8-..."
}

Re-decimate a Phase 4 mesh

POST /api/v1/detailer/remesh

Requires API key.

Produce a new triangle count from an existing Phase 4 checkpoint without regenerating texture. Fast — reuses cached intermediate results.

Request Body

NameTypeDescription
parent_submission_idstring (required)ID of a completed Phase 4 submission.
decimation_targetintegerTarget triangle count. 10,000–500,000. Default: 200000.
remeshbooleanRun quad remeshing before decimation. Default: true.
project_idstringAssign to a project.

Example Request

curl -X POST https://api.thrixel.com/api/v1/detailer/remesh \
  -H "Authorization: Bearer sk-thrixel-<YOUR_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "parent_submission_id": "e5f6a7b8-...",
    "decimation_target": 80000
  }'

Generate textures for an existing mesh

POST /api/v1/texture/generate

Requires API key.

Produce fresh PBR textures from a reference image. Geometry is preserved; only materials change. Works on any completed submission (phase 1–5), not just Phase 4 output. Image priority: user-supplied → cached parent input → auto-generated from the GLB.

Request Body

NameTypeDescription
parent_submission_idstring (required)ID of a completed submission to retexture.
texture_sizeintegerOutput texture resolution. Values: 512, 768, 1024, 2048. Default: 1024.
imagestringReference image (base64 data URI). Auto-generated from the GLB if omitted.
apply_to_node_namesstring[]Restrict texturing to specific mesh nodes. Empty = whole mesh.
project_idstringAssign to a project.

Example Request

curl -X POST https://api.thrixel.com/api/v1/texture/generate \
  -H "Authorization: Bearer sk-thrixel-<YOUR_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "parent_submission_id": "e5f6a7b8-...",
    "texture_size": 1024
  }'

Rebake textures at a new resolution

POST /api/v1/texture/rebake

Requires API key.

Re-bake the existing texture at a different resolution. Picks the cheapest viable path automatically: fast bake from a prior /texture/generate checkpoint when available, otherwise the full reprocessing path.

Request Body

NameTypeDescription
parent_submission_idstring (required)ID of a completed submission.
texture_sizeintegerOutput texture resolution. Values: 512, 768, 1024, 2048. Default: 1024.
project_idstringAssign to a project.

Example Request

curl -X POST https://api.thrixel.com/api/v1/texture/rebake \
  -H "Authorization: Bearer sk-thrixel-<YOUR_KEY>" \
  -H "Content-Type: application/json" \
  -d '{
    "parent_submission_id": "e5f6a7b8-...",
    "texture_size": 2048
  }'

Fetch reference image

GET /api/v1/detailer/reference/{submission_id}

Public.

Returns the user-provided or auto-generated reference image used to guide the Phase 4 pipeline. PNG.

Path Parameters

NameTypeDescription
submission_idstring (required)UUID of a Phase 4 submission.

Example Request

curl -L -o reference.png \
  https://api.thrixel.com/api/v1/detailer/reference/e5f6a7b8-...