PRE-ALPHA VERSION
COMPUTER_VISION // MOTION_CAPTURE // ERGONOMICS_ASSESSMENT

ERGOMOCAP

FREEMOCAP CORE REBA ANALYSIS RULA ANALYSIS PYSIDE6 GUI 3D KINEMATICS
Powered by FreeMoCap 💀

A free, open-source desktop app built with Python. It takes the tracking data from your FreeMoCap videos and automatically turns it into clear, easy-to-read ergonomic risk reports.

GET_SOURCE_CODE (AGPL) START_TUTORIAL
Recording Selection Window Skeletal Joint Tracking Preview Assessment Method Selection Ergonomic Analysis Finished Statistical Report Dashboard Recording Selection Window Skeletal Joint Tracking Preview Assessment Method Selection Ergonomic Analysis Finished Statistical Report Dashboard
calculators/adapters/freemocap_adapter.py
calculators/reba_calculator/REBA_calculator.py
calculators/reba_calculator/body_parts/trunk_reba.py
calculators/reba_calculator/reba_score_tables.py
gui/backend/backend.py
gui/workers/analysis_worker.py
gui/views/report_view.py
gui/widgets/video_canvas.py
gui/core/session_manager.py
gui/core/analysis_engine.py
gui/templates/REBA_report.j2
exports/pdf_generator.py
calculators/adapters/freemocap_adapter.py
calculators/reba_calculator/REBA_calculator.py
calculators/reba_calculator/body_parts/trunk_reba.py
calculators/reba_calculator/reba_score_tables.py

WHAT IS ERGOMOCAP?

MOTION CAPTURE x COMPUTER VISION × ERGONOMICS ASSESSMENT

ErgoMoCap is a free, open-source app that runs completely on your own computer. It connects standard video motion tracking with official workplace ergonomics checks. It gives students and researchers a free, and reliable way to measure physical workplace safety risks without needing to buy expensive, corporate hardware and software. At the time of v0.0.1 the tool is not reliable and prone to errors.

01

THE MISSION & PHILOSOPHY

We built this tool to solve a common problem in school and research settings: making it easy and completely free to get reliable ergonomics safety scores (like REBA, RULA, NIOSH, and SNOOK) directly from simple video files.

We didn't want to reinvent the wheel. ErgoMoCap is built directly on top of the amazing work done by the FreeMoCap project. We share their values, use their open-source setup, and designed our app to expand on their excellent video tracking tools. Huge thanks and credit go to the FreeMoCap community for making this possible!

📢 CITATION FROM THE FREEMOCAP PHILOSOPHY:
"Knowledge is free. Labor is expensive. Anything that can be infinitely and losslessly duplicated, code, documentation, videos, should be available to everyone, for free."

Believing fully in this idea, ErgoMoCap has absolutely no paid extras, no paywalls, and no premium versions. Under our AGPL-3.0 License, you are completely free to use, change, or build upon this software, as long as you share your updates under the exact same open terms.

02

HOW IT WORKS

The app works like a simple assembly line: it takes the physical movement data captured from your videos and calculates standard ergonomic safety scores.

1. Loading Data

The app imports the 3D body tracking data created by FreeMoCap. It uses a translation file (the freemocap_adapter) to read the positions of 22 key body joints. Right now, in this early version (v0.0.1), the app uses the calculated joint angles to run its checks.

2. Calculating Scores

The math engine instantly reads these joint positions frame-by-frame and checks them against standard ergonomic safety limits to find any risky movements. Note: Speed optimizations are planned for version v0.1.0, but the current engine is already fast enough for standard use.

Raw Video Data
Data Reader
22-Joint Body Map
Ergonomic Calculators (REBA/RULA)
Finished Reports
03

THE LONG-TERM PLAN

Right now, ErgoMoCap acts as an easy-to-use visual screen that controls FreeMoCap behind the scenes to gather your data. However, this is just the first step in a larger project.

Our ultimate goal is to combine the best parts of both systems. We plan to build the video tracking features right into ErgoMoCap itself. This will eventually give ergonomics researchers a single, standalone desktop app that handles everything from video recording to final safety reports with no extra setup required.

⚠️ SYSTEM STATUS

CURRENT PHASE: PRE-ALPHA (V0.0.1)
The main visual controls and FreeMoCap data links are working. However, the RULA tracking scores are still unstable. Right now, the app should only be used for testing and academic experiments, not official certifications.

Development Progress
[REBA/RULA Setup] ──> [Testing Calculators] ──> [Final Safety Checks]

DEVELOPER NOTE: Our code updates strictly require successful documentation builds and at least 90% test coverage across our math tools (including SNOOK and EWAS) before changes can be saved. If any automated pre-commit check fails, the commit is blocked.

GET STARTED

⚙️ INSTALL AND GET STARTED

Follow these steps to set up ErgoMoCap on your computer.

👉 Follow A. SIMPLE INSTALL if you don't know how to code or use dev tools.
👉 Follow B. DEV INSTALL if you are familiar with dev tools.

01

A. SIMPLE INSTALL

Follow these quick steps to get the application up and running without configuration:

  1. Download: Get the latest ZIP file from the GitHub releases page of the public repository.
  2. Extract: Extract all the files and folders from the downloaded ZIP to your desired location.
  3. Launch: Run ErgoMoCap.exe to start the application.

File Structure & Output

Inside the extracted folder, you will find an _internal directory. Here is what you need to know about it:

  • Output Location: Your generated files will be saved inside _internal/ergomocap_data/. This directory will contain your annotated videos, pure MoCap/MediaPipe data, and post-processed files.
  • FreeMoCap Integration: If you are using and setting up FreeMoCap for the first time, we highly recommend placing your freemocap_data folder right here inside the _internal directory.
⚠️ Important Note: The _internal folder contains a large number of system packages and core files. We strongly suggest not touching or modifying anything else inside this directory unless you know exactly what you are doing.
02

B. DEV INSTALL & LAUNCH

1. REQUIREMENTS

Before you start, make sure you have these installed:

  • Python 3.12 or higher: This is the engine that runs the code.
  • FreeMoCap: If you want to record new data, you need their software installed and calibrated.

2. INSTALLATION

  1. Download the code: Clone the folder or download the source ZIP from the repository.
    https://github.com/medlav/ergomocap.git
  2. Open your Terminal/Command Prompt: Navigate to the ergomocap folder.
    cd path/to/ergomocap/
  3. Create a Virtual Environment: Initialize a clean isolated environment inside the directory.
    python -m venv venv
  4. Activate the Virtual Environment (Windows): Run the activation script via Command Prompt or PowerShell.
    venv\Scripts\activate
  5. Activate the Virtual Environment (Linux/macOS): Source the activation script into your current shell.
    source venv/bin/activate
  6. Install the dependencies: Run this command to install all the libraries (like PySide, Pandas, and Matplotlib) at once:
    pip install -r requirements.txt

3. LAUNCHING THE APP

You must be in the Ergomocap folder to launch the app execution thread.

cd path/to/ergomocap/

Then run the main.py file from terminal window:

python main.py

💡 The dark-themed main window should appear on your screen immediately.

03

YOUR FIRST 5 MINUTES

If you just want to see how it works without recording anything completely new:

  1. Set your folder: Click 📂 SELECT FREEMOCAP ROOT and point it to the folder where your FreeMoCap data lives.
  2. Pick a session: Use the dropdown menu to select a recording (e.g., session_001).
  3. Run a test: Select REBA from the method list and click 🏃 RUN ANALYSIS.
  4. Check the stats: Once the status bar says "Finished," click 📊 OPEN REPORT DASHBOARD to see the charts.
04

🛠️ COMMON FIXES

Review these quick pipeline patches if execution engine flags errors:

  • "Command not found": Make sure Python is added to your environment variables "PATH" array structure during its core installation step.
  • Video not loading: Ensure you have a folder named annotated_videos exactly configured inside your session data folder freemocap_data/recording_sessions/. Select the correct freemocap_data/ folder using 📂 SELECT FREEMOCAP ROOT.
  • Missing Skeletal Data: The app needs the .csv or .npy dataset matrices created by FreeMoCap to work. If they are missing, execute the FreeMoCap "Post-Processing" step first. For more info read the FreeMoCap Official Documentation.

TUTORIAL

PREREQUISITE CHECK

You must have already completed a FreeMoCap recording session with valid 3D trajectory data. If you need to record new data, click the 💀 RUN FREEMOCAP button in the main interface. New to FreeMoCap? Read the Official Documentation.

01

GET YOUR DATA IN

Load your FreeMoCap recording session into ErgoMoCap. The application expects data organized in the standard freemocap_data/record_sessions directory structure.

  1. Open the ErgoMoCap application
  2. Click 📂 SELECT FREEMOCAP ROOT and navigate to your freemocap_data folder.
    ⚠️ NOTE: Use the same freemocap_data folder used by FreeMoCap! Read the FreeMoCap docs for the instruction on how to select the freemocap_data folder inside FreeMoCap.
  3. Use the Select Recording Session dropdown to choose your specific session folder
  4. Select a video file from the Select Video list, the skeleton overlay should appear immediately in the preview pane
Selecting Recording Session Selecting Video and Loading Skeleton

Files involved: gui/core/session_manager.py, calculators/adapters/freemocap_adapter.py

02

CHOOSE YOUR METHOD

Select which ergonomic assessment protocol to apply. REBA (Rapid Entire Body Assessment) evaluates full-body posture; RULA (Rapid Upper Limb Assessment) focuses on neck, trunk, and upper limbs.

  1. Navigate to the Select Ergonomic Method dropdown menu
  2. Choose REBA for full-body lifting tasks, or RULA for upper-body repetitive work
  3. Click 🏃 RUN ANALYSIS to begin computation
  4. Monitor the status bar at the bottom, wait for "Analysis Complete" before proceeding
Selecting Ergonomic Method Analysis Finished Confirmation
⚠️ NOTE: Analysis is CPU-intensive. Thread safety prevents UI freezing, but video playback may lag during computation. Wait for completion for optimal performance.

Files involved: calculators/reba_calculator/REBA_calculator.py, gui/workers/analysis_worker.py, gui/core/analysis_engine.py

03

CHECK THE VIDEO

Validate that the computed skeleton accurately tracks the subject throughout the recording. Visual verification ensures your ergonomic scores reflect real movement.

  1. Click ▶ PLAY / PAUSE to start video playback
  2. Observe the skeleton overlay, joints should remain anchored to the subject's body
  3. If the skeleton appears "shaky" or jumps erratically, review your recording conditions:
  • Ensure adequate, even lighting (avoid harsh shadows)
  • Keep camera view unobstructed (no boxes, chairs, or people blocking joints)
  • Use FreeMoCap's ChArUco calibration for improved 3D accuracy
Checking Skeleton Overlay

Files involved: gui/widgets/video_canvas.py, calculators/adapters/freemocap_adapter.py

04

SEE RESULTS & EXPORT

Review your ergonomic risk assessment and generate shareable documentation for compliance records or team review.

  1. Click 📊 OPEN REPORT DASHBOARD to launch the results viewer
  2. Examine the Risk Pie Charts, red zones indicate "High Risk" postures requiring intervention
  3. Review time-series graphs showing risk score evolution across the task duration
  4. Export your findings using the available formats:
  • 📜 EXPORT TO PDF, Immutable, print-ready compliance report
  • 📄 EXPORT TO DOCX, Editable Word document for annotations or integration
Report Dashboard Overview

Files involved: gui/views/report_view.py, gui/templates/REBA_report.j2, exports/pdf_generator.py

💡 PRO TIPS FOR BETTER RESULTS

For advanced recording techniques, calibration workflows, and MoCap best practices, consult the FreeMoCap Official Documentation.

🏁 NEXT STEPS

Now that the software engine is running, you need to learn how to navigate the interface system layout and interpret the compiled econometric data arrays.