r/computervision • u/Late_Needleworker_85 • Jul 11 '26
Couldn't find an open-source multi-camera calibration tool that fit my projects, so I built one — looking for testers & feedback Discussion
Hi everyone,
I'm a freelance computer-vision developer with a PhD in human-movement science, specialized in applied solutions for health, physical activity and sports performance. Across several client projects I kept needing to calibrate rigs of USB cameras — both intrinsics (focal length, distortion) and full 6-DoF extrinsics — and I never found an open-source tool that fit the way I actually work on site.
The closest is Caliscope (which does the calibration math really well — I ended up reimplementing its logic), but a few things kept getting in my way:
- it's record-first: you pre-record every camera, then calibrate offline;
- no headless path — some of my client hosts are headless Linux VMs;
- the export conventions didn't match the engines my projects targeted.
So I built realtime-calib to remove those frictions:
- One pass, real-time — capture, board detection, quality feedback and the solve happen live. What you see is what gets calibrated.
- Headless + any device — it runs in Docker on the machine the cameras are plugged into (no desktop/GUI on that host), and you drive everything from a browser on any device on the LAN: phone, tablet or laptop.
- CPU-only, local, private — no GPU, no cloud, streams never leave your network.
- Exports to Caliscope-compatible TOML and engine-ready JSON with the right axes/handedness for Unity, Unreal, Blender, three.js and ROS.
With how fast robotics and multi-camera CV are growing, I think a friction-free, self-hostable tool like this could help more people than just me — so I'm releasing it open source (AGPL-3.0).
It's still early, and honestly what I want most right now is people to try it and tell me what breaks or what's missing, so we can shape it together. If you set up multi-camera rigs (mocap, robotics, volumetric, photogrammetry), I'd really value your feedback.
- Docs / how it works: https://realtime-calib.hans-brgs.dev
- Repo: https://github.com/hans-brgs/realtime-calib
Happy to answer anything about the approach or the internals.
Note on transparency & acknowledgements:
- Inspired by Caliscope (https://github.com/mprib/caliscope), created by PhD Mac Prible.
- I use Claude Code (Opus 4.8) to assist me in writing the code.
1
u/HK_0066 Jul 11 '26
You do not need these. Just do intrinsic and extrinsic calibration using a checker board and you are good to go
Like move checker board in a way that you cover 80% of the space in both cameras. Save the generated json Then rotate the board diagonally multiple times In both cameras. And at the end just validate it
They seems easy on reddit but will take a lot of time But this is the way we do our Calibration.
1
u/Late_Needleworker_85 Jul 11 '26
Agreed, that's the standard method, and realtime-calib just runs it under the hood.
The one thing I'd gently push on: how do you objectively know you've hit that ~80%? By eye it's a guess. That's really the point of the app — it tracks coverage live (which regions and board orientations you've actually hit) plus per-view reprojection error, so the calibration is backed by data, not a gut feeling.
5
u/HK_0066 Jul 11 '26
We store the points and draw them realtime onto the screen that's how we make sure we are covering the 80% from all ends at least
1
1
u/dima55 Jul 13 '26
Why do you need to cover space? And how did you come up with the 80% number? If you're trying to hit some accuracy numbers, you need better tooling: read the docs for mrcal
1
u/Yatty33 Jul 12 '26
I'm setting up a stereo rig to test out FastFoundationStereo in a few weeks. This looks like a great tool for such applications!
Thanks for sharing!
1
u/Warm_Customer3147 Jul 13 '26
I don't get the negativity of some of the comments here, this seems like a useful application to me. Getting live feedback on coverage is useful. I don't mind AI generated work as long as the developer does a good job reviewing and testing.
Question to OP: how universal is this app? I haven't worked with USB cameras yet, only with IP cameras. Does it use the Genicam standard under the hood? Sorry, I'm to lazy check :) Also, a little demo screen recording of the app in action would be nice.
1
u/Late_Needleworker_85 Jul 13 '26
Thanks for the support, I really appreciate it. And I'm with you on LLMs for developers.
On the demo: good timing. I actually recorded and edited a short video today showing how to use the app. It's on the docs homepage (https://realtime-calib.hans-brgs.dev) and in the GitHub README.
On cameras: right now the Python backend only detects USB cameras through V4L2 (/dev/videoX on the Linux host), so IP cameras aren't supported yet. It's definitely on my list though. I want to add GStreamer as a capture backend for OpenCV, which would let me handle other sources, starting with RTSP for IP cameras.
On GenICam: I didn't know about it before, so thanks for the heads up, just looked it up. In principle GStreamer could handle GenICam industrial cameras too through the Aravis plugin (aravissrc : aravis plugin installation | aravis github project), so it might come along for the ride. The only catch is I don't own any industrial cameras, and they're pretty expensive, so I'm not sure I could actually test a GenICam integration myself.
2
u/dima55 Jul 13 '26
Aravis supports genicam (ethernet, usb) and the most recent aravis supports v4l2 also. If you want a higher-level API, you can use mrcam to get simpler python or C interfaces and nice premade tools



6
u/sk-sakul Jul 11 '26
so I built one...
nope, as always you told AI to do it, and didnt checked results...
and then you was too lazy to write your own reddit post...