Mantis has been a long time coming!
I've been working on this addon off-and-on for about three years now. Before I started work on Mantis, I developed a set of rigging tools called Chaintools, and some auto-rigs for Blender and Maya - so I wasn't a novice. I felt ready to tackle the challenge!
I started my project by choosing a name, because naming things makes it easy to think about them clearly. I picked "Mantis" as the name because it was the first thing that popped into my head. The first step to making my vision a reality was to plan it out on paper. I thought carefully about the difficulties I had encountered in my work at Grow Goodness in Orlando Florida, where I was responsible for a large cast of complex characters. The moment of brilliance was when I realized that the right way to rig with nodes is to use a declarative paradigm. Tell Mantis what you want and let the program figure out how to do it. The graph can follow the design and shape of the actual objects and constraints and other objects in Blender's interface, so the user can adapt the existing knowledge-base to Mantis.
At that point, I was ready to dive into the details of building the addon in Python. Blender has a custom-nodes template built-in to the Text Editor panel, so I even had an easy first step prepared for me. I had a basic implementation working right away - creating armatures, bones, and constraints from a handful of nodes. But the problems also began right away. I found that my addon would execute the nodes all out of order, skip them entirely, or freeze up and force me to exit Blender. I encountered many other problems that are perhaps too technical and complex to explain here. Node Groups, for instance, were an enourmous obstacle because Blender stores only one copy of a groups' nodes, even if there are many copies of the group! Schema nodes were difficult to design, let alone to implement. And the process of reading the tree and executing the methods of each type of node has been a continual refinement process.
In the end, I developed a lot of complex techniques to traverse the node tree, and implemented some algorithms to sort the tree and prevent timing and execution problems. Today, I have achieved my biggest goals with the addon - creation of bones, constraints, and drivers from nodes; composing large graphs from small, reusable components; and a way to build complex chains of bones with schema.
Mantis is ready for its first release!
Mantis is far from finished, but it is ready for people to use in their productions. I am releasing it as a Blender Extension for anyone to use! My goal is to make it possible for a single artist to manage a cast of characters in an indie game or short film. The Mantis Component Pack, which is available on Blender Market and Gumroad, is the firstfruits of my efforts. It provides over 20 reusable groups that can build any human characer, with more on the way in future updates. Because Mantis is Free and Open Source, just like Blender, anyone can make their own component packs and release them for free or for money. My ambition is to usher in a new paradigm for 3D character rigging.
So I am setting up this locals page in order to support the development of Mantis training material, documentation, bug-fixes and new features, additional components and packs, demonstrations of production problems and their solutions, and a wide array of other 3D Art production and training videos.
Roadmap
Before I finish this entry, let me just tease some of the upcoming features of Mantis, and the roadmap for medium/long-term feature goals:
- Coming Soon: plaintext file serialization (Saving and loading rigs as a text file instead of a .blend)
- Coming Soon: More deformers
- Coming Soon: Better Matrix Math operators
- Coming Soon: Better curve/ bendy-bone features
- Overlay feature for more easily setting names and matrices inside a node group, using variables.
- Action Constraint support
- Better UI/UX
- Eventually:
- more atomic matrix math constraints (this is waiting on Function Nodes to land)
- Code Generation
- Markup/Declarative language
- Physics / Simulation
- Animation
- Porting mantis to other software/game engines
- Operators, Pickers, and Rig UI's
... and a lot more. These goals alone could take years of solo-dev time if I try to tackle them sporadically, between shifts at my day job. I have a lot of ambitious goals - my Locals members are making them happen - and everyone benefits because the software is free and open source, forever.
And the roadmap for nodespaghetti goes beyond Mantis:
- Mantis Tutorials (obviously)
- Tutorials and experiments in game engines, maybe even a little game-dev
- Art production. Characters, texture-painting, stuff like that.
- Occasional reviews of software and addons.
- Developing a Custom Nodes addon in Blender series (codespaghetti)
- Geometry Nodes series, for example: Creating Realistic Shells with Geometry Nodes
- Quicky Tips, Riggy Bits, Scripty Snips, and other miscelaneous stuff.
Supporters get access to the Locals community, giving them priority access to my support and advice regarding Mantis, Blender 3D, Python, or any other part of the 3D art pipeline. It's also just a nice place to relax, post about 3D art, characters, and rigging - to give or receive some feedback. Additional perks include: access to the component libraries, extremely-high-resolution photoscanned textures, with retopologized 3D models, from Treehive.xyz, and whatever else I can come up with... I don't actually like putting stuff behind a paywall. As an added, LIMITED-TIME bonus, the component pack will be available to all members until I reach 50 monthly members, then they will be Content+ (requiring a one-time payment or yearly membership).