Skip to content
@Lumencast

Lumencast

Lumencast

The missing standard for server-driven displays.

A wire protocol, a typed schema and a multi-runtime client kit, Apache 2.0, multi-language, broadcast-grade and IoT-grade.

A serveur authoritatif détient un état temps-réel. Il doit le pousser à un display passif (browser, kiosque natif, OBS browser source, iframe, terminal, mobile) qui le rend visuellement. Le display n'a aucune logique métier, ne mute pas le state local, ne fait aucun calcul. Il rend, point.

This pattern is everywhere — broadcast overlays, trading dashboards, NOC walls, esports brackets, ATC consoles, industrial SCADA, live betting tickers, conference Q&A boards, digital signage, game spectator UIs — and is systematically reimplemented ad-hoc in every domain. Lumencast extracts the kernel as :

  • LSDP/1 — Leaf State Delta Protocol — a WebSocket protocol that pushes typed state at leaf-grain (path → value), with snapshot+delta, sequenced delivery, gap detection, reconnect, and token rotation
  • LSML 1.1 — Lumencast Scene Markup Language — a JSON content-addressed format describing a tree of 9 closed primitives (stack, grid, frame, text, image, shape, media, repeat, instance), with bindings, GPU-only animations, operator-input metadata, and 1.1+ extensions (universal props, multi-fill / gradients, vendor primitives via §17)
  • Multi-language — TypeScript / Go / Rust / Python — cross-paradigm, conformance-suite-tested

Why a standard

The "real-time display" pattern is everywhere yet there is no shared protocol :

Tool What it gives What it doesn't
Phoenix LiveView HTML diffs server-pushed Locked to Elixir/Phoenix. Pushes HTML, not state
Hotwire / Turbo Streams HTML fragments Locked to Rails. HTML, no schema
HTMX + SSE DOM patches via SSE DOM-only, no typed schema, large XSS surface
Liveblocks Collaborative state Bidirectional CRDT. Overkill for displays. SaaS
PartyKit WebSocket-as-a-service Pubsub generic, no rendering contract
Apollo subscriptions GraphQL push Typed but no rendering protocol
Caspar CG Industry broadcast graphics C++ from 2007, not web stack
Singular.live, Vizrt SaaS broadcast graphics Closed, vendor lock, expensive

Lumencast fills the gap : an open protocol + schema you self-host, multi-language, broadcast-grade and dashboard-ready.

The 3 invariants

  1. Push leaf-grain — state travels as path → value patches at the leaf level. The client maintains path → signal. Only components reading that path re-render. No DOM diff. No reconciliation.
  2. Closed primitive catalog — the runtime renders only the 8 LSML primitives. No eval, no dangerouslySetInnerHTML, no arbitrary HTML. Security by construction.
  3. Content-addressed scene bundle — the bundle's identity is its sha256 hash. Cache forever. Multiple versions co-exist transparently. Rollback is just an URL change.

Repos

Repo Purpose Status
lumencast-protocol LSDP/1 + LSML 1.1 specs, conformance fixtures + scenarios, JSON Schema draft — usable as reference
lumencast-js TypeScript runtime + Node server SDK monorepo scaffolding
lumencast-go Go server SDK + lumencast CLI binary scaffolding
lumencast-rs Rust SDK scaffolding
lumencast-py Python SDK v0.1.0
lumencast-figma Figma plugin — author LSML 1.1 scenes visually, round-trip-stable export + import v0.1.0

More languages and runtimes (Vue, Svelte, Flutter, TUI, native) land in subsequent waves once wave 1 stabilises.

Authoring tools

The first Layer 5 authoring tool ships in wave 3a :

  • lumencast-figma — open-source Figma plugin that exports Figma frames to LSML 1.1 bundles (.lsml) and reimports them back. No JSON written by hand, full LSML 1.1 surface (text / shape / image / frame / stack / instance / multi-fill gradients / Figma variable tokens / operator inputs). Apache 2.0, networkAccess: none, zero telemetry. The plugin is the leftmost arrow of the Figma → Prism → Orion pipeline.

Status

This project is early. Specs are draft, no SDK has shipped a v0 release yet. The conformance suite ships v0 with 16 scenarios covering the LSDP/1 + LSML 1.0 contract surface.

Watch the org for releases — when wave 1 SDKs land their initial v0.1.0, this README will reflect it.

Spec docs

Governance & contributing

License

Apache 2.0 across the entire ecosystem.

The project name "Lumencast" and the LSDP/LSML acronyms are trademarked separately ; only conformance-passing implementations may use the name without qualification (see GOVERNANCE.md § Brand).

Popular repositories Loading

  1. lumencast-protocol lumencast-protocol Public

    Lumencast wire protocol (LSDP/1) and scene markup language (LSML 1.0) — the standard for server-driven displays

    Shell

  2. .github .github Public

    Lumencast org-wide community health files (profile, CoC, contributing, etc.)

  3. lumencast-js lumencast-js Public

    TypeScript runtime + Node server SDK for Lumencast (LSDP/1 + LSML 1.0)

    TypeScript

  4. lumencast-go lumencast-go Public

    Go server SDK + lumencast CLI binary for Lumencast (LSDP/1 + LSML 1.0)

    Go

  5. lumencast-rs lumencast-rs Public

    Rust SDK for Lumencast (LSDP/1 + LSML 1.0)

    Rust

  6. lumencast-py lumencast-py Public

    Lumencast Python SDK + CLI — LSDP/1 server kit and conformance harness for Python

    Python

Repositories

Showing 7 of 7 repositories

Top languages

Loading…

Most used topics

Loading…