UI Interface

I am initially an Architectural Technologist and very interested in coding and software design. I have one-two year experience how to use Python in Rhino. I am also interested in other part of software development as well, such as User Interface Design. I am wondering what UI librray has been used for mainstream, good looking softwares like Rhino or Adobe Photoshop, BlueBeam, Corel, Solidworks, Archicad etc. that would be interesting to know. I assume they all code in C++. I checked Google about ready to use UIs, but I did not find. I know popular UI packages such as Windows Forms in C#, Tk for Python, JavaFx, Telerik etc. but do not know if software companies in AEC they use a custom coded one or something else.

Part of the Rhino GUI is created using Eto.Forms, which is a .NET library. This is used on both the Mac and the Windows version. In Rhino 8 more and more of the GUI is being moved on top of that, instead of the age old MFC that the oldest code is built on.

https://pages.picoe.ca/docs/api/html/R_Project_EtoForms.htm

I can’t speak for other 3D software, apart from Blender - fully custom GUI, drawn entirely in OpenGL.

Another quite good library is Qt.

For plug-ins that run in Rhino best stick to Eto.Forms.

1 Like

Hello! It would be interesting to know what ETO forms are capable of. Like anything? How feature rich is it?
Would it be theoretically be possible to write a plugin like grasshopper with it’s countless UI widgets with it?
Thanks!

Grasshopper 2 is being written using the Eto.Forms library. All of the custom components are done through the Eto.Forms API.

Here some older Work In Progress demos of the features being implemented https://www.youtube.com/watch?v=H5edCW5lwVg&list=PLgQW0LX1TgdfNKgM6Ua-Lj8X26Jxzlex8&index=18 and https://www.youtube.com/watch?v=NEJbwtk5BN4 and more (see the playlist of the first link, videos from #17 onwards). Lets not forget the Grasshopper 2 Icon Editor: https://www.youtube.com/watch?v=uORhSej-2Ig

Thanks! Looks like the dream of Rhino’s UI getting a refurbishment with a smooth and modern UI codebase will come true. This is beautiful!

Thank you for sharing some links!!! I can’t wait to dig in!

I have been messing around with ETO for a while, but I always feel like I am just scratching the surface.

I am trying to find good examples or open plugins that I can learn from that have nice GUI for rhino and/or grasshopper. It seems like there is so much more to ETO than what I find in the available examples.

Edit - I checked out the links and they do show some cool GUI functionality, but I was hoping for some info on how to make these kinds of things work. Anyone know where you learn to use ETO for more advanced features?