The three products
UOR-R4 aims to ship one thing people can use: a small, fast language model that runs on your own laptop or in your own browser, with nothing sent to a server. The owner defined three products around it on 19 October 2026. The first is the model itself, saved as one file of whole numbers. The second is a web client that runs that file inside a browser tab. The third is a desktop client, an installable app that runs the same file natively and remembers your conversations. None of the three ships today. The project is pre-alpha: 0 of its 8 milestones are complete and no model holds a useful conversation yet (STATUS, NOW). Nothing is released until a trained model passes milestones M1 to M8.
Labels used below: proof means derived from definitions or code, measurement means a recorded run with its artifact, hypothesis means an untested idea (docs/formal_vocabulary.md, glossary).
One model file feeds two clients that share one interface. Everything inside the dashed line runs on the user's own device.
The three at a glance
| Product | What it is meant to be | What exists today | Main gate |
|---|---|---|---|
| Language model | A geometric language model exported as one checksum-pinned integer file (UORLUT01) | The serving engine, tested on a synthetic stand-in model. No trained model has been exported to it | M1 to M4, then M8 |
| Web client | A local model in the browser: download the file once, run it in WebAssembly on the device | The Studio interface (index.html), a WebAssembly build of the engine (UOR-Foundation/uor-r4#2654), and a paused Pages deploy | M7 |
| Desktop client | A Tauri app sharing the web interface, with the native engine, file access, durable memory and offline use on M1-class laptops | A specification only. Fragments exist: Tauri hooks in the Studio, the memory store crate, a command-line engine | M3, M5, M7 |
A fourth page, Releases and artifacts, covers the model file format, how a release would be cut, the Hugging Face repositories and how checksums tie them together.
Why the products look like this
Local by design. The mission is "fast local AI": a model that trains fast, runs fast and approaches frontier capability on ordinary hardware (charter, section 1). The lead metric is tokens per second. A product that needs a data centre would defeat the point.
One file, many hosts. The served model obeys one contract, called D11: no decimal (floating-point) arithmetic, no multiply or divide instruction and no transcendental functions, only adds, shifts and table look-ups (D11). A file that needs nothing more exotic than integer adds can run the same way in a browser, on a laptop processor or on Apple silicon. The charter says serving this file on the user's device is the product and is allowed. The rule that research compute must run on a GPU (D24) does not apply to it (charter, section 3.6).
One interface, two shells. The Studio, a single-page interface already in the repository, is the shell for both clients. The browser runs the engine as WebAssembly. The desktop app wraps the same page and runs the engine as native code, which should be faster (a hypothesis; no side-by-side timing exists).
Where each product stands
| Item | State | Source |
|---|---|---|
| Milestones complete | 0 of 8 (measurement of the tracker) | STATUS, NOW |
| Integer serving engine, native | Built; zero-multiply audit green on 44 symbol ranges (measurement) | project track, M4 |
| Integer serving engine, WebAssembly | Built; 7 of 7 serving functions with zero multiply, divide and float instructions; save and restore reload identically on a synthetic model (measurement) | record |
| A trained model in that engine | None. Training is held, and no model built under today's rules has been exported | NOW, lut-serving dossier |
| Studio connected to the new engine | No. It still imports an older engine that was retired on 15 October | index.html, D36 |
| Public website deploy | Paused since 15 October; the live site is the 13 October build | deploy.yml |
| Desktop app project | Not started; no src-tauri/ folder exists | the repository tree (no src-tauri/ folder) |
A passing audit shows that a forbidden instruction is absent. It is not a trained capability, and it says nothing about how well a model answers.
The order things must happen in
The products depend on the model, and the model depends on milestones. Roughly:
- M1 to M3 give a model that predicts text, answers from exact memory, and keeps memory across sessions.
- M4 exports that model through D11 and serves it from the command line.
- M5 measures its cost on a laptop, and M6 adds reasoning and coding on the same model.
- M7 makes the browser worker, the command line and the Rust library produce bit-identical tokens. That is the web client's gate.
- M8 is the alpha release: one versioned, checksum-pinned model file that meets every earlier bar.
The desktop client has no milestone of its own yet. It rides on M3 for memory, M5 for laptop cost and M7 for the shared interface. The full definitions are in the project track.
Go deeper
- Language model: what the model is and the M1 to M8 path in plain words.
- Web client and desktop client: architectures, what exists and what is missing.
- Releases and artifacts:
UORLUT01, the release workflow, Hugging Face, checksums. - Serving and export: how the integer engine computes without a multiply.
- Mechanism dossiers: integer table serving, exact object store.
- The charter, sections 2 (products) and 3.6 (serving on the user's device).