Hey everyone! π
I've been building Limoni, a Terminal User Interface (TUI) engine for Go written from scratch with a strong focus on rendering throughput, zero allocations on the hot draw path, and rich visual capabilities.
Here is a quick breakdown of what it brings to the table out of the box:
π Key Features
-
3D Graphics Engine: Wavefront
OBJ,STL, andPLYloader, Lambertian & Gouraud depth-buffer shaders, and texture mapping rendered directly in your terminal using 2x4 Braille subpixels. - Hardware Image Drivers: Native support for Kitty Graphics Protocol, Sixel, and iTerm2 with automatic ANSI half-block fallback.
- Strict Unicode & Emoji Safety: Table-driven East Asian Width (EAW) calculation and continuation cell tracking β wide emojis (π΄, π) won't corrupt rows or shred borders when dragging modal dialogs.
- The Elm Architecture (TEA): Predictable state updates with concurrent goroutine commands and deterministic event delivery.
-
Zero Heap Allocations on Render: Contiguous 1D memory buffer (
[]cell.Cell) and an ANSI differential engine that emits minimal escape bytes with\x1b[?2026hsynchronized output. -
Simple Single-Import API: Modern fluent builders (
limoni.NewBlock(),limoni.NewTable(),limoni.SplitVertical()) so you don't have to juggle dozens of disjointed subpackages.
π Links & Resources
- π¦ GitHub: github.com/thebanri/limoni
- π Website: limoni-website.vercel.app
- π Go Reference: pkg.go.dev/github.com/thebanri/limoni
I would love to hear your feedback, thoughts on the API ergonomics, or edge-case terminal bug reports!

Top comments (0)