Show HN: Full Python GUI apps in the browser – no JavaScript, no server
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!
Discussion Highlights (6 comments)
gloflo
If no JavaScript then what enables interactivity?
2ndorderthought
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.
austin-cheney
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.
0gs
just curious -- do yall dislike JS as developers, or as users? i agree this is really cool though
CyLith
This is really neat, and I think I can use it in some of my projects as a simple front end to physical simulation tools. One question I have: do you have true 3D bindings? I see there is ImPlot3D, but right now I need to render meshes in OpenGL (or WebGL as the case will be). Is there a way for me to define shaders and feed it triangle soup?
TrnsltLife
Cool! Now someone should do something like this for Java!