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.
361 projects
jev-laya-chess-bench
abe17124
Compares TypeSafe Jev and Laya in head-to-head chess games using legal moves
jev-laya-japanese-business-benchmark
snsk
Compares Jev and Laya on a Japanese business decision benchmark
ai-decision-lab
uibuckets
Provides a local playground and benchmark harness for Laya, with optional Jev comparisons
slop-finder
Code-Wizard-Wilson
Detects AI-like writing styles in social feeds using a local Laya-MLX helper
jev-zen
loongWoong
Reconstructs and validates Laya inference locally using NumPy and a browser-based interface
before-you-send
roisol144
Checks message tone, formality and fight risk while users type, using Laya decisions
mailaya
htpu
Uses a local Laya model to triage email, flag phishing, and check drafts in a browser extension
laya
iaeluk
Runs a local Laya-powered Snake game with a CUDA server and browser version
laya
Yahia-Raouf
Provides a self-hosted Laya inference API, key management, and an administration portal
laya-t-rex-runner
10086ggqq
A browser-based T-Rex runner uses typed-decision models and distilled agents to choose actions
laya-test
jafs
Provides a web playground for testing Laya typed decisions on text or JSON
werewolf-laya
CallSohail
Runs a Werewolf game in which bots use Laya to score suspicions, choose intentions, and vote
laya-studio
song-chaoyang
Provides a web interface for Laya inference, language detection, email tools, and shortlist demos
laya-dino
JakkNaj
A fine-tuned Laya model plays Chrome Dino using a Python backend and TypeScript frontend
laya-demo
clonekim
Provides a local server and browser interface for classifying text with Laya
laya-minesweeper
Animal2404
Demonstrates and evaluates Laya’s mine-risk judgments against a Minesweeper constraint solver
laya-adblock
Samuel-Ku
Uses a local MLX Laya model to identify and remove likely ads from web pages
laya-snake
D9-cell
Runs Laya in Rust to play Snake in a terminal or browser dashboard
laya-tetris
kuchris
Runs Laya as a Tetris placement decision-maker with a heuristic safety guard
laya-models
dockndevai
Provides quantized ONNX builds of Laya for browser inference
laya-server
MrLYC
Provides an authenticated CPU-based HTTP service and decision console for Laya models
Laya_Playground
jonas050210
Runs local Laya decision demos, games, and a raw playground through a browser interface
sway-laya
CallSohail
A Gradio word game where players try to elicit specific decisions from Laya
laya-console
wearshoes
A console provides API keys, a playground, and usage tools for the Laya decision API
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