Build a custom pipeline
FreeMoCap's backend runs on two different pipelines, and understanding the difference is the useful starting point before you go looking for where to extend either one.
Realtime versus posthoc
| realtime | posthoc | |
|---|---|---|
| Source | Live camera feeds | Video files already on disk |
| Priority | Low latency: the latest frame, dropping stale ones if it falls behind | Accuracy: all frames, in order, nothing dropped |
| Runs for | As long as the cameras are active | Until the video ends, then stops |
| Sees | Only the current frame | The whole recording at once |
| Output | Streamed to the frontend live | Written to disk, for playback afterward |
Both pipelines process data through the same basic shape (a source feeds one or more per-camera nodes, which feed an aggregator node that triangulates and filters), the realtime version is just built for speed under an ongoing camera feed, and the posthoc version is built for completeness against a fixed set of video files. Neither is "better," they're solving different problems: recording live versus reprocessing something you already captured.
If you want to go further
The pipeline internals (individual node types, inter-process
communication, the filtering chain) aren't documented yet at a level
meant for extending them from outside the core freemocap repository.
If you want to work at that level, the
freemocap repository's own architecture docs
are the current source of truth, ahead of anything ported to this site.
Image tracking and pose models and
the output data model cover the parts of the
pipeline that are stable, documented, and safe to build against today.