Announcing Tracksperanto, a 2D Tracking Converter

I’ve released Tracksperanto, a small app that can convert 2D tracking data between many apps. In my work I often have to do 2D tracking and then transition to camera solves - some apps do it better, some apps do it worse and you seldom know which solver will give you a better result. I’ve taken a look at Mincho Marinov’s Survey Solver converter but found it inadequate (bloated code that is not easy to extend, only runs from within Maya and MEL is not the best language to process text). So I’ve written my own system to accomplish just that and released it as open source.

It works like this: you use a file with 2D tracks as a source. Currently, Tracksperanto can import Syntheyes tracks, PFTrack .2dt files, MatchMover track exports, Flame .stabilizer setups, Shake tracker exports, Nuke and Shake scripts. It scavenges all the trackers which are in the file, and then outputs converted versions for Syntheyes, MatchMover, Nuke, Shake and PFTrack with correct coordinates - so you can only track once and then solve everywhere. Boujou will accept a Shake text file as well.

Tracker correlation is also passed along where possible. You can also process your tracks to scale the whole comp together with all tracker keyframes, move the tracked points left and right and slip all the tracker keyframes in time (things which are VERY time-consuming when done manually, especially if your shot is extended at the beginning during that pesky reedit next Monday).

I’ve found this approach especially helpful for working with large sequences at high resolutions. Compositing apps usually don’t need to load the whole image into memory to do tracking, while matchmoving apps always do - they are built around OpenGL and insist on loading full frame into the viewport, which quickly saturates your cache and makes tracking painfully slow. If you track in a compositing app, you have the benefit of very fast tracking (thanks to either Flame’s expensive storage or to partial loading tricks employed by Nuke and Shake).

So feel free to try it out. Tracksperanto can be run locally (you need to have Ruby running on your computer, Macs come with Ruby preinstalled), or used online - just upload your file and get all the converted versions back packaged into a neat zip archive.

Tracksperanto can deal with large files (that’s how it has been conceived) - I’m converting Flame stabilizer files with tens of trackers and thousands of keyframes, up to 5 megs in size, and dealing with Shake scripts with hundreds of Tracker nodes (Tracksperanto will actually evaluate your Shake script and recover all Stabilize, MatchMove and Tracker node information).

And of course, it’s extensible and forkable, so TDs can use it to develop custom conversion workflows if needed.

Tracksperanto is part of of Guerlla DI, my set of Ruby utilities for post.