Export an asset
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. Inspectpublished_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
Incollision.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: