For the first time, I came across three.js in January 2016. Since September I have been working on this issue.
In three.js core elementary geometries are defined.
When designing my “Bumblebee Mara” I needed other shapes and produced them by deformation of sphere and cylinder. http://codepen.io/hofk/pen/eWdZMb
Additionally inspired by https://threejs.org/examples/js/ParametricGeometries.js ( @author zz85 <<< old link, no longer available, see revision 100)
I have programmed a three.js addon.
It produces almost infinite many time-varying geometries with currently only 9 properties, 18 functions and 2 arrays. This is easy by specifying the properties, functions and arrays.
UPDATE 2022 to three.js r136 see
Addon. Produces almost infinite many time-varying geometries with functions - #41 by hofk
example: gramophone
Forms library (excerpt):
As hofk I joined GitHub on April 25. The repositoriy there is THREEf.js. GitHub - hofk/THREEf.js: three.js addon, to produce almost infinite many time-varying geometries / buffer geometries with functions (cylindrical coordinates)
Some examples can also be found at codepen: http://codepen.io/hofk/pen/QvEbwa
On my own site is a sandbox, where you can easily create the extended geometry.
http://sandbox.threejs.hofk.de/ Currently only with Firefox.
The bumblebee is there at http://threejs.hofk.de/
Note! At the beginning I even called the variables in German. Later only the comments. This is because I have presented the things in a German forum. The link is at the top.
After a note from Mugen87 I will try to expand THREEf.js to BufferGeometry.
A further idea is to use polar coordinates instead of the cylinder coordinates r, u, v. Now the geometries are based on a cylinder default, then on a sphere.