Inspiration

I was very inspired by a game called Emily is away, a game that revives 90s/early 2000s aesthetics to tell a story through the medium of a computer. I figured that instead of telling a structured story, I would instead build a window into another world. I was inspired by several other things such as the dead internet theory, that postulates that most of the internet is run by bots pretending to be human, and that the true internet is much emptier than it seems.

What it does

It simulates a tiny world. That tiny world has news events, an encyclopedia, a stock market and lots of twitter users. The window you have into that world is a windows95-like computer that is connected to that world's internet service.

Twitter users' opinions on companies influence their stock prices. People discuss relevant news topics. The encyclopedia has entries pertinent to that world.

Every part of the simulation affects other parts, it is logically consistent.

How we built it

The front end was built using nextjs and tailwind in the style of a windows95 OS.

Mistral Large is used to generate world events/news. Each fictional twitter user is generated in a database, given a name, address, etc... The twitter agents are then fed/given the option to read the news, read the stock price & write tweets about anything that's "on their mind". Every time new tweets are generated, they are embedded and assigned a vector that represents their semantic meaning. A separate program is updating the stock market prices every few seconds, going through recent tweets, finding mentions of specific companies and performing sentiment analysis.

When the wiki is used, a vector similarity search is performed with discussions on twitter to find what's already been talked about on the topic which keeps the article logically consistent and grounded in that world's events.

Challenges we ran into

Mistral larger making tweets that are too similar to each other. To overcome this I've had to add several variables in the prompt template that depend on random factors.

The UI breaking here and there, but it was eventually mostly sorted!

And finally the time pressure, I initially wanted to implement so much more such as a graphcast weather simulation to give that simulated world a weather. And some more fun apps like skype where you'd be able to call agents and have a conversation with them.

Accomplishments that we're proud of

Managing to build this neat frontend and still have the time for some cool backend features. Staying up for over 24 hours after only 4 hours of sleep.

What we learned

It's very hard to get a single model to be varied and creative in their responses. Element of the real world are so incredibly hard to simulate.

What's next for microcosm

Interaction with agents. Devtools and benchmarks? A world simulator-like project?

Built With

Share this project:

Updates

Submission history