caldrix.js

A language model, running in this tab.

caldrix.js downloads the model you pick once, keeps it in this browser's cache, and runs it in a worker on WebGPU or WebAssembly. What you type never leaves the page. It is a small model: expect short answers, and often wrong ones.

waiting
How this works
ts
import { Caldrix } from "@caldrix-ai/caldrix";

const engine = await Caldrix.load("HuggingFaceTB/SmolLM2-135M-Instruct@12fd25f77366fa6b3b4b768ec3050bf629380bac", {
  backend: "auto",
  assets: { fallback: false },
  onProgress: ({ file, loaded, total }) => show(file, loaded, total),
});

for await (const delta of engine.chat(messages, { maxTokens: 256, temperature: 0.7, topP: 0.9, repetitionPenalty: 1.1, signal })) {
  if (!delta.done) append(delta.text);
}

Caldrix.load fetches the weights, checks them and starts the engine in a worker.

engine.chat streams the reply one delta at a time, and the signal stops it.

The caldrix.js docs

What has been verified

What the list means: every model on it passed the nightly parity run's web row on the WebAssembly tier, in headless Chromium driven by Playwright on Linux: one prompt, 16 greedy steps, token-exact against the reference, at the revision the page loads. Every model also passed the WebGPU tier on an Apple Mac's real adapter, in a run the maintainer starts by hand; each pass is recorded beside the model's row. SmolLM2-135M-Instruct also ran on one Apple M1 Max, on both tiers: 8 greedy steps, token-exact. On that Mac, in Brave, every safetensors model then listed also loaded from the Hugging Face Hub on the WebGPU tier, answered a chat message and ran the agent's first chip.

A quantization marked "tested nightly" is the file the nightly ran, token-exact against the same file dequantized; a model's other quantizations are offered on that pass, each fit-checked in this tab from its recorded facts before any weights download.

Not run: any browser other than Chromium and Brave, any other prompt, or the demo's sampling options; the WebAssembly tier in a headed browser. No performance figure is recorded, so none is shown here.

The full record is on the caldrix.js docs page.

aerix.js

An agent, writing a page into this one.

aerix.js runs a turn loop on the model above. It has one tool, which replaces the frame below with the HTML it writes; a script error comes back to it as the tool's result and it tries again. Every attempt, broken or not, is shown as it happens. It is a small model: it copies the nearest of the four examples in its instructions, its pages are tiny and often not what was asked, and it never ends a run itself, so this page stops the loop at the first page that renders without an error. What is on show is the loop, not the model.

Download the model above to start.

Nothing yet. The page the agent writes appears here.

Ready. Ask for a page.

What has been verified

What has run: this section, on SmolLM2-135M-Instruct on WebGPU on an Apple M1 Max in Chromium, once per starter prompt. Each prompt rendered a page in one attempt with no script error. Four of the five pages were what was asked; for the solar system it copied one of its examples, a blue circle. No run ended with the model's own answer; the page stopped each one. Separately, every listed model rendered a page for the first starter prompt in the nightly's web row, on both tiers, at greedy settings.

Not recorded: the other starter prompts on any model but SmolLM2-135M-Instruct, the model fixing a page after an error, any browser but Chromium, or the page's own sampling settings. No performance figure is recorded, so none is shown here.

The full record is on the aerix.js docs page.