Stemma — a laboratory for evolving invented languages
Treat a constructed language as a living system: define a proto-language's phonology, run ordered sound-changes across simulated centuries, fork daughter tongues, and trace any descendant word rule-by-rule back to its ancestor — deterministic, seeded, and fully tested.
This is where the two halves of what I do meet. I write fiction and build worlds seriously; Stemma is the languages of those worlds treated as an engineering problem. It's a diachronic constructed-language engine: define a proto-language's feature-based phonology, apply ordered sound-changes over simulated centuries, fork daughter languages from a common ancestor, and trace any descendant word's derivation — rule by rule — all the way back to the proto-form.
What's technically interesting
The design goal is that a made-up language's history be reproducible and auditable, the same properties I'd want from any system. The engine is deterministic by construction — a seed expands through ChaCha20 + SHA-256, so the same inputs always yield the same language, and any divergence is a real difference rather than RNG drift. Sound-change is a pipeline of ordered, feature-based rules over a phonological feature system, which makes each step inspectable: you can point at why a word came out the way it did. It's an eight-crate Rust workspace with 427 tests — a linguistics toy held to the same standard as the verification tools, because a lineage you can't trust isn't worth tracing.
Status
Phase 1 is complete (the core evolution engine); Phase 2 — depth — is underway, with morphology the next milestone. It's a Rust library and CLI today; an interactive UI for exploring language trees is planned, not yet built. The same instinct that gates a silicon release, pointed at the pleasure of building worlds.