llux-website

Llux illustration

Llux is a tool for independent creators.

It turns your interface ideas into native software that runs anywhere—without platform lock-in, hidden dependencies, or surprises.

You describe the intent. Llux compiles it to a binary. You own it.


Every interactive system—whether a smart-home dashboard, a CNC machine HMI, or a museum installation—follows the same pattern: Surface ↔ Transit ↔ Engine. Llux compiles the Surface and the Transit rules. You bring the Engine.

No platform lock-in. No hidden dependencies. No surprises.


Current Project

Status: Pre-release documentation + pre-release early-to-mid alpha

Project: The public project name is Llux.

Targets: The first stabilisation target is a local compiler pipeline with the zero-dependency dump UI engine. Translators for SwiftUI, Qt/QML, HTML, React, and other UI systems are planned work, not yet shipped functionality.

Documentation: llux.org

Path Purpose
guide.how/ Tutorials and task-oriented guides.
reference.what/ Language, platform, ecosystem, and layout references.
philosophy.why/ Working philosophy and human-centred design material.
community.who/ Contributing, governance, and community process.
roadmap.when/ Roadmap and project status.

Start Here


Current Scope

As Llux is in early development, the present focus is on building the central technical supports needed for upcoming design matters.

The core toolchain currently exposes a llux CLI and a C-based compiler layout. Basic examples, keyword and localisation docs, and build scripts exist in the implementation workspace.

The active language direction is:

# Contract (app.llux)
app state {
    count: int = 0
}

action Increment(amount: int = 1) {
    app.count += amount
}
# Surface (app.llux.md)
::: page
  ::: flex gap-4
    # Inbound: Label's @text pulls from app.count
    ::: Label { @text <- "Count: " + app.count }
    
    # Sync: Slider's @value syncs with app.count
    ::: Slider { @value <-> app.count min=0 max=100 }
    
    # Action: Button's @press pushes to app.increment
    ::: Button { @press -> app.increment label="+1" }
  :::
:::

Key:


Who This Is For

Llux should be of interest to:


Licence

The Llux implementation is intended to use the MIT licence. The website, specifications, research, and explanatory documentation use separate documentation terms so the authoritative language material remains clear and controlled. See LICENCE.md.