Very cool !

Are you doing this by code or using a 3D modeler ?