How we made the 3D models
I'm very happy with how our models worked out. Originally we planned to have just cubes. But then I wanted the cubes to have flappy ears. It escalated from there. The models are all defined as dicts by describing their structure.
This format describes the model as a tree of boxes of various sizes and colors. Each node is then fixed with a "Cone Twist Constraint". Basically a joint like a shoulder. Then as we move the models they wiggle around automatically thanks to the physics simulation. (Cannon.js)
Because of the simple format we were able to add all the models in one day. I think I'll add some more after PyWeek!