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)
| 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)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| 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.