File 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 filestext/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:
- Check your plan's limits
- Consider compressing files if possible
- Contact support@myolab.ai for assistance
Best Practices
- Use appropriate purpose - Let the SDK auto-detect, or specify explicitly
- Validate file formats - Ensure C3D and XML files are valid before uploading
- Check file sizes - Be aware of your plan's limits
- 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=Truewhen creating the retarget job if you need the motion (.glb) file
Next Steps
- SDK Reference - Complete SDK documentation
- Retargeting Tutorial - Complete workflow example
- Error Handling - Exception types and handling