I am a computational designer based in S.Korea, and our team is currently working on the web service api for ruled based modeling for urban development.
The design computation team has scripted all the national building regulations necessary for the schematic design (i.e. volumatric study) in python in Grasshopper environment, and tested the modeling system successfully.
We do, however, have currently a huge debate over setting a 3D modeling engine for our web service between engineers.
One says for the web service, Rhino is not suitable as it would have a huge dependency to the software, and ideally engineer team wants to run the modeling process without running actual Rhino on server to reduce the computation timing. So they recommend to build up system using Python based Blend 3D engines.
Our computation team is not friendly with Blender3D, and it seems that the Rhino api we used does not exist in Blender 3D api(well maybe this is because we just dont know much about Blender3d )thus we think there is a huge risk in switching the 3D modeling environment. We already delievered the message that Blender is not a popular engineering tool for this industry, but they want more concrete reasons to choose Rhino over Blender. (In fact they also dont know much about Blender - they think computing geometries purely using Python api without running an actual software in server is the answer though)
I know there have been lots of attempts to solve this kindnof situation - Resthopper developed last year at AEC hackathon host by TT Studio.
I sincerely appreciate for your thoughts regarding our team’s concern and it will be great if one can share valuable insights and suggestions.
It is not possible to do that without running Blender on the server.
Since you have already much work done on top of Rhino through Grasshopper I would think that it is most useful to continue that way. Blender is completely different from Rhino, the SDKs and APIs are not swappable. Furthermore, Grasshopper functionality exists through Rhino Compute as well, see
Thank you very much for the answer. We built all the cusotmised components using Rhino SDK using Python, while not incorporating a standard “ready-to-use” gh components.
We heavily employ 2D and Vector computing before going to 3D modeling process. In fact, we are not using lots of nurbs-related api except some boolean operations
One of our engineers, who would insist to use Blender, said that we could compute geometry calculation purely through their Python built API without running the actual Blender on server, therefore he suggested to migrate all the python built functions in Rhino to Blender. - which I assume is not possible based on your reply.
Could you please tell us bit more why Blender SDK cannot be replaceable with Rhino SDK in this context? It will be highly appreciated as your opinion will be strong basis for our product to stick with Rhino environment - so that engineer team can accept.
If you’re only implementing discrete/combinatorial geometry classes (i.e. points, polylines, meshes etc.) perhaps you can. But as far as I understand Blender does not support more advanced numerical computational geometry (i.e. NURBS, Breps, solids) and their operations, so if that’s a requirement you’d be screwed. And perhaps also crucially, interfacing the two types, in an integrated environment/API (such as Rhino/Grasshopper, Rhino.Compute, RhinoCommon).
As @AndersDeleuran says it depends on your geometry needs. If it is only mesh-related data you’re looking for you probably can rewrite your current code to use Blender.
Note that, although you could compile Blender as a Python module, but note that this would necessarily make your code fall under the GPL license (or at least compatible with, as would any code you run inside Blender, see this thread for more info).
With enough time, money and effort I’m sure you could make the transition, but remember that you have already done a great deal of work in GH using the RhinoCommon SDK. It sounds like a waste of prior effort to throw that all in the bin. Besides, continuing with the RhinoCommon SDK you’d keep your code unencumbered by the GPL and you get to capitalize on all the existing, new and upcoming APIs and technologies mentioned.
In the end it will be a project management decision.
Either way both Rhino and Blender are big dependencies.