Namespace: Default
Inherits from: MonoBehaviour
Description: Main quantum-enhanced Wave Function Collapse generator component.
| Property | Type | Description |
|---|---|---|
gridSize |
Vector3Int | Dimensions of the generation grid |
seed |
string | Seed string for deterministic generation |
useRandomSeed |
bool | Whether to generate random seeds |
maxAttempts |
int | Maximum generation attempts before failure |
quantumCoherence |
float | Quantum coherence factor (0.0-1.0) |
tunnelingProbability |
float | Probability of quantum tunneling events |
roomBank |
RoomBank | Reference to room bank ScriptableObject |
difficultyCurve |
AnimationCurve | Difficulty scaling curve |
showDebugVisualization |
bool | Enable debug visualization |
debugMaterial |
Material | Material for debug visualization |
Task<bool> GenerateLevel()Generates a complete level using quantum WFC algorithm.
- Returns:
Task<bool>- True if generation succeeded
Task RegenerateLevel()Regenerates the current level with new parameters.
Dictionary<Vector3Int, WFCCore.Cell> GetGrid()Gets the current generation grid state.
- Returns:
Dictionary<Vector3Int, WFCCore.Cell>- Current grid
Dictionary<Vector3Int, GameObject> GetInstantiatedRooms()Gets all instantiated room GameObjects.
- Returns:
Dictionary<Vector3Int, GameObject>- Room instances
void ClearLevel()Clears all generated content.
Namespace: Default
Description: Core quantum WFC algorithm implementation.
WFCCore(Vector3Int size)Constructor for WFC core.
- Parameters:
size: Grid dimensions
void InitializeSuperpositions(List<RoomModule> allModules)Initializes quantum superposition states.
- Parameters:
allModules: Available room modules
Vector3Int GetLowestEntropyCell()Finds cell with minimum entropy.
- Returns:
Vector3Int- Cell position (-1,-1,-1 if none found)
RoomModule CollapseCell(Vector3Int position)Collapses a cell to a specific module.
- Parameters:
position: Cell position
- Returns:
RoomModule- Selected module (null if failed)
bool IsFullyCollapsed()Checks if generation is complete.
- Returns:
bool- True if all cells collapsed
void PropagateConstraints(Vector3Int position, RoomModule collapsedModule)Propagates constraints from collapsed cell.
- Parameters:
position: Cell positioncollapsedModule: Collapsed module
Dictionary<Vector3Int, Cell> GetGrid()Gets the generation grid.
- Returns:
Dictionary<Vector3Int, Cell>- Grid data
Represents a single grid cell with quantum properties.
Properties:
position: Vector3Int - Cell positionpossibleModules: List - Available modulesisCollapsed: bool - Collapse statecollapsedModule: RoomModule - Selected moduleentropy: float - Current entropyquantumPhase: float - Quantum phase (0-2π)superpositionAmplitude: float - Quantum amplitude
Namespace: Default
Description: Static utility class for entropy calculations.
static float CalculateShannonEntropy(List<RoomModule> modules)Calculates Shannon entropy for module set.
- Parameters:
modules: Module list
- Returns:
float- Entropy value
static float CalculateQuantumEntropy(List<RoomModule> modules, float superpositionAmplitude, float quantumPhase)Calculates quantum-enhanced entropy.
- Parameters:
modules: Module listsuperpositionAmplitude: Quantum amplitudequantumPhase: Quantum phase
- Returns:
float- Quantum entropy
static WFCCore.Cell FindMinimumEntropyCell(Dictionary<Vector3Int, WFCCore.Cell> grid)Finds cell with minimum entropy.
- Parameters:
grid: Generation grid
- Returns:
WFCCore.Cell- Minimum entropy cell
static Dictionary<Vector3Int, float> CalculateEntropyGradient(Dictionary<Vector3Int, WFCCore.Cell> grid)Calculates entropy gradient across grid.
- Parameters:
grid: Generation grid
- Returns:
Dictionary<Vector3Int, float>- Gradient map
Namespace: Default
Description: Static utility class for constraint solving.
static bool PropagateConstraints(Dictionary<Vector3Int, WFCCore.Cell> grid, Vector3Int position, RoomModule collapsedModule)Propagates constraints from collapsed cell.
- Parameters:
grid: Generation gridposition: Cell positioncollapsedModule: Collapsed module
- Returns:
bool- True if constraints changed
static bool ValidateAllConstraints(Dictionary<Vector3Int, WFCCore.Cell> grid)Validates all grid constraints.
- Parameters:
grid: Generation grid
- Returns:
bool- True if all constraints satisfied
static float CalculateConstraintSatisfaction(Dictionary<Vector3Int, WFCCore.Cell> grid)Calculates constraint satisfaction ratio.
- Parameters:
grid: Generation grid
- Returns:
float- Satisfaction ratio (0.0-1.0)
Namespace: Default
Description: Static utility class for pattern extraction and learning.
static Dictionary<Vector3Int, Pattern> ExtractPatterns(Dictionary<Vector3Int, WFCCore.Cell> grid, int patternSize = 2)Extracts patterns from completed grid.
- Parameters:
grid: Generation gridpatternSize: Pattern dimensions
- Returns:
Dictionary<Vector3Int, Pattern>- Extracted patterns
static PatternDictionary LearnFromExamples(List<Dictionary<Vector3Int, WFCCore.Cell>> exampleLevels, int patternSize = 2)Learns patterns from multiple examples.
- Parameters:
exampleLevels: List of example gridspatternSize: Pattern dimensions
- Returns:
PatternDictionary- Learned patterns
Namespace: Default
Inherits from: ScriptableObject
Description: ScriptableObject defining a room module with sockets and properties.
| Property | Type | Description |
|---|---|---|
prefab |
GameObject | Room prefab |
dimensions |
Vector3Int | Room dimensions |
sockets |
Socket[] | Connection sockets |
baseWeight |
float | Selection weight |
difficultyRange |
int[] | Difficulty range [min, max] |
tags |
string[] | Room tags |
bool ConnectsTo(RoomModule other, Direction dir)Checks if this module can connect to another.
- Parameters:
other: Other room moduledir: Connection direction
- Returns:
bool- True if compatible
Represents a connection socket.
Properties:
id: string - Socket identifierdirection: Direction - Socket directiontype: SocketType - Socket typeweight: int - Connection weight
North,East,South,West,Up,Down
Entrance,Exit,Connector,Special
Namespace: Default
Inherits from: ScriptableObject
Description: Manages collections of room modules.
| Property | Type | Description |
|---|---|---|
categories |
RoomCategory[] | Room categories |
standaloneRooms |
RoomModule[] | Standalone rooms |
List<RoomModule> GetAllModules()Gets all available modules.
- Returns:
List<RoomModule>- All modules
List<RoomModule> GetModulesByCategory(string categoryName)Gets modules in specific category.
- Parameters:
categoryName: Category name
- Returns:
List<RoomModule>- Category modules
List<RoomModule> GetModulesByTag(string tag)Gets modules with specific tag.
- Parameters:
tag: Tag string
- Returns:
List<RoomModule>- Tagged modules
void AddRoom(RoomModule room, string categoryName = null)Adds a room to the bank.
- Parameters:
room: Room modulecategoryName: Optional category
RoomModule GetRandomRoom(System.Random random = null)Gets a random room.
- Parameters:
random: Optional random generator
- Returns:
RoomModule- Random room
Namespace: Default
Inherits from: ScriptableObject
Description: Extended room statistics and data management.
RoomStats GetRoomStats(string roomName)Gets statistics for a room.
- Parameters:
roomName: Room name
- Returns:
RoomStats- Room statistics
List<RoomStats> GetRoomsByType(RoomType roomType)Gets rooms of specific type.
- Parameters:
roomType: Room type
- Returns:
List<RoomStats>- Rooms of type
List<string> ValidateRoomData()Validates room data integrity.
- Returns:
List<string>- Validation errors
Namespace: Default
Description: Static utility class for room connections.
static bool CanConnect(RoomModule module1, RoomModule module2, RoomModule.Direction direction)Checks if modules can connect.
- Parameters:
module1: First modulemodule2: Second moduledirection: Connection direction
- Returns:
bool- True if connectable
static List<RoomModule.Direction> GetConnectionPoints(RoomModule module)Gets module connection points.
- Parameters:
module: Room module
- Returns:
List<Direction>- Connection directions
static Dictionary<Vector3Int, List<ConnectionIssue>> ValidateConnections(Dictionary<Vector3Int, WFCCore.Cell> grid)Validates grid connections.
- Parameters:
grid: Generation grid
- Returns:
Dictionary<Vector3Int, List<ConnectionIssue>>- Connection issues
Namespace: Default
Inherits from: ScriptableObject
Description: Manages predefined room templates.
RoomTemplate GetTemplate(string templateName)Gets template by name.
- Parameters:
templateName: Template name
- Returns:
RoomTemplate- Room template
bool ApplyTemplate(RoomTemplate template, Vector3Int position, Dictionary<Vector3Int, WFCCore.Cell> grid, RoomBank roomBank)Applies template to grid.
- Parameters:
template: Room templateposition: Application positiongrid: Generation gridroomBank: Room bank reference
- Returns:
bool- True if applied successfully
Namespace: Default
Inherits from: MonoBehaviour
Description: High-level level orchestration system.
| Property | Type | Description |
|---|---|---|
wfcGenerator |
WFCGenerator | WFC generator reference |
roomBank |
RoomBank | Room bank reference |
roomTemplates |
RoomTemplates | Room templates reference |
seedManager |
SeedManager | Seed manager reference |
targetRoomCount |
int | Target number of rooms |
branchingFactor |
float | Level branching factor |
includeStartRoom |
bool | Include start room |
includeBossRoom |
bool | Include boss room |
includeTreasureRooms |
bool | Include treasure rooms |
maxGenerationAttempts |
int | Maximum generation attempts |
generationTimeout |
float | Generation timeout (seconds) |
Task<bool> GenerateCompleteLevel()Generates a complete level with all features.
- Returns:
Task<bool>- True if successful
Dictionary<Vector3Int, RoomInstance> GetRoomInstances()Gets all room instances.
- Returns:
Dictionary<Vector3Int, RoomInstance>- Room instances
Namespace: Default
Inherits from: MonoBehaviour
Description: Manages chunk loading and unloading for infinite worlds.
| Property | Type | Description |
|---|---|---|
chunkSize |
Vector3Int | Size of each chunk |
maxLoadedChunks |
int | Maximum loaded chunks |
chunkLoadDistance |
int | Distance to load chunks |
chunkUnloadDistance |
int | Distance to unload chunks |
wfcGenerator |
WFCGenerator | WFC generator reference |
roomBank |
RoomBank | Room bank reference |
generationPriority |
float | Generation priority factor |
void RequestChunkLoad(Vector3Int chunkCoord)Requests chunk loading.
- Parameters:
chunkCoord: Chunk coordinates
Vector3Int WorldToChunkCoord(Vector3 worldPosition)Converts world position to chunk coordinates.
- Parameters:
worldPosition: World position
- Returns:
Vector3Int- Chunk coordinates
Vector3Int ChunkToWorldPosition(Vector3Int chunkCoord)Converts chunk coordinates to world position.
- Parameters:
chunkCoord: Chunk coordinates
- Returns:
Vector3Int- World position
ChunkStatistics GetStatistics()Gets chunk loading statistics.
- Returns:
ChunkStatistics- Loading statistics
Namespace: Default
Inherits from: MonoBehaviour
Description: Manages infinite world generation with biomes and features.
| Property | Type | Description |
|---|---|---|
chunkManager |
ChunkManager | Chunk manager reference |
seed |
int | World seed |
useRandomSeed |
bool | Use random seed |
enableBiomes |
bool | Enable biome generation |
enableHeightVariation |
bool | Enable height variation |
enableSpecialEvents |
bool | Enable special events |
WorldChunk GetWorldChunk(Vector3Int chunkCoord)Gets world chunk data.
- Parameters:
chunkCoord: Chunk coordinates
- Returns:
WorldChunk- World chunk data
BiomeType GetBiomeAtPosition(Vector3 worldPosition)Gets biome at world position.
- Parameters:
worldPosition: World position
- Returns:
BiomeType- Biome type
WorldStatistics GetStatistics()Gets world generation statistics.
- Returns:
WorldStatistics- World statistics
Namespace: Default
Inherits from: MonoBehaviour
Description: Manages deterministic seeds for reproducible generation.
| Property | Type | Description |
|---|---|---|
globalSeed |
string | Global seed string |
useGlobalSeed |
bool | Use global seed |
levelSeed |
int | Level seed |
layoutSeed |
int | Layout seed |
difficultySeed |
int | Difficulty seed |
void InitializeSeeds()Initializes all seeds.
Random.State GetRandomStateForCategory(SeedCategory category)Gets random state for category.
- Parameters:
category: Seed category
- Returns:
Random.State- Random state
string GenerateDeterministicSeed(int playerLevel, string playerId)Generates deterministic seed.
- Parameters:
playerLevel: Player levelplayerId: Player identifier
- Returns:
string- Deterministic seed
int GenerateQuantumSeed(Vector3Int position, float time)Generates quantum seed.
- Parameters:
position: Position vectortime: Time value
- Returns:
int- Quantum seed
Namespace: Default
Inherits from: MonoBehaviour
Description: Manages adaptive difficulty scaling.
List<RoomModule> FilterModules(List<RoomModule> allModules, int playerLevel, Vector3Int position)Filters modules by difficulty.
- Parameters:
allModules: All available modulesplayerLevel: Player levelposition: Position vector
- Returns:
List<RoomModule>- Filtered modules
void SetCurrentDifficulty(int difficulty)Sets current difficulty level.
- Parameters:
difficulty: Difficulty level
float GetDifficultyMultiplier(Vector3Int position)Gets difficulty multiplier for position.
- Parameters:
position: Position vector
- Returns:
float- Difficulty multiplier
Namespace: Default
Description: 3D grid coordinate system management.
GridSystem(Vector3Int size, Vector3 cellSize = default, Vector3 origin = default)Constructor for grid system.
- Parameters:
size: Grid sizecellSize: Cell size (default Vector3.one)origin: Grid origin (default Vector3.zero)
Vector3 GridToWorld(Vector3Int gridPosition)Converts grid coordinates to world position.
- Parameters:
gridPosition: Grid position
- Returns:
Vector3- World position
Vector3Int WorldToGrid(Vector3 worldPosition)Converts world position to grid coordinates.
- Parameters:
worldPosition: World position
- Returns:
Vector3Int- Grid position
bool IsValidGridPosition(Vector3Int position)Checks if grid position is valid.
- Parameters:
position: Grid position
- Returns:
bool- True if valid
Vector3Int[] GetNeighbors(Vector3Int position, bool includeDiagonals = false)Gets neighboring positions.
- Parameters:
position: Center positionincludeDiagonals: Include diagonal neighbors
- Returns:
Vector3Int[]- Neighbor positions
Namespace: Default
Description: Static mathematical utility functions.
static float DistanceToLineSegment(Vector3 point, Vector3 lineStart, Vector3 lineEnd)Calculates distance to line segment.
- Parameters:
point: Test pointlineStart: Line startlineEnd: Line end
- Returns:
float- Distance
static Vector2 RandomPointInCircle(float radius, System.Random random = null)Generates random point in circle.
- Parameters:
radius: Circle radiusrandom: Optional random generator
- Returns:
Vector2- Random point
static Vector3 RandomPointInSphere(float radius, System.Random random = null)Generates random point in sphere.
- Parameters:
radius: Sphere radiusrandom: Optional random generator
- Returns:
Vector3- Random point
static List<Vector2> GeneratePoissonDiskDistribution(float width, float height, float minDistance, int maxAttempts = 30, System.Random random = null)Generates Poisson disk distribution.
- Parameters:
width: Distribution widthheight: Distribution heightminDistance: Minimum point distancemaxAttempts: Maximum placement attemptsrandom: Optional random generator
- Returns:
List<Vector2>- Point distribution
Namespace: Default
Inherits from: MonoBehaviour
Description: Manages asynchronous task processing.
static void EnqueueTask(string taskId, Task task, System.Action onComplete = null, System.Action<AsyncTask> onProgress = null)Enqueues a task for processing.
- Parameters:
taskId: Task identifiertask: Task to processonComplete: Completion callbackonProgress: Progress callback
static void EnqueueGenerationTask(string taskId, System.Func<Task> generationFunction, System.Action onComplete = null)Enqueues a generation task.
- Parameters:
taskId: Task identifiergenerationFunction: Generation functiononComplete: Completion callback
static int GetQueuedTaskCount()Gets number of queued tasks.
- Returns:
int- Queue count
static int GetRunningTaskCount()Gets number of running tasks.
- Returns:
int- Running count
Namespace: Default
Description: Static visualization utility functions.
static void VisualizeWFCGrid(Dictionary<Vector3Int, WFCCore.Cell> grid, Transform parent = null, float cellSize = 1f)Visualizes WFC grid state.
- Parameters:
grid: Generation gridparent: Parent transformcellSize: Cell visualization size
static void VisualizeEntropyHeatmap(Dictionary<Vector3Int, WFCCore.Cell> grid, Transform parent = null, float cellSize = 1f)Visualizes entropy heatmap.
- Parameters:
grid: Generation gridparent: Parent transformcellSize: Cell visualization size
static void CreatePerformanceMonitor(Transform parent = null)Creates performance monitor.
- Parameters:
parent: Parent transform
StartArea,BossArena,TreasureRoom,PuzzleArea,Corridor,Junction,DeadEnd,Custom
Plains,Forest,Desert,Mountains,Swamp,Tundra,Volcano
None,Treasure,EnemyCamp,Ruins,MagicalSite,DungeonEntrance,ResourceNode
loadedChunks: intunloadedChunks: intpendingGenerations: inttotalChunks: int
queuedTasks: intrunningTasks: intmaxConcurrentTasks: int
Namespace: UnityEditor
Inherits from: Editor
Description: Custom Unity inspector for RoomModule.
- Custom property drawers for sockets
- Tag management interface
- Real-time validation
- Quick setup buttons
Namespace: UnityEditor
Inherits from: EditorWindow
Description: Real-time WFC debugging window.
- Live generation monitoring
- Entropy visualization
- Quantum state inspection
- Debug data export
- Performance metrics
Namespace: UnityEditor
Inherits from: EditorWindow
Description: Machine learning pattern extraction tool.
- Multi-example pattern learning
- Baked pattern export
- Pattern statistics
- Scene setup automation
// Attach WFCGenerator to GameObject
WFCGenerator generator = GetComponent<WFCGenerator>();
generator.gridSize = new Vector3Int(10, 1, 10);
generator.quantumCoherence = 0.8f;
// Generate level
await generator.GenerateLevel();// Configure quantum parameters
generator.quantumCoherence = 0.6f; // More creative
generator.tunnelingProbability = 0.1f; // Allow emergence
// Use custom room bank
generator.roomBank = myCustomRoomBank;
// Generate with seed
generator.seed = "my_custom_level";
await generator.GenerateLevel();// Set up infinite generation
InfiniteGenerator infiniteGen = gameObject.AddComponent<InfiniteGenerator>();
infiniteGen.enableBiomes = true;
infiniteGen.enableSpecialEvents = true;
// Configure chunk manager
ChunkManager chunkManager = GetComponent<ChunkManager>();
chunkManager.chunkSize = new Vector3Int(16, 1, 16);
chunkManager.chunkLoadDistance = 3;This API reference covers the complete Quantum-Inspired WFC system. For implementation details, see the WFC_Implementation.md guide.