🎯 MStudio
Markerless/Marker-based Motion Capture Data Visualization & Editing Tool
Seamlessly visualize, analyze, and edit 3D marker data from motion capture systems
🚀 Quick Start • 📖 Features • 💾 Installation • 🎮 Usage • 🤝 Support
🌟 What is MStudio?
MStudio is a user-friendly application designed for researchers, biomechanists, and motion capture professionals. It provides an intuitive interface to:
- Visualize 3D marker trajectories in real-time
- Analyze movement patterns and joint&segment angles
- Edit and filter motion capture data
- Export processed data for further analysis
Compatible with popular tools like Pose2Sim and Sports2D.
💾 Installation
Option 1: Install from PyPI (Recommended)
# Create a virtual environment (recommended)
conda create -n mstudio python=3.10 -y
conda activate mstudio
# Install MStudio
pip install mstudio
Option 2: Install from Source
git clone https://github.com/hunminkim98/MStudio.git
cd MStudio
pip install .
🚀 Quick Start
Launch MStudio
mstudio
That's it! The application will open with an intuitive interface ready for your motion capture data.
Load Your First Dataset
- Open File your TRC/C3D file or Choose JSON Folder for 2D marker data
- Play the animation using the spacebar
- Explore your data with mouse controls:
- Left click + drag: Rotate view
- Right click + drag: Pan
- Scroll wheel: Zoom
📖 Features
🎮 Usage
Step-by-Step Tutorial
1. Load Your Data
# Launch MStudio
mstudio
# In the application:
# File → Open → Select your .trc or .c3d file
# Or simply drag & drop your file into the window
2. Basic Navigation
| Action | Control |
|---|---|
| Play/Pause Animation | Spacebar or Enter |
| Stop Animation | Spacebar or Enter or Esc |
| Next/Previous Frame | → / ← Arrow keys |
| Rotate View | Left click + drag |
| Pan View | Right click + drag |
| Zoom | Mouse wheel |
3. Analysis Mode
- Click the "Analysis" button to activate
- Select markers by left-clicking in the 3D view:
- 2 markers: Shows distance measurement and segment angle (relative to virtual horizontal line)
- Left-click to cycle through reference axes (X, Y, Z)
- 3 markers: Shows joint angle (middle marker = vertex)
- 2 markers: Shows distance measurement and segment angle (relative to virtual horizontal line)
- Results display directly in the 3D viewport
4. Data Processing
- Filter data: Use the filter panel to apply Butterworth, median, or speed-based filters
- Interpolate gaps: Select problematic markers and use pattern-based interpolation
- Export results: File → Save As → Choose TRC or C3D format
🤝 Support
Getting Help
- 📖 Documentation: GitHub Wiki (Coming Soon)
- 🐛 Bug Reports: Issue Tracker
- 💬 Discussions: GitHub Discussions
- 📧 Contact: hunminkim98@gmail.com
Contributing
We welcome contributions! Please see our Contributing Guidelines (Coming Soon).
Supported File Formats
- Input: TRC, C3D, JSON
- Output: TRC, C3D
- Skeleton Models: OpenPose, MediaPipe, COCO, HALPE, MPII
🔮 Roadmap
✅ Completed Features
- 3D Visualization: Real-time marker rendering with smooth 60 FPS animation
- Skeleton Support: Multiple skeleton models (OpenPose, MediaPipe, COCO, etc.)
- Analysis Tools: Distance measurement, joint angles, segment angles
- Data Processing: Advanced filtering and interpolation
- File Support: TRC/C3D import/export functionality
🚧 In Development
- Multi-Selection: Drag-and-drop selection for multiple markers
- View Planes: Click-to-set orthogonal views (inspired by OpenSim)
- Customization: Adjustable marker size, color, and opacity
- Performance: Enhanced rendering for large datasets
🎯 Planned Features
- Multi-Person Support: Simultaneous visualization and analysis of multiple subjects
- Analysis Reports: Export comprehensive analysis results to PDF format
- Gait Analysis Mode: Specialized tools and metrics for gait analysis
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
- Compatible with Pose2Sim and Sports2D
- Built with Python, OpenGL, and CustomTkinter
- Inspired by the biomechanics and motion capture community
Metadata
Release files for MStudio 0.1.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| mstudio-0.1.5.tar.gz | 100.1 kB | Without provenance | Details for mstudio-0.1.5.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| mstudio-0.1.5-py3-none-any.whl | Python 3 | none | any | Details for mstudio-0.1.5-py3-none-any.whl |
Total release size: 214.7 kB
Release files / mstudio-0.1.5.tar.gz
| Download URL | mstudio-0.1.5.tar.gz |
|---|---|
| Size | 100.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f919b7c51c8e15eae7f3acc70083b3c1cb0d6bfc626291c1ae0c4bd0630d3a92
|
|
BLAKE2b-256 checksum How to use checksums |
7d719b3655f50c54922f3a3f5d7f9eed3acdb76bf6d2ec48491ac14f409dc038
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.4
|
Release files / mstudio-0.1.5-py3-none-any.whl
| Download URL | mstudio-0.1.5-py3-none-any.whl |
|---|---|
| Size | 114.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
93448728633b1fbc28abfed1ad41fc71f827cf00f2b6fb35e702d65f2b41340d
|
|
BLAKE2b-256 checksum How to use checksums |
5f0382d68293552048267ea9c5fddcd939a9768541c55e94edfd3a9f534f9424
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.4
|
Security for MStudio 0.1.5
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.