UVPackmaster 2 for Blender was already a mature UV packing solution. Thanks to its efficiency and a rich set of features, it got attention from thousands of users. We were receiving a lot of feedback regarding what further features we could also incorporate into it in order to simplify the user’s workflow to even a greater extent. After some time we realized that UVPackmaster 2, while being a powerful tool, suffered from one issue: it was implemented like a black box, where the main algorithm, as well as a code determining the operation logic, were compiled into a non-readable machine code. Such a design was problematic because incorporating even minor improvements to the tool logic required non-trivial work to do – changing the closed-source code and recompilation of the entire engine.
UVPackmaster 3 is based on a new scriptable architecture which solves exactly this problem. The main packing algorithm is still provided in the form of a compiled engine code (for maximum efficiency), but the logic of the operation is determined by a human-readable Python code, executed by the interpreter built into the engine.
Thanks to this new design, we are now able to incorporate improvements to the tool at a fast pace and adjust it to the user’s needs to a greater extent. It also moves the project towards more general UV applications (not only UV packing). And it is not a promise for the future – it is something that is already happening: UVPackmaster 3 already provides significant improvements to particular modes, in comparison to their UVPackmaster 2 counterparts. It also provides a set of efficient engine-accelerated auxiliary UV operations. In order to learn more about it, visit the Features page.
But it is not the whole story behind embedding Python into the engine. Think about a case when changes needed by a user are very specific to his own workflow so that it is unlikely that they will be included in an official UVPackmaster release. Thanks to the Python integration, the user can now use his own coding skills to adjust the operation logic to his own needs. That’s because UVPackmaster 3 was created from the very beginning with easy extensibility in mind. Not only can the user adjust existing engine operations, he can also extend the tool with new operators, panels, and properties, and easily integrate all of them into the UVPackmaster add-on for Blender, without interfering with the original add-on code.