OK, looks like this is a one sided conversation, but I’ll keep it going with my thoughts and musings.
So, spent most of this weekend with my head in Rhino7 looking at different ways of delivery of Rhino/Grasshopper solutions to end users.
History of my project is, several years ago I got the idea to build a parametric engine to design kitesurfing kites in Grasshopper. I actually started the project firmly thinking it wouldn’t be possible and I’d give up at some point. To my shock it actually worked and is now developed to be somewhat comparable to the industry leading design software.
A bit over a year ago I looked into porting the code over to Shapediver, which again to my surprise was successful.
www.karoroCAD.online
Tho Shapediver is an amazing service it does have limitations on computation time and plugin/components that do mean I’m not able to offer a fully featured version of my system to others.
So, looking towards offline solutions and basing my needs somewhat around the Shapediver service my ideal solution has:
Code Protection
This doesn’t need to be Fort Knox quality security, just better than GH’s, ‘here’s the source code’. The RhinoScript Compiler seems to do this well enough, with the Python code encoded in the .rhi file and decoded at run time.
User Interface
Human UI is fine for this, WebUI might be second option in the future, ETO would be acceptable.
Grasshopper player misses the mark here as it will launch a GH definition with Human UI, but only runs a single pass before closing the definition.
RhinoInside shows some promise with @stevebaer teasing some ETO and WPF user interfaces. I’ve got to the point where I can launch Rhino and GH headless, and run a GH definition, however same issue as GH player, no HumanUI and only a single pass thru the definition.
I might add a few nice things like Package Manager/Yak support, Rhino UI icons/tool bars and license management thru Zoo.
So if I had my ideal setup right now it would like something like:
Write a short/simple RhinoPython script that would include a reference to my GH definition.
This Python Script would launch Grasshopper in a headless mode that runs 100% as per a normal GH session (not single pass then exit like GH Player).
Allow normal display of HumanUI/WebUI/ETO as user interface. (Maybe some sort of ‘on exit’ control would be needed on closing of the UI)
Allow Rhino Script complier to package/encode the Python and GH into a single rhi/yak package.
It feels to me right now that all the parts are ‘almost there’, if these were just pushed in the right way a new and very productive way of creating useful and distributable Rhino plugins would become available.
Cheers
DK
(please excuse typos and spelling, writing this on my phone late on a Sunday night.)