Go-native UX framework
lurpicUI
lurpicUI is a Go-native interactive UX framework — the facet projection reference implementation. It is built for realtime UI, mixed media, and data visualization applications: a retained facet tree and projection system, a cross-platform rendering pipeline, asset bundling and streaming, and Android application build tooling.
The architecture holds to a small set of load-bearing principles: facets own translation, not truth; stores are the single source of truth; the runtime thread owns all mutable engine state; and concurrency accelerates projection without leaking into the programming model. Background workers compute against immutable snapshots and commit through version-checked results — the engine feels single-threaded to authors, and that is the point.
Applications talk to the outside world through LDP — the Lurpic Drive
Protocol: typed observations and GUI-backed actions over an authenticated
Unix-domain socket, with explicit grants, session fencing, and virtual time.
There is no direct store mutation anywhere in the protocol — actuation is
GUI-backed input.* and cmd.execute only, and human input always wins.
# Install
Build from source — Go 1.27.2+, CMake, and (for Android targets) the Android SDK/NDK/JDK with a Rust toolchain and cargo-ndk. Platforms today: Linux desktop and Android.
Clone and run the quick demo
git clone https://github.com/lexbity/lurpicui && cd lurpicui
go test ./...
go run ./demos/quick_square_app
- Repository: source, project layout, CONTRIBUTING
- Android builds: `lurpic doctor android` checks the toolchain
# Try it
-
Verify the toolchain
go test ./...proves the tree builds on your machine; for Android targets, runlurpic doctor androidto check the SDK/NDK/JDK and cargo-ndk wiring. -
Run the demo app
go run ./demos/quick_square_appopens the smallest facet+store app in the tree — a square you can interact with, driven through projection like every other lurpicUI application. -
Author your own app
A lurpicUI project is alurpic.tomlat the root, a Go entry point undercmd/<app-name>/, and your assets. Start from the demo and read the facet runtime principles .
# What it offers
One runtime thread
Deterministic frames
LDP automation seam
Typed observations and GUI-backed actions over an authenticated Unix socket — grants, session resume with fencing, request replays, and bounded ledgers.
Virtual time
Android tooling
Debug APKs can compile the drive seam; release builds refuse it.
adb forwardfor remote automation, socket never leaves the device.
# Read the docs
LDP — Lurpic Drive Protocol
LurpicUX Design System
lurpicUI on GitHub
demos/ are the fastest tour; the principles document is the contract
the engine is held to.