Demos
Both apps are written in Kāra, compiled to WebAssembly, and run entirely in your browser — the files you drop into them are never uploaded. Open the Network tab while editing: after the page loads, it stays empty.
Prism — local image workbench Drop a photo; resize (Lanczos-3 / bilinear), crop, rotate, flip, adjust, grayscale — then download as PNG/JPEG/WebP. Multicore: the resamplers fan out across a Web Worker pool with SIMD inner loops.
Veil — local image redactor Redact screenshots without uploading the thing you're trying to hide: solid bar (destroys the pixels), pixelate, or blur. Downloading re-encodes locally, which also strips EXIF/GPS metadata.
How they’re built
Section titled “How they’re built”- All pixel kernels live in a single
.karasource per app, compiled withkarac build --target=wasm_browser; the browser only decodes and re-encodes the image files. The wasm weighs ~100 KB (Prism) and ~52 KB (Veil). - Prism’s multicore build is Kāra’s
TaskGroupfan-out compiled to Web Workers, withVector[f64, 2]SIMD in the Lanczos inner loop — a 12 MP resize drops from ~1.1 s single-threaded scalar to ~285 ms. The same source also compiles to a sequential module with byte-identical output, which the page falls back to where threads aren’t available (append?seqto force it). - Source, exact-oracle kernel tests, and the headless-Chrome verification
harness live in
karalang/kara-katas →
apps/.