I was wondering if someone could give a high-level overview over architectural differences between those big monoliths and Rhino. Houdini for example seems to come on top in terms of performance, which I assume can be attributed to its reliance on C++ (and some multithreading trickery), but that seems like a very shallow explanation. I was wondering if there were any “patterns” that rhinocommon could borrow from other 3D packages to further turbocharger grasshopper.
I am aware that other than Blender everything is proprietary code, but they are old enough that I assume someone must have got some glimpse into their inner workings.
DCC digital conent creation aka any of the above packages. Memory consumption, execution speed etc. Houdini is a mind-bogglingly fast program for making very expressive operations on meshes. I know that it’s not exactly Rhino’s purview, but with the new SubD features for example this might be something worth looking into?
PS Clarisse is also a speedy gonzales in terms of it’s hundreds of billions polygons viewport. Would be cool to read some general comparison.
I’ve typed on Blender code since 2002, got my first patch accepted in 2003. My daily job is to integrate Cycles from Blender into Rhino (Raytraced, and in v7 also Rhino Render).
Blender code architecture is vastly different from Rhino. There is not much there that could be borrowed in a useful way - Blender has tightly controlled event loop, Rhino has it all over the place. Blender has completely custom GUI implemented in OpenGL, Rhino uses platform GUI toolkits. Blender has a Python only add-on/scripting capability with no way of making custom GUI using different widget toolkits, Rhino tries its best to host all kinds of custom GUI created in WinForms, WPF, MFC, Eto.Forms.
FWIW the core of Rhino, including geometry kernel, is also C++.
I suppose there is always room for improvement speed-wise, but the SubD implementation in Rhino is completely different from anything out there. Not easy to compare on a low level.