Run Laya in the browser
Laya is small enough to run in a browser tab with no server and no API key. The input never leaves the page. The trade-off is a download of several hundred megabytes on the first visit and much slower inference than a native runtime.
171 projects
layaForWeb
VishalMysore
Provides quantized ONNX checkpoints and a demo for running Laya in browsers
cut-laya-onnx
harshpreet931
An 8-bit ONNX conversion runs Laya text classification in browser-based editors
kevin
gauravsaini
Runs a browser automation agent that uses Laya-ONNX to rank candidate actions
decision-model-playground
tedliou
A local web playground comparing Laya and Jev for recommending articles
laya-mlx-ddz
smile-magic
A browser-based 斗地主 game lets two local AI seats play using Laya on Apple Silicon
laya-jev-arena
dante01yoon
Compares local Laya and hosted Jev models in games and measurement tools
laya-invaders
inhabitants
Uses Laya to choose targets in a Space Invaders game and compares it with a rule baseline
system-one-playground
minkhant1996
Provides a local web playground for Laya and other System One decision models
layaAsRagJudge
vishalmysore
Verifies RAG claims in the browser using Laya decisions and evaluates accuracy against labeled claims
laya-console
biyyl234
Provides a local web console and REST API for Laya inference and intent classification
RayCodes_LayaAI
47thtechcorner
A browser-based Pong game uses Laya to control an AI opponent's paddle
laya-vs-dijkstra
antonellof
Compares Laya MLX pathfinding decisions with Dijkstra on seeded weighted mazes
katai
Shiawaseu
A browser automation agent uses fine-tuned Laya models to select actions and target elements
@system-one-ai/model-laya
GitHub Actions
Adds optional Laya model plugins to System One browser and Node runtimes
laya-playground
marcosnovaesq
Runs Laya locally behind a TypeSafe-compatible API and provides a web UI for testing requests
laya-jev-ultrafast
leisc
A browser agent that uses Laya for typed action and element selection, with Jev as an optional backend
chakravyuha-oss
kspviswa
A browser maze game uses a locally hosted Laya model to choose each move
XERON
PIXELZX0
Fine-tunes Laya decision models for multilingual classification, scoring, routing, and browser actions
Nekomimi-Waifu-Seeker
CooLguNxDD
Uses Laya to guess anime and other fictional characters through typed decisions
laya-web
nvkudva
Runs a quantized Laya decision model entirely in the browser using ONNX Runtime Web
laya-web-poc
alexander-voronkov
A browser prototype runs a quantized Laya model locally for typed question answering
laya-warehouse-safety
senthilr-nv
Simulates warehouse robot decisions using Laya, with a browser replay and deterministic collision-safety layer
jev-arena
Samge0
Compares Jev, NanoJev, and Laya decisions in Tetris and 1024 with recorded gameplay replays
laya-jev
kiuckhuang
Adds a local Laya decision endpoint and conformance tests to a Jev browser-agent fork
Libraries
kevala is a zero-dependency Rust engine compiled to WebAssembly, with WebGPU kernels. It works from any page:
<script type="module">
import { Kevala } from "https://cdn.jsdelivr.net/npm/kevala@latest/js/src/index.js";
const kevala = await Kevala.load({ model: "laya", onProgress: console.log });
</script>
or pnpm add kevala. According to its README, the Laya int8 pack is 479 MB and is kept in browser storage after the first visit.
@r4ai/laya-web runs ONNX Runtime Web with WebGPU and a WebAssembly SIMD fallback, and is designed to run in a Web Worker:
npm install @r4ai/laya-web onnxruntime-web
Demos you can open
- layaForWeb: the English checkpoint as quantized ONNX (default build about 440 MB), with a live demo.
- open-jev-laya: multilingual Laya on Transformers.js (fp16 ONNX about 647 MB) with Gomoku, Big Two and a 3D maze.
- layaAsRagJudge: checks RAG claims against retrieved evidence entirely in the tab.
Speed and support
The layaForWeb README reports that a three-question call on the default WASM backend took about 2 to 5 seconds on a 2-core machine. In that project, WebGPU works only with the int4 build, because ONNX Runtime's WebGPU MatMulNBits kernel supports 2- and 4-bit weights. open-jev-laya tries WebGPU and falls back to WebAssembly.
Caveats
Quantized browser builds do not match PyTorch exactly. layaForWeb reports 97.9% top-answer agreement for all three of its quantized builds, with the largest probability gaps in int4. For a real-time loop, laya-pong keeps the model native. Its README gives the reason: the checkpoint wants about 2.4 GB resident in f32, and wasm32 has a 4 GB address space and no Metal.
More ways to use Laya