SkillAgentSearch skills...

Tiling

Python module `dualgrid` for generating arbitrary rhombic tilings in arbitrary numbers of dimensions, based on the de Bruijn grid method.

Install / Use

/learn @joshcol9232/Tiling
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

tiling

Tool for generating arbitrary rhombic tilings in arbitrary numbers of dimensions, based on the de Bruijn grid method.

Please see final_report.pdf for a complete overview of the method implemented in the code if you are interested.

If you find any issues/want to request a feature, please don't hesitate to contact me here: joshcol9232@gmail.com.

  • 11-Fold rotationally symmetric tiling. 11-Fold

  • Extracted section of icosahedral quasicrystal viewed down an axis of symmetry. 3D Icosahedral

Usage:

The dualgrid module contains the method itself, which will return a list of rhombohedra. There are then various methods in the utils module that enable you to render the shapes, save them to an STL file, and choose pre-defined bases. See main.py to get started, or the other examples in the folder.

Note: Ensure that main.py (or your Python file) is being executed from within tiling-main/ (or the folder containing the dualgrid folder), as the Python interpreter needs to be able to find the dualgrid module.

Dependencies:

  • numpy
  • matplotlib
  • networkx

Testing

To run the tests, run:

python -m pytest

This currently checks that no output has changed.

Collaboration, making changes:

Please raise an issue if a bug is found, or if a potential new feature should be discussed. For making changes to the code, please open a separate branch, following the git flow pattern:

i.e Make a new branch for a new feature: feature/new_feature, a bug: bugfix/name_of_bug, etc.

Then please test your changes and open a pull request for review.

Notes:

  • Filtering the generated nodes into a smaller region is important so that outliers are not included in the graph. E.g tiles that are not connected to the rest of the tiling - generate a 2D Penrose tiling without applying a filter and zoom out if you want to see for yourself. This is one minor caveat of the de Bruijn dualgrid method, but it is easily remedied by filtering.
View on GitHub
GitHub Stars4
CategoryDevelopment
Updated6mo ago
Forks3

Languages

Python

Security Score

82/100

Audited on Sep 18, 2025

No findings