# Kazu 数 — Sudoku and grid number puzzles > Kazu 数 — Sudoku and grid number puzzles: Sudoku and its variants, Futoshiki, Skyscrapers, Cross Sums, Loop, Nurikabe and more. Typed engines, checked seeded puzzles, SVG boards and bilingual players. Zero runtime dependencies. Install with `npm install @johnmorrisdotca/kazu`. Every page below is also an HTML page at the same address ending in .html; the documentation's home is https://johnmorrisdotca.github.io/kazu/docs/. The examples on the reference pages are run when the site is built, and what they print is shown under them. ## Guides - [Getting started](https://johnmorrisdotca.github.io/kazu/docs/guides/getting-started.md): Generate and check a small Sudoku before mounting a player. - [Choose Sudoku and number-grid rules](https://johnmorrisdotca.github.io/kazu/docs/guides/number-grids.md): Keep printed codes and variant constraints together. - [Use the dedicated logic-puzzle engines](https://johnmorrisdotca.github.io/kazu/docs/guides/other-families.md): Select the right state model for rectangles, shading, lamps and loops. - [Separate answer checking, hints and proof](https://johnmorrisdotca.github.io/kazu/docs/guides/hints-and-proof.md): Treat bounded search completion as part of a uniqueness result. - [Keep entries, notes and native progress](https://johnmorrisdotca.github.io/kazu/docs/guides/progress.md): Store the puzzle identity alongside the player state. - [Draw and embed the native players](https://johnmorrisdotca.github.io/kazu/docs/guides/native-embeds.md): Use each family mount and keep display choices separate from rules. - [Codes, indices and edge models](https://johnmorrisdotca.github.io/kazu/docs/guides/encodings.md): Understand why native codes cannot be exchanged across puzzle kinds. - [Architecture and checked generation](https://johnmorrisdotca.github.io/kazu/docs/guides/architecture.md): Keep rules, seeded puzzles and players in their native layers. - [Troubleshooting and FAQ](https://johnmorrisdotca.github.io/kazu/docs/guides/troubleshooting.md): Resolve unsupported generation, invalid codes and incomplete search. - [Upgrading to the current entries](https://johnmorrisdotca.github.io/kazu/docs/guides/upgrading.md): Use the published version-2 names and preserve old native formats. ## Reference - [@johnmorrisdotca/kazu/draw](https://johnmorrisdotca.github.io/kazu/docs/api/draw/index.md): Kazu's drawing: a puzzle as SVG text, with the style that gives it its look, and where everything sits in it (so a page can tell which cell a finger is over). - [@johnmorrisdotca/kazu/play](https://johnmorrisdotca.github.io/kazu/docs/api/play/index.md): Kazu, played in a page: `mountKazu` draws a puzzle into any element and plays it by touch, mouse and keyboard, with a number pad, pencil marks, Undo, Hint, Check and a clock, and the words in English and Japanese. - [@johnmorrisdotca/kazu/element](https://johnmorrisdotca.github.io/kazu/docs/api/element/index.md): Puzzle elements - [@johnmorrisdotca/kazu/element/define](https://johnmorrisdotca.github.io/kazu/docs/api/element-define/index.md): Defines the `` element on the page. - [@johnmorrisdotca/kazu/shikaku](https://johnmorrisdotca.github.io/kazu/docs/api/shikaku/index.md): Shikaku shares Kazu's number puzzle package, with its own rectangle model. - [@johnmorrisdotca/kazu/shikaku/play](https://johnmorrisdotca.github.io/kazu/docs/api/shikaku-play/index.md): Shikaku player - [@johnmorrisdotca/kazu/shikaku/draw](https://johnmorrisdotca.github.io/kazu/docs/api/shikaku-draw/index.md): Shikaku SVG - [@johnmorrisdotca/kazu/hitori](https://johnmorrisdotca.github.io/kazu/docs/api/hitori/index.md): Hitori rules - [@johnmorrisdotca/kazu/hitori/play](https://johnmorrisdotca.github.io/kazu/docs/api/hitori-play/index.md): Hitori player - [@johnmorrisdotca/kazu/hitori/draw](https://johnmorrisdotca.github.io/kazu/docs/api/hitori-draw/index.md): Hitori SVG - [@johnmorrisdotca/kazu/nurikabe](https://johnmorrisdotca.github.io/kazu/docs/api/nurikabe/index.md): Nurikabe rules - [@johnmorrisdotca/kazu/nurikabe/play](https://johnmorrisdotca.github.io/kazu/docs/api/nurikabe-play/index.md): Nurikabe player - [@johnmorrisdotca/kazu/nurikabe/draw](https://johnmorrisdotca.github.io/kazu/docs/api/nurikabe-draw/index.md): Nurikabe SVG - [@johnmorrisdotca/kazu/akari](https://johnmorrisdotca.github.io/kazu/docs/api/akari/index.md): Akari rules - [@johnmorrisdotca/kazu/akari/play](https://johnmorrisdotca.github.io/kazu/docs/api/akari-play/index.md): Akari player - [@johnmorrisdotca/kazu/akari/draw](https://johnmorrisdotca.github.io/kazu/docs/api/akari-draw/index.md): Akari SVG - [@johnmorrisdotca/kazu/juosan](https://johnmorrisdotca.github.io/kazu/docs/api/juosan/index.md): Juosan rules - [@johnmorrisdotca/kazu/juosan/play](https://johnmorrisdotca.github.io/kazu/docs/api/juosan-play/index.md): Juosan player - [@johnmorrisdotca/kazu/juosan/draw](https://johnmorrisdotca.github.io/kazu/docs/api/juosan-draw/index.md): Juosan SVG - [@johnmorrisdotca/kazu/loop](https://johnmorrisdotca.github.io/kazu/docs/api/loop/index.md): Loop uses a dedicated edge model and a single-loop constraint. - [@johnmorrisdotca/kazu/loop/play](https://johnmorrisdotca.github.io/kazu/docs/api/loop-play/index.md): Loop player - [@johnmorrisdotca/kazu/loop/draw](https://johnmorrisdotca.github.io/kazu/docs/api/loop-draw/index.md): Loop SVG - [@johnmorrisdotca/kazu/masyu](https://johnmorrisdotca.github.io/kazu/docs/api/masyu/index.md): Masyu rules - [@johnmorrisdotca/kazu/masyu/play](https://johnmorrisdotca.github.io/kazu/docs/api/masyu-play/index.md): Masyu player - [@johnmorrisdotca/kazu/masyu/draw](https://johnmorrisdotca.github.io/kazu/docs/api/masyu-draw/index.md): Masyu SVG - [@johnmorrisdotca/kazu/yajilin](https://johnmorrisdotca.github.io/kazu/docs/api/yajilin/index.md): Yajilin rules - [@johnmorrisdotca/kazu/yajilin/play](https://johnmorrisdotca.github.io/kazu/docs/api/yajilin-play/index.md): Yajilin player - [@johnmorrisdotca/kazu/yajilin/draw](https://johnmorrisdotca.github.io/kazu/docs/api/yajilin-draw/index.md): Yajilin SVG - [@johnmorrisdotca/kazu/ripple](https://johnmorrisdotca.github.io/kazu/docs/api/ripple/index.md): Ripple Effect has its own room and spacing model. - [@johnmorrisdotca/kazu/ripple/play](https://johnmorrisdotca.github.io/kazu/docs/api/ripple-play/index.md): Ripple Effect player - [@johnmorrisdotca/kazu/ripple/draw](https://johnmorrisdotca.github.io/kazu/docs/api/ripple-draw/index.md): Ripple Effect SVG - [@johnmorrisdotca/kazu/cross-sums](https://johnmorrisdotca.github.io/kazu/docs/api/cross-sums/index.md): Cross Sums rules - [@johnmorrisdotca/kazu/cross-sums/play](https://johnmorrisdotca.github.io/kazu/docs/api/cross-sums-play/index.md): Cross Sums player - [@johnmorrisdotca/kazu/cross-sums/draw](https://johnmorrisdotca.github.io/kazu/docs/api/cross-sums-draw/index.md): Cross Sums SVG - [@johnmorrisdotca/kazu/regions](https://johnmorrisdotca.github.io/kazu/docs/api/regions/index.md): Regions rules - [@johnmorrisdotca/kazu/regions/play](https://johnmorrisdotca.github.io/kazu/docs/api/regions-play/index.md): Regions player - [@johnmorrisdotca/kazu/regions/draw](https://johnmorrisdotca.github.io/kazu/docs/api/regions-draw/index.md): Regions SVG - [@johnmorrisdotca/kazu/heyawake](https://johnmorrisdotca.github.io/kazu/docs/api/heyawake/index.md): Heyawake has its own room model alongside Kazu's number puzzles. - [@johnmorrisdotca/kazu/heyawake/play](https://johnmorrisdotca.github.io/kazu/docs/api/heyawake-play/index.md): Heyawake player - [@johnmorrisdotca/kazu/heyawake/draw](https://johnmorrisdotca.github.io/kazu/docs/api/heyawake-draw/index.md): Heyawake SVG - [@johnmorrisdotca/kazu](https://johnmorrisdotca.github.io/kazu/docs/api/main/index.md): Kazu 数: the Numbers family of grid puzzles. ## Optional - [Changelog](https://johnmorrisdotca.github.io/kazu/docs/changelog.md): every release - [Every export, in full](https://johnmorrisdotca.github.io/kazu/llms-full.txt) - [Source](https://github.com/johnmorrisdotca/kazu)