Offline

Open-source licenses

Turnpan is built on open-source software. This page lists it and the license each piece is used under.

Game engine

Game analysis and the computer opponent are powered by Rapfi, which runs on our servers and is never sent to your browser. Rapfi is licensed under the GNU General Public License v3.0 and its source code is available from the project. Its neural network weights come from rapfi-networks and are dedicated to the public domain (CC0-1.0).

Backgammon engine

The backgammon computer opponent is powered by GNU Backgammon (gnubg), which runs on our servers as a separate process in its own container and is never sent to your browser. GNU Backgammon is licensed under the GNU General Public License v3.0-or-later and its source code is available from the project.

Chess engine

The chess computer opponent is powered by Stockfish, which runs on our servers as a separate process in its own container and talks to the site only over a network protocol. It is not linked with Turnpan's code and is never sent to your browser. Stockfish is licensed under the GNU General Public License v3.0 and its source code is available from the project.

Browser analysis engine

Post-game analysis runs in your browser, only when you open it, using stockfish.js 19.0.0 (Stockfish 19 compiled to WebAssembly by nmrugg). Stockfish and stockfish.js are licensed under the GNU General Public License v3.0. The engine files are served from this site; the license text and source notes are linked below.

Stockfish 19 / stockfish.js 19.0.0, GPL-3.0

Chess pieces

Chess pieces by Colin M.L. Burnett (Cburnett), BSD license, via Wikimedia Commons. The license text is reproduced below.

Copyright (c) Colin M.L. Burnett. All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Web app

The web app uses 218 open-source packages, listed below with their licenses. Full license texts

PackageVersionLicense
@babel/code-frame7.29.7MIT
@babel/compat-data7.29.7MIT
@babel/core7.29.7MIT
@babel/generator7.29.8MIT
@babel/helper-compilation-targets7.29.7MIT
@babel/helper-globals7.29.7MIT
@babel/helper-module-imports7.29.7MIT
@babel/helper-module-transforms7.29.7MIT
@babel/helper-string-parser7.29.7MIT
@babel/helper-validator-identifier7.29.7MIT
@babel/helper-validator-option7.29.7MIT
@babel/helpers7.29.7MIT
@babel/parser7.29.8MIT
@babel/template7.29.7MIT
@babel/traverse7.29.8MIT
@babel/types7.29.8MIT
@eloqnt/config0.1.0MIT
@eloqnt/format-json0.1.0MIT
@eloqnt/format-po0.1.0MIT
@esbuild/darwin-arm640.28.2MIT
@formatjs/fast-memoize3.1.7MIT
@formatjs/icu-messageformat-parser3.5.17MIT
@formatjs/icu-skeleton-parser2.1.11MIT
@formatjs/intl-localematcher0.8.13MIT
@img/colour1.1.0MIT
@jridgewell/gen-mapping0.3.13MIT
@jridgewell/remapping2.3.5MIT
@jridgewell/resolve-uri3.1.2MIT
@jridgewell/source-map0.3.11MIT
@jridgewell/sourcemap-codec1.6.0MIT
@jridgewell/trace-mapping0.3.31MIT
@next/env15.5.25MIT
@opentelemetry/api1.9.1Apache-2.0
@opentelemetry/api-logs0.220.0Apache-2.0
@opentelemetry/core2.11.0Apache-2.0
@opentelemetry/instrumentation0.220.0Apache-2.0
@opentelemetry/resources2.11.0Apache-2.0
@opentelemetry/sdk-trace2.11.0Apache-2.0
@opentelemetry/sdk-trace-base2.11.0Apache-2.0
@opentelemetry/semantic-conventions1.43.0Apache-2.0
@parcel/watcher2.6.0MIT
@playwright/test1.63.0Apache-2.0
@rollup/plugin-commonjs28.0.1MIT
@rollup/pluginutils5.4.0MIT
@schummar/icu-type-parser1.21.5MIT
@sentry/babel-plugin-component-annotate5.3.0MIT
@sentry/browser10.74.0MIT
@sentry/browser-utils10.74.0MIT
@sentry/bundler-plugin-core5.3.0MIT
@sentry/bundler-plugins10.74.0MIT
@sentry/cli2.58.6FSL-1.1-MIT
@sentry/conventions0.16.0MIT
@sentry/core10.74.0MIT
@sentry/feedback10.74.0MIT
@sentry/nextjs10.74.0MIT
@sentry/node10.74.0MIT
@sentry/node-core10.74.0MIT
@sentry/opentelemetry10.74.0MIT
@sentry/react10.74.0MIT
@sentry/replay10.74.0MIT
@sentry/replay-canvas10.74.0MIT
@sentry/server-utils10.74.0MIT
@sentry/vercel-edge10.74.0MIT
@sentry/webpack-plugin5.4.0MIT
@swc/core1.16.2Apache-2.0
@swc/counter0.1.3Apache-2.0
@swc/helpers0.5.15Apache-2.0
@swc/helpers0.5.23Apache-2.0
@swc/types0.1.28Apache-2.0
@tanstack/query-core5.102.8MIT
@tanstack/react-query5.102.8MIT
@types/estree1.0.9MIT
@types/json-schema7.0.15MIT
@types/node22.20.2MIT
@types/react19.3.0MIT
@webassemblyjs/ast1.14.1MIT
@webassemblyjs/floating-point-hex-parser1.13.2MIT
@webassemblyjs/helper-api-error1.13.2MIT
@webassemblyjs/helper-buffer1.14.1MIT
@webassemblyjs/helper-numbers1.13.2MIT
@webassemblyjs/helper-wasm-bytecode1.13.2MIT
@webassemblyjs/helper-wasm-section1.14.1MIT
@webassemblyjs/ieee7541.13.2MIT
@webassemblyjs/leb1281.13.2Apache-2.0
@webassemblyjs/utf81.13.2MIT
@webassemblyjs/wasm-edit1.14.1MIT
@webassemblyjs/wasm-gen1.14.1MIT
@webassemblyjs/wasm-opt1.14.1MIT
@webassemblyjs/wasm-parser1.14.1MIT
@webassemblyjs/wast-printer1.14.1MIT
@xtuc/ieee7541.2.0BSD-3-Clause
@xtuc/long4.2.2Apache-2.0
acorn8.18.0MIT
agent-base6.0.2MIT
ajv8.20.0MIT
ajv-formats3.0.1MIT
ajv-keywords5.1.0MIT
balanced-match4.0.4MIT
baseline-browser-mapping2.11.22Apache-2.0
brace-expansion5.0.9MIT
browserslist4.28.9MIT
buffer-from1.1.2MIT
caniuse-lite1.0.30001810CC-BY-4.0
cannon-es0.20.0MIT
chrome-trace-event1.0.4MIT
cjs-module-lexer2.2.1MIT
client-only0.0.1MIT
commander2.20.3MIT
commondir1.0.1MIT
content-type2.1.0MIT
convert-source-map2.0.0MIT
csstype3.2.3MIT
debug4.4.3MIT
detect-libc2.1.2Apache-2.0
dotenv16.6.1BSD-2-Clause
dotenv17.4.2BSD-2-Clause
electron-to-chromium1.5.427ISC
enhanced-resolve5.24.5MIT
es-module-lexer2.3.2MIT
es-module-lexer3.0.2MIT
esbuild0.28.2MIT
escalade3.2.0MIT
estree-walker2.0.2MIT
events3.3.0MIT
fast-deep-equal3.1.3MIT
fast-uri3.1.7BSD-3-Clause
fdir6.5.0MIT
find-up5.0.0MIT
framer-motion13.4.0MIT
fsevents2.3.3MIT
gensync1.0.0-beta.2MIT
glob13.0.6BlueOak-1.0.0
graceful-fs4.2.11ISC
has-flag4.0.0MIT
https-proxy-agent5.0.1MIT
icu-minify4.14.3MIT
import-in-the-middle3.5.1Apache-2.0
intl-messageformat11.2.14BSD-3-Clause
is-extglob2.1.1MIT
is-glob4.0.3MIT
is-reference1.2.1MIT
isexe2.0.0ISC
jest-worker27.5.1MIT
js-tokens4.0.0MIT
jsesc3.1.0MIT
json-schema-traverse1.0.0MIT
json52.2.3MIT
locate-path6.0.0MIT
lru-cache11.5.2BlueOak-1.0.0
lru-cache5.1.1ISC
lucide-react1.44.0ISC
magic-string0.30.21MIT
merge-stream2.0.0MIT
mime-db1.54.0MIT
minimatch10.2.6BlueOak-1.0.0
minimizer-webpack-plugin5.10.1MIT
minipass7.1.3BlueOak-1.0.0
module-details-from-path1.0.4MIT
motion13.4.0MIT
motion-dom13.3.0MIT
motion-utils13.3.0MIT
ms2.1.3MIT
nanoid3.3.19MIT
negotiator1.1.0MIT
neo-async2.6.2MIT
next15.5.25MIT
next-intl4.14.3MIT
next-intl-swc-plugin-extractor4.14.3MIT
node-addon-api7.1.1MIT
node-fetch2.7.0MIT
node-releases2.0.55MIT
p-limit3.1.0MIT
p-locate5.0.0MIT
path-exists4.0.0MIT
path-scurry2.0.2BlueOak-1.0.0
picocolors1.1.1ISC
picomatch4.0.7MIT
playwright1.63.0Apache-2.0
playwright-core1.63.0Apache-2.0
po-parser2.2.0MIT
postcss8.4.31MIT
postcss8.5.28MIT
progress2.0.3MIT
proxy-from-env1.1.0MIT
react19.3.0MIT
react-dom19.3.0MIT
require-from-string2.0.2MIT
require-in-the-middle8.0.1MIT
rollup4.63.1MIT
scheduler0.28.0MIT
schema-utils4.4.0MIT
semver6.3.1ISC
semver7.8.5ISC
sharp0.35.4Apache-2.0
source-map0.6.1BSD-3-Clause
source-map-js1.2.1BSD-3-Clause
source-map-support0.5.21MIT
stacktrace-parser0.1.11MIT
styled-jsx5.1.6MIT
supports-color8.1.1MIT
tapable2.3.3MIT
terser5.51.2BSD-2-Clause
tr460.0.3MIT
tslib2.8.10BSD
type-fest0.7.1(MIT OR CC0-1.0)
undici-types6.21.0MIT
update-browserslist-db1.3.3MIT
use-intl4.14.3MIT
watchpack2.5.2MIT
webidl-conversions3.0.1BSD-2-Clause
webpack5.110.3MIT
webpack-sources3.5.1MIT
whatwg-url5.0.0MIT
which2.0.2ISC
yallist3.1.1ISC
yocto-queue0.1.0MIT
zod4.6.2MIT
zustand5.0.15MIT