No description
  • JavaScript 63.8%
  • Julia 36.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Kahli Burke 6f8b8cea46 Resolve SlateExtensionsBase 0.9 from SlateRegistry
Drop the [sources] path into the KaimonSlate checkout — SEB is a registered
package now, so no sibling directory layout is required.
2026-07-31 12:39:56 -07:00
assets Binary/JSON path selector + isolate transport from field-gen 2026-07-21 12:01:56 -07:00
notebooks Binary/JSON path selector + isolate transport from field-gen 2026-07-21 12:01:56 -07:00
src Register bench:run in __slate_frontend so it survives cell restore 2026-07-21 12:58:29 -07:00
.gitignore SlateBench.jl — a live streaming-transport benchmark widget 2026-07-21 07:05:04 -07:00
Project.toml Resolve SlateExtensionsBase 0.9 from SlateRegistry 2026-07-31 12:39:56 -07:00
README.md SlateBench.jl — a live streaming-transport benchmark widget 2026-07-21 07:05:04 -07:00

SlateBench.jl

A streaming-transport benchmark widget for Kaimon Slate. Drop it in a cell and it renders a live dashboard that stress-tests the slate_emit hub→browser path — the measuring stick for the binary-WS numeric-frame work.

using SlateBench
bench_stream(n = 64, frames = 2000)   # returns a StreamBench → Slate renders the live dashboard

Press ▶ Run and it streams frames frames of an n×n Float32 field over slate_emit as fast as it can, then charts throughput (MB/s), delivered fps, drop rate, and latency drift (p50/p95/p99) — with a field canvas, a throughput timeline, and latency/inter-arrival histograms.

What it demonstrates

A complete Slate extension depending only on SlateExtensionsBase — a returned StreamBench renders as a slate_render component, the emitter's run action is registered through the slate_on context accessor, and the dashboard front-end ships once via __slate_frontend. Each frame carries a run id + hi-res send time so the receiver measures delivered frames (not just what landed before the call returned) and latency drift (does the pipeline keep up, or back up?).

Baseline (JSON slate_emit, before the binary frame)

frame delivered drops latency p50/p95/p99
64² (16 KB) ~50 MB/s · 3000 fps 0% 61 / 75 / 79 ms
128² (64 KB) ~56 MB/s · 858 fps 0% 755 / 1306 / 1384 ms

The path tops out around ~56 MB/s; offer more and nothing drops but the queue backs up and latency balloons to ~1 s. The binary WebSocket numeric frame has to beat that.