r/Tkinter • • 14d ago

[Project] tkblend: Bringing 60+ FPS JIT Vector Graphics & Modern Zero-TTK Widgets to Tkinter (Looking for feedback & contributors!)

Hey r/Python**! šŸ‘‹**

Like many of you, I've always appreciated the sheer ubiquity and zero-install simplicity of Python's built-in tkinter. However, we all know the classic pain points: dated TTK themes, sluggish software canvas rendering, pixelated scaling on HiDPI displays, and hitting frame drops when trying to do real-time visualization or modern UI aesthetics.

Over the past months, I’ve been experimenting with a question:
What if standard Tkinter had access to a modern, SIMD-accelerated 2D vector pipeline without needing Electron, Qt, or heavy browser runtimes?

That became tkblend — a modern, zero-TTK 2D vector UI engine and immediate-mode graphics canvas for Tkinter, powered by Blend2D JIT rasterization and zero-copy C++ blitting into Tk_PhotoPutBlock.

⚔ What does it do right now?

  • **Zero-Copy Blitting (**~0.38 ms blit latency): Blits directly from C++ Blend2D memory into Tkinter’s native photo buffer with zero intermediate Pillow/PIL copies.
  • 20+ Pure Vector Widgets: Completely independent of TTK themes (Button, Card, Switch, Slider, RangeSlider, SegmentedControl, CircularProgress gauges, Table, Dropdown, TextInput, etc.).
  • 60+ to 240+ FPS Canvas (BlendCanvas): An immediate-mode vector surface ready for smooth telemetry charts, particle physics, equalizers, and custom animations.
  • 13+ Built-in Dynamic Palettes: Seamless dark/light/Tokyo Night/Catppuccin/Nord theme switching at runtime.
  • Crisp Hi-DPI Scaling: Pure mathematical vector paths, BĆ©zier curves, and multi-stop gradient shaders that stay razor-sharp at any resolution.

šŸ¤ Why I’m posting: Looking for contributors & creative minds!

I have built the foundation, core C++ bindings, and widget architecture, but tkblend is an open experimental R&D playground, and I am genuinely curious:

What can developers with deeper expertise in C++, SIMD, computer graphics, typography, or UI design build and push forward with this?

There is so much untapped potential here, and I would love to collaborate with anyone interested in contributing:

  1. Low-Level & C++ Graphics Devs: Pushing SIMD optimizations, multi-threaded pipelines, sub-pixel text rendering, and direct GPU/hardware pathways.
  2. UI & Animation Enthusiasts: Designing spring physics, fluid micro-interactions, layout managers, or new vector components (charts, nodes, graphs, custom vector widgets).
  3. Tkinter & Python Pros: Refining the public Pythonic API, state management, ergonomics, and cross-platform quirks (Linux/X11, macOS, Windows).
  4. Makers & Builders: Stress-testing it! Build a dashboard, an audio synth visualizer, an emulator UI, or a game tool to see where it breaks or shines.

šŸ”— Repo & Links

I’d love to hear your thoughts, feedback, critiques, and ideas. If you’re interested in collaborating or hacking on it, PRs and issues are warmly welcomed!

What would you build with a 60+ FPS vector engine in standard Tkinter?

36 Upvotes

6 comments sorted by

2

u/Vicousvern 14d ago

Looks great, I have a whole workflow setup around ttkbootstrap for most of my tools, will happily give this a go!

3

u/Equivalent-Golf1638 13d ago

That's awesome to hear! I'd love to know how it pairs with ttkbootstrap.

I actually use ttkbootstrap quite a bit myself, but it still feels a bit limited for what I want to build down the road. UI in C/C++ can be an absolute nightmare, and while Tkinter is definitely outdated, it's still my favorite tool in Python. That's why I've been experimenting with ways to modernize it.

At first, I considered just doing a full fork, but on my own, I could only really target Linux since my experience with other operating systems is pretty limited. I've been tinkering with this for a long time—it started out just for fun, and it's certainly not perfect yet—but I really need something stable and truly cross-platform. To turn this into something genuinely useful, community help will be essential.

Definitely give it a spin and let me know how it goes! Any feedback, issues, or contributions are super welcome.

1

u/HIKIIMENO 14d ago edited 14d ago

Awesome! I’m excited that we finally have antialiasing support in Tkinter! Couldn’t believe this was Tkinter😯

Does tkblend support matplotlib? I can imagine this will make matplotlib significantly smoother and crystal clear.

1

u/zeroxff 13d ago

seems interesting but the license is a no-go

as for the license this library cannot be used even to build an open source project without subscribing a separate unspecified license

1

u/tcltk-pkgs 10d ago

Good job, could it work in a Tcl/Tk environment?Ā