Reference

File Formats

Supported file formats, asset purposes, and output formats.

Asset Purposes

Assets are categorized by their purpose, which determines how they're used in the platform:

retarget

Input files for retargeting jobs.

Supported formats:

  • .c3d - C3D motion capture format
  • .xml - XML markerset configuration

Use case: Upload C3D motion capture files and markerset XML files for retargeting.

Input Files

C3D Files

C3D (Coordinate 3D) is a standard format for motion capture data. C3D files contain 3D marker positions, analog data, and metadata.

Requirements:

  • Valid C3D format
  • Contains 3D marker trajectories
  • Compatible with the markerset configuration

Upload:

# File path: auto-uploads and purpose is auto-detected
result = client.retarget(tracker="motion.c3d", markerset="markerset.xml")

# Or upload explicitly
asset = client.assets.upload("motion.c3d")
# Purpose is auto-detected as "retarget" from .c3d extension

Markerset XML Files

Markerset XML files define the marker configuration and skeleton structure for your C3D data.

Requirements:

  • Valid XML format
  • Contains marker definitions
  • Matches the markers in your C3D file

Upload:

asset = client.assets.upload("markerset.xml")
# Purpose is auto-detected as "retarget" from .xml extension

Output Files

Retarget jobs produce multiple output files. You can download them using the result object:

result = client.retarget(tracker="motion.c3d", markerset="markerset.xml", export_glb=True)

# Download all outputs to a directory
result.download_all("out/")

# Or download individual files
result.download_qpos("out/qpos.parquet")
result.download_xpos("out/xpos.parquet")
result.download_model("out/model.mjb")
result.download_motion("out/motion.glb")  # Only if export_glb=True

qpos (.parquet)

Joint angles in configuration space (generalized coordinates).

  • Format: Apache Parquet
  • Use: Joint angles for physics simulation, animation, or further processing
  • Structure: Frame-by-frame joint angle data

Download:

result.download_qpos("out/qpos.parquet")
# or
result.output.qpos.download("out/qpos.parquet")

xpos (.parquet)

Joint positions in 3D space. Cartesian positions of joints in world or local space.

  • Format: Apache Parquet
  • Use: Joint positions for visualization, analysis, or downstream pipelines that need 3D positions
  • Structure: Frame-by-frame 3D position data per joint

Download:

result.download_xpos("out/xpos.parquet")
# or
result.output.xpos.download("out/xpos.parquet")

model (.mjb)

MuJoCo model file for the retargeted character.

  • Format: MuJoCo binary (.mjb)
  • Use: Load in MuJoCo for simulation or rendering
  • Structure: MuJoCo XML model compiled to binary

Download:

result.download_model("out/model.mjb")
# or
result.output.model.download("out/model.mjb")

motion (.glb)

Motion as a GLB file (optional). Only present when export_glb=True.

  • Format: GLB (binary glTF)
  • Use: Visualization in 3D viewers, web, or game engines
  • Structure: 3D scene with animated skeleton/mesh

Download:

if result.output.motion:
    result.download_motion("out/motion.glb")
# or
result.download_motion("out/motion.glb")  # Raises if export_glb was False

Content Types

The SDK automatically detects content types from file extensions. You can also specify them explicitly:

# Auto-detected
asset = client.assets.upload("motion.c3d")

# Explicit purpose (usually auto-detected)
asset = client.assets.upload(
    "motion.c3d",
    purpose="retarget",
    content_type="application/octet-stream"
)

Common content types:

  • application/octet-stream - Binary files (C3D)
  • application/xml - XML files
  • text/xml - XML files

File Size Limits

File size limits depend on your plan:

  • Default limit: 50 MB per file (for new tenants)
  • Free tier: Check your plan limits at dev.myolab.ai
  • Paid tiers: Higher limits available (configurable per tenant)

If you encounter size limit errors:

  1. Check your plan's limits
  2. Consider compressing files if possible
  3. Contact support@myolab.ai for assistance

Best Practices

  1. Use appropriate purpose - Let the SDK auto-detect, or specify explicitly
  2. Validate file formats - Ensure C3D and XML files are valid before uploading
  3. Check file sizes - Be aware of your plan's limits
  4. Verify uploads - Check asset status before using in jobs

Troubleshooting

"Invalid file format" error

  • Verify your C3D file is valid and not corrupted
  • Check that the markerset XML matches your C3D file
  • Ensure file extensions are correct (.c3d, .xml)

"File too large" error

  • Check your plan's file size limits
  • Consider compressing files if possible

"Motion output is not available" error

  • Set export_glb=True when creating the retarget job if you need the motion (.glb) file

Next Steps