Skip to main content

Download a motion

Download generated motions in FBX or GLB format using the motion download endpoints.

Step 1: Identify your character and motion IDs

You need both the characterId and motionId to download files.

Note: The filename in the URL is customizable for /motion/file/ and /motion/animation/ endpoints. You can use any filename you want (e.g., motion.fbx, walking-animation.glb). The /motion/bundle/ endpoint requires the fixed filename character.glb or character.fbx.

Retargeting: When you download a motion with a specific character ID, retargeting happens automatically—the motion is adapted to work with that character's skeleton and proportions.

Step 2: Download the motion file

API_KEY="{{apiKey}}"
CHARACTER_ID="cXi2eAP19XwQ"
MOTION_ID="your-motion-id"

# FBX (includes character mesh)
curl -L "https://uthana.com/motion/file/motion_viewer/$CHARACTER_ID/$MOTION_ID/motion.fbx" \
  -u $API_KEY: \
  -o motion.fbx

# GLB (includes character mesh)
curl -L "https://uthana.com/motion/file/motion_viewer/$CHARACTER_ID/$MOTION_ID/motion.glb" \
  -u $API_KEY: \
  -o motion.glb

Download options

Frame rate (FPS)

You can specify the frame rate for downloaded motions using the fps query parameter. Supported values are 24, 30, and 60.

# Download at 30 FPS
curl -L "https://uthana.com/motion/file/motion_viewer/$CHARACTER_ID/$MOTION_ID/motion.fbx?fps=30" \
  -u $API_KEY: \
  -o motion-30fps.fbx

# Download at 60 FPS
curl -L "https://uthana.com/motion/file/motion_viewer/$CHARACTER_ID/$MOTION_ID/motion.fbx?fps=60" \
  -u $API_KEY: \
  -o motion-60fps.fbx

Exclude character mesh

Use the no_mesh query parameter to download animation data without the character mesh. Set no_mesh=true to exclude the mesh, or no_mesh=false to include it (default).

# Download FBX without character mesh
curl -L "https://uthana.com/motion/file/motion_viewer/$CHARACTER_ID/$MOTION_ID/motion.fbx?no_mesh=true" \
  -u $API_KEY: \
  -o motion-no-mesh.fbx

Combining options

You can combine fps and no_mesh parameters:

# Download at 30 FPS without character mesh
curl -L "https://uthana.com/motion/file/motion_viewer/$CHARACTER_ID/$MOTION_ID/motion.fbx?fps=30&no_mesh=true" \
  -u $API_KEY: \
  -o motion-30fps-no-mesh.fbx

Motion-only GLB

To download only animation data without the character mesh, you can use the motion-only endpoint or the no_mesh=true parameter:

# Using the motion-only endpoint
curl -L "https://uthana.com/motion/animation/motion_viewer/$CHARACTER_ID/$MOTION_ID/motion.glb" \
  -u $API_KEY: \
  -o motion-only.glb

# Or using no_mesh parameter
curl -L "https://uthana.com/motion/file/motion_viewer/$CHARACTER_ID/$MOTION_ID/motion.glb?no_mesh=true" \
  -u $API_KEY: \
  -o motion-only.glb

Error handling

If you provide invalid parameter values, you'll receive an error response:

  • Invalid FPS: If fps is not 24, 30, or 60, you'll receive: "Malformed - fps parameter must be in [24, 30, 60]"
  • Invalid no_mesh: If no_mesh is not "true" or "false", you'll receive: "Malformed - no_mesh parameter must be a boolean"