<!-- ⚠ GENERATED by nornir from .nornir/README.md — DO NOT EDIT this file -->

<div align="center">

### [ ⚡ Live Web Demo ](https://nordisk.codeberg.page/facett)

*every facett component, every palette — running in your browser (egui → WebAssembly)*

</div>

---

# facett

> The **egui component framework** for the constellation's UIs — reusable,
> source-agnostic **data-viewing components** (*each a facet of your data*): hand
> one Arrow / a graph / geo and it draws it fast. Build your own [korp] on it —
> **korp and nornir both do.**

## Quickstart — run the showcase

```sh
cargo install facett-demo --locked   # from crates.io
facett-demo                          # launch the showcase eframe app
```

Every facett component with realistic data, switchable across all palettes (needs a display — or try the browser demo linked above). `cargo install facett-demo` also ships an `osm3d_demo` bin for the 3D/OSM view.

The Falsett tab includes synthetic hub, stage and layered-DAG fixtures. Pipeline,
query-plan and Brokkr DAG components share Falsett's persistent GPU/CPU rendering,
with their own data models, overlays and navigation. Embedding hosts enable the
component's `wgpu` feature and install `facett_flow::gpu::install_renderer` on
their render state; see [the pipeline guide](.nornir/pipeline-guide.md).

## Mashup — one Facet kernel, every kind of data view

Every component implements a single `facett_core::Facet` trait (`title` / `ui` /
`state_json`) and drops into a `FacetDeck` — so one source-agnostic kernel draws
them all, and a test can drive any of them headless:

- **Source-agnostic** — facett renders *what it's handed*; no connection or query logic (that stays in the data layer, e.g. knut).
- **Flagship `facett-grid`** — Arrow-backed, virtualized rows+cols at **60 fps over 1M+ rows**, frozen header + pinned cols + Σ footer, Excel-style selection→TSV.
- **Geo · 3D · graphs** — a **Garmin-style car-nav basemap** (road-class hierarchy · casing · one-way chevrons · route ribbon · priority labels) over GeoParquet (`facett-osm` at **6.3M pts/s**), a z-buffered lit **3D city** (CPU or wgpu), 3D graphs + a glTF model viewer, circular + force-directed layouts.
- **Falsett flow graphs** — animated directed curves through a translucent hub, explicit group overview and resident GPU geometry; [component and host integration](facett-flow/README.md).
- **wgpu fast path** — a GPU viewport-cull + indirect-draw kernel lands behind the same `draw()`/`ui()` call.
- **Themeable & headless-tested** — `Theme::sci_fi()`, self-tested against the MEGA matrix + perf harness.

## Read the real docs

- 📖 **[The manual — `docs/manual.pdf`](docs/manual.pdf)** — every component chapter (kernel, grid, map, graph, docview, app framework): design + guide, the crisp core.
- 🔰 **[The idiot guide — `docs/idiot_guide.pdf`](docs/idiot_guide.pdf)** — zero-knowledge, cold-shell-to-green walkthroughs.
- 🧠 **[Reasoning &amp; record — `docs/unsorted.pdf`](docs/unsorted.pdf)** — the *why*, the rejected alternatives, and the history.
- 📄 **[Full overview — `.nornir/README-full.md`](.nornir/README-full.md)** — the full pitch, the complete crate catalog, and usage.

## License

MIT — see [`LICENSE`](LICENSE) and [`NOTICE`](NOTICE). Versions published up to and including 0.2.0 (crates.io 0.1.x/0.2.0 and PyPI facett/facett-demo 0.2.0) were released under MIT OR Apache-2.0 and stay so. From 0.2.1 facett is MIT only.

Credits: see [`CREDITS.md`](CREDITS.md).

[korp]: https://git.gunnar.rs/nordisk/korp
