Skip to main content
🤖AI-generated documentation curatedAI Generated
This page was drafted by an AI assistant and may contain inaccuracies.
About content generation types
🤖
AI GeneratedPage drafted entirely by AI from codebase or prompt instructions.
(e.g., docs generated from codebase analysis)
← this page
✋→🤖
AI TransformattedHuman provided raw material; AI restructured it into a different format.
(e.g., livestream → blog post, meeting notes → docs)
Human GeneratedPage written entirely by a human author.
(e.g., hand-written tutorial)
More info about content generation types ↗

Build & Deployment

FreeMoCap ships as an Electron desktop application with a bundled Python backend. The build process freezes the Python server into a standalone executable and packages it with the React frontend.

Architecture of a Release

freemocap-setup.exe (or .dmg / .AppImage)
├── freemocap-ui/ Electron + React frontend
├── freemocap_server.exe PyInstaller-frozen Python backend
└── resources/ ONNX models, charuco boards, assets

Backend: PyInstaller

The Python backend is frozen into a standalone executable using PyInstaller.

Config: freemocap.spec in the repo root.

# Build the backend executable
pyinstaller freemocap.spec

What gets bundled:

  • freemocap/__main__.py as the entry point
  • OpenCV, scipy, pandas, mediapipe
  • ONNX Runtime (GPU + CPU)
  • NVIDIA CUDA libraries (cublas, cuda_runtime, cudnn)
  • Skelly ecosystem packages (skellycam, skellytracker, skellyforge)
  • RTMLib, onnx

What's excluded: pytest, tkinter, IPython, numba (unused at runtime), sklearn, mediapipe dev tools, legacy skellytracker modules.

Output: freemocap_server.exe (Windows), equivalent on macOS/Linux.

Frontend: Electron Builder

The React frontend is packaged with electron-builder.

Config: freemocap-ui/electron-builder.json

cd freemocap-ui

# Development (Vite + Electron)
npm run dev

# Build for production
npm run build

# Preview production build
npm run preview

Key dependencies packaged:

  • React 19 + React DOM
  • Redux Toolkit + React Redux
  • Three.js + @react-three/fiber + @react-three/drei
  • Monaco editor, D3, i18next
  • Zod, smol-toml, hyparquet, superjson

CI/CD (GitHub Actions)

Build and deployment workflows live in .github/workflows/:

WorkflowPurpose
build-installers-pyinstaller.ymlBuilds platform-specific installers on push to main
deploy-docs.ymlBuilds and deploys this documentation site to GitHub Pages
test.ymlRuns backend + frontend tests on PR

Versioning

  • Backend version: v2.0.0-alpha.11 (in freemocap/__init__.py), managed by bumpver
  • Frontend version: 2.0.0-alpha.1 (in freemocap-ui/package.json)
  • Electron updater: electron-updater handles auto-updates for installed releases