VidSync 1.81 released

Download: VidSync 1.81 (universal, macOS 14.6 or later), also on the Download page.

Major improvements

Automatic plumbline detection almost perfected

Detection of chessboard plumblines in VidSync has always been one of the most vexing steps in the workflow. The existing algorithm was unreliable, sometimes crashed, often required manual fiddling with parameters, and rarely produced perfect results. The new algorithm has no mysterious settings and just works, almost perfectly, even on really difficult chessboard frames with extreme distortion and uneven lighting. The manual step of deleting an occasional stray point is still required if it accidentally picks up something off the edge of the board, but even this minor step is fairly rare.

I developed the new algorithm by extensively iterating on ideas with Claude Code (Fable 5 model). The ideas under the hood are about half mine, half Claude’s, and it wrote the code. This is an exceptionally safe scientific application of AI, because the results (the detected plumblines) are immediately visually verifiable as correct.

The old algorithm remains in this version on a “legacy” tab, but you should only use it for laughs.

Video export runs in the background, with a viewable queue

Capturing video clips with overlays (measurement icons, etc) used to be painfully slow: you had to watch as the program stepped frame-by-frame through the video clips making snapshots one at a time, roughly one second per frame. Now it runs in the background, and much faster. You can do multiple exports at once and track their progress, open, or cancel them from a queue.

Videos re-attach themselves when a project moves

Moving a VidSync project between computers previously almost always meant having to manually relocate the video files themselves based on their path on the new computer. Now, if the video files are in the same folder as the VidSyncDocument (.vsd) file, and their name is the same as when that file was saved, they’ll be found automatically.

New data export option: JSON

Since I first build VidSync with CSV spreadsheet exports and XML for more detailed, structurally complex output, the JSON format has become popular for that same sort of complex structured data. VidSync now offers JSON as an export option, with a data schema identical to the XML exports. A few new fields have been added to this complex export option, such as each camera’s central sight line and angular field of view.

Other changes

Measurement and calibration

  • Hint lines rendering has been improved. Previously, a bug would cause some hint lines to render with strange jagged glitches near the edges. In rigs with more than two overlapping cameras, this problem could sometimes be much worse, sending wild lines all over the screen. It is fixed.
  • New 3-D calibrations are asked whether to correct for refraction rather than assuming it.
  • Confirmation before the Example button overwrites frame coordinates.
  • Fitted distortion parameters may differ slightly. The quantity being minimized is no longer divided by total line length, and a fit that stalled at the iteration limit used to be accepted as though it had converged, which also stopped the remaining starting guesses from being tried. These small improvements to the fitting algorithm may slightly affect some measurements.

Export

  • The .mov video export format is no longe available; everything is now a more compatible .mp4.
  • Added the newer, space-efficient H.265 video codec as an option for video captures, in addition to the almost universally compatible (but less efficient) H.264 that was the default before.
  • Sound can be included in any captured video; previously it only worked with overlays off.
  • Rotation-flagged video (vertical phone footage, upside-down mounts) exports the right way up. It previously came out sideways and cropped.
  • A failed export now says so instead of leaving a button stuck.
  • Exported elements come out in a repeatable order, so two exports of an unchanged project can be compared directly.
  • Line breaks in multi-line notes survive export.
  • Screen point export no longer fails on a coordinate that was never computed.

Interface

  • Buttons whose prerequisites aren’t met are now greyed out instead of accepting the click and then explaining why it couldn’t work.
  • Windows tile themselves nicely when a project’s saved layout doesn’t fit the current screen. There is also a working “tile” option under the “Window” menu now.
  • Open projects no longer share each other’s tab and filter selections.
  • The project’s clip list is sorted by name and opens scrolled to the top.
  • Object and event types imported from a file offer conflict resolution instead of failing or duplicating.
  • The video clip window can shrink to 15% of full size; below a certain width its controls hide so the window can follow the video down.
  • The clip window shows the sync offset as a whole number of frames rather than a timecode.

Reliability

  • Fixed a bug which caused the program to crash detecting chessboards of unsynced videos (v1.81).
  • VidSync now records a report when it crashes and offers to email it on the next launch, which makes problems far easier to diagnose.
  • Several crashes and memory faults fixed, including a race in tracked-object updates, an image leak, unsafe file naming, and a division by zero on clips with no frame rate.

Licensing

VidSync’s source remains under the MIT licence. Because the application links the GNU Scientific Library, the compiled program is distributed under the GPL v3. Both licence texts and a full list of third-party components now ship with the source.

Generative AI disclosure

I used Claude Code (mid-2026 model versions; Fable 5 and Opus 5 mostly) extensively in this update to VidSync. I’m very excited about the scientific progress being enabled by agentic coding tools in experienced hands, and I’ve spent months honing my workflow with them in my day job as a salmon researcher. This is the first time I’ve used them to update VidSync. Claude helped track down and fix many previously undetected bugs, and it allowed me to add features and enhancements for which I would never have had the time otherwise. The GPT-5.6-Sol model reviewed and helped iterate on Claude’s work.

Neither AI model touched the math in this version, except for the small improvement to the distortion model fitting algorithm. Fable did a thorough audit of the math already implemented and found (to my relief, but not surprise) that it checks out against modern theory as well as the published VidSync manuscript.

There is no generative AI built into VidSync. It was only used to review and improve the code and help improve documentation.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top