top of page

Tools development

web_linesssss.png

Tools I've written for rigging and animation, automating tasks and workflows, designed with Python, C++, PyQT, SQLite, MVC framework and CSS. All are aimed at maintaining and enhancing the capabilities of 3D artists for scalability and maintainability.

Modular rigging project; PyQt handles the interface, a custom-written database with Python SQLite3 addresses the back-end. Following the MVC framework, the elements of the programme are scalable and maintainable. This tool handles character setup, from skeletal placement, orientation, and control creation, as the data is loaded, edited, and retrieved dynamically to meet project demands. The data stored will be passed to the system & deformation tools to finalise the rigging process. 

Character Layout Tool: Python

I’ve been researching and developing an object-oriented approach to build my modules for rigging. I aim to write clean, maintainable code through inheritance and reusability. Isolated data management and rigging logic. Scalability of my workflow to produce simple props to complete character & creature builds. Keeping in mind Collaboration: consistent patterns that are predictable and debuggable with clean documentation for project sharing. 

Building Modules Workflow
Core Data Flow:
Raw data for each module is retrieved by my 'Char Layout Tool' and passed to this workflow. Data processing occurs once per module with the ModuleDataManager instance to prevent data leaks.
Data_flow_001.png
OOP Class Inheritance Structure:
Each module combines reusable methods (ModuleBlueprint class) with module-specific operations and rigging methods (System[ModuleName] class), creating consistent yet customisable rig components through inheritance, thus I can easily edit what the rig modules do and/or accommodate specific character requirements.
class_inheritance_001.png
Image 03-11-2025 at 18.23 2.jpg
<- Consistent rigging functions.
<- Module-Specific operation functions
moduleBlueprint_001.png
systemModuleName_001.png
Registry System:
An automated approach to managing the building of complex multi-module rig assemblies. This only manages when and in what order to call my existing build methods, without interfering with the data management itself. 
moduleRegistry_002.png
Image 03-11-2025 at 19.24.jpg

This tool provides functionality for managing the skinning relationships between joints and geometry in Maya. Users can create custom databases and select where these databases are saved. It is developed using the SQLite schema in conjunction with Python and stores UUIDs (Universally Unique Identifier) for the recorded joints and geometry.

Geometry Database Tool: Python

These tools enhance my ‘Geometry Database Tool’ for managing geometry exported from Maya in USD format. I use UUIDs for dynamic storage of joints and geometry during rigging, but they change upon importing into a new scene regardless of format. To solve this, I developed tools to record and preserve the original UUID data during import, preventing data loss.

UUID Geo Import & Export: Python
bottom of page