Hi Saurabh,
Thanks for your email. I am glad you and your research group liked geomdl.
Sorry for the confusion about the "vmesh" file format. "mesh" and "vmesh" file formats are custom formats for the in-house libraries that I used during grad school. I am aware that there is actually an official "vmesh" format, but geomdl does not support that one.
To speed up the stl export, you may decrease the sample size (via sample_size property of the Surface class) or increase the vertex_spacing value of the exchange.export_stl function.
Currently, there is no STEP support (I have a long-term plan to support it, though). However, there is an option to convert geomdl JSON output to 3dm (OpenNURBS/Rhino file):
https://github.com/orbingol/rw3dm
I haven't implemented volume import/export for .3dm, I couldn't find a good example to understand how OpenNURBS stores the volume data. I've tried to use On_NurbsCage class, but it somehow didn't work. It has been some time since I last tried to extract volumes from a .3dm file, so I can't remember what the problem was. However, I'd like to try again if I can find a .3dm NURBS volume and also some tips on the data structure.
If you have access to Rhino, you could convert the data into different file formats after using rw3dm.
Thanks,
Onur