This project aims to assess if an animated mesh is humanoid by examining its structure, mesh topology, and animation features using Blender's Python API (bpy
).
Humanoids can vary greatly, and a more complex solution could involve machine learning or deep analysis of mesh vertices and their movements. This project aims to provide a simple solution that can be used as a starting point for more complex solutions.
Check the ideas document for more details: docs/IDEAS.md.
- Blender with Python API support
- FBX file of the animated mesh
import bpy
# Clear all data from the current scene to start fresh
bpy.ops.wm.read_factory_settings(use_empty=True)
# Import the FBX file
bpy.ops.import_scene.fbx(filepath="path_to_your_character.fbx")
Refer to check_humanoid_skeleton
method to check the skeleton structure.
Refer to check_humanoid_mesh
method to perform various checks on mesh topology.
Refer to check_humanoid_animation
method to analyze the animation of the mesh.
blender -b -P src/main.py
Assuming you have
blender
installed and added to yourPATH
; and you have clone this repo as well.
This is a basic assessment and may produce false positives or negatives. For a more thorough analysis, consider using advanced methods such as machine learning models trained on a variety of humanoid and non-humanoid figures.