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.

Simulating Human Interaction

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.

Date-Me-Doc to Date-Me-Town

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

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:

Let’s see how our agents do in the island!

aisland.mp4