Skip to main content
Version: 2.0 (alpha)

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​

realtimeposthoc
SourceLive camera feedsVideo files already on disk
PriorityLow latency: the latest frame, dropping stale ones if it falls behindAccuracy: all frames, in order, nothing dropped
Runs forAs long as the cameras are activeUntil the video ends, then stops
SeesOnly the current frameThe whole recording at once
OutputStreamed to the frontend liveWritten 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.

Next steps​