Inspiration

When challenged to think about how individuals interact in a society and how we arrive at certain conclusions, we wanted to model how people discuss, argue, and maybe even agree on different polarizing subjects. We wanted to show that no matter our backgrounds, we all have the power to change each other's minds, and that the way we say something matters just as much as what we say.

What it does

The Room simulates a room of four personas who each represent different groups in a society. These personas — the Activist, the Traditionalist, the Neutral Observer, and the Politician — each hold their own beliefs, trust profiles, and resistance to change. Users enter a topic then intervene as a fifth force, injecting arguments, triggering events, or directly persuading individual agents. Every intervention runs through a belief physics engine that computes how each persona responds based on their psychology, and the room's mood shifts in real time as beliefs polarize, converge, or harden.

How we built it

We built The Room as a full-stack application -- using React and Vite for the frontend and Node.js for the backend -- with a custom belief simulation engine at its core. Each agent is modeled with volatility, resistance, and a trust profile across five rhetorical dimensions — evidence, rights, stability, authority, and popularity. When a user intervenes, the engine scores their action against these dimensions, computes a directional force, and applies it to each agent with boosts for targeted persuasion and identity snapback for large shifts. On top of the physics layer, we integrated the K2 Think V2 model to generate in-character dialogue and reasoning after each turn, grounding the narrative in the actual belief numbers.

Challenges we ran into

The hardest challenge was bridging the physics layer with the AI narrative layer. The belief engine runs deterministically — every delta is computed from trust profiles, volatility, and resistance — but getting K2 Think to generate dialogue that actually reflected those numbers, rather than just sounding generically in-character, required careful prompt engineering. We also spent significant time wrestling with deployment: Vercel's serverless timeout killed our K2 Think calls, and getting Railway to correctly build the frontend and serve it through the backend took multiple iterations of restructuring our repo.

Accomplishments that we're proud of

We are really proud of the frontend that we were able to create. We knew we wanted to involve minimalistic orbs from the beginning, and are proud of what we arrived at. Additionally, we are proud of achieving our goal: "Simulate Humanity". Our simulation modeled different agents along various dimensions, attempting to capture the complexities of real humans, using mathematics and weighting to really mold and define The Room's 4 personas.

What we learned

The Room taught us to think about how we think. It illustrated to us how humans come to certain conclusions based on their identity and other sentiments populating their current context area. We hope it can serve as a reminder for all of us to think critically, something we are all capable of doing yet so rarely spend the effort to do.

What's next for The Room

If given more time, we would fully develop The Room to being a successful startup that not only gives users a unique and valuable experience, but would also sell insights collected about user behavior. Longer term, The Room could become a powerful tool used to learn about how people debate, learn, and convince. We would be able to collect user data to generate insights into what they believe and how they would try to convince others of that belief.

Built With

Share this project:

Updates