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.
| Parameter | Name | Values | What it does |
|---|---|---|---|
cols | Columns | 1 – 64 | Number of columns. More columns increase the potential width of the floor. |
rows | Rows | 1 – 64 | Number of rows. More rows increase the potential height of the floor. |
cellW | Cell width (px) | 1 – 5000 | Width of each grid cell. Large blocks can span several cells. |
cellH | Cell height (px) | 1 – 5000 | Height of each grid cell. Large blocks can span several cells. |
gap | Room inset (px) | 0 – 1000 | Inset applied to rooms inside their blocks to keep space between neighbors. |
big | Large blocks | 0 – 1000 | Maximum number of large blocks the generator tries to place. |
drop | Fraction of free cells | 0 – 1 | Fraction of free cells reserved for possible leaf chambers. |
layoutJitter | Grid irregularity | 0 – 0.45 | Shifts the inner grid lines. The generator lowers the value if there is not enough space for a minimum room. |
rotateRooms | Rotate polygonal shapes | on / off | Allows 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.
| Parameter | Name | Values | What it does |
|---|---|---|---|
weights.rect | Weight · rectangular | 0 – 1000 | Draw weight for rooms of this shape. It is relative to the other weights and does not need to sum to 1. |
weights.disc | Weight · circular | 0 – 1000 | Draw weight for rooms of this shape. It is relative to the other weights and does not need to sum to 1. |
weights.oct | Weight · octagonal | 0 – 1000 | Draw weight for rooms of this shape. It is relative to the other weights and does not need to sum to 1. |
weights.L | Weight · L-shaped | 0 – 1000 | Draw weight for rooms of this shape. It is relative to the other weights and does not need to sum to 1. |
weights.star | Weight · truncated star | 0 – 1000 | Draw weight for rooms of this shape. It is relative to the other weights and does not need to sum to 1. |
maxOf.rect | Max · rectangular | 0 – 10000 | Limit of rooms of this shape. If the limits sum too low, the generator may exceed them. |
maxOf.disc | Max · circular | 0 – 10000 | Limit of rooms of this shape. If the limits sum too low, the generator may exceed them. |
maxOf.oct | Max · octagonal | 0 – 10000 | Limit of rooms of this shape. If the limits sum too low, the generator may exceed them. |
maxOf.L | Max · L-shaped | 0 – 10000 | Limit of rooms of this shape. If the limits sum too low, the generator may exceed them. |
maxOf.star | Max · truncated star | 0 – 10000 | Limit of rooms of this shape. If the limits sum too low, the generator may exceed them. |
starCells | Minimum cells for a star | 1 – 1000 | Minimum cells for a star. Adjust this value and watch how it changes the floor layout. |
homophily | Preference for neighboring shapes | -1 – 1 | A 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.
| Parameter | Name | Values | What it does |
|---|---|---|---|
m | Direction alphabet | 4 directions, 8 directions | 4 allows 90° angles. 8 also allows 45° diagonals. |
discPorts | Doors per circular room | 4, 8, 16 | Number of possible directions on the circular edge. Directions outside the active alphabet are discarded. |
portStep | Step between doors (px) | 0.1 – 10000 | Distance 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.
| Parameter | Name | Values | What it does |
|---|---|---|---|
width | Corridor width (px) | 0.1 – 10000 | Physical width of each corridor. |
clear | Clearance σ (px) | 0 – 1000 | Minimum distance between corridors and rooms or corridors they do not connect to. |
exit | Exit stretch (px) | 0.1 – 10000 | Minimum length the corridor runs after leaving the door before turning. |
seg | Minimum segment (px) | 0.1 – 10000 | Minimum length of each inner corridor segment. |
minLen | Minimum distance between rooms (px) | 0.1 – 10000 | Requires both the path and the direct distance between connected rooms to reach this length. |
maxBends | Maximum bends | 0, 1, 2, 4, 5, 6 | Maximum number of bends. Values from 4 to 6 allow more winding W detours. |
pI | Weight · straight I | 0 – 1000 | Relative weight of a straight link, without bends. |
pL | Weight · one L bend | 0 – 1000 | Relative weight of a link with one bend. |
pZ | Weight · two bends Z/U | 0 – 1000 | Relative weight of paths with two bends, in Z or U. |
pW | Weight · W detour | 0 – 1000 | Weight of W detours; there are alternatives only when at least four bends are allowed. |
pT | Weight · T junction | 0 – 1000 | Relative weight for linking a room to an existing corridor and forming a T junction. |
pX | Weight · X crossing | 0 – 1000 | Relative weight for crossing an existing corridor and forming an X junction. |
costBend | Cost per bend | 0 – 1000 | Penalty added for each bend. A higher value favors straight paths. |
costLen | Cost per pixel | 0 – 1000 | Penalty multiplied by the path length in pixels. |
cost45 | Cost per 45° bend | 0 – 1000 | Additional penalty for each diagonal 45° bend. |
costFacing | Bonus for facing doors | 0 – 1000 | Discount 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.
| Parameter | Name | Values | What it does |
|---|---|---|---|
mix.rect-rect | rectangular × rectangular | 0 – 1 | Compatibility between two shapes: zero forbids the link; one keeps the normal chance. |
mix.rect-disc | rectangular × circular | 0 – 1 | Compatibility between two shapes: zero forbids the link; one keeps the normal chance. |
mix.rect-oct | rectangular × octagonal | 0 – 1 | Compatibility between two shapes: zero forbids the link; one keeps the normal chance. |
mix.rect-L | rectangular × L-shaped | 0 – 1 | Compatibility between two shapes: zero forbids the link; one keeps the normal chance. |
mix.rect-star | rectangular × truncated star | 0 – 1 | Compatibility between two shapes: zero forbids the link; one keeps the normal chance. |
mix.disc-disc | circular × circular | 0 – 1 | Compatibility between two shapes: zero forbids the link; one keeps the normal chance. |
mix.disc-oct | circular × octagonal | 0 – 1 | Compatibility between two shapes: zero forbids the link; one keeps the normal chance. |
mix.disc-L | circular × L-shaped | 0 – 1 | Compatibility between two shapes: zero forbids the link; one keeps the normal chance. |
mix.disc-star | circular × truncated star | 0 – 1 | Compatibility between two shapes: zero forbids the link; one keeps the normal chance. |
mix.oct-oct | octagonal × octagonal | 0 – 1 | Compatibility between two shapes: zero forbids the link; one keeps the normal chance. |
mix.oct-L | octagonal × L-shaped | 0 – 1 | Compatibility between two shapes: zero forbids the link; one keeps the normal chance. |
mix.oct-star | octagonal × truncated star | 0 – 1 | Compatibility between two shapes: zero forbids the link; one keeps the normal chance. |
mix.L-L | L-shaped × L-shaped | 0 – 1 | Compatibility between two shapes: zero forbids the link; one keeps the normal chance. |
mix.L-star | L-shaped × truncated star | 0 – 1 | Compatibility between two shapes: zero forbids the link; one keeps the normal chance. |
mix.star-star | truncated star × truncated star | 0 – 1 | Compatibility 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.
| Parameter | Name | Values | What it does |
|---|---|---|---|
proximity | How to choose pairs | RNG, Gabriel, Near | RNG and Gabriel filter pairs by geometric proximity. Near uses a maximum radius. |
near | Radius between centers (px) | 0.1 – 10000 | Maximum radius between room centers in Near mode; ignored in the other modes. |
delta | Density δ | 0 – 1 | Fraction 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.
| Parameter | Name | Values | What it does |
|---|---|---|---|
topology.profile | Profile | Classic, Backbone, Hub, Redundant exit, Long loop | Classic keeps the base behavior; other profiles require branches, a hub, redundant routes or long cycles. |
topology.minBranches | Minimum side branches | 0 – 1000 | Minimum number of side components linked to the main path by a single passage. |
topology.minBranchDepth | Minimum branch depth | 0 – 1000 | Minimum number of rooms in a branch from the main path. |
topology.minExitRoutes | Independent routes to the stairs | 0 – 1000 | Minimum number of independent paths between the entrance and the stairs. |
topology.minCycleLength | Minimum cycle length | 0 – 1000 | Minimum number of segments in the shortest cycle. Zero imposes no such requirement. |
topology.minHubDegree | Minimum hub degree | 0 – 1000 | Minimum 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.
| Parameter | Name | Values | What it does |
|---|---|---|---|
progression.keyLocks | Key locks | 0 – 8 | Number of gates that require a collected key before crossing. |
progression.switchLocks | Switch locks | 0 – 8 | Number of gates that require activating a switch before crossing. |
pacing.enabled | Enable exploration pacing | on / off | Spreads 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.
| Parameter | Name | Values | What it does |
|---|---|---|---|
growth.enabled | Enable growth | on / off | Turns on the growth generator. Isolated chambers are not generated in this mode. |
growth.rooms | Rooms (0 = as the grid) | 0 – 2000 | Number of rooms to grow. Zero uses the number of live blocks the grid would give. |
growth.branch | Children per room (1 to N) | 1 – 16 | Each room spawns from 1 up to this many children before the draw picks another parent. |
growth.depth | Maximum depth | 1 – 200 | Deepest generation a room can have; the first room is 0. |
growth.islands | Islands | 1 – 16 | Splits the rooms into islands linked by long bridges. With more than one, cycles stay inside each island. |
growth.cluster | Clustering (λ) | -10 – 10 | Positive concentrates new rooms where there are already many; negative spreads them; zero is neutral. |
growth.reach | Corridor reach (cells) | 0 – 20 | Average 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.
| Parameter | Name | Values | What it does |
|---|---|---|---|
stairsDoors | Maximum doors on the stairs | 1 – 1000 | Maximum number of corridors that can enter the stairs room. |
minHops | Minimum steps to the stairs | 1 – 1000 | Minimum number of links between the entrance and the stairs, counted in rooms. |
ambush | Ambush rooms | 0 – 1000 | Number 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.
| Parameter | Name | Values | What it does |
|---|---|---|---|
leaves | Number of chambers | 0 – 1000 | Number of extra chambers the generator tries to place in free cells. |
leafClasses.rect | Weight · room · rectangular | 0 – 1000 | Relative weight for choosing this shape for leaf chambers. |
leafClasses.disc | Weight · room · circular | 0 – 1000 | Relative weight for choosing this shape for leaf chambers. |
leafClasses.oct | Weight · room · octagonal | 0 – 1000 | Relative weight for choosing this shape for leaf chambers. |
leafClasses.L | Weight · room · L-shaped | 0 – 1000 | Relative weight for choosing this shape for leaf chambers. |
leafClasses.star | Weight · room · truncated star | 0 – 1000 | Relative weight for choosing this shape for leaf chambers. |
leafRoles.trap | Relative chance · trap | 0 – 1000 | Relative weight for a leaf chamber to get a trap. |
leafRoles.prize | Relative chance · prize | 0 – 1000 | Relative weight for a leaf chamber to get a prize. |
leafRoles.empty | Relative chance · empty | 0 – 1000 | Relative weight for a leaf chamber to stay empty. |