Parameters

Every parameter of Λ, as the desktop app and the lab show them. Names in code are the JSON field names, so a Λ copied from one frontend loads in the other. Pass a path like growth.rooms to read or set it.

Grid and size

Defines the available space and how many blocks make up the floor.

ParameterNameValuesWhat it does
colsColumns1 – 64Number of columns. More columns increase the potential width of the floor.
rowsRows1 – 64Number of rows. More rows increase the potential height of the floor.
cellWCell width (px)1 – 5000Width of each grid cell. Large blocks can span several cells.
cellHCell height (px)1 – 5000Height of each grid cell. Large blocks can span several cells.
gapRoom inset (px)0 – 1000Inset applied to rooms inside their blocks to keep space between neighbors.
bigLarge blocks0 – 1000Maximum number of large blocks the generator tries to place.
dropFraction of free cells0 – 1Fraction of free cells reserved for possible leaf chambers.
layoutJitterGrid irregularity0 – 0.45Shifts the inner grid lines. The generator lowers the value if there is not enough space for a minimum room.
rotateRoomsRotate polygonal shapeson / offAllows polygonal shapes to rotate in steps of 90° or 45° in octilinear mode.

Room shapes

Higher weights make a shape more likely; limits control how many of each type.

ParameterNameValuesWhat it does
weights.rectWeight · rectangular0 – 1000Draw weight for rooms of this shape. It is relative to the other weights and does not need to sum to 1.
weights.discWeight · circular0 – 1000Draw weight for rooms of this shape. It is relative to the other weights and does not need to sum to 1.
weights.octWeight · octagonal0 – 1000Draw weight for rooms of this shape. It is relative to the other weights and does not need to sum to 1.
weights.LWeight · L-shaped0 – 1000Draw weight for rooms of this shape. It is relative to the other weights and does not need to sum to 1.
weights.starWeight · truncated star0 – 1000Draw weight for rooms of this shape. It is relative to the other weights and does not need to sum to 1.
maxOf.rectMax · rectangular0 – 10000Limit of rooms of this shape. If the limits sum too low, the generator may exceed them.
maxOf.discMax · circular0 – 10000Limit of rooms of this shape. If the limits sum too low, the generator may exceed them.
maxOf.octMax · octagonal0 – 10000Limit of rooms of this shape. If the limits sum too low, the generator may exceed them.
maxOf.LMax · L-shaped0 – 10000Limit of rooms of this shape. If the limits sum too low, the generator may exceed them.
maxOf.starMax · truncated star0 – 10000Limit of rooms of this shape. If the limits sum too low, the generator may exceed them.
starCellsMinimum cells for a star1 – 1000Minimum cells for a star. Adjust this value and watch how it changes the floor layout.
homophilyPreference for neighboring shapes-1 – 1A positive value brings rooms of the same shape closer; negative favors different shapes; zero ignores neighbors.

Directions and doors

Controls the directions allowed for corridors and how doors are sampled.

ParameterNameValuesWhat it does
mDirection alphabet4 directions, 8 directions4 allows 90° angles. 8 also allows 45° diagonals.
discPortsDoors per circular room4, 8, 16Number of possible directions on the circular edge. Directions outside the active alphabet are discarded.
portStepStep between doors (px)0.1 – 10000Distance between attempted door positions. A smaller step tries more positions and raises the cost.

Corridors and junctions

Measurements in pixels. Weights favor kinds of path; costs change the choice between valid routes.

ParameterNameValuesWhat it does
widthCorridor width (px)0.1 – 10000Physical width of each corridor.
clearClearance σ (px)0 – 1000Minimum distance between corridors and rooms or corridors they do not connect to.
exitExit stretch (px)0.1 – 10000Minimum length the corridor runs after leaving the door before turning.
segMinimum segment (px)0.1 – 10000Minimum length of each inner corridor segment.
minLenMinimum distance between rooms (px)0.1 – 10000Requires both the path and the direct distance between connected rooms to reach this length.
maxBendsMaximum bends0, 1, 2, 4, 5, 6Maximum number of bends. Values from 4 to 6 allow more winding W detours.
pIWeight · straight I0 – 1000Relative weight of a straight link, without bends.
pLWeight · one L bend0 – 1000Relative weight of a link with one bend.
pZWeight · two bends Z/U0 – 1000Relative weight of paths with two bends, in Z or U.
pWWeight · W detour0 – 1000Weight of W detours; there are alternatives only when at least four bends are allowed.
pTWeight · T junction0 – 1000Relative weight for linking a room to an existing corridor and forming a T junction.
pXWeight · X crossing0 – 1000Relative weight for crossing an existing corridor and forming an X junction.
costBendCost per bend0 – 1000Penalty added for each bend. A higher value favors straight paths.
costLenCost per pixel0 – 1000Penalty multiplied by the path length in pixels.
cost45Cost per 45° bend0 – 1000Additional penalty for each diagonal 45° bend.
costFacingBonus for facing doors0 – 1000Discount when doors face each other and allow a straight link.

Shape compatibility

Each value multiplies the chance of connecting two room types. Zero forbids the link; one keeps the normal chance.

ParameterNameValuesWhat it does
mix.rect-rectrectangular × rectangular0 – 1Compatibility between two shapes: zero forbids the link; one keeps the normal chance.
mix.rect-discrectangular × circular0 – 1Compatibility between two shapes: zero forbids the link; one keeps the normal chance.
mix.rect-octrectangular × octagonal0 – 1Compatibility between two shapes: zero forbids the link; one keeps the normal chance.
mix.rect-Lrectangular × L-shaped0 – 1Compatibility between two shapes: zero forbids the link; one keeps the normal chance.
mix.rect-starrectangular × truncated star0 – 1Compatibility between two shapes: zero forbids the link; one keeps the normal chance.
mix.disc-disccircular × circular0 – 1Compatibility between two shapes: zero forbids the link; one keeps the normal chance.
mix.disc-octcircular × octagonal0 – 1Compatibility between two shapes: zero forbids the link; one keeps the normal chance.
mix.disc-Lcircular × L-shaped0 – 1Compatibility between two shapes: zero forbids the link; one keeps the normal chance.
mix.disc-starcircular × truncated star0 – 1Compatibility between two shapes: zero forbids the link; one keeps the normal chance.
mix.oct-octoctagonal × octagonal0 – 1Compatibility between two shapes: zero forbids the link; one keeps the normal chance.
mix.oct-Loctagonal × L-shaped0 – 1Compatibility between two shapes: zero forbids the link; one keeps the normal chance.
mix.oct-staroctagonal × truncated star0 – 1Compatibility between two shapes: zero forbids the link; one keeps the normal chance.
mix.L-LL-shaped × L-shaped0 – 1Compatibility between two shapes: zero forbids the link; one keeps the normal chance.
mix.L-starL-shaped × truncated star0 – 1Compatibility between two shapes: zero forbids the link; one keeps the normal chance.
mix.star-startruncated star × truncated star0 – 1Compatibility between two shapes: zero forbids the link; one keeps the normal chance.

Connections and density

Picks candidate room pairs and how many cycles the generator tries to create.

ParameterNameValuesWhat it does
proximityHow to choose pairsRNG, Gabriel, NearRNG and Gabriel filter pairs by geometric proximity. Near uses a maximum radius.
nearRadius between centers (px)0.1 – 10000Maximum radius between room centers in Near mode; ignored in the other modes.
deltaDensity δ0 – 1Fraction of the cycle reference the generator tries to reach. Higher values favor shortcuts and alternative routes.

Topology profile

Pick a connectivity pattern or tune its requirements; the generator tries to satisfy them without breaking the geometric rules.

ParameterNameValuesWhat it does
topology.profileProfileClassic, Backbone, Hub, Redundant exit, Long loopClassic keeps the base behavior; other profiles require branches, a hub, redundant routes or long cycles.
topology.minBranchesMinimum side branches0 – 1000Minimum number of side components linked to the main path by a single passage.
topology.minBranchDepthMinimum branch depth0 – 1000Minimum number of rooms in a branch from the main path.
topology.minExitRoutesIndependent routes to the stairs0 – 1000Minimum number of independent paths between the entrance and the stairs.
topology.minCycleLengthMinimum cycle length0 – 1000Minimum number of segments in the shortest cycle. Zero imposes no such requirement.
topology.minHubDegreeMinimum hub degree0 – 1000Minimum number of arms at a central point. Zero does not require a hub.

Progression and pacing

Add gates that require items or switches and spread roles along the main path.

ParameterNameValuesWhat it does
progression.keyLocksKey locks0 – 8Number of gates that require a collected key before crossing.
progression.switchLocksSwitch locks0 – 8Number of gates that require activating a switch before crossing.
pacing.enabledEnable exploration pacingon / offSpreads rest, boss and ambushes along the main path and prizes in optional branches.

Growth (prototype)

Instead of one room per grid block, rooms grow one from another, in free positions. The grid only sets the size of the world.

ParameterNameValuesWhat it does
growth.enabledEnable growthon / offTurns on the growth generator. Isolated chambers are not generated in this mode.
growth.roomsRooms (0 = as the grid)0 – 2000Number of rooms to grow. Zero uses the number of live blocks the grid would give.
growth.branchChildren per room (1 to N)1 – 16Each room spawns from 1 up to this many children before the draw picks another parent.
growth.depthMaximum depth1 – 200Deepest generation a room can have; the first room is 0.
growth.islandsIslands1 – 16Splits the rooms into islands linked by long bridges. With more than one, cycles stay inside each island.
growth.clusterClustering (λ)-10 – 10Positive concentrates new rooms where there are already many; negative spreads them; zero is neutral.
growth.reachCorridor reach (cells)0 – 20Average corridor distance beyond the minimum, in grid cells.

Entrance, stairs and roles

Controls the stairs doors, the distance from the entrance and the number of ambushes.

ParameterNameValuesWhat it does
stairsDoorsMaximum doors on the stairs1 – 1000Maximum number of corridors that can enter the stairs room.
minHopsMinimum steps to the stairs1 – 1000Minimum number of links between the entrance and the stairs, counted in rooms.
ambushAmbush rooms0 – 1000Number of larger plain rooms that get the ambush role.

Isolated chambers

Extra rooms linked by a single corridor, like dead ends with a prize or a trap.

ParameterNameValuesWhat it does
leavesNumber of chambers0 – 1000Number of extra chambers the generator tries to place in free cells.
leafClasses.rectWeight · room · rectangular0 – 1000Relative weight for choosing this shape for leaf chambers.
leafClasses.discWeight · room · circular0 – 1000Relative weight for choosing this shape for leaf chambers.
leafClasses.octWeight · room · octagonal0 – 1000Relative weight for choosing this shape for leaf chambers.
leafClasses.LWeight · room · L-shaped0 – 1000Relative weight for choosing this shape for leaf chambers.
leafClasses.starWeight · room · truncated star0 – 1000Relative weight for choosing this shape for leaf chambers.
leafRoles.trapRelative chance · trap0 – 1000Relative weight for a leaf chamber to get a trap.
leafRoles.prizeRelative chance · prize0 – 1000Relative weight for a leaf chamber to get a prize.
leafRoles.emptyRelative chance · empty0 – 1000Relative weight for a leaf chamber to stay empty.

Edit this page on GitHub