{"id":16854859,"url":"https://github.com/tommyettinger/multitilebluenoise","last_synced_at":"2025-04-11T07:15:12.579Z","repository":{"id":138670624,"uuid":"220951229","full_name":"tommyettinger/MultiTileBlueNoise","owner":"tommyettinger","description":"Storage for blue noise textures, including mixed-tiling textures, in results/","archived":false,"fork":false,"pushed_at":"2023-10-28T04:11:19.000Z","size":43727,"stargazers_count":17,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-25T04:52:29.716Z","etag":null,"topics":["blue-noise","dithering","procedural-generation","tiling"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tommyettinger.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-11-11T09:59:55.000Z","updated_at":"2024-06-17T18:30:19.000Z","dependencies_parsed_at":null,"dependency_job_id":"130a9e6b-4643-47df-8f77-d632ad8fe466","html_url":"https://github.com/tommyettinger/MultiTileBlueNoise","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tommyettinger%2FMultiTileBlueNoise","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tommyettinger%2FMultiTileBlueNoise/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tommyettinger%2FMultiTileBlueNoise/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tommyettinger%2FMultiTileBlueNoise/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tommyettinger","download_url":"https://codeload.github.com/tommyettinger/MultiTileBlueNoise/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248358603,"owners_count":21090405,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blue-noise","dithering","procedural-generation","tiling"],"created_at":"2024-10-13T13:57:28.264Z","updated_at":"2025-04-11T07:15:12.545Z","avatar_url":"https://github.com/tommyettinger.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MultiTileBlueNoise\nGenerates blue noise with an expansion on https://github.com/Atrix256/VoidAndCluster ; also included a library of generated blue noise textures.\n\nYou are probably going to want the blue noise textures rather than the generator, to be honest. The generator is\nnot much different from the VoidAndCluster repo it is based on. The generated textures are... well, more special.\nThey are in the `results` folder, and include \"omni-tiling\" blue noise textures, which are like Wang tiles but\nhave no constraints for what other textures they may be placed next to (they tile with any texture in their\ngroup). There are also triangular-mapped versions of these. The best omni-tiling textures are in the `omni_equal`\nand `omni_tri_equal` directories; these are equivalent to normal blue noise in how they distribute color/byte\nvalues, and have 32x32, 64x64, and 128x128 textures. The `omni` and `omni_tri` directories are also usable, but\naren't as even with how frequently colors appear. The `standard` and `tri` folders have normal blue noise\ntextures that don't have the omni-tiling property, though they do have the correct color frequencies. The folders\nin `results` have small files with names that say what the sigma is for that directory; it's always 1.9 now, but\nthe older blue noise textures in `results` (not a subdirectory of it) have a higher sigma that I don't remember.\n\nAll of the textures in `results` are made with the BlueNoise classes in\n[SquidSquad's tests](https://github.com/yellowstonegames/SquidSquad/tree/main/squidworld/src/test/java/com/github/yellowstonegames/world);\nthat's Java code. It's short but quite complex. The omni-tiling generators work by using a modified version of Ulichney's\nvoid-and-cluster technique, based off of\n[Bart Wronski's beautifully simple generator](https://bartwronski.com/2021/04/21/superfast-void-and-cluster-blue-noise-in-python-numpy-jax/).\nThey split the parent blue noise into 64 or 16 sectors (each will be used to make a different blue noise texture), and where void-and-cluster\n(in Wronski's version) normally propagates \"energy\" into the surrounding area, wrapping at the parent's edges, when this propagates energy\nacross any sector edge, it wraps across every corresponding opposite edge of a sector. The omni_equal varieties also track how many times\neach sector has been assigned a value, and will avoid placing more energy into a sector that has already been given the full allotment.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftommyettinger%2Fmultitilebluenoise","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftommyettinger%2Fmultitilebluenoise","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftommyettinger%2Fmultitilebluenoise/lists"}