Skip to main content
Euca’s asset pipeline (euca-asset) turns prompts into 3D content across 8 providers — models, heightmaps, skyboxes, PBR textures, and full scenes. Results are cached on disk by prompt (so identical prompts reuse the bake, keeping runs deterministic) and carry a provenance sidecar. Crucially, generated appearance is decoupled from the world’s ground truth: an AI-made mesh changes how an entity looks, never its exact state. That decoupling is what keeps Euca usable as a world-model answer key.
Asset generation calls external provider APIs. It is not runnable on a bare headless server: it needs network access and a provider API key (e.g. TRIPO_API_KEY, MESHY_API_KEY, …). GET /asset/providers reports which providers have a key configured (is_available). The default provider is Tripo.

Providers

KindProviders
3D modeltripo (default), meshy, rodin, hunyuan
Heightmapstability
Skyboxblockade_labs
PBR texturescenario
Full sceneworld_labs
Each implements the AssetGenerator trait (name / is_available / generate / poll / download). Generation runs on a blocking thread pool so it never stalls the simulation.

Endpoints

MethodPathDescription
POST/asset/generateStart a generation task (prompt, provider, quality)
GET/asset/status/{task_id}Poll a task (progress, file path, error)
GET/asset/generatedList all tasks with status
GET/asset/providersList providers and whether each has a key

Example

# Which providers are configured?
curl -s http://localhost:3917/asset/providers

# Kick off a Tripo model job, then poll it
TASK=$(curl -s -X POST http://localhost:3917/asset/generate \
  -H 'Content-Type: application/json' \
  -d '{"prompt":"a mossy stone golem","provider":"tripo","quality":"standard"}' | jq -r .task_id)

curl -s http://localhost:3917/asset/status/$TASK

Caching & provenance

  • Cache — before calling a provider, the service hashes the provider+prompt and checks assets/generated/; a hit returns immediately. Identical prompts reuse the baked mesh.
  • Provenance — each generated asset gets a JSON sidecar recording provider, prompt, quality, and timestamp.

Status

  • ✅ 8 providers, task lifecycle, prompt caching, provenance, offline baking — shipped.
  • 🟡 Requires a provider API key and network; no key ships by default. Some providers need a paid plan.

Asset endpoints

Generate, status, list, and providers endpoints with schemas.