industries

Pyvorin for Procedural Content

Terrain generation, dungeon algorithms, and noise functions.

Published May 30, 2026

Terrain Generation

Perlin noise and diamond-square algorithms for heightmap generation.

def perlin_noise(x, y, perm):
    xi = int(x) & 255
    yi = int(y) & 255
    xf = x - int(x)
    yf = y - int(y)
    u = fade(xf)
    v = fade(yf)
    aa = perm[perm[xi] + yi]
    ab = perm[perm[xi] + yi + 1]
    return lerp(v, lerp(u, grad(aa, xf, yf), grad(ab, xf, yf-1)), ...)

Dungeon Generation

Binary space partitioning and cellular automata for roguelikes.

Loot Tables

Weighted random selection and rarity rolling.