Monikoder: Exploring the Space of Names

When my wife and I were expecting our first daughter, we had a small collection of names we liked—and a surprisingly hard time finding more like them. The trouble was the word like. What was it, exactly, that we liked about a name? Its sound? Its spelling? Its age? Its associations?

There is no shortage of good ways to browse names. Sites such as Nameberry, Behind the Name, and BabyCenter, along with the Social Security Administration’s data, offer lists, meanings, origins, filters, and historical trends. But when we asked for names “similar” to our favorites, the request itself was ambiguous. Similar in which way? And how could we ask for a blend of the qualities that mattered to us?

That question became Monikoder, a tool for exploring the “space” of names.

Names as a neighborhood

There is no single useful definition of an analogous name. Two names might share an era, a written or spoken shape, or a cluster of cultural associations. Those are different kinds of similarity, and Monikoder keeps them separate enough to make the tradeoffs visible.

You can begin with one or more seed names. The app represents each seed as a point in a learned space, averages those points, and retrieves nearby names. The default joint view lets you change the balance among Vibe, Sound, and Era, so “nearby” becomes an explicit choice rather than a mysterious score. The two-dimensional map is a UMAP projection for exploration; the actual matches come from the higher-dimensional search space.

Monikoder's joint view, seeded with Ada, Willa, and Bonnie, with nearby generated names and a historical-occurrence chart

The project starts with the Social Security Administration’s annual baby-name files. Each name becomes a small time series: its popularity in each decade, normalized to its own peak. An autoencoder compresses that curve into a historical representation. This lets the search find names whose popularity rose and fell in similar ways, even when their spellings have nothing in common.

The historical view for Tim: the seed and suggested names are positioned by peak era and normalized historical popularity

Second coordinate: the sound of a name

One of the things we liked were short, easy-to-say names. For that, Monikoder trains a bidirectional GRU autoencoder on the character sequences of names, together with simple structural features such as length, vowel ratio, longest vowel run, and whether the name begins or ends with a vowel. Reading a name in both directions helps the model learn patterns around beginnings and endings as well as the letters in between.

Third coordinate: cultural association

The slipperiest signal is what I call vibe. I first used the ChatGPT API to create a short description of each name’s cultural origin, style, and typical perception. These descriptions are then embedded with OpenAI’s text-embedding-3-small model, and Monikoder looks for nearby semantic vectors.

The joint model standardizes and combines the historical, structural, and semantic representations. It can filter by gender and commonality, and its controls expose the three weights directly. With multiple seeds, their average becomes a useful way to ask for a blend instead of forcing one name to be the whole brief.

The joint model's advanced controls expose the balance among vibe, sound, and era, along with a commonality filter

My wife still doesn’t like it

The interesting answers are often the slightly wrong ones: names that make a connection visible, names that reveal an assumption in the search, and names that help clarify what the searcher does not want. The model can make a large space navigable, but it cannot know the stories, relationships, or future that make a name matter.

But we got some good suggestions from it to add to our list! Now the problem is to whittle down our too-large list to a single choice …

The source code is available if you would like to explore or improve the map.

Update: July 2026

Ada Joy was born on July 25, 2026, weighing 8 lb 4 oz. Ada is, among other things, short and unfussy (also, Ada Lovelace and Ada Louise Huxtable). Joy was my grandmother’s name. That decision was ours—made from family, history, and je ne sais quoi.

Ada Joy


© 2018. All rights reserved.

Powered by Hydejack v9.2.1