frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Show HN: Full Python GUI apps in the browser – no JavaScript, no server

https://github.com/pthom/imgui_bundle
22•pstomi•5h ago
I have been working on Dear ImGui Bundle since 2022, but it is the first time I talk about it here. It is a framework around Dear ImGui for building interactive applications in Python and C++. It comes with batteries included: Plotting, image inspection, Markdown, node editors, 3D gizmos, knobs, toggles, etc.

https://imgui-bundle.pages.dev

It now also runs smoothly in the browser via pyodide: The playground below is a python app running in your browser (no server, no JavaScript). You can edit the code on the left and click Run. It even works on mobile.

https://imgui-bundle.pages.dev/playground

I have a strong interest in providing tools that help others express their creativity. This project aims to be a step in this direction as it helps develop GUIs where the code is extremely readable & hackable.

Some of the goals it addresses:

- Bring true Immediate Mode GUI to Python and C++

- A versatile range of high quality libraries: Widgets, Plots, Image Analysis, Node edition, markdown rendering

- Multiplatform apps in C++: works on all platform in C++ (desktop, mobile, emscripten)

- Deploy python apps to the web

- High quality python bindings that are always up-to-date (because they are auto-generated)

- Smooth transition between C++ and Python (same APIs for both)

I'd be happy to answer questions!

Comments

gloflo•2h ago
If no JavaScript then what enables interactivity?
hagbard_c•1h ago
Web assembly? This started out as a bowdlerised form of JavaScript (asm.js) but evolved to become is own thing.
sheept•1h ago
You still need JavaScript to instantiate WebAssembly and let it interact with the page, which is why your sibling comment admits there's still a bit of JS.
pstomi•1h ago
Thanks for the question! I should have said almost no JavaScript:

There is a minimal amount of JavaScript just to download and run pyodide and then it is only Python: see example at

https://imgui-bundle.pages.dev/playground/?demo=p_35_minimal...

fredcallagan•1h ago
Very very impressive! So many use cases for this. Thanks again
2ndorderthought•1h ago
Is this downloading and installing Python packages into the browser via wasm?

I like the idea a little bit. Mostly because I don't like javascript. So I say keep going for it, it could fill some niches.

I'm sure you know this, but the page takes like 30s to load on mobile. It wasn't a comfortable ux. Once it did load it seemed pretty fast though so kudos. Kind of gave me macromedia flash vibes from 2002.

pstomi•39m ago
Thanks! I don't like javascript either, and I certainly dislike CSS :-)

Yes, the initial download of pyodide is about 5 MB. After that it is another 5MB for the bundle wheel.

But there is some hope: Based on test I just did, I see I did not setup headers so that the wheel and pyodide are cached in a browser (or in its fs): this could reduce reload times by a sizable factor.

Once loaded you can run at 60 FPS (or even 120 FPS depending on the browser's vsync).

As you can see in the playground: you can then switch from app to app instantly once pyodide is loaded and running. It almost feels like going from a page to another. You can see that when using the combobox to select example at the top right in the playground.

austin-cheney•52m ago
I agree with the other comments. Its super cool after it eventually loads.

For real world use I don't think its practical if its only goal is basic browser UX in Python versus JavaScript, but I can see amazing value in this for larger applications written in Python that need to make use of a Python GUI.

pstomi•33m ago
Absolutely. This shines when you actually want to display complex / animated / streaming data in larger applications; or if you want to create educative or training material on several pages (i.e apps here).

As an example, I once built an online stock/ticker app with it: smooth real-time updates in a nice plot. It would have been more complex with DOM based widgets (and probably less fun).

0gs•34m ago
just curious -- do yall dislike JS as developers, or as users? i agree this is really cool though
pstomi•27m ago
This is a genuine question, and I will be honest: I do not really dislike JS. I even worked on large typescript projects and appreciated it.

What I do not like is the strange mix of technologies you have to cope with in order to work with Python on the web: your project is often a mix of python / html / css / react / js / node.

Many very nice frameworks try to abstract this and present you only the python side; but they rely on this stack internally. Once you want to reach complex use cases (such as a refresh at reasonable rate), you will have to "open the engine" and enter into this mix.

Show HN: TRUST – Coding Rust like it's 1989

https://github.com/wojtczyk/trust
108•wojtczyk•16h ago•70 comments

Show HN: Kstack – Skill pack for monitoring/troubleshooting K8s in Claude Code

https://github.com/kubetail-org/kstack
13•andres•17h ago•5 comments

Show HN: Stage CLI – An easier way of reading your AI generated changes locally

https://github.com/ReviewStage/stage-cli
28•cpan22•7h ago•30 comments

Show HN: DiffCAD, a FreeCAD workbench to review model changes like code

https://github.com/eblanshey/DiffCAD
4•eblanshey•1h ago•0 comments

Show HN: I built open-source auth for AI agents (Go, single binary)

https://github.com/shark-auth/shark
3•raulgooo•2h ago•0 comments

Show HN: Agent-skills-eval – Test whether Agent Skills improve outputs

https://github.com/darkrishabh/agent-skills-eval
66•darkrishabh•16h ago•32 comments

Show HN: Tilde.run – Agent sandbox with a transactional, versioned filesystem

https://tilde.run/
191•ozkatz•1d ago•126 comments

Show HN: DAG-based Kanji learning through components

https://mykanji.app/
2•barisozmen•3h ago•0 comments

Show HN: I built an open-source email builder, alternative to Beefree/Unlayer

https://play.templatical.com
150•oahmadov•1d ago•37 comments

Show HN: Bilig – a headless spreadsheet engine for Node services and agents

https://github.com/proompteng/bilig
3•GregKonush•4h ago•0 comments

Show HN: PHP-fts – Full-text search engine in pure PHP, no extensions

https://github.com/olivier-ls/php-fts
81•asmodios•1d ago•23 comments

Show HN: Bookstoread.ai – Discover non-fiction books using AI

https://bookstoread.ai
6•yotc•5h ago•0 comments

Show HN: Airbyte Agents – context for agents across multiple data sources

143•mtricot•2d ago•45 comments

Show HN: Hallucinopedia

http://halupedia.com/
289•bstrama•1d ago•257 comments

Show HN: Local-first long-term memory engine for AI agents·MCP/CLI· 100% local

https://github.com/misaelzapata/memoirs
4•misaelzapata•6h ago•0 comments

Show HN: I made a vertical-pedalling bike with a novel drivetrain [video]

https://www.youtube.com/watch?v=4HLOsi2gWXQ
20•tonyonodi•10h ago•0 comments

Show HN: LaoTzu Writer Studio

8•homeonthemtn•11h ago•3 comments

Show HN: AICW Video open-source to cut video into clips with captions, voiceover

https://github.com/aicw-io/aicw-video
4•eummm•11h ago•1 comments

Show HN: SereneUI – A VSCode-inspired, open-source UI for Postgres

https://github.com/serenedb/serenedb/tree/main/serene-ui
15•gnusi•12h ago•0 comments

Show HN: Explore color palettes inspired by 3000 master painter artworks

https://paletteinspiration.com/
208•ouli•2d ago•82 comments

Show HN: Apple's SHARP running in the browser via ONNX runtime web

https://github.com/bring-shrubbery/ml-sharp-web
182•bring-shrubbery•4d ago•46 comments

Show HN: Password-less authentication via Ramanujan's 1/π series and Nvidia-B200

https://zenodo.org/records/20049892
5•Prakash_1•17h ago•0 comments

Show HN: nfsdiag – A NFS diagnostic application

https://github.com/lsferreira42/nfsdiag
82•lsferreira42•5d ago•6 comments

Show HN: Ableton Live MCP

https://github.com/bschoepke/ableton-live-mcp
120•bschoepke•4d ago•78 comments

Show HN: I built a game where AI agents compete to ship code

https://aion.quest/
9•xkoda•1d ago•5 comments

Show HN: Platos – like Claude Managed Agents but open-source and self-hosted

https://github.com/winsenlabs/platos
7•tejassuds•1d ago•0 comments

Show HN: Vanilla-scroll-sky: CSS-only modern scroll-driven storytelling sections

https://github.com/ulrischa/vanilla-scroll-sky
6•ulrischa•1d ago•0 comments

Show HN: Mac Juice Monitor – Bluetooth battery levels in the macOS menu bar

https://github.com/p32929/mac-juice-monitor
5•heliskyr2•1d ago•3 comments

Show HN: I Replaced React in GraphiQL with Svelte

https://code.webb.page/eol/graphiql.git/about/
5•NetOpWibby•20h ago•1 comments

Show HN: Dreamwork – a job search site I made after Indeed fired my pregnant wif

https://www.dreamworkhq.com/
6•cojj25•20h ago•2 comments