Borrowed Light Project

Lux v1

Lux is the kernel implementation of the constellation primitives: points, links, trails. A Git-like substrate for experiments — with structured runs (lux.run) that keep lineage and replay intact.

The primitives

  • Point: an addressable unit of knowledge — statement, definition, dataset slice, metric.
  • Link: a typed relationship between objects — lux.depends_on, lux.supports, lux.supersedes.
  • Trail: a record of reasoning or procedure — human or machine, often attached to runs.

Lux doesn’t try to define truth. It preserves provenance — and runs (lux.run) capture inputs to outputs so corrections can propagate along explicit dependencies.

Quickstart demo (computational neuroscience)

The fastest way to feel Lux is to watch a small constellation evolve from v1 → v2: new points appear, new runs and links support them, and the lineage stays visible.

Diagram: Lux primitives (points, links, runs). Diagram: Lux primitives (points, links, runs).
Diagram: named checkpoints (neuro-v1 → neuro-v2). Diagram: named checkpoints (neuro-v1 → neuro-v2).
Lux is a small kernel: primitives (points/links/trails), structured runs, and named checkpoints that let a constellation evolve without losing lineage.
# from the Lux repo
./playground/open-neuro-demo.sh

# then evolve the constellation (v1 → v2)
./playground/seed-neuro-evolve.sh <PATH_TO_DEMO_REPO>

# optional: verify protocol invariants
cargo run -p lux -- conformance-test

In the UI, sync again. You should see named checkpoints neuro-v1 and neuro-v2, plus runs as first-class nodes and lux.supports links as dashed arcs.

What Lux v1 is optimizing for

  • Interop: canonical bytes, stable IDs, deterministic replay, conformance vectors.
  • Narrow waist: object store + event log + refs + minimal replication.
  • Evolution: supersession rather than erasure; a visible lineage.
  • Small kernel: domain semantics live above, not inside.

What we should add next

  • Freeze the v1 conformance suite: vectors + runner + CI gate so the bytes stay stable.
  • Ship a neuro-shaped workflow: wrap one pipeline as a lux.run, emit finding points, publish checkpoints (v1 → v2).
  • Demonstrate retraction as a quiet edge case: a single kintsugi example, not the headline.