RMGUI; A New Approach To UI Development High-Performance, Code-Based Retained-Mode UI Library I don't like building UI. Whether it's dragging elements around, managing scene object references or just wasting time repetitively building things which could be automated, drag-and-drop-editors have never clicked with me. It's a whole lotta pain. I had to work on one-too-many an interface around 6 months back, and decided that I needed another way of building GUI. WPF was the closest I could get to what I was looking for, but any Unity integrations I could find were cumbersome (lack of code-behind generation being a major one), and hit nowhere near the performance ballpark required. Running the idea of moving to a code-based environment, I'm approaching wrapping up the launch iteration of my solution to the problem- RMGUI. Featuring everything from Unity-esque horizontal and vertical layouts to WPF-style grids, RMGUI looks very much like CSS mixed with IMGUI. The key difference is that all calls you make return objects you can modify on-the-fly, i.e. Retained Mode GUI, with the syntax of IMGUI. Styling and animation is builtin to the core of the library, meaning that you can define CSS-like behaviours to style anything, or provide multiple states as keyframes to play them as animations. Really getting into the thick of it, there is support for unlimited full-alpha nested masks, GPU-based sprite fills (you can build your own fillmodes with start angles, end angles, centrepoint coordinates, smoothing values and even animate between them, or use one of the many builtin presets), and define interpolation settings for any animation in the library (every mode shown here is implemented). Moving from screenspace to worldspace takes literally one line of code- just supply a rect to draw it on in the control contructor, and you can seamlessly jump between the two coordinate spaces. No more weird scaling issues! The library is backed up with a lot of 3D features, including full depth/z-pos control for entities, and geometry shader support. You can even generate procedural lines, circles, arcs, rings (and animate them) on the GPU, giving you perfectly antialiased shapes at any resolution, without any source artwork. Any user-facing property, such as the text of a label or the value of a slider, can also be data bound with one-way listeners, one-way setters, or two-way reactive bindings. No more polling elements for their values or managing delegates- just provide a callback and tell RMGUI where you want the value to be sent if the user touches it. You can easily mix logic and views, or use a full MVVM setup. This is totally extensible and you can plug in any sort of abstraction layer you like. It can be as simple or as complex as required. This has turned into a bit of a devlog, so if you want to catch up you can find recent progress at the end of the thread. Thanks for all of the questions and feedback so far!