Repolode
mxgmn

mxgmn/WaveFunctionCollapse

Wave Function Collapse 알고리즘으로 입력 예시 하나와 국소적으로 비슷한 비트맵과 타일맵을 생성하는 C# 프로그램입니다.

스타
25,410
포크
1,368
열린 이슈
10
마지막 커밋
3일 전

어떤 프로젝트인가요?

WaveFunctionCollapse는 샘플 이미지 하나 또는 타일 세트에서 새 비트맵이나 타일맵을 생성합니다. 출력에는 입력에 등장한 NxN 픽셀 패턴만 포함되므로, 새로운 전체 배치를 만들면서도 예시와 국소적으로 비슷한 결과를 얻습니다. 이름은 가능한 상태가 중첩된 상태에서 하나의 확정된 상태로 붕괴한다는 개념에서 유래했지만, 알고리즘은 실제 양자역학 대신 실수 계수를 사용합니다.

알고리즘은 관측되지 않은 영역 중 엔트로피가 가장 낮은 곳을 반복해서 선택하고, 입력의 패턴 빈도에 따라 확정된 상태로 붕괴시킨 뒤, 그 결과로 생긴 제약을 출력 전체에 전파합니다. 어떤 셀에서 가능한 선택지가 모두 제거되면 모순이 발생해 실행이 실패하는데, 프로젝트에 따르면 실제로는 드문 일입니다. 저장소에는 픽셀 샘플용 overlapping model과 인접 규칙이 있는 타일 세트용 simple tiled model이 모두 포함되어 있으며, 타일 인접 목록을 줄이는 대칭 시스템도 제공합니다.

이 프로젝트는 .NET 기반 콘솔 애플리케이션으로, samples.xml을 통해 설정하고 output 폴더에 결과를 저장합니다. 게임과 픽셀 아트에서 절차적 레벨 및 텍스처 생성에 널리 사용되며, 다른 언어로 포팅된 버전도 많습니다.

핵심 기능

  • 01입력 이미지 하나에 있는 NxN 패턴만 포함하는 출력 비트맵을 생성합니다.
  • 02픽셀 샘플용 overlapping model과 타일 세트용 simple tiled model을 지원합니다.
  • 03다음에 붕괴시킬 영역을 선택할 때 최소 엔트로피 방식을 사용합니다.
  • 04인접 목록의 크기를 줄이는 타일 대칭 시스템을 포함합니다.
  • 05samples.xml을 통해 설정하는 .NET 콘솔 애플리케이션으로 실행됩니다.

활용 사례

  • 직접 만든 타일 세트로 게임 레벨이나 던전 배치를 생성합니다.
  • 샘플 이미지와 비슷한 픽셀 아트 맵이나 텍스처를 만듭니다.
  • 디자이너가 지정한 제약 조건을 적용해 절차적 생성을 프로토타이핑합니다.
  • Wave Function Collapse 알고리즘을 연구하거나 가르칩니다.

토픽

자주 묻는 질문

WaveFunctionCollapse은(는) 무엇인가요?
Wave Function Collapse 알고리즘으로 입력 예시 하나와 국소적으로 비슷한 비트맵과 타일맵을 생성하는 C# 프로그램입니다. WaveFunctionCollapse는 샘플 이미지 하나 또는 타일 세트에서 새 비트맵이나 타일맵을 생성합니다. 출력에는 입력에 등장한 NxN 픽셀 패턴만 포함되므로, 새로운 전체 배치를 만들면서도 예시와 국소적으로 비슷한 결과를 얻습니다. 이름은 가능한 상태가 중첩된 상태에서 하나의 확정된 상태로 붕괴한다는 개념에서 유래했지만, 알고리즘은 실제 양자역학 대신 실수 계수를 사용합니다.
WaveFunctionCollapse은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
WaveFunctionCollapse은(는) Other 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
WaveFunctionCollapse은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. WaveFunctionCollapse의 마지막 커밋은 2026년 10월 15일입니다.
WaveFunctionCollapse은(는) 어디에 사용할 수 있나요?
직접 만든 타일 세트로 게임 레벨이나 던전 배치를 생성합니다. 샘플 이미지와 비슷한 픽셀 아트 맵이나 텍스처를 만듭니다. 디자이너가 지정한 제약 조건을 적용해 절차적 생성을 프로토타이핑합니다. Wave Function Collapse 알고리즘을 연구하거나 가르칩니다.
WaveFunctionCollapse은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/mxgmn/WaveFunctionCollapse

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트