Blender's UI and Runtime: Much Faster Than GPUI

511 points - today at 7:40 AM

Source

Comments

munksbeer today at 1:00 PM
Can I please congratulate you on your README. It rapidly tells me what I'm looking at, and why I might be interested in the project. There are so many READMEs around that ... just don't do that. They ramble about technical implementation details, how their language choice is amazing, and a third of the way through the README, I'm still left wondering, "but what does this project do?".
dev0p today at 8:27 AM
I love the general idea behind Blender's UI.

And I do appreciate the effort that goes into it, especially in the latest versions as it got much better,

But I really really really REALLY don't want that UI in anything else other than Blender.

Please don't.

lukebitts today at 11:55 AM
That's really cool! I burned some tokens trying to develop something similar but gave up halfway. A lot of people criticize Blender's UI but as someone who has been using blender for more than a decade now I just find it so elegant. Just the customizability itself is something I miss on most 3D software, if not all of them. Being able to just split screens and change their functionality, paired with the tabs for different workflows, it is a really good solution for a very complex software. I'd like to see a game engine with this much UI freedom.
nicoburns today at 11:07 AM
For anyone looking at Rust GUI: don't expect GPUI to be the fastest. From what I've heard, Iced, Slint, Dioxus Native, Freya, etc are all faster. Despite claims of being blazingly fast, GPUI isn't that optimized. Zed gets away with it because it's UI is simple.
felixthehat today at 8:26 AM
It would be such a boon if GIMP and Inkscape could adopt blender's fantastic GUI
cultofmetatron today at 8:25 AM
Ive been thinking this would be amazing to do for ages. happy someone finally did it. its the perfect system for interfaces where speed matters. hope to see more 3d modellers, video editors, daws and simulation systems built on this.
xlii today at 12:55 PM
Others have noted that GPLv3 is required (which is a show stopper for many) but I'd like to mention that I find the pill saying "GPLv2 or Later" in the project itself misleading.

Especially since v2 and v3 have vastly different consequences.

bobajeff today at 2:13 PM
This looks like a nice quick option for python scripts. I've made a web interface using fastapi for my python script because that seemed the most sane choice at the time but I would've used tkinter but for my lack of familiarity with tk/tcl and it's retro look.
xiange today at 9:06 AM
It looks good, but the GPL license restricts the use cases
bvrmn today at 9:42 AM
I have a python "DSL" which allows to create a simple UI for synth parameters you also make in python. It uses Tk and looks like, mmm, Tk with all other Tk issues. Project was abandoned because of it. Looks like it's time to revive!
pythonRon today at 9:50 AM
I gave it a quick try (Fedora 44/Python/pyenv) with some Tkinter code which is supposed to just work... It doesn't.
xixixao today at 2:20 PM
Love Blender, but it’s GUI, especially anything that could use native OS components, is not what I love about it (judged on macOS).
panzi today at 12:00 PM
Be aware of the license. You can only use it in GPLv3 programs.
petterroea today at 9:36 AM
The readme suggests it's a port of the blender code, at least the renderer is claimed to be so:

> The drawing code is a C port of Blender's own widget code

How can we guarantee BUI is still performant?

mapcars today at 3:54 PM
Those numbers look very impressive, I'll try it in some projects
phillc73 today at 9:59 AM
It'd be awesome if kitty[1] and calibre[2] adopted the Blender UI.

[1] https://github.com/kovidgoyal/kitty

[2] https://calibre-ebook.com/

gen2brain today at 1:49 PM
But, can it work without GPU? All native toolkits have fallback to software rendering. I do not uderstand what is gained, cpu was good enough for that since Windows 95 era? Just do not redraw every frame like in games but retain instead?
hn_submit today at 9:35 AM
This is excellent. I thought about this years ago for an OpenGL based desktop UI. Apple's UI is using something similar I believe. And the Windows UI too is mostly rendered using Direct3D (which is comparable to OpenGL) since Vista.

I hope someone else uses this for a new Linux distro.

the__alchemist today at 2:02 PM
I'm excited, and will try this! Its provenance speaks loads, as Blender is a beacon of software design, open-source or otherwise.

I'm an EGUI fanboy, but am looking to truly compare it to other things, especially non-immediate mode. I have no gripes with EGUI, other than it seems to create an application size floor, and I suspect memory use could be better. It has never blocked me, including for complex applications with GPU rendering etc.

Blender is peak OSS. I'm in! Will give this a shot for my next limited-scope application. I'm also experimenting with GPUUI.

I will try Slint if I ever do embedded with a full GUI.

I will poke at this, because I saw the same sentiment in a HN thread yesterday: >" You write Rust or React and want a native desktop UI without shipping a browser." You don't need to ship a browser to do GUIs in rust. Some people do, and justify it through comparisons to Electron (Tauri) - I suspect this is a pushback against that?

Another thing I will poke at from comments: If you're going to dismiss this as a non-native UI and therefor inferior: Post specifically what features your OS-native toolkit or OS conventions have that won't work here. (Is it hotkeys, color scheme, a Je-ne-sais quoi? What OS specifically? My pet theory is these are all MacOS users, but I'm not sure)

mariocesar today at 1:32 PM
I have the same idea 10 years ago. :D I am so happy seeing that somebody was capable of making it. I always admire blenders UI and all the work developers did on making it.
hollowonepl today at 12:24 PM
Nice. I have my own GPU GUI toolkit I'm satisfied with and developed because I did not want to have yet another imgui looking app that required gpu accelerated UI toolkit.

But, if I did not invest last two years into my own toolkit, I'd definitively consider.

andsoitis today at 2:34 PM
> The GPU renderer is opt-in: Direct3D 11 on Windows (gpu/intern/gpu_d3d11.c) and OpenGL 3.3 core on Linux (gpu/intern/gpu_gl.c).

Direct3D is at version 12 on Windows[1].

What tech on macOS? OpenGL?

[1] https://en.wikipedia.org/wiki/Direct3D

deleted today at 12:03 PM
bita_nidir today at 11:33 AM
Nice! I've been waiting for someone to do this for a long time. Now I'll just need to wait a bit longer for someone to apply this to FreeCAD. Boy oh boy!
pjankiewicz today at 1:33 PM
I don’t buy arguments like much faster than X. Take X let claude work on it for 2 days and it will be fast. In case of gpui I took the community version as a part of my project and it is quite fast because it is optimized for my app.
Washuu today at 9:54 AM
I have been remaking a Blender style UI in Kotlin for my Umamo project because I love Blender's UI that much.

I think I will keep going with my own efforts, but this looks nice!

gostsamo today at 9:29 AM
not a single mention of a11y or accessibility, so please be careful before using it for general purpose applications.
scotty79 today at 8:20 AM
That sounds like an amazing idea. I've been using a lot of Rust+GPUI and sometimes behaviors that I'm expecting to be there just aren't.

Swapping it for UI that's as battle tested as Blender might improve things.

deleted today at 7:40 AM
Groxx today at 8:57 AM
>Who wrote it?

>The repository is built entirely using LLMs, with no human-written code. ...

parasti today at 11:21 AM
"Decoupled from project by external developer" generally means "with a very high chance of immediate bitrot".
creata today at 11:22 AM
If you're going to ask Claude to write a library with a web version, can you also ask Claude to write a web playground?
p-e-w today at 9:10 AM
I’ve thought many times “Man, those widgets look terrible!”

I’ve not once thought “Man, those widgets are slow!”

IshKebab today at 8:30 AM
Definitely a worthy goal but they've gone down a super weird route by providing clones of other GUI toolkit APIs on top of this. Your target audience is people that are ok with vibe coding. They don't care about switching to a proper Blender-style API.

Just because you can...

keyle today at 9:28 AM
It's obviously vibe coded, but it's quite well done by the look of the ideas and implementation.
Aeolun today at 2:20 PM
But is it built in Rust?
pmkary today at 2:17 PM
Amazing Amazing Project
samiv today at 1:34 PM
But is there a UI editor?

Is it retained mode UI?

quotemstr today at 1:22 PM
No system theme matching? No system fonts? A fast UI toolkit is great, but so is one that matches the rest of my desktop.
Lockal today at 2:00 PM
The project is dishonest. Maybe AI agent was instructed to split Blender UI code, but what happened instead is AI implemented a classic immediate UI, not even reading the code.

I just tried few very standard operations that every Blender user knows:

1) Drag vertically across multiple number inputs to enter multiedit mode - failed (even though main page advertises this: "Drag down across X, Y and Z to edit all three at once")

2) Hover on field, press Ctrl+C, hover on another field - press Ctrl+V - failed

3) Press shift while dragging - it glitched

4) Scale UI - failed

5) Collapse collapsible block - failed

6) Right click - reset to default - failed

7) Jump to next field with Tab (while editing) - failed

8) Automatic alt accelerators - failed

9) Tooltips - N/A

10) AI slop: funny cursors, focus outline

So basically it is more like styled imgui (less polished than Blender), rather than Blender's UI.

I'm not saying that it is impossible to do a honest implementation, but one needs to kick agent much more to prevent cheating, and actually know how Blender UI works.

chiroyce today at 8:25 AM
always liked blenders design language, looks cool!
kitkarl today at 1:01 PM
Blender continues being the GOAT
anthk today at 12:51 PM
Cool but Blender's interface is not a general purpose UI. EGUI/GPUI and the rest are.
antman today at 8:48 AM
License of GPUI is Apache and BlenderUI is GPL, which is limiting for adoption.
deleted today at 11:45 AM
contingencies today at 11:10 AM
OK who's gonna burn the tokens rewriting a whole Linux system with BUI? You know you want to...
deleted today at 10:52 AM
deleted today at 11:27 AM
luckydata today at 9:53 AM
This project would benefit from a longer Readme.
arbor-group today at 2:59 PM
[flagged]
pavelsich today at 2:00 PM
[flagged]
ahmedvdemir today at 11:29 AM
[flagged]
clilog_d today at 8:49 AM
[dead]
grougnax today at 9:19 AM
[dead]
andsoitis today at 8:36 AM
Use the native widget toolkit if the platform you target; your users will love you more.
eloto333 today at 10:51 AM
[flagged]
eloto333 today at 10:51 AM
[flagged]
eloto333 today at 10:51 AM
[flagged]