Inspiration
We wanted to investigate whether societal polarization comes from social media algorithm design choices or from the natural social tendencies of humans in large groups. This problem felt particularly relevant to today's increasingly connected and polarized world.
What it does
ECHO Lab constructs a simulated society of up to 500 human agents, each with their own beliefs, susceptibility, trust levels, confidence scores, and uncertainty. Then, we simulate the spread of beliefs and ideas through several different platform architectures: maximized engagement, chronological feeds, diversity nudged, echo bubbles, and repulsive polarization. Each platform type has different parameters affecting the kind of content that each agent sees from the agents that it follows, resulting in different belief evolution dynamics. We use real-time Esteban-Ray calculations to get a quantifiable measure of polarization, as well as a bimodality measure to see the societal rift develop.
How we built it
We built a FastAPI Python backend for the simulation engine and a Svelte frontend for visualizing the simulation and parameter controls. Agents are connected through a directed graph representing followers, and per-agent content exposure is calculated from platform parameters.
Challenges we ran into
The main challenge we faced was generating realistic, diverse agents for our simulation. At first, we generated 500 personas with an LLM, but quickly realized that the model was introducing persona bias and underlying structure into the agent pool. We pivoted to generating personas completely randomly, using Latin Hypercube Sampling and Gaussian copulas. This gave us a much cleaner distribution of agent personas, more variety in simulation results, and alleviated LLM bias.
Accomplishments that we're proud of
We built an interactive frontend that lets users change simulation parameters, switch policy presets, adjust agent count and timestep length, and immediately see how those choices affect the network. Another major accomplishment was making the synthetic population more defensible. After finding that LLM-generated personas could introduce hidden bias, we moved to a reproducible random population pipeline using Latin Hypercube Sampling and Gaussian copulas. This gave us cleaner initial conditions and made the simulation results easier to interpret.
What we learned
We learned that small changes in feed-ranking rules can produce noticeably different belief dynamics, even when the underlying population stays the same. We also learned that agent generation matters: if the starting population has hidden bias, the simulation results become hard to trust. Moving from LLM-generated personas to Latin Hypercube Sampling and Gaussian copulas helped us separate platform effects from population-generation artifacts. We also realized that visualizing social systems at scale is its own engineering problem. A 500-agent network is visually dense, so metrics like Esteban-Ray polarization, echo chamber coefficient, and bimodality are essential for interpreting the simulation.
What's next for ECHO Lab
Further work could be done to make the simulation more user-friendly and better suited for scientific research at scale. Additionally, an integrated system to log and export simulation data for further analysis would be valuable for users.
Built With
- cursor
- fastapi
- python
- svelte
- typescript
- vega-lite
- vis.js
- vite
Log in or sign up for Devpost to join the conversation.