The analysis of human movement is fundamental in both health and sports biomechanics, providing valuable insights into various aspects of physical performance, rehabilitation, and injury prevention. However, existing software often restricts user control and customization, acting as a "black box." With vailΓ‘, users have the freedom to explore, customize, and create their own tools in a truly open-source and collaborative environment.
- Introduction
- New Key Features in v17.Dec.2024
- Description
- Installation and Setup
- Running the Application
- Uninstallation Instructions
- Project Structure
- Citing vailΓ‘
- Authors
- Contribution
- License
vailΓ‘ (Versatile Anarcho Integrated Liberation Γnalysis) is an open-source multimodal toolbox that leverages data from multiple biomechanical systems to enhance human movement analysis. It integrates data from:
- Motion Capture Systems (Vicon, OptiTrack)
- IMU Sensors (Delsys, Noraxon)
- Markerless Tracking (OpenPose, MediaPipe)
- Force Plates (AMTI, Bertec)
- Electromyography (EMG)
- GNSS/GPS Systems
- Heart Rate/ECG
- MEG/EEG
- Video Analysis
- π Animal Open Field Test: Analyze rodent open field test data to calculate:
- π Total distance traveled
- β±οΈ Time spent in zones
- π Movement speed distribution
- π₯ Markerless 2D/3D Tracking: Enhanced support for markerless tracking videos.
- π¦Ύ Force Analysis: Expanded tools for kinetic data analysis (e.g., force plate).
- Batch tools for renaming, copying, importing, exporting, and organizing files.
- Tree generation and advanced file search based on patterns or extensions.
- Frame Extraction: Convert videos to PNG frames.
- Compression: Support for H.264 and H.265 (HEVC) video compression.
- Synchronization: Align videos based on timestamps or flashes.
- Pixel Coordinates Extraction: Retrieve pixel data for video-based analysis.
- 2D/3D Plotting: Enhanced visualization for biomechanical data.
- C3D and CSV Display: Interactive tools for viewing and analyzing raw motion data.
This multimodal toolbox integrates data from various motion capture systems to facilitate advanced biomechanical analysis by combining multiple data sources. The primary objective is to improve understanding and evaluation of movement patterns across different contexts.
Join us in the liberation from paid software with the "vailΓ‘ - Versatile Anarcho Integrated Liberation Γnalysis in Multimodal Toolbox."
In front of you stands a versatile tool designed to challenge the boundaries of commercial systems. This software is a symbol of innovation and freedom, determined to eliminate barriers that protect the monopoly of expensive software, ensuring the dissemination of knowledge and accessibility.
With vailΓ‘, you are invited to explore, experiment, and create without constraints. "vailΓ‘" means "go there and do it!" β encouraging you to harness its power to perform analysis with data from multiple systems.
Junte-se a nós na libertação do software pago com o "vailÑ: AnÑlise VersÑtil da Libertação Anarquista Integrada na Caixa de Ferramentas Multimodal".
Diante de vocΓͺ estΓ‘ uma ferramenta versΓ‘til, projetada para desafiar as fronteiras dos sistemas comerciais. Este software Γ© um sΓmbolo de inovação e liberdade, determinado a eliminar as barreiras que protegem o monopΓ³lio do software caro, garantindo a disseminação do conhecimento e a acessibilidade.
Com vailΓ‘, vocΓͺ Γ© convidado a explorar, experimentar e criar sem restriçáes. "vailΓ‘" significa "vai lΓ‘ e faΓ§a!" β encorajando vocΓͺ a aproveitar seu poder para realizar anΓ‘lises com dados de mΓΊltiplos sistemas.
-
Conda: Ensure that Anaconda is installed and accessible from the command line.
-
FFmpeg: Required for video processing functionalities.
git clone https://github.com/vaila-multimodaltoolbox/vaila
cd vaila
- Make the installation script executable:
sudo chmod +x install_vaila_linux.sh
- Run instalation script:
./install_vaila_linux.sh
-
The script will:
- Set up the Conda environment using
./yaml_for_conda_env/vaila_linux.yaml
. - Copy program files to your home directory (~/vaila).
- Install ffmpeg from system repositories.
- Create a desktop entry for easy access.
- Set up the Conda environment using
- Notes:
- Run the script as your regular user, not with sudo.
- Ensure that Conda is added to your PATH and accessible from the command line.
- Make the installation script executable:
sudo chmod +x install_vaila_mac.sh
- Run the installation script:
./install_vaila_mac.sh
- The script will:
- Set up the Conda environment using
./yaml_for_conda_env/vaila_mac.yaml
. - Copy program files to your home directory (
~/vaila
). - Install ffmpeg using Homebrew.
- Convert the .iconset folder to an .icns file for the app icon.
- Create an application bundle (
vaila.app
) in your Applications folder. - Create a symbolic link in
/Applications
to the app in your home directory.
- Set up the Conda environment using
- Notes:
- You may be prompted for your password when the script uses sudo to create the symbolic link.
- Ensure that Conda is added to your PATH and accessible from the command line.
How to Install VailΓ‘ on Windows 11 | Step-by-Step Guide
vailΓ‘ values freedom and the goodwill to learn. If you are not the owner of your computer and do not have permission to perform the installation, we recommend doing it on your own computer. If you are prevented from installing software, it means you are not prepared to liberate yourself, make your modifications, and create, which is the philosophy of vailΓ‘!
If you need any further adjustments or have additional requests, feel free to let me know!
- Download and install Anaconda.
- Ensure that Conda is accessible from the terminal after installation.
- Use Git to clone the repository:
git clone https://github.com/vaila-multimodaltoolbox/vaila cd vaila
- Or download the zip file:
- Go to vailΓ‘ GitHub Repository, download the
.zip
file, and extract the contents. - Included the Reminder: Added a note in both the Download vailΓ‘ section and the Important Notes section to remind users to rename the directory from
vaila-main
tovaila
if they downloaded the zip file.
- Go to vailΓ‘ GitHub Repository, download the
- Open PowerShell (with Anaconda initialized) or Anaconda PowerShell Prompt.
- Navigate to the directory where vailΓ‘ was downloaded or extracted.
- Execute the installation script:
.\install_vaila_win.ps1
- Or run the script with Admin privileges Policy:
powershell -ExecutionPolicy Bypass -File .\install_vaila_win.ps1
- The script will:
- Set up the Conda environment using
yaml_for_conda_env/vaila_win.yaml
. - Copy vailΓ‘ program files to
C:\Users\<YourUser>\AppData\Local\vaila
. - Initialize Conda for PowerShell.
- Install FFmpeg, Windows Terminal, and PowerShell 7 using winget (if not already installed).
- Add a profile for vailΓ‘ in Windows Terminal for quick access.
- Create shortcuts for launching vailΓ‘:
- Desktop shortcut: A shortcut will be created on your desktop.
- Start Menu shortcut: A shortcut will be added to the Windows Start Menu.
- Set up the Conda environment using
- Ensure Conda is accessible from the command line before running the script.
- The installation script dynamically configures paths, so no manual adjustments are necessary for user-specific directories.
- After installation, you can launch vailΓ‘:
- Using the Desktop shortcut.
- From the Windows Start Menu under vailΓ‘.
- From Windows Terminal via the pre-configured vailΓ‘ profile.
- Manually, by running the following commands:
conda activate vaila python vaila.py
Running the Application After installation, you can launch vailΓ‘ from your applications menu or directly from the terminal, depending on your operating system.
- π Linux and βͺ macOS: From the Terminal bash or zsh
- Navigate to the
vaila
directory:
cd ~/vaila
and run command:
conda activate vaila
python3 vaila.py
-
π΅ Windows
-
Click on the
vaila
icon in the Applications menu or use the shortcut in desktop or Windows Terminal. -
Windows: From the Windows Terminal (Anaconda in path) or use Anaconda PowerShell
- Open Anaconda Prompt or Anaconda Powershell Prompt (Anaconda Powershell is recommended) and run command:
conda activate vaila
python vaila.py
-
From the Applications Menu:
- Look for
vaila
in your applications menu and launch it by clicking on the icon.
- Look for
From the Terminal If you prefer to run vailΓ‘ from the terminal or if you encounter issues with the applications menu, you can use the provided launch scripts.
-
Make the script executable (if you haven't already):
-
π Linux
sudo chmod +x ~/vaila/linux_launch_vaila.sh
- Run the script:
~/vaila/linux_launch_vaila.sh
- βͺ macOS
sudo chmod +x ~/vaila/mac_launch_vaila.sh
- Run the script:
~/vaila/mac_launch_vaila.sh
-
Ensure Conda is in the Correct Location:
- The launch scripts assume that Conda is installed in
~/anaconda3
. - If Conda is installed elsewhere, update the
source
command in the scripts to point to the correct location.
- The launch scripts assume that Conda is installed in
-
Verify Paths:
- Make sure that the path to
vaila.py
in the launch scripts matches where you have installed the program. - By default, the scripts assume that
vaila.py
is located in~/vaila
.
- Make sure that the path to
-
Permissions:
- Ensure you have execute permissions for the launch scripts and read permissions for the program files.
- Run the uninstall script:
sudo chmod +x uninstall_vaila_linux.sh
./uninstall_vaila_linux.sh
- The script will:
- Remove the
vaila
Conda environment. - Delete the
~/vaila
directory. - Remove the desktop entry.
- Remove the
- Notes:
- Run the script
./uninstall_vaila_linux.sh
as your regular user, not with sudo. - Ensure that Conda is added to your PATH and accessible from the command line.
- Run the uninstall script:
sudo chmod +x uninstall_vaila_mac.sh
./uninstall_vaila_mac.sh
- The script will:
- Remove the
vaila
Conda environment. - Delete the
~/vaila
directory. - Remove
vaila.app
from /Applications. - Refresh the Launchpad to remove cached icons.
- Remove the
- Notes:
- Run the script as your regular user, not with sudo.
- You will prompted for your password when the script uses
sudo
to remove the app from/Applications
.
- Run the uninstallation script as Administrator in Anaconda PowerShell Prompt:
- PowerShell Script:
ExecutionPolicy Bypass -File .\uninstall_vaila_win.ps1 .\uninstall_vaila_win.ps1
- Follow the Instructions Displayed by the Script:
- The script will:
- Remove the
vaila
Conda environment. - Delete the
C:\Users\your_user_name_here\AppData\Local\vaila
directory. - Remove the Windows Terminal profile (settings.json file).
- Delete the desktop shortcut if it exists.
- Remove the
- Manual Removal of Windows Terminal Profile (if necessary):
- If the Windows Terminal profile is not removed automatically (e.g., when using the
uninstall_vaila_win.ps1
script), you may need to remove it manually:
conda remove -n vaila --all
Remove directory vaila
inside C:\Users\your_user_name_here\AppData\Local\vaila
.
An overview of the project structure:
vaila
βββ vaila.py # Main script
βββ animal_open_field.py # Animal Open Field analysis
βββ batchcut.py # Batch video cutting tools
βββ cluster_analysis.py # Cluster analysis for motion capture
βββ common_utils.py # Common utility functions
βββ compress_videos_h264.py # H.264 video compression
βββ compress_videos_h265.py # H.265 (HEVC) video compression
βββ cop_analysis.py # Center of Pressure (CoP) analysis
βββ cop_calculate.py # CoP calculations
βββ data_processing.py # General data processing tools
βββ dialogsuser.py # User interaction dialogs
βββ dialogsuser_cluster.py # Dialog tools for cluster analysis
βββ dlc2vaila.py # Convert DeepLabCut to vailΓ‘ format
βββ dlt2d.py # 2D Direct Linear Transformation (DLT)
βββ dlt3d.py # 3D Direct Linear Transformation (DLT)
βββ drawboxe.py # Draw box in video frames
βββ ellipse.py # Ellipse fitting tools
βββ emg_labiocom.py # EMG signal analysis tools
βββ extractpng.py # Extract PNG frames from videos
βββ filemanager.py # File management utilities
βββ filtering.py # Data filtering methods
βββ filter_utils.py # Additional filter utility tools
βββ fixnoise.py # Noise reduction tools
βββ fonts/ # Custom fonts
β βββ mrrobot.ttf # Font example
βββ forceplate_analysis.py # Force plate analysis tools
βββ force_cmj.py # Countermovement jump analysis
βββ force_cube_fig.py # 3D force data visualization
βββ getpixelvideo.py # Extract pixel coordinates from video
βββ gnss_analysis.py # GNSS/GPS data analysis tools
βββ grf_gait.py # Ground Reaction Force (GRF) gait analysis
βββ images/ # GUI assets and images
β βββ cluster_config.png
β βββ gui.png
β βββ vaila_logo.png
β βββ ...
βββ imu_analysis.py # IMU sensor data analysis
βββ interpolation_split.py # Interpolation and split data tool
βββ join2dataset.py # Join multiple datasets
βββ linear_interpolation_split.py # Linear interpolation split tool
βββ listjointsnames.py # List joint names from datasets
βββ load_vicon_csv_split_batch.py # Load Vicon data in batch
βββ maintools.py # Core tools for analysis
βββ markerless_2D_analysis.py # Markerless 2D tracking analysis
βββ markerless_3D_analysis.py # Markerless 3D tracking analysis
βββ mergestack.py # Merge datasets into stacks
βββ mocap_analysis.py # Motion capture full body analysis
βββ modifylabref.py # Modify laboratory references
βββ modifylabref_cli.py # Command-line interface for modify lab ref
βββ numberframes.py # Frame numbering tools
βββ plotting.py # Data plotting tools
βββ readc3d_export.py # Read and export C3D files
βββ readcsv.py # Read CSV data
βββ readcsv_export.py # Export CSV data
βββ rearrange_data.py # Rearrange and clean datasets
βββ rec2d.py # 2D Reconstruction
βββ rec2d_one_dlt2d.py # 2D reconstruction with single DLT
βββ rotation.py # Rotation analysis tools
βββ run_vector_coding.py # Run vector coding analysis
βββ run_vector_coding_GUI.py # GUI for vector coding analysis
βββ showc3d.py # Visualize C3D data
βββ showc3d_nodash.py # Non-Dash C3D visualization
βββ spectral_features.py # Spectral feature extraction
βββ stabilogram_analysis.py # Stabilogram analysis tools
βββ standardize_header.py # Standardize data headers
βββ syncvid.py # Synchronize video files
βββ sync_flash.py # Synchronize flash-based data
βββ utils.py # General utility scripts
βββ vailaplot2d.py # Plot 2D biomechanical data
βββ vailaplot3d.py # Plot 3D biomechanical data
βββ vaila_and_jump.py # Vertical jump analysis tool
βββ vaila_manifest.py # Manifest file for vailΓ‘
βββ vaila_upscaler.py # Data upscaling tools
βββ vector_coding.py # Joint vector coding analysis
βββ videoprocessor.py # Video processing tools
βββ __init__.py # Package initializer
βββ __pycache__/ # Compiled Python files cache
If you use vailΓ‘ in your research or project, please consider citing our work:
@misc{vaila2024,
title={vailΓ‘ - Versatile Anarcho Integrated Liberation Γnalysis in Multimodal Toolbox},
author={Paulo Roberto Pereira Santiago and Guilherme Manna Cesar and Ligia Yumi Mochida and Juan Aceros and others},
year={2024},
eprint={2410.07238},
archivePrefix={arXiv},
primaryClass={cs.HC},
url={https://arxiv.org/abs/2410.07238}
}
-
Paulo Roberto Pereira Santiago ORCID: 0000-0002-9460-8847
Biomechanics and Motor Control Lab, School of Physical Education and Sport of RibeirΓ£o Preto, University of SΓ£o Paulo, Brazil
Graduate Program in Rehabilitation and Functional Performance, RibeirΓ£o Preto Medical School, University of SΓ£o Paulo, Brazil -
Abel Gonçalves Chinaglia ORCID: 0000-0002-6955-7187
Graduate Program in Rehabilitation and Functional Performance, RibeirΓ£o Preto Medical School, University of SΓ£o Paulo, Brazil -
Kira Flanagan ORCID: 0000-0003-0317-6346
College of Computing, Engineering and Construction, University of North Florida, USA -
Bruno Luiz de Souza Bedo ORCID: 0000-0003-3821-2327
Laboratory of Technology and Sports Performance Analysis, School of Physical Education and Sport, University of SΓ£o Paulo, Brazil -
Ligia Yumi Mochida ORCID: 0009-0005-7266-3799
Laboratory of Applied Biomechanics and Engineering, Brooks College of Health, University of North Florida, USA
Department of Physical Therapy, Brooks College of Health, University of North Florida, USA -
Juan Aceros ORCID: 0000-0001-6381-7032
Laboratory of Applied Biomechanics and Engineering, Brooks College of Health, University of North Florida, USA
College of Computing, Engineering and Construction, University of North Florida, USA -
Aline Bononi ORCID: 0000-0001-8169-0864 Municipal Pharmacy of RibeirΓ£o Preto - Brazil
-
Guilherme Manna Cesar ORCID: 0000-0002-5596-9439
Laboratory of Applied Biomechanics and Engineering, Brooks College of Health, University of North Florida, USA
Department of Physical Therapy, Broo~/vaila/linux_launch_vaila.sh ks College of Health, University of North Florida, USA
We encourage creativity and innovation to enhance and expand the functionality of this toolbox. You can make a difference by contributing to the project! To get involved, feel free to fork the repository, experiment with new ideas, and create a branch for your changes. When you're ready, submit a pull request so we can review and potentially integrate your contributions.
Don't hesitate to learn, explore, and experiment. Be bold, and don't be afraid to make mistakesβevery attempt is a step towards improvement!
This project is primarily licensed under the GNU Lesser General Public License v3.0. Please cite our work if you use the code or data. Let's collaborate and push the boundaries together!