Pino - a procedurally generated and moved skeleton figure

Starting with tree.js I tried bones and skeleton.
The result was the simple figure Bumblebee Mara .
It uses the old geometry and I recently renewed it with BufferGeometry
BumblebeeMara .

I now wanted to fathom whether it is possible to procedurally generate a more complex figure without modeling software. The figure should allow a number of poses and perform movements. Some preparations can be found there:
Skinned mesh with dynamic knees
Example of how to use CCDIkSolver with a generic SkinnedMesh? - #14 by hofk

The skeleton figure Pino can be moved with keyboard events. The corresponding assignment can be found in the EventListener ‘keydown’ at the end of the code. Besides the movement of the bones, the lying nose can be animated.


Due to the modular structure it is possible to create further movements. So far a rotation around an angle and an oscillation around a center is implemented. Thereby the speed is controllable.

At the endpoints of the oscillation a soft reversal of the direction of motion is implemented with the help of a factor. Of course, the movement can also be controlled by other means than keyboard events.

The variable shape of the figure is made possible with the help of a highly variable user-defined geometry. Arrays or functions can be used for shaping. With the testMesh one can try out different variants.

The individual geometries are linked to a single geometry using a link( ) function. Multimaterial is supported.

On Github threejsResources/Skeleton at master · hofk/threejsResources · GitHub


I had forgotten to dispose of the individual geometries after linking.

Completed at the end in

function link( geoms ) {

for ( let i = 0; i < geoms.length; i ++ ) {
    geoms[ i ].dispose( ); 


This is very cool, nice work :slight_smile:
Did you use any existing skeleton setup?
Perhaps it would be easy to fit this to a Mixamo skeleton, and then you could use it with any of the mixamo models

Since I have never dealt with modeling software, I also deliberately created the skeleton myself according to a very simple pattern.

But I looked at the official examples animation /skinning/.

But one can easily change the skeleton for other figures (even non-human).


Wow, this is impressive!!!

1 Like

Update: see end of the original post