This script combines the concepts of Perlin Noise and Wang Tiles to generate a set of non-periodically tileable noise images.
Based on the work of David Maung, Michael Cohen, Jonathan Shade, Stefan Hiller, and Oliver Deussen.
usage: tile_generator.py [-h] [--output OUTPUT] [--output-name OUTPUT_NAME] [--output-format OUTPUT_FORMAT] [--seed SEED] --tile-size TILE_SIZE [--frequency FREQUENCY] [--period PERIOD]
[--amplitude AMPLITUDE] [--octaves OCTAVES] [--x-colors X_COLORS] [--y-colors Y_COLORS] [--n-choices N_CHOICES] [--colorize-edges]
options:
-h, --help show this help message and exit
--output OUTPUT Path to output directory
--output-name OUTPUT_NAME
Name to prepend to all output files. Default = tile
--output-format OUTPUT_FORMAT
Output file type. Default = png
--seed SEED Seed for random number generation. Default = random seed
Perlin noise settings:
--tile-size TILE_SIZE
Size of tiles (length of one side in pixels, must be a power of 2)
--frequency FREQUENCY
Frequency of Perlin lattice points in pixels, overrides --period. Default = None
--period PERIOD Number of pixels between Perlin lattice points; inverse of frequency. Default = 8
--amplitude AMPLITUDE
Delta between min and max value. Default = 1.0
--octaves OCTAVES Number of noise waves to combine; a higher value results in more detail. Default = 1
Wang tile settings:
Total number of tiles will be x_colors * y_colors * n_choices.
--x-colors X_COLORS Number of colors to use when tiling left-right. Default = 2
--y-colors Y_COLORS Number of colors to use when tiling up-down. Default = 2
--n-choices N_CHOICES
Number of alternative tile options for each unique pair of tile up-left colors. Default = 2
--colorize-edges Colorize edges in output for easier visual matching. Desaturate to restore original images.