However if you want to add any kind of realism to your bottle then you’ll have to take the third option: use modelling software such as blender, clara.io, 3ds max etc etc.
The ability to model things in three.js is very limited compared to these programs since modelling is not the purpose of the library.
In most cases i recommend modelling software since most geometry generators have a very limited feature set (for good reasons). Especially inexperienced three.js users often expect too much magic of these entities and then get stuck. They should only work with procedural geometries if they know what’s happening under the hood. At least somewhat…
Looks like most of beginners tried to deform Three.js’s basic primitives http://west77.ru/content/r73/hyper.html
The space ship is just a very deformed sphere.