tawasuyu

tawasuyu/pineal

Backend-agnostic GPU visualization — a catalog of painters over one Canvas trait, in Rust.

⎇ 85b91cc89f5e2fa22989db470f639ee8a76d592b README.md Markdown · 34 lines · 2.3 KB History raw

docs: showreel del catálogo de gráficos como hero del README + fix links muertos (gioser→tawasuyu) 85b91cc89 · Sergio ·

1# pineal
2
3> Backend-agnostic visualization — the "third eye". A catalog of GPU painters over a single `Canvas` trait, in Rust, on [Llimphi](https://github.com/tawasuyu/llimphi).
4
5`pineal` is a catalog of specialized painters — cartesian, polar, mesh, treemap, phosphor, flow, heatmap, stream, financial, hexbin, contour, bars — over **one painter abstraction**, the `Canvas` trait. Any program can push shapes to a pineal and get pixels without carrying its own graphics stack. The whole chain `core → render → painter` is **agnostic of the backend**: the same painter draws to vello/Llimphi on screen, to software PNG/SVG/PDF offline, or straight to the GPU for millions of primitives.
6
7pineal **does not compute — it only draws.** Simulation lives elsewhere; pineal turns the output into pixels. It's the hammer, not the carpenter.
8
9<p align="center">
10  <img src="docs/pineal_showreel.gif" alt="pineal showreel — a montage of chart types: bars and histogram, heatmap, contour, polar donut and radar, treemap, financial candlesticks, Sankey flow, force-directed graph" width="900">
11  <br>
12  <sub>a montage of real painters — bars · heatmap · contour · polar · treemap · candlesticks · Sankey · force graph</sub>
13</p>
14
15## Quick start — the gallery
16
17```sh
18cargo run --release -p pineal-galeria-demo   # 11 painters tiled in one window
19cargo run --release -p pineal-gpu-demo       # 3D starfield, up to 1M primitives/frame (D = density, space = pause)
20```
21
22Each painter also has its own demo: `pineal-{heatmap,hexbin,treemap,mesh,financial,flow,contour,bars,polar,phosphor,stream}-demo`.
23
24## Crates
25
26`pineal-core` (agnostic primitives: interleaved DataBuffer, streaming RingBuffer, SpatialIndex, LTTB, scales — zero UI deps, zero alloc in the hot path) · `pineal-render` · one crate per painter · `pineal` (umbrella re-export for prototyping; in production import the leaf crates so tree-shaking drops the unused).
27
28## How dependencies work
29
30This is a clean, light front-door: pineal's only external dependency is the [Llimphi](https://github.com/tawasuyu/llimphi) UI framework, pulled as a git dependency. No monorepo clone, no vendoring — `pineal-core`/`render` are backend-agnostic and the on-screen path is the only one that touches Llimphi.
31
32## License
33
34MIT. Builds on [Llimphi](https://github.com/tawasuyu/llimphi).

README.md

pineal

Backend-agnostic visualization — the "third eye". A catalog of GPU painters over a single Canvas trait, in Rust, on Llimphi.

pineal is a catalog of specialized painters — cartesian, polar, mesh, treemap, phosphor, flow, heatmap, stream, financial, hexbin, contour, bars — over one painter abstraction, the Canvas trait. Any program can push shapes to a pineal and get pixels without carrying its own graphics stack. The whole chain core → render → painter is agnostic of the backend: the same painter draws to vello/Llimphi on screen, to software PNG/SVG/PDF offline, or straight to the GPU for millions of primitives.

pineal does not compute — it only draws. Simulation lives elsewhere; pineal turns the output into pixels. It's the hammer, not the carpenter.

<p align="center"> <img src="docs/pineal_showreel.gif" alt="pineal showreel — a montage of chart types: bars and histogram, heatmap, contour, polar donut and radar, treemap, financial candlesticks, Sankey flow, force-directed graph" width="900"> <br> <sub>a montage of real painters — bars · heatmap · contour · polar · treemap · candlesticks · Sankey · force graph</sub> </p>

Quick start — the gallery

cargo run --release -p pineal-galeria-demo   # 11 painters tiled in one window
cargo run --release -p pineal-gpu-demo       # 3D starfield, up to 1M primitives/frame (D = density, space = pause)

Each painter also has its own demo: pineal-{heatmap,hexbin,treemap,mesh,financial,flow,contour,bars,polar,phosphor,stream}-demo.

Crates

pineal-core (agnostic primitives: interleaved DataBuffer, streaming RingBuffer, SpatialIndex, LTTB, scales — zero UI deps, zero alloc in the hot path) · pineal-render · one crate per painter · pineal (umbrella re-export for prototyping; in production import the leaf crates so tree-shaking drops the unused).

How dependencies work

This is a clean, light front-door: pineal's only external dependency is the Llimphi UI framework, pulled as a git dependency. No monorepo clone, no vendoring — pineal-core/render are backend-agnostic and the on-screen path is the only one that touches Llimphi.

License

MIT. Builds on Llimphi.