Hi @almighty3d! Once again, congratulations on the amazing work.
A good first step might be to ensure that generated models have their feet aligned with ground level on export.
Another useful improvement could be post-generation mesh optimization, potentially using meshoptimizer ie. Arseny Kapoulkine (package npm meshoptimizer, WASM compiled), especially for high-density meshes.
On my side, I’ve been testing an Almighty-generated character (Ashen) with my BJS Character Controller, and it actually helped me identify and improve several aspects of my experimental auto-rigging system.
Here are some interesting findings:
1. Character orientation
Issue: Ashen originally faces +X, while my auto-rigging system expected characters to face along ±Z. This caused the arms to cross the chest during rig generation.
Solution: I improved the orientation detection using left-right mesh symmetry rather than relying on bounding-box dimensions, which can be unreliable for characters in an A-pose.
For Ashen, the symmetry score improved from 0.51 to 0.87 after a 90° rotation.
I also tested this approach against 11 additional models, with no incorrect rotations observed.
The character is now automatically oriented toward +Z before rigging.
2. Full five-finger detection
Issue: The original detector identified only one finger because the outermost point of the arm in an A-pose wasn’t necessarily the fingertips. Ashen’s actual hand length was approximately 1.41× the initial estimate.
Improvements:
-
Hand length and direction are now estimated directly from mesh geometry.
-
Finger separation is tracked along the mesh surface starting from the wrist.
-
The detector can handle sideways or partially curled fingers while filtering out disconnected geometry.
-
Knuckle placement and thumb positioning have been refined.
-
Finger bone proportions have been adjusted to better match Mixamo-style rigs.
I tested the result by closing the character’s fist in simulation. Finger flexion now looks natural, with each fingertip following its corresponding finger bones.
3. Rigging a million-vertex mesh
This was probably the most interesting technical challenge.
Issue: Enabling finger rigging on Ashen triggered a memory-budget error due to the combination of approximately 1 million vertices and 52 bones.
It also prevented some of the more advanced weight calculations from running, particularly those designed to avoid unwanted deformation between nearby body parts.
Solution: Instead of evaluating all 52 bones for every vertex, the system now retains only the 10 nearest bone candidates.
This reduced the relevant weight-calculation memory usage from approximately 200 MB to just 3 MB.
Results:
-
Approximately 11 seconds for server-side rigging, including fingers.
-
Advanced weight calculations remain enabled across the mesh.
-
A reported skinning validation score of 100/100 in my current tests.
4. Finger skinning in the rig builder
I also discovered that the Symmetric Editing option, enabled by default, was averaging finger markers and moving them out of position.
This prevented automatic skinning from being applied correctly.
Finger markers are now excluded from that symmetry operation, allowing both hands to export with proper skinning.
5. Automatic positioning, rigging and animation
Ashen’s original pivot was located around the middle of the body, with the feet approximately 0.92 m below the origin.
I updated the import pipeline to automatically:
-
Align the feet with ground level.
-
Normalize the character’s root and hip positioning.
-
Detect orientation and generate the skeleton.
-
Apply the animation library.
Final result: Approximately 45 seconds from importing the generated model to having a character ready to use, with 52 bones and 88 animations.
The feet end up within 2 cm of ground level, and the hip alignment is within approximately 3.7 cm of the character’s central axis. Overall, the resulting skeleton is closely aligned with my Mixamo reference character.
Of course, some of these steps could also be handled through external tools or dedicated rigging software.
But I think Almighty Studio’s real strength is the quality of its generated models, and that’s where I’d personally focus development.
The geometry is already impressive, and having a solid, predictable export pipeline would make these models even easier to integrate into Babylon.js projects.
Great work, and thanks for providing such an interesting model to experiment with! 