Matchmove Solver (nicknamed "mmSolver") is a Autodesk Maya™ plug-in and tool-set providing tools for Camera and Character Matchmove tasks for the Visual Effects industry.
The tool-set revolves around a Bundle Adjustment solver, which uses a non-linear least-squares solver. The heart of mmSolver is the modeling of the "bundle adjustment" problem that needs to be solved. This solver works very well with known 3D data (such as 3D model of a physical set), but can also be used in unique ways by skilled users. The modeling of problems, and the input-data (eg. 2D tracking data) is the key to generating high-quality results.
Along with the actual solver, the mmSolver project also provides a number of helpful features that are not available outside of Visual Effect studios.
I developed mmSolver to provide a baseline tool-set for anyone in the Visual Effects industry to level the playing-field and ultimately make the lives of Visual Effects artists better.
mmSolver uses Python for all the user-facing tools, including using Qt PySide for the user interfaces. The solver core, image operations, OpenGL, plug-in nodes and performance critical features are written in C++, with FFI bindings to Rust internally, using the CXX project. Rust is used to provide stability confidence at compile time, and also the simple use of crates (packages) available in the Rust ecosystem. The project uses CMake as the build system generator for C++, and Rust's Cargo package manager is used to build the Rust code - CMake is used as the final artifact generator. The project supports Microsoft Windows™ as well as Linux - with special mention for support with x86-64 MacOS X for a brief period (before Apple made it more difficult).
mmSolver is used on numerous Feature Film and TV Episodic projects by many artists and studios however the entire list is not publicly known.
Read the mayaMatchMoveSolver documentation.
Check out mayaMatchMoveSolver on GitHub.