The UDA runtime · open standard

The operating system
for all silicon.

One bytecode, lowered per coordinate. A single-level store where the in-memory bytes are the durable bytes. An energy-tiered cascade that reaches inference only as a last resort. JouleOS measures where it runs — and tells you the truth in joules.

~10⁵×
lower J/W vs LLM-everything
1 µJ → 5 mJ
cheapest to last-resort tier
0
serialize / deserialize steps
3
surfaces from one source

The premise

Software forgot what it costs.

Every layer we added — the database, the cache, the serializer, the model that answers a question a lookup could have — spends energy nobody measures. We taught computers to forget physics. JouleOS is built on the opposite premise: every operation has a price, and you should be able to see it.

The cascade

Inference is the last resort,
not the entry point.

Every intent descends a cost-ordered ladder of refine families and stops at the first one that can satisfy it. A lookup never wakes a model. The dispatcher always reaches for the cheapest tier that closes the request — and check is deterministic, never an LLM grading itself.

L0 Lawful verified primitives ~1 µJ
L1 DeterministicSm state machines
L2 LocalSearch bounded search
L3 StateGraph graph resolve
L4 ConstrainedSearch guided
L5 TinyRecursive small recursion
L6 LlmInLoop inference — last resort ~5 mJ
A continuous crystalline memory lattice

The single-level store

The bytes in memory are the bytes on disk.

No serialize. No deserialize. No save. State lives in an mmap'd arena keyed by stable object IDs; every mutation is wrapped in a transaction with an undo log — so a power loss at any instruction boundary either rolls back or commits. It never tears.

Lineage: Twizzler (ATC '20) and Corundum (ASPLOS '21), rebuilt lean.

The capability ledger

Unforgeable by construction.

A capability can only be minted by the kernel's ledger — the type system makes a forged one unrepresentable. Eight typed classes gate every I/O path; delegation only narrows; revocation is constructive. The kernel TCB is no_std; the JIT lives outside it and literally cannot link in. That's the proof, not the policy.

  • Storage
  • NetworkSend
  • Inference
  • SensorAcquire
  • ActuatorIssue
  • MemoryRecall
  • DisplayOutput
  • CodeGen
An unforgeable lattice of interlocking keys
A golden gauge measuring honest joules

The energy oracle

Honest joules. Tagged at the source.

Real energy, read from the hardware — AMU on Apple Silicon, RAPL on Linux, an honest estimator everywhere else. The HUD shows you which: ⚡AmuAgx versus ~Estimator. Work is pinned across eight non-fungible classes, so joules-per-watt stays per-class. The system never claims an accuracy it can't deliver.

Lowered per coordinate

One bytecode. Every kind of silicon.

One intent IR is specialized at boot against the coordinate it lands on — address-space ownership, capability enforcement, persistence directness, dispatch reach. The same program runs as a native app, in a browser, and on bare metal. Conformance asserts AOT ≡ JIT, bit-for-bit.

native · winit + wgpu browser · wasm + WebGPU bare-metal · x86_64-unknown-none

The shape of the thing

What disappears. What remains.

Gone

  • Files
  • Loading
  • Booting
  • Serialization
  • Caching layers
  • The database as a separate thing
  • Virtual-memory paging
  • The save dialog

Kept

  • One namespace — every datum has an address
  • Tiering as a physical property
  • Compute that runs at addresses
  • Programs that never stop
  • Versioning, intrinsic
  • Sharing by reference

It runs right now

Don't take our word.
Boot it.

The full JouleOS shell compiles to 2 MB of WebAssembly and runs in this tab — intent bar, surfaces, live energy attribution. Or boot the real bare-metal kernel inside an in-browser virtual machine.