Об этом проекте

# WaveFunctionCollapse Эта программа генерирует растровые изображения, локально похожие на входное изображение. Локальное сходство означает, что выходные данные содержат только те шаблоны пикселей NxN, которые присутствуют во входных данных, а распределение шаблонов в выходных данных аналогично распределению во входных. Алгоритм инициализирует выходные данные в суперпозиции возможных состояний, затем итеративно наблюдает области с наименьшей энтропией Шеннона и распространяет ограничения, в конечном итоге схлопываясь в определенное состояние. Могут возникать противоречия, избежать которых NP-сложно, но на практике это редкость. Репозиторий включает основной алгоритм, примеры и документацию. Он поддерживает как перекрывающиеся, так и простые мозаичные модели, с опциями для симметрии, ограничений и более высоких измерений. Код представляет собой консольное приложение, написанное на C# с использованием .NET Core, без внешних зависимостей. Его можно собрать с помощью `dotnet run` или `dotnet publish`. Проект вдохновил множество портов на другие языки (C++, Python, Rust, JavaScript и т.д.) и адаптаций для игровых движков, таких как Unity, Unreal Engine и Godot. Он использовался в коммерческих играх, таких как Bad North, Caves of Qud и Townscaper, и привел к академическим исследованиям. В README также обсуждаются связанные алгоритмы, такие как ConvChain и синтез текстур, и приводится подробное описание алгоритма и ссылки на предыдущие работы.