<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/blender-s-ui-and-runtime-much-faster-than-gpui-efzwlqbox" -->

---
title: Blender's UI and Runtime: Much Faster Than GPUI | daily.dev
description: BUI decouples Blender's user interface code into a standalone library usable from Python, Rust, JavaScript/React, C, C++ and Dear ImGui. It ports Blender's...
canonical: https://daily.dev/posts/blender-s-ui-and-runtime-much-faster-than-gpui-efzwlqbox
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Blender's UI and Runtime: Much Faster Than GPUI | daily.dev
og:description: BUI decouples Blender's user interface code into a standalone library usable from Python, Rust, JavaScript/React, C, C++ and Dear ImGui. It ports Blender's...
og:url: https://daily.dev/posts/blender-s-ui-and-runtime-much-faster-than-gpui-efzwlqbox
og:image: https://api.daily.dev/og/posts/eFzWlqboX.png
og:image:alt: Blender's UI and Runtime: Much Faster Than GPUI
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Blender's UI and Runtime: Much Faster Than GPUI

**[Hacker News](https://daily.dev/sources/hn)** · 70 min read · 1 upvotes · 0 comments

## Summary

BUI decouples Blender's user interface code into a standalone library usable from Python, Rust, JavaScript/React, C, C++ and Dear ImGui. It ports Blender's widget drawing and interaction rules into a small C core, then exposes them through language bindings. Damage rendering keeps an idle UI at 0% CPU, redrawing only the widget a user touches. The project claims 2 to 4 times less CPU per frame than gpui-fast, with less RAM and a roughly 5 ms first frame. It ships 45 Blender components, supports an opt-in GPU renderer (Direct3D 11 or OpenGL 3.3), and can run unmodified tkinter apps and Qt-style Python apps, as well as React 19.3 apps with no browser or webview.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://github.com/ppmpreetham/BUI>

## Questions this post answers

### How do I run an existing tkinter Python app with Blender's UI styling without rewriting it?

Run it through the blenderui-tk command, which makes 'import tkinter' return BUI's implementation for that process, so an unmodified tkinter program gets Blender-styled widgets. Alternatively, import blenderui.tksyntax as tk directly in code to opt in, keeping the same tkinter and ttk API surface, including Spinbox and Scale scrubbing.

_Developers modernizing legacy tkinter UIs can track tools like this via daily.dev._

### How does BUI's CPU renderer performance compare to the GPU renderer for a UI toolkit like gpui?

BUI's benchmark reports the GPU renderer uses 2 to 4 times less CPU per frame than gpui-fast, with less RAM and a first frame of about 5 milliseconds. The CPU software raster is the default, uses signed-distance coverage antialiasing, and compares frames in 64x32 tiles to redraw only changed tiles, costing 0% CPU when idle.

_Developers comparing desktop UI toolkit performance can follow benchmarks like this on daily.dev._

### Can I use React to build a native desktop app without shipping a browser or Electron?

Yes, React 19.3 can render directly to native windows through BUI, using HTML host components, CSS, Tailwind, events, Suspense and transitions, with no browser or webview involved. A built app with 'bui build app.jsx' produces one roughly 7 MB executable with an embedded QuickJS engine and a first frame around 70 milliseconds at 19 MB of RAM.

_Developers evaluating Electron alternatives for native React apps can track options like this on daily.dev._

## Community take

How the wider developer community reacted, aggregated from 1 discussion and 106 comments across hackernews (as of 2026-11-06).

**TL;DR:** Reaction is split mainly over whether Blender's UI is actually good design worth porting elsewhere, with a separate thread of concern about the GPL license, LLM-only authorship, and long-term maintenance of the project.

**Sentiment:** 30% positive · 25% mixed · 45% skeptical

**The case for**

- Some see real value in reusing Blender's battle-tested widget interactions instead of rebuilding UI from scratch for 3D/creative tools.
- Several note the rendering/performance claims are credible and interesting, especially the idle-CPU and fast-first-frame design.
- A few are excited about applying it to other projects like FreeCAD or as a base for DAWs, video editors, and simulation tools.

**The pushback**

- Many argue Blender's UI/UX itself is clunky or unintuitive despite being technically well-engineered, so porting it elsewhere is undesirable.
- The GPL (not LGPL/permissive) license is repeatedly flagged as a major barrier to adoption in other projects.
- Entirely LLM-generated code with no human authorship raises doubts about long-term maintainability and copyright status.
- Some doubt the project will survive past initial hype, expecting it to be abandoned or bitrot since it's decoupled by an external developer.
- No mention of accessibility support is called out as a concerning gap.

**By community**

- hackernews (heated): Discussion splits sharply between people who love Blender's UI design and want it everywhere, and others who find it genuinely bad, alongside separate heated tangents on GPL licensing and LLM-only authorship.

**Hottest debate:** Whether Blender's UI/UX is actually good design worth emulating, versus merely a technically fast but confusing interface many find hard to use.

**Open questions**

- Can the ported C implementation reliably stay in sync and performant as Blender's own UI code evolves?
- Is the GPL license (versus LGPL/AGPL) appropriate for a library meant to be embedded in other projects?
- Can LLM-generated code with no human authorship be copyrighted or reliably maintained long-term?
- Will the project be maintained past its initial release or abandoned like similar decoupling efforts?

**Highlights**

> This is just repeating a common meme. Blender's UI layout and organisation is fine, but this is a UI library. There's nothing wrong with blender's UI technically, in fact its pretty decent overall
> — [20k on hackernews · 1 comments](https://news.ycombinator.com/item?id=50390343)

> Everybody hates all serious 3d application interfaces… they’re just complicated. I’m professionally competent in Houdini, Maya, Max, Blender, Zbrush, Marvelous Designer, the UE editor… they all suck in various ways but it’s all a giant set of trade-offs and priorities. Beyond that, lots of these programs have lineages that go back decades longer than almost any modern dev environment and being so complex, UI changes can be quite disruptive. A lot of (no, not all) developers think they have the most complex tooling in the computer world — they definitely don’t.
> — [DrewADesign on hackernews](https://news.ycombinator.com/item?id=50390955)

> "Decoupled from project by external developer" generally means "with a very high chance of immediate bitrot".
> — [parasti on hackernews](https://news.ycombinator.com/item?id=50390990)

> I've been building a desktop app on GPUI on Windows, so a data point on start-up: most of our time to the first frame wasn't GPUI's layout or text at all, it was creating the Direct3D 11 device, about 150 ms, which is the graphics driver loading. Moving the device creation onto its own thread at the very start of the Windows platform setup, so it runs while everything else gets ready, took us from 278 ms to 222 ms. Memory at idle is similar: most of it is the driver, not the UI. So on Windows I'd compare these frameworks with the GPU setup measured separately, otherwise the driver dominates the numbers.
> — [ahmedvdemir on hackernews](https://news.ycombinator.com/item?id=50391057)

> not a single mention of a11y or accessibility, so please be careful before using it for general purpose applications.
> — [gostsamo on hackernews](https://news.ycombinator.com/item?id=50390151)

**Source threads**

- [hackernews](https://news.ycombinator.com/item?id=50389333) · 236 points · 106 comments

## Similar posts on daily.dev

- [A 2026 Survey of Rust GUI Libraries](https://daily.dev/posts/a-2026-survey-of-rust-gui-libraries-e93cfc0b7) · Lobsters · 1 upvotes · 0 comments
- [Canvas UI Ships 35 HTML-in-Canvas Components That Run WebGL and WebGPU Effects Over Live DOM](https://daily.dev/posts/canvas-ui-ships-35-html-in-canvas-components-that-run-webgl-and-webgpu-effects-over-live-dom-tfekmd60e) · InfoQ · 0 upvotes · 0 comments
- [Learning GPUI by Building My Own Text Editor](https://daily.dev/posts/learning-gpui-by-building-my-own-text-editor-swyjmplbs) · DEV · 34 upvotes · 0 comments

---

Tags: [#c](https://daily.dev/tags/c), [#blender](https://daily.dev/tags/blender)

[View this post on daily.dev](https://daily.dev/posts/blender-s-ui-and-runtime-much-faster-than-gpui-efzwlqbox)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Blender's UI and Runtime: Much Faster Than GPUI","url":"https://daily.dev/posts/blender-s-ui-and-runtime-much-faster-than-gpui-efzwlqbox","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/blender-s-ui-and-runtime-much-faster-than-gpui-efzwlqbox"},"datePublished":"2026-11-06T09:34:51.922Z","dateModified":"2026-11-06T11:51:07.809Z","description":"BUI decouples Blender's user interface code into a standalone library usable from Python, Rust, JavaScript/React, C, C++ and Dear ImGui. It ports Blender's...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/cf22f42e36a5dcf2381d51200afb8187?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/cf22f42e36a5dcf2381d51200afb8187?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Hacker News","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Hacker News","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/hn","url":"https://daily.dev/sources/hn"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/blender-s-ui-and-runtime-much-faster-than-gpui-efzwlqbox","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":1},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"c,blender","timeRequired":"PT70M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Hacker News","item":"https://daily.dev/sources/hn"},{"@type":"ListItem","position":3,"name":"Blender's UI and Runtime: Much Faster Than GPUI"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/blender-s-ui-and-runtime-much-faster-than-gpui-efzwlqbox#faq","mainEntity":[{"@type":"Question","name":"How do I run an existing tkinter Python app with Blender's UI styling without rewriting it?","acceptedAnswer":{"@type":"Answer","text":"Run it through the blenderui-tk command, which makes 'import tkinter' return BUI's implementation for that process, so an unmodified tkinter program gets Blender-styled widgets. Alternatively, import blenderui.tksyntax as tk directly in code to opt in, keeping the same tkinter and ttk API surface, including Spinbox and Scale scrubbing. Developers modernizing legacy tkinter UIs can track tools like this via daily.dev."}},{"@type":"Question","name":"How does BUI's CPU renderer performance compare to the GPU renderer for a UI toolkit like gpui?","acceptedAnswer":{"@type":"Answer","text":"BUI's benchmark reports the GPU renderer uses 2 to 4 times less CPU per frame than gpui-fast, with less RAM and a first frame of about 5 milliseconds. The CPU software raster is the default, uses signed-distance coverage antialiasing, and compares frames in 64x32 tiles to redraw only changed tiles, costing 0% CPU when idle. Developers comparing desktop UI toolkit performance can follow benchmarks like this on daily.dev."}},{"@type":"Question","name":"Can I use React to build a native desktop app without shipping a browser or Electron?","acceptedAnswer":{"@type":"Answer","text":"Yes, React 19.3 can render directly to native windows through BUI, using HTML host components, CSS, Tailwind, events, Suspense and transitions, with no browser or webview involved. A built app with 'bui build app.jsx' produces one roughly 7 MB executable with an embedded QuickJS engine and a first frame around 70 milliseconds at 19 MB of RAM. Developers evaluating Electron alternatives for native React apps can track options like this on daily.dev."}}]}
```

