AI Struggles with RhinoCommon but handles Rhinoscriptsyntax easily

Just an observation!

Yesterday I created a script with the help of AI. I needed access to a property that wasn’t accessible through Rhinoscriptsyntax so I had to coax the AI to use RhinoCommon - And it struggled! Luckily it got me close enough.

AI struggles with RhinoCommon but so do I. I find it really unintuitive. When I get it working it’s really capable. But it takes a while. Development speed is significantly slower than everything else I’ve ever used. I’ll count Rhinoscriptsyntax separately and say that it’s very intuitive and easy to learn. I’ve coded for AutoCAD using both AutoLISP and C# and also dabbled in some other stuff.

There are lots of talented developers but I’m guessing they burn out. There is lots of projects with high potential that just get abandoned. Slow development speed means that creators burn out before they can refine and test their code.

Having developer samples on Git Hub doesn’t really allow developers to keep pace with colleagues using other API’s. You’ll look up a sample, realize it doesn’t have what you need, then look up another sample… and so on… Often times this is required when you really only need an explanation for one line of code. Comparing Rhinoscriptsyntax this could mean 2 minutes of Googling versus being stuck for hours.

I know I’ve touched on this a few times but there’s A LOT being left on the table here.

Rhinoscriptsyntax is built on top of Rhinocommon–which is what Rhino itself is built WITH–and you can look at the rhinoscript source code and see how it works and usually it’s pretty easy, most of them are just wrappers for one line of Rhinocommon to work with object ID strings instead of object references.

There is SOOOOO much more you can do, usually in a much more straightforward manner, when you get over the crutch of rhinoscript, it’s just ‘actual programming” instead of a simple script API made for VBScript in Rhino 2.

The big aha realization for me with RhinoCommon (that scriptsyntax hides from you) was how with the geometry objects you manipulate or create(which aren’t part of the document until you say so, making manipulating them 1000X faster than rhinoscript) there are all these different kinds of objects(“surfaces,” “Breps,” different kinds of primitives) that are effectively different ways of looking at the same thing, in sort of a hierarchy of detail, and you will be converting your geometry between these types to access all the cool stuff.