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.


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.

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?

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 Zooming Number Line - YouTube and Tabbed UI - YouTube and more (see the playlist of the first link, videos from #17 onwards). Lets not forget the Grasshopper 2 Icon Editor: Grasshopper2 icon editing in Rhino - YouTube

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!