When was last you went on date? Was it through one of the dating apps, and how did you find the match, boring, interesting or barely a match?! We kinda took the hint from date-me-docs and inspired from the “Hang the DJ” Black Mirror episode did the following little experiment to simulate date between ai-agents based on real people.
So if you are curious about simulating human interactions you must be definitely aware about Generative Agents: Interactive Simulacra of Human Behavior. The paper introduces "generative agents," that simulates human-like behavior, from daily routines to complex social interactions. Its a pretty cool paper, and has a even more fascinating open sourced repo. You should check it out if you haven’t already.
However for a quick experiment with decent frontend we needed something simple and more easily customisable; so we settled upon AI-Town* developed by Convex and a16z.
It is every engineer’s wet dream to be able to simulate the reality. Because like with code or games, you can’t often restart in real life. So after the Generative Agents paper, I was curious about simulating some basic human interactions. I was undecided between simulating a date or simulating a recruiting** process. But then saw this NY times article on date-me-docs, and the direcotry of docs made a perfect starting point for creating ai-agents to simulate dates.
So far, we have a simulation environment that is highly customizable to meet our specific requirements. Additionally, we have dating profiles which will function as the personality templates for our agents. Our next objective is to construct a "Love Island" within which these agents can potentially form romantic relationships.
The initial stage involved designing the island's layout using Tiled software

Map creation using Tiled
For agent personalities we picked eight profiles from Date-Me Docs. These “personalities” are essentially predefined descriptions for each agent, which state in plain english who they are and what they’re into. Below is one example of such descriptions
{
name: 'Jose',
character: 'f5',
memories: [
{
type: 'identity' as const,
description: `I am 30 years old. I work as Head of Theory at Retro Biosciences. I like Reading, watching TV shows,
attending parties, hiking and working out. My music preferences are Snarky Puppy, Dream Theater, Meute, Diablo Swing
I am looking for someone who is Reliable, likes to plan ahead, truth-seeking and enjoys learning new things`,
},
{
type: 'plan' as const,
description: 'You want to find love.',
},
],
position: { x: 10, y: 10 },
}
Let’s break down these properties:
name : the character’s first namecharacter: the sprite, or set of graphics, corresponding to this character (each refers to a specific subset of the character spritesheet.position: the character’s starting coordinates on the town mapmemories: chunks of information about this character, each with a specific type:
identity: a first- or second-person description of who this character is, what they’re interested in, what kind of attitude they have, etc.plan: a second-person description of the character’s main goal in “life”Let’s see how our agents do in the island!