Skip to content

Simulate

View Markdown llms-full.txt

Run a physics simulation against a previously completed conversion. Useful for sanity-checking that mass, friction, and collision shapes look right before you import the asset into your simulator.

MethodPOST
Path/api/conversions/:id/simulate
Content-typeapplication/json
Job typesimulate_usd
Credits0 (free)

The :id is the id of a completed source job (any of 3D, 2D, Text → SimReady). You cannot simulate a simulation.

FieldTypeRequiredNotes
scenestringno"demo" (default) or "drop". Picks the test scene.
Terminal window
curl -X POST https://api.rigyd.com/api/conversions/abc123.../simulate \
-H "Authorization: Bearer rgyd_live_..." \
-H "Content-Type: application/json" \
-d '{"scene":"drop"}'
{
"data": {
"id": "sim_xyz...",
"status": "queued",
"filename": "toolbox.glb",
"progress": 0,
"job_type": "simulate_usd",
"credits_charged": 0,
"source_job_id": "abc123...",
"createdAt": "2026-05-06T12:05:00.000Z"
}
}

The simulation runs as its own job — poll GET /api/conversions/:id on the returned id. When status is completed, the response includes output.sim_video, output.sim_gif, and output.sim_log URLs.

StatusBodyWhen
404{ "error": "Conversion job not found" }Bad id or not your job
409{ "error": "Source job must be completed before simulation" }Parent is still running / failed
422{ "error": "Cannot simulate a simulation job" }:id was already a simulate_usd job
502{ "error": "Simulation service unavailable: ..." }Upstream physics service is down