Blender's UI and Runtime: Much Faster Than GPUI

466 points193 comments8 hours ago
munksbeer

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?".

show comments
dev0p

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.

show comments
lukebitts

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.

show comments
nicoburns

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.

show comments
felixthehat

It would be such a boon if GIMP and Inkscape could adopt blender's fantastic GUI

show comments
cultofmetatron

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.

xixixao

Love Blender, but it’s GUI, especially anything that could use native OS components, is not what I love about it (judged on macOS).

show comments
bobajeff

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.

bvrmn

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!

show comments
xiange

It looks good, but the GPL license restricts the use cases

show comments
pythonRon

I gave it a quick try (Fedora 44/Python/pyenv) with some Tkinter code which is supposed to just work... It doesn't.

show comments
petterroea

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?

gen2brain

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?

show comments
the__alchemist

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)

panzi

Be aware of the license. You can only use it in GPLv3 programs.

phillc73

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/

show comments
andsoitis

> 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

hn_submit

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.

show comments
mariocesar

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.

xlii

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.

hollowonepl

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.

show comments
Lockal

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.

show comments
bita_nidir

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!

keyle

It's obviously vibe coded, but it's quite well done by the look of the ideas and implementation.

show comments
pjankiewicz

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.

show comments
Washuu

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!

show comments
pmkary

Amazing Amazing Project

gostsamo

not a single mention of a11y or accessibility, so please be careful before using it for general purpose applications.

show comments
Groxx

>Who wrote it?

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

show comments
parasti

"Decoupled from project by external developer" generally means "with a very high chance of immediate bitrot".

creata

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?

Aeolun

But is it built in Rust?

show comments
scotty79

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.

show comments
samiv

But is there a UI editor?

Is it retained mode UI?

p-e-w

I’ve thought many times “Man, those widgets look terrible!”

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

show comments
IshKebab

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...

show comments
quotemstr

No system theme matching? No system fonts? A fast UI toolkit is great, but so is one that matches the rest of my desktop.

show comments
chiroyce

always liked blenders design language, looks cool!

kitkarl

Blender continues being the GOAT

anthk

Cool but Blender's interface is not a general purpose UI. EGUI/GPUI and the rest are.

antman

License of GPUI is Apache and BlenderUI is GPL, which is limiting for adoption.

show comments
contingencies

OK who's gonna burn the tokens rewriting a whole Linux system with BUI? You know you want to...

show comments
luckydata

This project would benefit from a longer Readme.

andsoitis

Use the native widget toolkit if the platform you target; your users will love you more.

show comments