Skip to main content
Each request downloads one asset in one format. There is no single ZIP containing an entire batch.

Export an asset

Replace ASSET_ID with result.asset.id. The required format is a query parameter. There is no request body. The response contains the file bytes, not JSON or a download URL. For Team jobs, export?format=glb is a ZIP containing the visual GLB and available collision/physics/QA files. Use GET /v1/assets/{id}/files/glb when you need the raw visual .glb; /files/glb_bundle returns the saved bundle. Inspect Content-Type and Content-Disposition, rather than treating every GLB-related response as raw GLB bytes. Formats absent from the job’s pinned release return 409 export_not_available; requesting an export does not imply a new generation. Use -o asset.usdz when requesting format=usdz. Content-Disposition supplies a suggested filename. X-Export-File-Count and X-Export-Warnings provide export metadata.

Team results and downloads

Team releases require USD and a saved visual GLB. The export worker also prepares a GLB bundle with collision meshes and physics metadata when decomposition succeeds. USDZ, MJCF, SDF and Blender files are optional release settings. Inspect published_formats on job/batch status before requesting an optional format. An unavailable optional format returns 409 export_not_available; it never triggers regeneration. Every accepted Team job has an asset_id, also returned on batch item statuses. GET /v1/assets lists the shared Team library, including queued, failed and cancelled entries. Follow its pagination cursor. A key only lists assets in its own Team, even when its owner belongs to several Teams. After the job succeeds, use GET /v1/assets/{asset_id}?include_record=true for geometry, joints and material data. Referenced mesh/texture URLs expire after five minutes; fetch the record again to obtain fresh URLs. Do not persist these URLs as permanent asset identifiers. Use POST /v1/assets/{asset_id}/export?format=usd (also usdz, mjcf, sdf) for saved simulator output. Each export request downloads one asset in one selected format. It does not combine every batch item or every simulator format into a universal archive. format=glb returns a single ZIP bundle when available: The exact collider files depend on the collision backend and accepted release. Use physics.json to determine the available representations. A QA file can report failures even when generation published successfully. Neither an archive nor a collision mesh by itself certifies native USD/Isaac dynamics. These file roles describe the asset format, not a PI-specific customer format. Different releases may produce different optional representations or simulator formats; document those capabilities rather than changing the meaning of a file based on who requested it. USD is a separate ZIP export containing the USD scene and its packaged dependencies, not the same GLB/physics bundle. Team downloads return the bytes produced by that job’s pinned release; they do not rerun the latest exporter. Native files are available through: Downloads require export:assets; listing and record access require read:assets. These native-file endpoints currently require a Team key. A pending, failed or cancelled asset without a published result returns 409 asset_not_ready on download. A missing or inconsistent saved artifact returns 503; the server does not silently regenerate it. Binary downloads include an X-Content-SHA256 checksum header. A GLB download provides visual geometry/materials, not a certification of simulator physics or PBR parity. For a large Team download, GET /v1/assets/{asset_id}/files/{format}/url returns {url, expires_in, name, size_bytes, sha256}. Supported formats are usd, usdz, mjcf, sdf, glb, glb_bundle, and blend. The URL downloads the same saved bytes with an attachment filename and expires after 300 seconds. It grants temporary file access: keep it private and fetch a new link when needed. This endpoint requires export:assets and verifies the saved artifact before issuing a link.

Load collision geometry

In collision.glb each mesh node is one convex hull; load every node as its own hull and do not re-decompose. Assets whose design has functional openings that hulls would close (sockets, slots, hole patterns, handle cutouts) also include collision_hybrid_convex.glb and collision_hybrid_sdf.glb: use the pair instead of collision.glb, loading the second as SDF colliders (PhysX SDF colliders do not touch plane shapes, so use a box for the floor or table). physics.json describes each file under colliders. In ManiSkill:

Endpoint reference

Export an asset · Download a saved file · Get a temporary download link