Skip to main content

einstein-tiling

Generate aperiodic tilings by the hat monotile as SVG images, using the clusters and matching rules of Smith, Myers, Kaplan and Goodman-Strauss, An aperiodic monotile.

It has no dependencies, and uses exact integer coordinates throughout.

Command line

$ einstein-tiling tiling --level 4 -o tiling.svg
$ einstein-tiling tiling --level 3 --metatiles --no-crop -o patch.svg
$ einstein-tiling clusters -o clusters.svg
$ einstein-tiling check --level 5
$ einstein-tiling tiling --colour 'H=#d0e4f5' --colour reflected=navy -o tiling.svg

The colour names are H, T, P and F for the hats in each kind of cluster, reflected for the reflected hats, outline, metatile and background. Any SVG colour works, including none.

Python

import einstein_tiling as et

tiles = et.supertile("H", level=4)
assert not et.label_violations(tiles)

with open("tiling.svg", "w") as f:
    f.write(et.tiling_svg(tiles, width=1200, colours={"reflected": "navy"}))

for cluster, reflected, vertices in et.hat_polygons(tiles):
    ...  # Each hat's (x, y) vertices, for use with any plotting library.

Citing

If you use this software, please cite it, and the papers it implements: GitHub's "Cite this repository" button gives the details from CITATION.cff.

  • David Smith, Joseph Samuel Myers, Craig S. Kaplan and Chaim Goodman-Strauss, "An aperiodic monotile", Combinatorial Theory 4(1) (2024), doi:10.5070/C64163843.

Licence

BSD-3-Clause. The substitution rules are adapted from hatviz by Craig S. Kaplan: see LICENSES/hatviz-BSD-3-Clause.txt.

Metadata

Release files for einstein-tiling 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for einstein-tiling 0.2.0
File Size Uploaded Provenance Actions
einstein_tiling-0.2.0.tar.gz 24.1 kB Without provenance Details for einstein_tiling-0.2.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for einstein-tiling 0.2.0
File Interpreter ABI Platform Actions
einstein_tiling-0.2.0-py3-none-any.whl Python 3 none any Details for einstein_tiling-0.2.0-py3-none-any.whl

Total release size: 40.5 kB

Release files / einstein_tiling-0.2.0.tar.gz

Download URL einstein_tiling-0.2.0.tar.gz
Size 24.1 kB
Tags Source
SHA-256 checksum
How to use checksums
212bc54deaa08000e982b106fddc4767941f82bb94db92a5ab81e6e400c8f8d3
BLAKE2b-256 checksum
How to use checksums
26042de8b6ea9bad20361dd4b1d9e7cb723161b7362bededd30c96954e6b6d0a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / einstein_tiling-0.2.0-py3-none-any.whl

Download URL einstein_tiling-0.2.0-py3-none-any.whl
Size 16.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0d2ede58d6f07bd0d009d0966624936af2e11cc4c855fdc05a4db0a88546b895
BLAKE2b-256 checksum
How to use checksums
7e5470c7cda1a02e15ec9b07395685daf9ac5acccc4d0ede6a2ccb77b28d7bd9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Security for einstein-tiling 0.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page