Genemate is a project that creates real time animation of a 3D model based on video input. It uses meshroom to create 3D models from input images provided by the user, Accurig is used to rig the model and Three.js provides the environment for animating the model.
For running the frontend:
- open the frontend directory
- run
npm install - then
npm run dev
For running the backend:
- open the backend directory
- install the packages from requirements.txt
- run the
main.pyfile
- The vite server launches the frontend in localhost://5173 (normally)
- Navigate to the page
static/js/animationpage.htmlusing the browser url - If using input video:
- Enter the file path in the input field
- press the file button above
- If using camera:
- press the camera button (Requires view of entire body else pose estimation might result in wrong output)
Genemate uses meshroom to generate models. The bin path to meshroom must be updated in the backend/meshroom_CLI.py file's meshmain() function. The option to generate 3D model is available in the frontend ui. (Meshroom requires hours to generate a model and requires a large amount of input images).
Accurig is used to rig the model. The pixel position of each button is used to automate the process. Accurig can be ran individually to generate a rigged model. The output is generally available in FBX format. (Note Genemate requires the model format to be in glb).
The model needs to be in GLb format to be animated. The model in glb format should be placed in frontend/assets. The Github repo FBX2GLB-Batch-Convert-Optimizer can be used to convert fbx to glb.