Skip to main content

Caliscope

Multicamera Calibration for Motion Capture

PyPI - Downloads PyPI - License PyPI - Version GitHub last commit pytest

3D motion capture requires knowing each camera's intrinsic properties (focal length and lens distortion), as well as where the cameras sit relative to each other in space. With these parameters, observations from multiple cameras can be triangulated into accurate 3D coordinates.

Caliscope efficiently estimates these parameters with a scriptable Python API as well as a GUI that offers visual feedback during each stage of the calibration.

Demo

Note that the workflow below is from v0.9.0. There have recently been a number of improvements. I hope to have more recent samples/walkthroughs soon.

https://github.com/user-attachments/assets/b8bb78de-866e-4ba2-b5c7-674e3a33dd9e

Install

uv pip install caliscope        # calibration library + scripting API
uv pip install caliscope[gui]   # adds desktop app, 3D visualization, and pose tracking
caliscope                       # launch the app

Full instructions at mprib.github.io/caliscope/installation.

Features

Feature What it does
Pairwise PnP initialization Chains stereo pair estimates transitively, so the target never needs to be visible to all cameras at once
Flexible targets ChArUco boards, ArUco markers, and chessboards. A single marker on a sheet of paper can calibrate a wide volume
Mirror boards A board printed on both sides links cameras that never share a common view
Outlier filtering Filter by reprojection error and re-solve
Aniposelib export camera_array_aniposelib.toml for Pose2Sim, anipose, and other aniposelib-compatible tools

Scripting API

The base install exposes calibration as Python functions. See the scripting docs for a walkthrough.

Reconstruction

A basic reconstruction pipeline is included for verifying calibration quality: ONNX pose tracking, triangulation, and CSV/TRC export. For production reconstruction, use Pose2Sim or anipose with Caliscope's exported calibration.

Getting started

Sample project with downloadable data. Full documentation.

Bugs: Issues. Questions: Discussions.

Acknowledgments

Inspired by anipose, created by Lili Karashchuk, PhD.

License

BSD 2-Clause

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

caliscope-0.11.5.tar.gz (559.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

caliscope-0.11.5-py3-none-any.whl (427.4 kB view details)

Uploaded Python 3

File details

Details for the file caliscope-0.11.5.tar.gz.

File metadata

  • Download URL: caliscope-0.11.5.tar.gz
  • Upload date:
  • Size: 559.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for caliscope-0.11.5.tar.gz
Algorithm Hash digest
SHA256 97fe4bd28bbacb3c9a3513402331a9b3ce93d964fb3390b7d219487087505b06
MD5 f2f17b293be07ff09c2c9d2f7ed556f2
BLAKE2b-256 5840802c5eeb33837046d50bd094f88144928306db26de94f5c85315e88fbba6

See more details on using hashes here.

File details

Details for the file caliscope-0.11.5-py3-none-any.whl.

File metadata

  • Download URL: caliscope-0.11.5-py3-none-any.whl
  • Upload date:
  • Size: 427.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for caliscope-0.11.5-py3-none-any.whl
Algorithm Hash digest
SHA256 da12c68b6e3bf0c809cceff157fc47d75a3bed2aabd231ce58dc83a88df3e780
MD5 c25b6667cdd725b7788b776eaba2beb2
BLAKE2b-256 2489c15193114f6bc7757cac489fa6679c523060d7e98a305d0b6902911b53d2

See more details on using hashes here.

Release history Release notifications | RSS feed

0.11.6

2 files

This release

0.11.5 This release

2 files

0.11.4

2 files

0.11.3

2 files

0.11.2

2 files

0.11.1

2 files

0.11.0

2 files

0.10.0

2 files

0.9.0

2 files

0.8.5

2 files

0.8.4

2 files

0.8.3

2 files

0.8.2

2 files

0.8.1

2 files

0.8.0

2 files

0.7.5

2 files

0.7.4

2 files

0.7.3

2 files

0.7.2

2 files

0.7.1

2 files

0.7.0

2 files

0.6.9

2 files

0.6.8

2 files

0.6.7

1 file

0.6.6

1 file

0.6.5

2 files

0.6.4

2 files

0.6.1

2 files

0.6.0

2 files

0.5.4

2 files

0.5.3

2 files

0.5.2

2 files

0.5.1

2 files

0.5.0

2 files

0.4.2

2 files

0.4.1

2 files

0.4.0

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page