A game by Gijs van Tulder
Play online! • Tilings • Settings • Custom game • Translations • Development
Place tiles with matching colors to make shapes and fill the board.

Tilings
Play one of the nine tiling patterns:
![]() Square |
![]() Triangle |
![]() Rhombus |
|---|---|---|
![]() |
![]() |
![]() |
| Wikipedia | Wikipedia | Wikipedia |
![]() Cairo pentagonal |
![]() Hexagonal |
Deltoidal-trihexagonal |
|---|---|---|
![]() |
![]() |
![]() |
| Wikipedia | Wikipedia | Wikipedia |
Penrose P3 |
Snub square |
Ammann-Beenker |
|---|---|---|
![]() |
![]() |
![]() |
| Wikipedia | Wikipedia | Wikipedia |
Settings
Click the hamburger menu to change the settings of the current game:

| Option | Action |
|---|---|
| Return to the main menu. | |
| Choose a custom tiling and rules. | |
| Restart the current game. | |
| Show all tile outlines. | |
| Show where the current tile can be placed. | |
| Automatically rotate the tile to make it fit. | |
| Snap tiles into place while dragging. |
Play a custom game
Customize shapes and colors in the design menu:

Tiling
![]() |
![]() |
![]() |
![]() |
![]() |
|---|---|---|---|---|
| Square | Triangle | Rhombus | Pentagon | Hexagon |
![]() |
![]() |
![]() |
![]() |
|---|---|---|---|
| Deltoidal- trihexagonal |
Penrose | Snub square |
Ammann- Beenker |
Number of colors
![]() |
![]() |
![]() |
![]() |
![]() |
|---|---|---|---|---|
| Six | Five | Four | Three | Two |
Tile colorings
![]() |
![]() |
![]() |
![]() |
|---|---|---|---|
| Mixed | All unique | Two colors | Single color |
Matching rule
![]() |
![]() |
|---|---|
| Touching tiles must have the same color |
Touching tiles must have different colors |
Scoring rule
![]() |
![]() |
![]() |
![]() |
![]() |
|---|---|---|---|---|
| Closed area | Single tile | Convex shape | Full vertex | Holes |
Translations
Contribute to the translation of this game via Weblate.
Development
Tessel is written in TypeScript and uses HTML, SVG and CSS. It can be built using a recent Node version (tested for 20+). It can be played directly in the browser or installed as a Progressive Web App.
Building for web / PWA
The plain HTML/JS/CSS version can be built using Parcel.
# install dependencies
npm ci
# run all tests
npm run test
# run a local development server
npm run serve
# or build JavaScript and HTML in dist/
npm run build
Building for Android
An Android application can be built with Capacitor. In addition to the standard Node/NPM dependencies, Capacitor requires the Android SDK. See the instructions on the Capacitor website.
# install dependencies
npm ci
# build Capacitor-ready JavaScript and HTML in dist-capacitor/
npm run build-cap-html
# build and run in the Android emulator
npx cap run android
# or build the Android app for release
npx cap build android --androidreleasetype APK --signing-type apksigner
# (this will ask for the parameters to your signing keys)
License
Copyright © 2025 by Gijs van Tulder.
The source code of this game is licensed under the GPL-3.0 license.
Fork me on GitHub
































