Blender's UI and Runtime: Much Faster Than GPUI
Posted by ppmpreetham 10 hours ago
Comments
Comment by munksbeer 5 hours ago
Comment by laserbeam 3 hours ago
But the worst part is all code snippets are followed by an image which is not related to the code snippet. It's not what you get by typing the code... it's something completely different.
Comment by meowface 5 hours ago
I remember someone once created a GitHub issue requesting I turn the README into some verbose technical thing with full API docs and a bunch of people replied saying they greatly preferred the "pitch + high-level examples" style.
Comment by rubatuga 5 hours ago
Comment by nmstoker 5 hours ago
Comment by flipthefrog 3 hours ago
Comment by varispeed 4 hours ago
Comment by whatthejesus 3 hours ago
To the project maintainer: don’t ask people to read a terrible AI generated sales pitch novella that quantifies your AI generated port against every UI framework out there.
Here’s the obvious giveaways:
“ 4. The many ways in” “ Python, four ways”
“ tkinter: all 7,846 public names of tkinter and ttk. Nine real programs behave identically on the standard library and on BUI.”
“ Rust: the web platform, natively”
Ugh it’s excruciating. You’re better off with a readme that shows a few screenshots and installation instructions.
Comment by busssard 15 minutes ago
"down to earth" and "hobby-project" does a good job. its still not perfect but better than the vanilla output. eg. https://github.com/busssard/OpenRing
Comment by Groxx 1 hour ago
Comment by ppmpreetham 5 hours ago
Comment by munksbeer 5 hours ago
"Blender's user interface, as a library you can use from Python, Rust, JavaScript (React, Svelte), C, C++ and Dear ImGui."
This tells me a huge amount of what I need to know, if I'm interested in this project or not.
Compare it to another very recent example posted on hn: https://github.com/rivet-dev/rivet - You need to get some way down the page until it discloses what you might be able to do with the project. https://github.com/rivet-dev/rivet#use-cases
But by that stage, even though it isn't very far down the page, I'm already checked out.
Comment by ppmpreetham 4 hours ago
We also have a discord server, lmk if you're planning on using BUI!
Comment by twitexplore 2 hours ago
Comment by nutjob2 2 hours ago
Comment by raincole 2 hours ago
Comment by dev0p 10 hours ago
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.
Comment by OtherShrezzing 9 hours ago
If you're already using Blender to make assets, there's some benefit to stuffing Blender's UI into your game editor too.
Comment by SkiFire13 7 hours ago
Comment by throwaway27448 35 minutes ago
Comment by nonethewiser 3 hours ago
Not in an age of AI.
I mean if you want to code all this stuff by hand, I get it. But that's a choice. And since it's a choice that means shoehorning a Blender UI into a "bargain-basement game editor" (and having a "bargain basement game editor) isnt really needed. You absolutely don't need to spend a lot of time arranging UI stuff.
Game tooling is pretty trivial now and it's not user-facing. Again, I fully understand why someone would want to do this themselves still but let's not pretend thats not a choice at this point.
Comment by archerx 8 hours ago
Comment by mejutoco 7 hours ago
Comment by archerx 7 hours ago
I have used 3Ds max, maya, lightwave, cinema4D, milkshape, wings, Houdini, unreal engine 1 - 5, Hammer, Threejs editor and probably more. The Blender UI is worse than all of the above.
Comment by mejutoco 6 hours ago
Comment by throwaway27448 34 minutes ago
Zbrush is ok.
Comment by bacheaul 6 hours ago
Comment by miniupuchaty 5 hours ago
You've given quite a list of tools with different purpose.
For 3D work I would personally rate
Modo 3D, Zbrush > Blender, Houdini > Softimage XSI > Maya > space intentionally left empty :P > 3Ds max
Blender UI looks very nice and is very customizable. I think it's "ok" in beginner discoverability (none of 3D softs is great at that really) but when you get experienced with it it's one of the best.
I really like how they managed to keep all the tools and views pretty consistent given how many things you can do in it. Whether you are working on objects, vertices, nodes, movie clips you get the same shortcuts where possible.
Comment by tredre3 15 minutes ago
3Ds max being dead last is fitting, people who think it's peak UI just have stockholm syndrome in my opinion.
Comment by wtetzner 3 hours ago
Maybe some of them do, but even though I disliked the UI at first, I've come to appreciate it as I've learned it. It's simply different from most other software, so that obviously causes friction. However, I think once you learn it, it's quite a good system. There's a tradeoff between optimizing for familiarity/new users, and providing an optimized experience for advanced users.
Comment by glimshe 5 hours ago
Blender does a LOT of stuff. Its not an easy product to create an UI for. But I think the problem is much bigger when coming from a different 3D package than when learning from scratch.
My teenage kids use Blender as the first 3D package they've ever learned. I was impressed with how quickly they ramped up through videos and learning from each other.
Comment by sehugg 7 hours ago
My baby duck fingers could probably pick up LightWave 3D again in an hour or two. I could never gel with Blender.
Comment by somat 2 hours ago
A lot of people go "Blender UI was horrible, but they redesigned the whole thing and now it is good" Having used blender in a minor role for 20 years(i think I started on 1.7), I think this was just a big psyop by the blender team. Sort of how the client goes "Change things" and you change nothing, wait a day, and tell the client "I made the changes you requested" client: "I love it"
I am not saying the blender team has not made substantial improvements to the UI over the years, but the core is still that same quick blender workflow, This is very different from the normal clunky GUI design of 3d modelers of the era and as such blender got a reputation for having a weird UI which was easily translated to blender having a bad UI. So what do you do when you have an unwarranted bad reputation? Especially now that the rest of the world has caught up and is using your flows and they are not so weird anymore. Make a dark mode and put out a big press release "we redesigned everything, it's good now" so people will try it.
Comment by cl3misch 8 hours ago
> Baby duck syndrome is a cognitive bias where people automatically prefer the first system, interface, or product they learn to use, judging all later versions or alternatives by how well they match that initial experience.
That's actually extremely common in scientific (GUI) software. And in any professional setting I guess.
Comment by fc417fc802 8 hours ago
I don't think that qualifies. There's an important distinction to be made between an aesthetic preference versus a professional not appreciating a tool being mucked with. Anything that interferes with my workflow without immediately providing substantial benefit is something that's actively harmful. In fact even if it does hypothetically provide huge benefits I still might not want to deal with it right this second.
Comment by conartist6 6 hours ago
So if it's for an employer it's rational but if you're making the same choice for yourself it isn't? If one of those is baby duck syndrome they all are.
Comment by patcon 5 hours ago
As in, that people who refuse change in their play activity are in some way different (less rational? more "syndromatic"?) than those who refuse change in their breadwinning activity.
I see the distinction, but am not sure I agree. It's just a neurotype spectrum of the same phenomenon. Baby duck is baby duck
Comment by lentil_soup 9 hours ago
Comment by luckydata 8 hours ago
Comment by 20k 8 hours ago
Comment by fc417fc802 8 hours ago
I absolutely detest it (TBF I haven't used it for the past ~2 years) but I also recognize that it's an incredibly difficult problem space that lacks an obviously good solution, the tool itself is inherently and irreducibly complex, it's a free project with extremely limited resources, it's been consistently improving over time, etc, etc.
Comment by DrewADesign 7 hours ago
Comment by Jtarii 2 hours ago
It is actually a miracle that it is as good as it is considering other open source graphics programs like GIMP are horrendous to use.
Comment by Andrex 2 hours ago
Comment by soulofmischief 32 minutes ago
Comment by coldtea 6 hours ago
Fundamentally all 3d modelers have inherent degree of complexity. The ones that give a "simple" facade with fewer options make other things harder or having to look into obscure places.
All of that are beside the point however: people will use this as a GUI library, not as a Blender's UX design.
Comment by omnimus 6 hours ago
Comment by atoav 9 hours ago
It is not a UI paradigm that you would use for just anything, but for certain poweruser software it is one of the best paradigms I have seen, especially since they managed to get rid of 90% of the rough corners in the past decade of development.
Comment by rramon 8 hours ago
But a good design system does the trick. Artcraft apps use this library and their Adobe clones come very close to the original apps.
Comment by anthk 5 hours ago
Comment by wavewrangler 7 hours ago
Q: “Whats wrong with tkinter?!?!”
A: It sucks, that’s what!
Comment by PalmPilotProMax 9 hours ago
Comment by mkl 8 hours ago
Comment by flipthefrog 3 hours ago
Comment by coldtea 6 hours ago
That UI is fine to be on many more places than Blender, given that many libraries people use are way worse. Imgui for one example.
Comment by amelius 9 hours ago
Comment by coldtea 6 hours ago
Comment by jon-wood 9 hours ago
Comment by atoav 9 hours ago
Yeah you can do that. If you have low standards and don't need control of the details.
Comment by lukebitts 6 hours ago
Comment by foobarbecue 5 hours ago
Comment by anthk 5 hours ago
Comment by ppmpreetham 4 hours ago
I do hate vibe coding. So I took a different approach for BUI.
Instead of asking the agent to decouple the UI, I asked it to remove all the parts which isn't a part of UI logic.
Turns out AI is pretty good at removing than generating.
Comment by tredre3 12 minutes ago
That's an interesting distinction. A distinction without a difference in my opinion, but a distinction nonetheless!
Comment by ppmpreetham 8 minutes ago
Comment by papa0101 3 hours ago
Comment by 0xdeadbeefbabe 1 hour ago
Comment by nicoburns 7 hours ago
Comment by bita_nidir 6 hours ago
Comment by hackyhacky 6 hours ago
Comment by nicoburns 4 hours ago
Median update+build time per frame (ms), lower is better
Machine: macOS 26 VM, Apple M4 (virtual)
benchmark (ms) Dioxus Iced egui Slint GPUI
create 1k 12.91 17.57 10.66 26.99 22.32
replace 1k 14.46 14.48 7.48 17.07 17.41
update every 10th 2.12 1.94 4.17 5.55 10.65
select row 1.16 0.37 3.50 6.62 10.68
swap rows 1.45 0.42 3.53 4.10 10.26
remove row 1.32 0.39 3.27 4.46 11.95
create 10k 124.97 152.52 58.97 136.07 164.58
append 1k to 10k 28.12 157.67 33.01 69.93 117.70
clear 1k 3.00 0.86 0.07 4.60 0.04
scroll frame 0.28 0.10 0.55 4.23 3.79
Dioxus above is Dioxus Native.These are CPU-only times for the state management / style / layout / etc, but don't include rasterization (additional work in the benchmark harness required to measure GPU time sensibly), probably aren't fully apples-to-apples, and could probably do with testing some more complex layouts.
Comment by dzogchen 5 hours ago
Comment by Matumio 6 hours ago
Comment by shaky-carrousel 6 hours ago
Comment by rat9988 5 hours ago
Comment by cropcirclbureau 4 hours ago
The main thing GPUI has going for it is mind share and that's a great thing to have. The mind share is unfortunately highly fragmented though as the original authors are not interested in selling a GUI library. Hopefully the community efforts will come together to produce a more polished and general library. A well used library is better than a better designed one maintained by a single person.
Comment by rudedogg 2 hours ago
It’d be like naming my http library HTTP.
And it’s why Dear IMGUI isn’t just named “IMGUI”.
Comment by mwkaufma 5 minutes ago
Comment by felixthehat 10 hours ago
Comment by felixthehat 8 hours ago
Comment by AlienRobot 7 hours ago
Comment by rcxdude 4 hours ago
Comment by TingPing 50 minutes ago
Comment by rcxdude 20 minutes ago
Comment by rozab 6 hours ago
When they tried to jump on newer trends they made them all monochrome, and they don't have distinctive sillouettes so it's just completely inscrutable. That Inkscape screenshot is horrible. I count 129 icons.
And yet they still devote so much space to their bizarre colour palette, which is huge but still manages to omit most of the gamut? It's the kind of design that really only comes from decades of OSS development.
Comment by whywhywhywhy 5 hours ago
Comment by anon-3988 8 hours ago
Comment by lozf 7 hours ago
[0]: https://gradia.alexandervanhee.be/ [1]: https://www.pinta-project.com/ [2]: https://krita.org/en/
Comment by TonyStr 7 hours ago
Comment by Imustaskforhelp 7 hours ago
I’d be interested to know what you think about it
Comment by wavewrangler 7 hours ago
Comment by graynk 6 hours ago
Comment by amlib 7 hours ago
Comment by bondarchuk 6 hours ago
Comment by phillc73 8 hours ago
Comment by adhamsalama 8 hours ago
Comment by 41353aab 7 hours ago
Comment by p-e-w 9 hours ago
Comment by grufkork 8 hours ago
Comment by luckydata 8 hours ago
Comment by omnimus 6 hours ago
Comment by ipdashc 4 hours ago
Comment by firethief 1 hour ago
Comment by Shorel 7 hours ago
Comment by archerx 8 hours ago
Comment by 4k93n2 9 hours ago
Comment by kleiba2 9 hours ago
Comment by vintermann 9 hours ago
Comment by darreninthenet 9 hours ago
Comment by kangalioo 9 hours ago
Comment by ghostghostghost 6 hours ago
Comment by jansan 9 hours ago
Comment by Cthulhu_ 7 hours ago
Comment by cultofmetatron 10 hours ago
Comment by ppmpreetham 1 hour ago
Comment by mixmastamyk 1 hour ago
Was recently trying to learn a desktop toolkit again and was disappointed that the docs of pygtk and rust/iced end around page three. Many projects, little follow up. Probably should pick a toolkit from the 90s instead.
This seems different. Also, tabs that look like tabs! Love it.
Comment by ppmpreetham 1 hour ago
Check out the docs here: https://bui.preetham.top/
Comment by boguscoder 49 minutes ago
Comment by ppmpreetham 29 minutes ago
Comment by xlii 5 hours ago
Especially since v2 and v3 have vastly different consequences.
Comment by xiange 9 hours ago
Comment by exitb 9 hours ago
Comment by buster 9 hours ago
Comment by thisismyanon2 8 hours ago
Comment by wtetzner 3 hours ago
Comment by ZoomZoomZoom 7 hours ago
Comment by the__alchemist 2 hours ago
GPL makes sense for applications like Blender. For a general purpose library, it's a dealbreaker.
Comment by BowBun 3 hours ago
Comment by ivanjermakov 6 hours ago
Comment by slopinthebag 6 hours ago
Comment by kqp 7 hours ago
Comment by CarVac 3 hours ago
But that wouldn't work for a straight derivative of a GPL project.
Comment by bobajeff 4 hours ago
Comment by ppmpreetham 1 hour ago
Also speaking of FastAPI, have you checked out FastRAPI?
Comment by bvrmn 8 hours ago
Comment by ppmpreetham 3 hours ago
It's time to do it! Also we have a discord, if you end up reviving it, do share it over here:
Comment by pythonRon 8 hours ago
Comment by pythonRon 8 hours ago
Comment by ppmpreetham 3 hours ago
Comment by petterroea 8 hours ago
> The drawing code is a C port of Blender's own widget code
How can we guarantee BUI is still performant?
Comment by panzi 6 hours ago
Comment by xixixao 4 hours ago
Comment by ppmpreetham 2 hours ago
Comment by dailyimproving 4 hours ago
Comment by phillc73 8 hours ago
Comment by lukechu10 8 hours ago
Comment by lp92 1 hour ago
Comment by hn_submit 8 hours ago
I hope someone else uses this for a new Linux distro.
Comment by pjmlp 8 hours ago
Comment by gen2brain 4 hours ago
Comment by zamadatix 4 hours ago
Comment by the__alchemist 4 hours ago
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)
Comment by hollowonepl 6 hours ago
But, if I did not invest last two years into my own toolkit, I'd definitively consider.
Comment by michaelanckaert 2 hours ago
Comment by brcmthrowaway 40 minutes ago
Comment by ppmpreetham 8 minutes ago
Comment by mapcars 2 hours ago
Comment by mariocesar 5 hours ago
Comment by andsoitis 3 hours ago
Direct3D is at version 12 on Windows[1].
What tech on macOS? OpenGL?
Comment by bita_nidir 6 hours ago
Comment by Washuu 8 hours ago
I think I will keep going with my own efforts, but this looks nice!
Comment by ppmpreetham 6 hours ago
We also have a kotlin binding support coming soon, btw!
Comment by scotty79 10 hours ago
Swapping it for UI that's as battle tested as Blender might improve things.
Comment by _odi_ 9 hours ago
Comment by Narishma 1 hour ago
Comment by zigzag312 6 hours ago
GPUI and Makepad are the two Rust UI frameworks that seem the most interesting for what I'm looking for in a UI framework (hybrid immediate/retained mode, self-drawn widgets, open source).
Comment by scotty79 6 hours ago
Comment by gostsamo 9 hours ago
Comment by spider-mario 6 hours ago
Comment by ppmpreetham 6 hours ago
Comment by pjankiewicz 4 hours ago
Comment by feelamee 4 hours ago
Comment by Groxx 9 hours ago
>The repository is built entirely using LLMs, with no human-written code. ...
Comment by artemonster 9 hours ago
Comment by holoduke 5 hours ago
Comment by opem 7 hours ago
Comment by orbital-decay 5 hours ago
Comment by doublerabbit 3 hours ago
Comment by rao-v 27 minutes ago
Is it just me, or is this late stage token-utopia derangement? It took me quite a few tries before I could put Blender to any actual use because of how ... unusual ... the UI was.
Comment by parasti 7 hours ago
Comment by creata 7 hours ago
Comment by gigel82 1 hour ago
But what is actually in that project? All of those things? Just a C runtime? Why not talk about what the barebones C runtime gives you first (memory, runtime), then add whatever layer on top? Or is it all-in-one always?
Comment by p-e-w 9 hours ago
I’ve not once thought “Man, those widgets are slow!”
Comment by spoiler 9 hours ago
Do Maya and others have better UIs? Honestly, I find them more repulsive than Blender's
Comment by IshKebab 10 hours ago
Just because you can...
Comment by MomsAVoxell 9 hours ago
Comment by keyle 9 hours ago
Comment by Zecc 9 hours ago
> The repository is built entirely using LLMs, with no human-written code. The drawing and interaction code is ported from Blender's sources, and the behavior is checked by tests: C, Python, Rust and JavaScript suites, the tkinter side-by-side programs and the GPU parity test.
...wasn't it?
Comment by samiv 4 hours ago
Is it retained mode UI?
Comment by pmkary 4 hours ago
Comment by quotemstr 5 hours ago
Comment by ppmpreetham 27 minutes ago
Comment by Lockal 4 hours ago
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.
Comment by ppmpreetham 4 hours ago
It works perfectly on my machine, and another friend's machine. Just to be sure, which demo did you try? the website or python or rust?
Comment by Lockal 4 hours ago
Probably it works in other implementations (I did not try); in web it produces <input type="text"> and agent likely gave up trying to simulate such details there.
Comment by ppmpreetham 3 hours ago
Let me update the web samples. Thank you!
Comment by ppmpreetham 2 hours ago
Comment by chiroyce 10 hours ago
Comment by dogleash 1 hour ago
Who is "we," and what's the long term plan?
It's a shiny presentation, but I don't see anything on offer more than a solo dev who pointed AI at the Blender codebase. I could do that myself, and many of the reasons I don't do that apply directly to why I'd never use this project.
I think the GitHub readme and the docs site are dishonestly presenting the state of the project.
Comment by kitkarl 5 hours ago
Comment by anthk 5 hours ago
Comment by Aeolun 4 hours ago
Comment by ppmpreetham 3 hours ago
Comment by antman 9 hours ago
Comment by the__alchemist 2 hours ago
Comment by chii 8 hours ago
Comment by ppmpreetham 6 hours ago
I don't think we can use LGPL since we were derived from Blender's Source code, which is GPL.
Comment by contingencies 7 hours ago
Comment by ppmpreetham 6 hours ago
Comment by contingencies 5 hours ago
Comment by ppmpreetham 6 minutes ago
Comment by luckydata 8 hours ago
Comment by arbor-group 3 hours ago
Comment by pavelsich 4 hours ago
Comment by ahmedvdemir 7 hours ago
Comment by clilog_d 9 hours ago
Comment by grougnax 9 hours ago
Comment by andsoitis 9 hours ago
Comment by swiftcoder 9 hours ago
Comment by pjmlp 8 hours ago
Comment by scns 7 hours ago
Comment by swiftcoder 7 hours ago
A quarter-century ago, yes. If they haven't migrated to native widgets in 25 years, that might be an indicator of something
Comment by creata 6 hours ago
Comment by p-e-w 9 hours ago
Comment by bvrmn 8 hours ago
Comment by chem83 8 hours ago
But the premise is silly: if Linux has two native toolkits, how is this a sensible recommendation?? Hint: it isn’t, because GTK/Qt are not the native, but rather simply the most used.
Also, go to Mac, and SwiftUI still doesn’t support all that AppKit used to, leaving an incentive for developers to deviate from the platform’s recommendation.
And back to Windows, WinUI still doesn’t fully replace Win32 or Windows Forms, so same conclusion applies.
Comment by spider-mario 6 hours ago
I’m going to hazard the claim that in probably most people’s conception of the term, GTK is native in GNOME, Cinnamon, Xfce, etc. and Qt is native in KDE, LXQt and Sailfish OS.
Comment by anonymous908213 8 hours ago
Comment by eloto333 7 hours ago
Comment by eloto333 7 hours ago
Comment by eloto333 7 hours ago