☆ HyperTiler
HyperTiler makes creating patches of quasiperiodic tilings easy!
🌟 Highlights
- Create ANY dual-grid tiling defined by custom parameters.
- Generate tilings using established substitution rules, or make your own!
- Save tilings, tiling properties, and perform some basic spatial analysis.
ℹ️ Overview
My goal for HyperTiler was to create a friendly low/no-code tool that allows anyone to generate quasiperiodic tilings. It's aimed at tiling enthusiasts both inside and outside of academia: you can just use it to create nice patterns, or to create input files for theoretical simulation.
You can make tilings one of two ways: the dual-grid method, or by substitution rules. Both have an endless amount of flexibility, based on the input parameters.
🚀 Usage
Dual-grid mode
Dual-grid mode builds tilings using de Bruijn's method from two sets of vectors: tiling and grid. In default mode, you shape the tiling by adjusting the number of vectors, the number of grids (which sets the size of the tiling patch), and the grid shifts.
Advanced mode drops those defaults and lets you customise every vector individually - a far more powerful way to design fully custom tilings.
Substitution mode
Substitution mode builds tilings with substitution rules that are supplied in the form of a structured svg file. Tilings can be initiated with a single tile, or a seed svg file with an initial design.
The example svgs folder contains some sample files, otherwise, see the HyperTiler guide on how to create your own svgs.
Analysis
HyperTiler comes with a couple of tools for the analysis of the generated tiling - independent of which mode created it.
It can numerically compute the fast Fourier transform of the tiling's point set, and identify every distinct vertex type (or star) present. For anyone wanting to simulate models on a tiling, a network builder also produces a connectivity network with nearest-neighbour, next-nearest, and higher-order shell information.
⬇️ Installation
Pick whichever fits how you like to work. Every method below needs Python 3.12+ installed, except the standalone executable.
No code
PyPI package
pip install hypertiler
Then launch it with (from that same environment - activate it first if you used a virtualenv):
hypertiler
Git clone
git clone https://github.com/hyper-aperiodic/HyperTiler.git
Then for Windows, double-click scripts/setup.bat once, then scripts/run.bat each time after in the same directory. For Mac/Linux:
bash setup.sh
then
bash run.sh
Download as a zip
Download the repo as a zip - no git knowledge required. For Windows, double-click scripts/setup.bat once, then scripts/run.bat each time after in the same directory. For Mac/Linux:
bash setup.sh
then
bash run.sh
✍️ Authors
Sam Coates - University of Liverpool
💭 Use, Feedback, and Contributing
Used HyperTiler for some academic work? Cite me!
Have an idea for a contribution? Want to point out any bugs?
Or just email!
✍🏻 Acknowledgements
Work funded by EPSRC Grant No. EP/X011984/1.
With thanks to Ellie Weightman for stress-testing!
I started development of this code under the above grant, back in 2023. So the conceptualisation, application of mathematical methodology, design desisions, and initial back-breaking development of the codebase is all human-driven.
Claude Code was used to refactor, spell-check, organise, and polish off the UI.
Metadata
Release files for hypertiler 1.0.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 | |
|---|---|---|---|
| hypertiler-1.0.0.tar.gz | 61.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| hypertiler-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 128.2 kB
Release files / hypertiler-1.0.0.tar.gz
| Download URL | hypertiler-1.0.0.tar.gz |
|---|---|
| Size | 61.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1fd6c69f16da1032e691b3b0b520de3276e2853746c77666d776a1ce24fe71b4
|
|
BLAKE2b-256 checksum How to use checksums |
3f0b6eacc664dfed7996c116bac99aa8577cedda24bfb9adfd4c246d68078f7c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.9
|
Release files / hypertiler-1.0.0-py3-none-any.whl
| Download URL | hypertiler-1.0.0-py3-none-any.whl |
|---|---|
| Size | 66.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
70e14fec9b40445cb688ecf67fefa2216ffe1be5b7ce7207896e30a2628cb02e
|
|
BLAKE2b-256 checksum How to use checksums |
3e2ccb63f7bb4b3800df30c4d8c3ab0b2a0199eeeda9b2183696750e6295ffd6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.9
|