Lux

A real-time visual programming environment for creative coding

Learn More

Built for creators

GPU Accelerated

Built on wgpu and Vello for native GPU rendering. Real-time performance at 60fps, even with complex node graphs and high-resolution outputs.

Cross Platform

Runs natively on Linux, macOS, and Windows. Same project files, same performance, everywhere. Web export via WebAssembly is on the roadmap.

Extensible

WASM plugin system lets anyone build custom nodes in Rust, C, Zig, or any language that compiles to WebAssembly. Sandboxed, portable, and hot-reloadable.

Latest from the devlog

The Orphan a Deletion Leaves

Deleting the dead deferred renderer left a ghost behind: a GPU classifier whose every caller had just been deleted. This is the short one about chasing a deletion all the way to zero, and about a cost you pay without seeing it. Every line of 'keep it, might be useful later' is load time, memory, and a place for bugs to hide. The engine you run should be exactly the engine that is alive.

The Shading Path That Never Shaded

Lux had two ways to light a surface, and only one of them was real. The other shaded everything magenta and never drew a frame. Two lighting paths means two ways for your materials to look wrong, so this post deletes the dead one. Now there is exactly one place where light meets a surface, which means every tonemap tweak, every roughness fix, every colour improvement lands in every scene at once. Your gold looks like gold everywhere.

The 800-Line Ceiling

You will never see this commit, and that is the point. The god-file carve is finished, and a CI gate now stops any engine file from crossing 800 lines again. Why it matters to you: a codebase that does not rot is the difference between a tool that gets better every week and one that slows to a crawl, and small, focused files are what keep the per-frame hot path allocation-free when your patch gets big.