Repolode
mxgmn

mxgmn/WaveFunctionCollapse

Programa em C# que gera bitmaps e tilemaps localmente semelhantes a um exemplo de entrada, usando o algoritmo Wave Function Collapse.

Estrelas
25,410
Forks
1,368
Issues abertas
10
Último commit
há 4 dias

O que é?

WaveFunctionCollapse gera novos bitmaps ou tilemaps a partir de uma única imagem de amostra ou de um conjunto de tiles. As saídas contêm apenas padrões de pixels NxN presentes na entrada, então o resultado se parece localmente com o exemplo, mas forma novos layouts globais. O nome vem da ideia de uma superposição de estados possíveis que colapsa em um estado definido, embora o algoritmo use coeficientes de valores reais, e não mecânica quântica de fato.

O algoritmo escolhe repetidamente a região não observada de menor entropia, colapsa essa região para um estado definido de acordo com as frequências dos padrões na entrada e propaga as restrições resultantes pela saída. Se todas as opções de alguma célula forem eliminadas, ocorre uma contradição e a execução falha — algo que, segundo o projeto, raramente acontece na prática. O repositório inclui tanto um modelo sobreposto para amostras baseadas em pixels quanto um modelo simples de tiles para tilesets com regras de adjacência, além de um sistema de simetria para reduzir as listas de adjacência dos tiles.

O projeto é uma aplicação de console baseada em .NET, configurada por meio de samples.xml, e grava a saída em uma pasta chamada output. É amplamente usado para gerar níveis e texturas de forma procedural em jogos e pixel art, e conta com muitas versões em outras linguagens.

Recursos principais

  • 01Gera bitmaps de saída que contêm apenas padrões NxN presentes em uma única imagem de entrada.
  • 02Oferece um modelo sobreposto para amostras de pixels e um modelo simples de tiles para tilesets.
  • 03Usa a seleção de entropia mínima para escolher qual região colapsar em seguida.
  • 04Inclui um sistema de simetria de tiles para reduzir o tamanho das listas de adjacência.
  • 05É executado como uma aplicação de console .NET configurada por meio de samples.xml.

Casos de uso

  • Gerar níveis de jogos ou layouts de masmorras a partir de tilesets feitos à mão.
  • Criar mapas em pixel art ou texturas semelhantes a uma imagem de amostra.
  • Criar protótipos de geração procedural com restrições definidas por um designer.
  • Estudar ou ensinar o algoritmo Wave Function Collapse.

Tópicos

Perguntas frequentes

O que é WaveFunctionCollapse?
Programa em C# que gera bitmaps e tilemaps localmente semelhantes a um exemplo de entrada, usando o algoritmo Wave Function Collapse. WaveFunctionCollapse gera novos bitmaps ou tilemaps a partir de uma única imagem de amostra ou de um conjunto de tiles. As saídas contêm apenas padrões de pixels NxN presentes na entrada, então o resultado se parece localmente com o exemplo, mas forma novos layouts globais. O nome vem da ideia de uma superposição de estados possíveis que colapsa em um estado definido, embora o algoritmo use coeficientes de valores reais, e não mecânica quântica de fato.
WaveFunctionCollapse é gratuito? Qual é a licença?
WaveFunctionCollapse é open source sob a licença Other. Confira os termos da licença antes de usá-lo em produtos comerciais.
WaveFunctionCollapse ainda é mantido?
Manutenção ativa. O último commit de WaveFunctionCollapse foi em 15 de out. de 2026.
Para que posso usar WaveFunctionCollapse?
Gerar níveis de jogos ou layouts de masmorras a partir de tilesets feitos à mão. Criar mapas em pixel art ou texturas semelhantes a uma imagem de amostra. Criar protótipos de geração procedural com restrições definidas por um designer. Estudar ou ensinar o algoritmo Wave Function Collapse.
Onde consigo WaveFunctionCollapse?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/mxgmn/WaveFunctionCollapse

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados