Skip to content

words

@fungi.computer/cairn


@fungi.computer/cairn / words

Candidate word-name primitives for the Fungi family.

The generator uses:

  • CSPRNG (crypto.getRandomValues) — never Math.random.
  • Rejection sampling for the list index — no modulo bias, every word equally likely.
  • Entropy sizing instead of a registry — uniqueness comes from bits, not a lookup. Two lists of ~N words: adj-noun ≈ 2·log2(N) bits; add nouns to grow it. There is no global registry and no check-and-retry — the caller sizes count to the collision target (the birthday bound).

The vocabulary combines mycological and ranch terms.

const ADJECTIVES: readonly ["gilled", "velvety", "spored", "saprotrophic", "mycorrhizal", "luminescent", "honeycomb", "truffley", "wispy", "earthy", "mossy", "woody", "waxy", "gelatinous", "coral", "inkcapped", "feathery", "stiped", "ringed", "annulate", "scaly", "shaggy", "fuzzy", "spiky", "conical", "umbral", "parasol", "leathery", "damp", "dewy", "bristly", "powdery", "yeasty", "musty", "ancient", "patient", "steady", "faithful", "hardy", "rootbound", "forested", "shaded", "sunlit", "sporeladen", "golden", "honeyed", "amber", "ivory", "crimson", "violet", "indigo", "silver", "mossgreen", "midnight", "creamy", "buttery", "porcelain", "glossy", "matte", "ribbed", "fluted", "wavy", "lobed", "branched", "curled", "folded", "hooded", "crowned", "blushing", "weeping", "laughing", "dancing", "singing", "whistling", "glowing", "ghostly", "fairy", "elfin", "rustic", "homey", "barnraised", "pasture", "orchard", "mill", "woven", "gardened", "herded", "trailed", "ridged", "meadow", "fielded", "vined", "rooted", "tendered", "seasoned", "ripe", "wild", "tame", "broody", "stubborn", "gentle", "drowsy", "watchful", "wandering", "migratory", "burrowed", "nested", "perched", "loamy", "mulched", "composted", "fermented", "brewed", "cured", "smoked", "pickled", "preserved", "aged", "vintage", "heirloom", "grandmothers", "forgotten", "remembered", "beloved", "cherished", "worn", "weathered", "windblown", "rainsoaked", "frosted", "snowed", "bloomed", "flowered", "seeded", "sprouted", "grafted", "pruned", "harvested", "threshed", "milled", "baked", "proofed", "risen", "folded", "twisted", "braided", "stitched", "patched", "mended", "polished", "burnished", "glazed", "gilded", "verdigris", "patinaed", "microdosed", "tripping", "wavy", "prismatic", "shimmering", "rippling", "echoing", "oracular", "mystic", "kaleidoscopic", "auroral", "nebular", "azure", "psychedelic", "transcendent", "visionary", "wandering", "dreaming", "phantom", "spectral", "iridescent", "liminal", "tidal", "celestial", "cosmic", "astral", "ethereal", "incandescent"]

Modifiers — fungal + ranch descriptors (the first slot).


const NOUNS: readonly ["shiitake", "morel", "chanterelle", "bolete", "puffball", "oyster", "enoki", "maitake", "lionsmane", "truffle", "porcini", "agaric", "amanita", "bracket", "conk", "stipe", "cap", "gill", "spore", "hypha", "mycelium", "sporocarp", "earthstar", "stinkhorn", "jelly", "milkcap", "blewit", "cep", "hedgehog", "woodear", "waxcap", "inkcap", "birdnest", "cup", "saddle", "fieldcap", "rust", "smut", "ergot", "lichen", "yeast", "mold", "toadstool", "fruitingbody", "basidiocarp", "ascocarp", "perithecium", "apothecium", "cystidium", "basidium", "clamp", "septa", "rhizomorph", "sclerotium", "gemma", "annulus", "volva", "pileus", "lamella", "trama", "gleba", "peridium", "sporangium", "zygospora", "conidia", "teleomorph", "anamorph", "saprobe", "endophyte", "epiphyte", "decomposer", "recycler", "alchemist", "mycorrhiza", "hyphae", "web", "net", "lattice", "thread", "strand", "root", "tendril", "runner", "vine", "ivy", "moss", "fern", "liverwort", "mule", "cairn", "almanac", "parrot", "birddog", "watchdog", "pigeon", "ranch", "barn", "coop", "pasture", "meadow", "field", "orchard", "gate", "fence", "silo", "well", "windmill", "homestead", "trail", "ridge", "creek", "hill", "grove", "vineyard", "apiary", "garden", "plot", "furrow", "shed", "stable", "trough", "hayloft", "rootcellar", "smokehouse", "springhouse", "millstone", "weathervane", "lantern", "tinderbox", "candlemold", "honeycomb", "beeswax", "propolis", "nectar", "pollen", "comb", "burrow", "den", "nest", "perch", "warren", "colony", "swarm", "flock", "herd", "pod", "grist", "flour", "starter", "mother", "scoby", "kombucha", "miso", "tempeh", "cheese", "rennet", "whey", "curd", "cream", "butter", "braid", "loaf", "crust", "crumb", "fiddlehead", "sorrel", "ramp", "morelberry", "huckleberry", "thimbleberry", "salmonberry", "serviceberry", "chokecherry", "microdose", "trip", "shroom", "liberty", "teacher", "treasure", "wanderer", "seeker", "dreamer", "shaman", "visionary", "tripper", "oracle", "seer", "augur", "prism", "fractal", "kaleidoscope", "spectrum", "nebula", "aurora", "comet", "meteor", "eclipse", "zenith", "horizon", "mirage", "echo", "ripple", "shimmer", "glimmer", "phantom", "twilight", "starlight", "moonbeam"]

Nouns — the mycological + ranch family (the rest of the slots).

words(options?): string

Generate a candidate word name such as luminescent-morel.

Candidate-name sizing and separator; bound untrusted values before calling.

number

Number of words (default 2 = adjective-noun).

string

Separator (default “-”).

string

A candidate name assembled from the exported vocabularies.

This legacy helper accepts trusted sizing-policy inputs; CPU and output scale with the requested count. The count uses Math.max(1, Math.floor(count ?? 2)): NaN, 0, 0.5, -1, and negative infinity produce one word, while 9 produces nine. Positive infinity throws a bounded RangeError. For new durable identifiers, use defineIdFamily.

If options.count is positive infinity.