The FreeMoCap Project Logo

The FreeMoCap Project

An in-development open-source software. Download the pre-alpha below and become a part of this exciting project!

Free Like Freedom.


The Free Motion Capture (FreeMoCap) system leverages bleeding-edge markerless motion capture software (e.g. OpenPose, DeepLabCut, etc) to create a streamlined ‘one-click’ pipeline for 3D kinematic reconstruction.

This system works with arbitrary camera hardware and provides methods for synchronous recording of wired cameras (e.g. USB webcams) as well as the post-hoc synchronization of independent cameras (e.g. GoPros).

The FreeMoCap project emphasizes ease-of-use, with the eventual goal of developing a system that will allow a 14-year-old with no technical training and no outside assistance to recreate a research-grade motion capture system for less than 100 US Dollars.


Get Involved!


Become a part of the community that's contributing to this software.




Still frame of the FreeMoCap software in use

Prerequisites


  1. Install Anaconda
  2. Install CUDA
  3. Install OpenPose (Windows Portable Demo)
  4. Two or more USB webcams attached to viable USB ports (USB hubs typically don't work)
  5. Each recording must (for now) start with an unobstructed view of a Charuco board generated with python commands (or equivalent):

import cv2

aruco_dict = cv2.aruco.Dictionary_get(cv2.aruco.DICT_4X4_250)

#note `cv2.aruco` can be installed via `pip install opencv-contrib-python`

board = cv2.aruco.CharucoBoard_create(7, 5, 1, .8, aruco_dict)

charuco_board_image = board.draw((2000,2000))

#`2000` is the resolution of the resulting image. Increase this number if printing a large board (bigger is better! Esp for large spaces!

cv2.imwrite('charuco_board_image.png',charuco_board_image)

Install Instructions


  1. Open an Anaconda Prompt (in Windows, or any terminal on Mac/Linux)
  2. Enter the following comands:
conda create -n freemocap-env python=3.7
                            
activate freemocap-env

pip install freemocap

ipython

import freemocap as fmc 

fmc.RunMe() #this is where the magic happens.