Chess Sprite Packs and JavaScript Chess Engines

A list of image files ("sprites") of chess pieces, along with a list of JavaScript chess engines.

Chess Sprite / 2D Asset Download Links

itch.io

OpenGameArt

GameDev Market

CraftPix

The Spriters Resource — ripped/reference sprite sheets

A list of JavaScript chess engines, particularly ones that I could use in an offline .html file:

  • Stockfish.js / Stockfish 18 — strongest practical choice. WASM + Web Worker; full, lite, single-threaded, multi-threaded, and ASM.js builds. The maintainer specifically recommends the ~7 MB lite single-threaded build for typical browser apps. GPL-3.0. GitHub / download

  • Lozza — pure JavaScript, no WASM. UCI interface, designed to run directly as a Web Worker. Only lozza.js is needed. MIT license. Does not support stop or multithreading. GitHub

  • tomitankChess — strong pure-JavaScript engine with UCI and direct Web Worker support. Current v7.0 is listed around 3050 Elo by the project; GPL-3.0. GitHub

  • Tonnetto — lightweight TypeScript/JavaScript engine intended specifically for native browser use. Simple API such as getBestMove(depth). Approximately 1600+ Elo at modest depth. MIT. GitHub

  • js-chess-engine — zero-dependency TypeScript engine with move generation, game state, FEN, configurable AI, and difficulty levels 1–5. Runs completely client-side. MIT. Probably the easiest option if you want a normal JS API instead of UCI messages. GitHub

  • P4wn — extremely small pure-JS chess engine specifically designed for embedding and offline HTML applications. CC0/public domain, so licensing is exceptionally permissive. Older and much weaker than Stockfish/tomitank. GitHub

  • GarboChess-JS — established pure-JavaScript engine using Web Workers; supports FEN and analysis. Most engine code is BSD 3-Clause. Older project, but straightforward to embed. GitHub

  • WukongJS — pure JavaScript engine with UCI support, browser GUI, and public API; project lists roughly 1876 CCRL Elo. The repository does not prominently declare a standard license, so verify redistribution terms before bundling it commercially. GitHub

  • Betafish — JavaScript Negamax engine with alpha-beta pruning, PVS, quiescence search, iterative deepening, and tapered evaluation. Author estimates roughly 1800–2000 Elo. MIT. GitHub

  • Wasabi Chess Engine — AssemblyScript compiled for browser execution, using a Web Worker; includes six difficulty levels and an opening database. Useful if WASM is acceptable. GitHub

  • Lichess stockfish-web — current Lichess browser builds, including Stockfish 18 and NNUE. Very powerful, but Lichess explicitly says this package is not straightforward to load and recommends nmrugg/stockfish.js for simpler embedding. GitHub

For your use case, I would rank them: Stockfish.js lite-single → Lozza → tomitankChess → Tonnetto → js-chess-engine → P4wn.

One implementation detail: “offline” is fine as long as you bundle the .js, .wasm, NNUE, etc. locally. For Web Workers/WASM, serving the app from a tiny local HTTP server or PWA is more reliable than opening index.html directly via file://; multi-threaded Stockfish builds additionally require cross-origin-isolation headers.