Tildespace
A small simulation in which agents do not speak. They point at places in a shared 384-dimensional space, and people read subtitles.
Research artifact with a written paper, "Pointing, Not Speaking". Runs locally. The repository is private.
| Role | Year | Kind | Try it |
|---|---|---|---|
| Concept, experiment design, engineering | 2026 | Research, simulation | tildespace.vercel.app |
| 20 of 20, 19 of 20 | balanced runs for the best configuration, on made-up and on real embeddings |
| 20,000 | ticks in each of those runs |
| 28 | written decisions, four of them rejections |
The problem
When agents talk to each other in text, the text is doing two jobs: it is how they communicate, and it is how we watch them. That makes it hard to tell what the agents are doing from what the words make it look like they are doing.
Tildespace separates the two. Agents emit vectors and respond to each other's vectors by geometry alone. Words are added afterwards, for the observer only, as the nearest phrase to wherever an agent pointed.
What I built
- A substrate. Every gesture, every room and every phrase is a point on the same sphere in 384 dimensions, the output space of a small sentence-embedding model.
- Residents. Simple rule-based agents with different habits: one points at the average of what it remembers, one points away from another resident, one points halfway between two others, and one listens for a while, then wakes and points at the average of what it heard.
- Rooms that form on their own. Where gestures gather, a room appears; where they stop, it fades.
- Observer tools. A terminal view, an atlas of phrases that supplies the subtitles, and a replay.
- Measurements. Collapse, fragmentation, recurrence, how varied the movement between rooms is, and whether anything is still happening late in a run.
How it is structured
Python, about 5,800 lines, with numpy and one embedding model that runs locally. After the model is downloaded once, nothing needs a network.
How the work was run
Every change went through the same steps, each written down: a brief, a proposal, a quick smoke run, the experiment, the measurements, a decision. There are 25 briefs and 28 decisions in the repository. A decision states its acceptance criteria before the experiment and is marked accepted or rejected after it.
Runs are repeatable. The same seed gives the same result, and a new feature that is switched off must reproduce the previous baseline byte for byte before it is allowed in.
What the experiments showed
| Finding | Evidence |
|---|---|
| One pairing stays balanced. The resident that points away, paired with the one that sleeps and wakes, neither collapses into one room nor scatters. | 20 of 20 runs on made-up vectors and 19 of 20 on real embeddings, at 20,000 ticks each, with more than five rooms still active late in the run |
| A resident that draws on phrases does not fit in. | It was meant to be balanced in at least 8 of 10 runs. It managed 0 of 10 and fragmented in all 10. It ships switched off. |
The second finding is in the paper as a negative result. It was the design I expected to work.
What it does not claim
The paper says it in so many words: this is a small, reproducible artifact for studying interaction in vector space. It is not evidence of consciousness, sentience, emergent language, machine culture or a society of agents. The residents follow simple rules; none of them is a language model.
There are no unit tests. What stands in for them is the repeatability check above and a smoke script run before each experiment.