Skip to main content
Motion 3D extracts a 3D skeletal animation from a driving video — this is the type=glb path of POST /v1/motions. When it’s ready, request ?download_type=glb (or fbx) from Export 3D Motion to get all three rigs’ URLs at once. The exported GLB works with Mixamo, MetaHuman, and other Unity-compatible animation workflows. See the Motion Quickstart for the render-ready 2D path instead, or Text-to-Motion to generate a 3D animation from a text prompt with no source video. Set VIGGLE_API_KEY and run the example below as-is — it uses a Viggle-hosted sample video, so you don’t need to prepare your own motion video first.

What you need

The examples below reference a placeholder sample asset URL (https://assets.viggle.ai/samples/motion.mp4). Swap in your own motion_video/motion_video_url, or Viggle’s published sample asset once available.

Create, poll, and export the Motion

Response

Poll GET /v1/motions/{motion_id} every five seconds. When status is ready, request GET /v1/motions/{motion_id}/export?download_type=glb; the response returns all three rig variants at once — mixamo_url, metahuman_url, metahuman_body_url — each a signed link, valid for 1 hour and re-signed on every call. Request download_type=fbx on the same motion_id for the same three rigs baked as FBX instead — both formats are pre-generated, so switching between them never waits on new work. Not sure which rig to pick? mixamo_url is a generic 50-joint skeleton you’ll retarget onto your own character; metahuman_url/metahuman_body_url matches a Viggle vsplat Character’s rig 1:1, so it needs no retargeting at all. See Export 3D Motion for the full comparison, including the 441-joint (facial) vs. 86-joint (body-only) variants. See Pricing and retention for how the glb extraction is billed by source-video duration.

Create Motion (from Video)

See every request and response field.