Looks impressive! Thank you for sharing this with us @kiteboardshaper .
Out of curiosity, how would you run it remotely?
The user would access a webpage, for example: www.kiteboard.com/configurator.html
Once the user sets up all the inputs, he will submit them. Kiteboard_configurator.gh file on your local PC would automatically pick up the submitted inputs, and generate all the needed 3D and production files.
Or did I misunderstand the idea?
HumanUI is AMAZING for this job, making putting together a GUI no harder than a typical GH script.
HOWEVER - it is Windows ONLY solution and I have bigger market for my tools if they can run native on Rhino for MacOS.
As far as I have looked into ETO (Native Rhino cross platform UI builder) it has a huge learning curve and lacks any real online instruction.
What I’m hoping to do here is leverage the honestly MASSIVE amount of HTML/CSS/JS tools and training available to build a cross platform UI for my project.
Hi @kiteboardshaper ,
Thank you for the clarification.
Karorocad.online looks quite good! I was not aware of the website.
So the Rhino Plugin version would be an offline alternative, to Karorocad.online?
Would this offline alternative have some advantages that Karorocad.online does not have?
I understand. The Rhino Plugin version would be the one with more features.
Thank you for sharing all the information. I will keep tracking the KaroroCAD project. Looks like a good example of automation for production product.
Have written Slider, Text Box and Button components - which as far as I can recall should be enough to replace all the controls in my current 160+ input parameter Human UI controlled plugin.
What I like with the number input components is they self label with the min/max values which makes upkeep of the UI easy.
On that same thing - with HumanUI I had to write my own validation scripts for the user inputs - HTML gives this for free on the user side - again much easier to maintain.
At this stage I don’t believe you could use web frame work for the development, as I end up doing some strange things to keep state between form submits.
But, css styling would be possible as long as it is placed inline with the HTML.
I now have working toggle buttons (this needed a few attempts to get to work)
Finding path to file to open sorted too.
Two problems to that need work:
1/ Rhino crashes if I try and launch Eto.forms.webview when grasshopper is open - both from GH Python and Rhino Python. No issues to launch from Rhino python before GH is open or to relaunch once it has run once, even if GH open. Weird.
2/ Need a hook to know if/when the Eto.forms.webview has been closed to give option to re-open or close Rhino completely.
From there I need to test if this will actually open and run on MacOS
Thanks to some help Discourse I’ve solved both of the above issues.
Turns out having the WebUI plugin installed was causing Rhino to try and use the wrong version of ETO.Webview if GH was open - deleting that plugin solved the launching issue.
Subscribing to the onClose event of the ETO.Form now allows me to offer an option to reopen the control window or shut down Rhino (tho this version just gives a warning rather than shutdown)
Some limits:
As the Bengesht Webserver is only outputs HTTP_GET requests to GH and that has a ~2000 character limit on the form return URL. This page is about 350 characters so there will be a limit on the number of controls on a single page. Currently my plugin has 160+ controls and growing - I will run into this limit.
Two ways to get around this:
1/ Create a ‘tabbed’ UI that has different pages for groups of controls - sort of best for a UI that has lots of controls. I’m going to work on this next.
2/ Replace the Bengesht webserver with one that can do POST requests - I’ve had a quick look at this but launching a server from Python locks both GH and Rhino. Launching background processes in Python are currently beyond my skill levels.
I have also today complied this GH script into a .YAK plugin package - with everything working SWEET.
My big question now - will this actually run correctly in Rhino 7 on MacOS??? I need to find a machine to test on…
The attached GH has two dependencies, Bengesht and Metahopper (tho EVERY GH user should have Metahopper installed…)
A drop down menu of a dozen or so pre-defined colours plus the ability to choose a custom colour input from RGB values in a text box - plenty usable for my application.
Next on the plan is to fork my main application, rip the humanUI head off it and graft on this new Frankenstein.
Oh - I should really borrow a Mac and test it on Rhino 7 for MacOS before I do that.