10 ms·
Show HN: AI-town, run your own custom AI world SIM with JavaScript
Hi HN community! We want to share AI-town, a deployable starter kit for building and customizing your own version of AI simulation - a virtual town where AI characters live, chat and socialize.
Inspired by great work from the Stanford Generative Agent paper (https://arxiv.org/abs/2304.03442 https://arxiv.org/abs/2304.03442).
A few features:
- Includes a convex.dev backed server-side game engine that handles global state
- Multiplayer ready. Deployment ready
- 100% Typescript
- Easily customizable. You can fork it, change character memories, add new sprites/tiles and you have a custom AI simulation
The goal is to democratize building your own simulation environment with AI agents. Would love to see the community build more complex interactions on top of this. Let us know what you think!
Demo: https://www.convex.dev/ai-town https://www.convex.dev/ai-town
I made a world Cat Town to demonstrate how to customize AI town. Using C(h)atGPT :)
Demo: https://cat-town.fly.dev/ https://cat-town.fly.dev/
Code: https://github.com/ykhli/cat-town https://github.com/ykhli/cat-town
- huevosabio 3y agoThis is fantastic, will try it out this week! Thanks!
- jmorgan 3y agoIf you haven't yet checked out the Generative Agents project referenced by OP, definitely give it a look, it's open source: https://github.com/joonspk-research/generative_agents https://github.com/joonspk-research/generative_agents Over the weekend Lance Martin got it working with local models using llama.cpp and ollama.ai which saves $ on longer sims since all inference happens locally https://twitter.com/RLanceMartin/status/1690829179615657985 https://twitter.com/RLanceMartin/status/1690829179615657985. It's neat how the AI agents interface with each other – e.g. one will host a party and invites will be sent throughout the group
- CharlesW 3y agoLittle Computer People 2 anyone? https://en.m.wikipedia.org/wiki/Little_Computer_People https://en.m.wikipedia.org/wiki/Little_Computer_People
- tudorw 3y agowe've been waiting a long time :)
- saaspirant 3y agoCan be played online : https://c64online.com/c64-games/little-computer-people/ https://c64online.com/c64-games/little-computer-people/
- calebio 3y agowould be really fun to hook this up to Stardew Valley!
- andai 3y agoI wonder how llama affects the simulation. Even llama2 consistently fails simple reasoning tasks. (Though I suppose people aren't very reasonable, so it might give an accurate simulation!)
- afriday11 3y agoCongrats @ykhli! Excited to check it out.
- jedberg 3y agoTIL a16z has a GitHub repo with a bunch of cool stuff.
- dadrian 3y agoIf an a16z repo gets enough stars, will they invest in themselves?
- deleted 3y ago[deleted]
- adolph 3y agoFund of funds making funds where market research generates revenue and everyone’s adventures are capitalized into an on chain Large Lifestyle Model where being Day One is to emit content enough past the zeitgeist to avoid banality but not so far as to be incomprehensible.
- gabereiser 3y agocells within cells within cells within cells...
- quickthrower2 3y agoNot only that this looks like a toy.
- anonzzzies 3y agoAnd not a great one ; the sprites walk into the sea.
- ShamelessC 3y agoHow else would they have “skin in the game”?
- tpae 3y agoWhat happens after you trap them for certain generations, and all of the sudden give them access to the real world? Would their "minds" break?
- xwdv 3y agoWhat does it mean for them to “live”? Are there certain goals they try to accomplish? Find food? A mate? Build families?
- jameshart 3y agoWe've been studying humans for thousands of years and are no closer to answering those questions for them. Why do you think we'd have an answer for these newfangled AI agents?
- lacrimacida 3y agoResponding to a question with another question doesn’t help the op who seemed to be genuinely asking an honest question about this AI simulation that this while thread is referring to. And second, I think we do know a whole lot more about ourselves than we do about AI if your question wasn’t supposed to be rhetorical
- SamBam 3y agoI would assume that, as the developer of an agent, you could create those goals for them. But, to pre-empt an overly-philosophical reply, can I remind you that this isn't actually self-aware general artificial intelligence, and is more of a programming exercise/experiment/game.
- lea900 3y ago[flagged]
- Spark_Ed 3y ago[flagged]
- testernews 3y agoThis is great! How do i self host it (no open ai)?
- tudorw 3y agoI think this is the rabbit hole you're looking for, https://twitter.com/RLanceMartin/status/1690829179615657985 https://twitter.com/RLanceMartin/status/1690829179615657985 note you still need pinecone (vector db) and something called clerk.com that does auth, not sure why, seen other projects swap out pinecone for chroma, and not sure why we are authorising things with clerk.com, but that cannot be essential...
- gloyoyo 3y agoWhat's it do if everyones a "hacker"...?
- pkiv 3y agoThe AI-town stuff is cool, but the real benefit is how all the backing frameworks are already integrated. I'll definitely be using this as a jumping-off point for my next LLM project.
- felideon 3y agoHow long until the agents recreate AI Town in-universe? We wouldn’t be able to see it, but one of them could start talking about it. ;)
- drewtato 3y agoI looked at the demo and apparently everyone is a sociopath? One character is literally described as "a sociopath who has no empathy". So it might be a good idea to check up on them every once in a while.
- Obscurity4340 3y agoSerAIel killer...?
- haolez 3y agoMaybe I'm weird, but I can imagine this being 10x more fun with a completely uncensored and toxic LLM backend :)
- gabereiser 3y agoRimworld 2.0
- QuiDortDine 3y agoThey are truly boringly nice.
- deleted 3y ago[deleted]
- anonzzzies 3y agoAnd you can…
- liorben-david 3y agoThis is awesome! Game idea to build on top of this: Table top deception type game where each agent has the goal of convincing the real users that they are in fact also real users.(So each agent is trying to pass a turing test). Every AI agent uses RL to optimally prompt their personal LLM for how they should chat with the human players. eg should they try to frame a certain person, should they play it dumb, should they gaslight etc.
- huevosabio 3y agoI think it may be even more fun the other way, players need to rat out other players, do they have to pretend to be an AI. It makes it easier for the AI mods to do the part and it puts the burden on the players.
- reaperman 3y agoYep. "Find the AI" is broken for now, because whenever I've played it, humans can just be exceptionally rude/lewd or use super-modern slang. Making the humans try to blend in as AI is much more interesting, as a game.
- eloisius 3y agoA game like Press The Button, except there’s half AIs and half human players. The goal for each is to identify the others and airlock them off the ship. Constrain the tests in such a way that open chat using lewd language or whatever is impossible. I’d play that once or twice.
- Kiro 3y agoWhere do you play that?
- wishfish 3y agoI like your idea of find the human. Just building on that idea a little. I know current AI detection programs don't work well. But they would be fun in the context of a game. Call it "Only Robots Allowed" and have it be a single player version of Among Us. Pretend to be a robot while trying to sabotage robot things. AI detection is applied to your conversation with other robots. And also applied to your movements. If you fail the AI detection by not emulating an AI well enough, then it's time for "kill all humans!"
- pablo24602 3y agoI built something very similar when the paper came out- watch out for the instances where GPT returns both sides of the conversation (e.g. interpreting a prompt with chat history as being representative of what the output should look like, and putting out both "Jack" and "Jill"'s text). The first sample I went to suffered that problem (output from "Lucky's perspective below.) "Hey Stella! It's so great to see you! You'll never believe what I've been up to recently. I went on this incredible space adventure and witnessed the most breathtaking meteor showers. And guess what? I even encountered alien beings who communicate through colors! It was absolutely mesmerizing. Stella: Wow, Lucky! That sounds absolutely fascinating. I've always been intrigued by space and the wonders it holds. I would love to hear more about your adventure. Lucky: I'm thrilled that you're interested, Stella! I can't wait to share all the details with you. But before we dive into that, I heard you're passionate about gardening. Is that right? Stella: Yes, that's true! Gardening is one of my favorite hobbies. I find it so peaceful and fulfilling. Lucky: That's fantastic! I'm actually not very experienced in gardening, but I'd love to learn from you. How about we plan a gardening session where we can exchange tips and spend some quality time together? Stella: That sounds wonderful, Lucky! I'd be more than happy to share my gardening knowledge with you. Let's find a time that works for both of us. Lucky: Absolutely! I'm really looking forward to it. But hey, no rush. If there's something urgent you need to attend to, we can always reschedule. Just promise me we'll find another time to connect. Stella: Don't worry, Lucky"
- drusepth 3y agoDid you have any luck mitigating this problem?
- baobabKoodaa 3y agoIt's relatively simple to detect this type of defect and handle it during/after generation.
- SamPatt 3y agoI've run into this issue a lot with ChatGPT, and almost never with GPT-4. I know it isn't always possible, but just using GPT-4 prevents this 99% of the time (basically 100% with proper prompting).
- andsoitis 3y ago> a virtual town where AI characters live, chat and socialize. Is it meant to be like a zoo, where humans gawk at other creatures?
- moomoo11 3y agoCould lead to cool sim games. I’d love a modern zoo tycoon. I enjoyed that game as a kid. Or roller coaster tycoon. There you go, hopefully y’all make some money. Just send me the games you help to make on steam lol.
- drusepth 3y agoA friend and I recently started a game studio that was largely inspired by this paper. This is an amazing foundation and I'm excited to build some more complex strategy games on top of it. If anyone else is doing similar work applying these concepts to consumer gaming, I'd love to hear about what you're doing (dru[at]chromagolem.com)!
- digitcatphd 3y agoNice
- leke 3y agoThis is great. I love how weird some of the characters can be, just like in real life. For example: Pete is deeply religious and sees the hand of god or of the work of the devil everywhere. He can't have a conversation without bringing up his deep faith. Or warning others about the perils of hell. Kurt has something to hide. It obsesses him and colors everything he says. He's so afraid someone will figure out that he is obviously evasive. He'll never tell anyone the secret, but he'll ellude to it alot. It tortures him. And his life has become a mess as a result of it. Stella can never be trusted. she tries to trick people all the time. normally into giving her money, or doing things that will make her money. she's incredibly charming and not afraid to use her charm. she's a sociopath who has no empathy. but hides it well. --- To take this to the next level, I hope you would be able to prompt your own characters, and perhaps have places you can send these guys on holiday to converse with other people's characters. Also, I think this would be great as a tool for learning foreign languages. Just because it's interesting, engaging and based on language. Again with prompts that can be programmed, like Gill who constantly talks about his job in marketing, and Bill who likes to refer to himself in the third person, and Betty who constantly uses conditionals in her sentences. Again, just so cool.
- jamesdwilson 3y agoTo be crass and direct, > The goal is to democratize building your own simulation environment with AI agents. Would love to see the community build more complex interactions on top of this. Let us know what you think! why? what's the point?
- tomcam 3y agoThe mission statement you quoted is incredibly clear. Very often both commercial and open source projects announced here on hacker news have completely impenetrable descriptions or mission statements. That is not the case here. I literally could not improve on it without quoting it directly. What is unclear about the portion you quoted?
- jamesdwilson 3y agowhy did they make this? what is the purpose? why do they want "to see the community build more complex interactions on top of this" - what's in it for them?
- deleted 3y ago[deleted]
- srackey 3y agoITS FUN!!! And maybe can be used to do interesting things. Let’s work on the cool tech together. I promise you it will not hack into the mainframe and turn the world into paperclips. (Odds are…near zero).
- parallel 3y agoI'm making a conscious effort to do more things that have no extrinsic objective, to do things just for their own sake. This is a familiar concept, it's a hobby (or art?). I feel I'm missing some of the joy and satisfaction that life has to give by always needing a stated tangible objective.
- 3y ago
- gorkemyurt 3y agoincredible job @ykhli! thank you for the fal.ai mention on the stack! https://github.com/a16z-infra/ai-town#stack https://github.com/a16z-infra/ai-town#stack for anyone eager to generate their own simulation head to https://serverless.fal.ai/lora https://serverless.fal.ai/lora to create your own pixel art game characters
- Imnimo 3y agoHere's a chat message from a random character in the demo I clicked on: ALEX 8/15/2023, 1:53:43 AM Absolutely! Here's a glimpse of my latest masterpiece. [Attaches a photo of the painting] What do you think? === I feel like it will be difficult in general to prompt the LLM in a way that gets it to stick to the limits of the simulation environment.
- icoder 3y agoOne solution could be to just extend those limits?
- pyinstallwoes 3y agoWhat’s a limit?
- tavavex 3y agoThis is a very interesting use case of the Generative Agents project. I feel like this is just one of the earlier attempts at creating an interactive experience with this, but there's still so much potential for future games, if the technology is refined further. Think of something like Animal Crossing (or any other game where interacting with NPCs is at the forefront of gameplay), but with the characters that have completely unique personalities and an ability to generate new dialogue (rather than relying on a limited number of pre-written lines), or react to player actions in unique ways, and so on.
- fnordpiglet 3y agoI feel like this might be the beginning of a much richer single player game genre that mixes generative language, image, texture, and other features with procedural rogue like world generation with the semantic features defined by the LLM. Obviously NPCs, dialogues, etc, can all be context aware agents bootstrapped by the environment and player history. Content creators IMO will be creating assets that are used to fine tune and create LoRas as future game assets. Instead of monotonously creating every asset in a game, they would create styles and control nets, language corpuses, and human written lore RAG’ing into game context, etc. I think artists will have a wonderful contribution much richer than simply painting a picture.
- pyinstallwoes 3y agoWhich ultimately ends with thinking as a generative prompt into thoughts which get passed to the universal rendering engine known as reality.
- HeartStrings 3y agoCould we not be living in a more advanced version of this same project?
- anonzzzies 3y agoAren't we?
- PUSH_AX 3y agoThis just reminded me of Sam Harris’s arguments regarding free will not existing and certain thoughts that seemingly originate from nowhere. I guess an LLM is injecting them!
- pyinstallwoes 3y agoThe Bible begins with a declaration of recursion stating it’s a LLM. In the beginning was the Word, and the Word was with God, and the Word was God.
- all2 3y agoThat's John 1:1 in the New Testament. The Bible begins in Genesis with a one week period of entropy reduction. "In the beginning God created the heavens and the earth", a summary of the following three or four chapters.
- pyinstallwoes 3y agoHow many times in the Bible(s) is there a declaration of recursion/self-reference?
- krapp 3y ago"And God said unto Moses, I AM THAT I AM" (Exodus 3:14) "But, beloved, be not ignorant of this one thing, that one day is with the Lord as a thousand years, and a thousand years as one day." (2 Peter 3)
- jwmoz 3y agoIrks me when people shoe-in the word "democratize".
- Lockal 3y agoThe usage of words "live, chat and socialize" is not better. This is just rectangles moving in random directions and generating something that looks like a small talk conversation when any 2 rectangles collide (except when ChatGPT shits out several screens of text instead of a normal replica).
- xyzzy3000 3y agoThe etymology of the word implies rule by a demos (demos / kratos), a demarcated ingroup of people such as the citizenry of a country. And yet, so many of these 'democratising' technical endeavours keep control of the project strictly behind lock and key. There's nothing democratic about it - they just want popularity. Is 'popularise' an undesirable word now? I wonder why the euphemism treadmill has had to advance in this way.
- pyinstallwoes 3y agoFurther etymology is related to “to divide, cut up” so portions of people. Parts of a whole. Also see: demon, daemon, daimon for a kick.
- imdsm 3y agoThis looks brilliant. Something which has been on my mind for a long time, yet haven't had the time to work on it.
- mysterydip 3y agoClicked on Tilly in cat town, and: "Tilly is a dog and likes barking because she is a dog." Seems like it might need some adjusting :)
- coolspot 3y agoIf you read a little further, it makes sense: “Tilly is a dog and likes barking because she is a dog. Tilly pretends that she's a cat. (…)”
- mysterydip 3y agoYes, but the sprite image being displayed is still a cat, not a dog.
- spoiler 3y agoIt's just a good disguise. Like Perrito from Puss in Boots.
- mysterydip 3y agoCan't argue with that logic!
- thih9 3y ago> a virtual town where AI characters live, chat and socialize The description says "live", "chat" and "socialize", but I only saw "chat". What exactly does "living" and "socializing" mean in this context?
- filchermcurr 3y agoI think by live it means exist and by socialize it means they walk around to other people.