tawasuyu

tawasuyu/llimphi

Sovereign retained-mode GPU UI framework in Rust (wgpu+vello+taffy+parley), Elm loop, 40+ widgets.

Rust 229TOML 101Markdown 82Shell 24052 Definitions

⎇ 993b7625b84f5f10b70866e0497e80de22aaa880 README.md Markdown · 67 lines · 3.5 KB History raw

docs: GIF del README = vuelo sobre mundo infinito (reemplaza el turntable) 1a205c764 · Sergio ·

1# llimphi
2
3> Native UI framework — 2D **and** 3D: HAL · raster · layout · text · theme · ui · 3D voxel engine — plus widgets and modules.
4
5`llimphi` is a sovereign, retained-mode UI framework with an Elm-style loop (`input → update → view → layout → raster → present`). Declarative pipeline over `vello` 0.7 + `wgpu` 27 + `taffy` + `parley` 0.6, with `Dark/Light/Aurora/Sunset/Tawa` themes and a multi-platform HAL (Wayland · X11 · Win32 · Android · Wawa bare-metal). It powers a full Rust application suite; this repository is the framework extracted to stand on its own.
6
7<p align="center">
8  <img src="docs/showreel.gif" alt="Llimphi showreel — real widgets (switch, slider, progress, segmented control, buttons, radial) animating live, then reflowing across layouts" width="900">
9  <br>
10  <sub>real widgets in motion — rendered headless, frame-by-frame, fully deterministic</sub>
11</p>
12
13<p align="center">
14  <img src="docs/counter.gif" alt="counter example — the full Elm loop in ~124 LOC" width="480">
15  <br>
16  <sub>…and the entire Elm loop in ~124 LOC — <code>cargo run -p llimphi-ui --example counter</code></sub>
17</p>
18
19## Not just 2D — a 3D voxel engine
20
21<p align="center">
22  <img src="docs/llimphi_voxel.gif" alt="Flying over an endless procedural voxel world — rendered by llimphi-3d" width="720">
23  <br>
24  <sub>flying over an endless voxel world — rendered headless by <code>llimphi-3d</code>, frame-by-frame</sub>
25</p>
26
27`llimphi-3d` is a **3D engine** on the same `wgpu`: it composes voxels (a GPU ray-march) and triangle meshes in one shared depth pass, with a keyframed cinema camera. It mounts into the ordinary 2D `View` tree through the GPU paint node (`set_viewport` + scissor), so a 3D viewport can live in a panel next to regular widgets — no second window, same Elm loop.
28
29`llimphi-voxel` adds the *content* layer on top: procedural world-gen (`WorldRecipe`), articulated characters (age + animation clips) and a scripted scene **director**. The GIF above is one such world. (A full voxel **world studio** — edit worlds, cast characters, direct filmed scenes, export to video — is built on these in the wider project.)
30
31**Usage manual:** [MANUAL.md](MANUAL.md) — full reference (Elm loop, `View<Msg>` DSL, the ~44 widgets and 10 modules, GPU path, gotchas) for humans and AI. Design rationale and roadmap: [SDD.md](SDD.md).
32
33Philosophy: **widgets aren't designed against mockups; they're designed with what `vello` and `taffy` can do.**
34
35## Quick start
36
37```sh
38git clone https://git.tawasuyu.net/tawasuyu/llimphi.git
39cd llimphi
40cargo run -p llimphi-ui --example counter   # ~124 LOC: the full Elm loop on screen
41```
42
43## Install
44
45```toml
46[dependencies]
47llimphi-ui    = { git = "https://git.tawasuyu.net/tawasuyu/llimphi.git" }
48llimphi-theme = { git = "https://git.tawasuyu.net/tawasuyu/llimphi.git" }
49# widgets are one crate each — pull only what you use:
50llimphi-widget-button = { git = "https://git.tawasuyu.net/tawasuyu/llimphi.git" }
51```
52
53## Compatibility
54
55- **Linux/Wayland** — primary backend.
56- **Linux/X11** — via XWayland.
57- **macOS / Windows** — `winit` + `wgpu`.
58- **Android** — HAL via `android` crates.
59- **Wawa bare-metal** — alternative framebuffer HAL.
60
61Crates listed in [README.md](README.md) (framework, widgets, modules, android).
62
63## Considerations
64
65- **Single API: declarative `View<Msg>`.** No imperative, no foreign vDOM.
66- **Same scene tree on Wayland and Wawa**: HAL abstracts the surface.
67- Widgets are **purely visual**; modules encapsulate state + behavior.

README.md

llimphi

Native UI framework — 2D and 3D: HAL · raster · layout · text · theme · ui · 3D voxel engine — plus widgets and modules.

llimphi is a sovereign, retained-mode UI framework with an Elm-style loop (input → update → view → layout → raster → present). Declarative pipeline over vello 0.7 + wgpu 27 + taffy + parley 0.6, with Dark/Light/Aurora/Sunset/Tawa themes and a multi-platform HAL (Wayland · X11 · Win32 · Android · Wawa bare-metal). It powers a full Rust application suite; this repository is the framework extracted to stand on its own.

<p align="center"> <img src="docs/showreel.gif" alt="Llimphi showreel — real widgets (switch, slider, progress, segmented control, buttons, radial) animating live, then reflowing across layouts" width="900"> <br> <sub>real widgets in motion — rendered headless, frame-by-frame, fully deterministic</sub> </p> <p align="center"> <img src="docs/counter.gif" alt="counter example — the full Elm loop in ~124 LOC" width="480"> <br> <sub>…and the entire Elm loop in ~124 LOC — <code>cargo run -p llimphi-ui --example counter</code></sub> </p>

Not just 2D — a 3D voxel engine

<p align="center"> <img src="docs/llimphi_voxel.gif" alt="Flying over an endless procedural voxel world — rendered by llimphi-3d" width="720"> <br> <sub>flying over an endless voxel world — rendered headless by <code>llimphi-3d</code>, frame-by-frame</sub> </p>

llimphi-3d is a 3D engine on the same wgpu: it composes voxels (a GPU ray-march) and triangle meshes in one shared depth pass, with a keyframed cinema camera. It mounts into the ordinary 2D View tree through the GPU paint node (set_viewport + scissor), so a 3D viewport can live in a panel next to regular widgets — no second window, same Elm loop.

llimphi-voxel adds the content layer on top: procedural world-gen (WorldRecipe), articulated characters (age + animation clips) and a scripted scene director. The GIF above is one such world. (A full voxel world studio — edit worlds, cast characters, direct filmed scenes, export to video — is built on these in the wider project.)

Usage manual: MANUAL.md — full reference (Elm loop, View<Msg> DSL, the ~44 widgets and 10 modules, GPU path, gotchas) for humans and AI. Design rationale and roadmap: SDD.md.

Philosophy: widgets aren't designed against mockups; they're designed with what vello and taffy can do.

Quick start

git clone https://git.tawasuyu.net/tawasuyu/llimphi.git
cd llimphi
cargo run -p llimphi-ui --example counter   # ~124 LOC: the full Elm loop on screen

Install

[dependencies]
llimphi-ui    = { git = "https://git.tawasuyu.net/tawasuyu/llimphi.git" }
llimphi-theme = { git = "https://git.tawasuyu.net/tawasuyu/llimphi.git" }
# widgets are one crate each — pull only what you use:
llimphi-widget-button = { git = "https://git.tawasuyu.net/tawasuyu/llimphi.git" }

Compatibility

Crates listed in README.md (framework, widgets, modules, android).

Considerations