Posted by ppmpreetham 9 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.
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.
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.
"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.
We also have a discord server, lmk if you're planning on using BUI!
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.
If you're already using Blender to make assets, there's some benefit to stuffing Blender's UI into your game editor too.
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.
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.
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.
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.
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.
My baby duck fingers could probably pick up LightWave 3D again in an hour or two. I could never gel with Blender.
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.
> 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.
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.
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.
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
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.
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.
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.
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.
But a good design system does the trick. Artcraft apps use this library and their Adobe clones come very close to the original apps.
Q: “Whats wrong with tkinter?!?!”
A: It sucks, that’s what!
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.
Yeah you can do that. If you have low standards and don't need control of the details.
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.
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.
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.
It’d be like naming my http library HTTP.
And it’s why Dear IMGUI isn’t just named “IMGUI”.
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.
Check out the docs here: https://bui.preetham.top/
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.
[0]: https://gradia.alexandervanhee.be/ [1]: https://www.pinta-project.com/ [2]: https://krita.org/en/
I’d be interested to know what you think about it
Especially since v2 and v3 have vastly different consequences.
Also speaking of FastAPI, have you checked out FastRAPI?