Spaces:
Running on Zero
Download README.md from ImAnouar1/SocialDynamics_Lab: direct link, hf CLI and curl.
- Browser
- Download file 7.05 kB
-
https://huggingface.co/spaces/ImAnouar1/SocialDynamics_Lab/resolve/main/README.md
- Command line
-
hf download hf://spaces/ImAnouar1/SocialDynamics_Lab/README.md
-
curl -L -o README.md https://huggingface.co/spaces/ImAnouar1/SocialDynamics_Lab/resolve/main/README.md
A newer version of the Gradio SDK is available: 6.31.0
title: SocialDynamics Lab
emoji: 🌍
colorFrom: pink
colorTo: indigo
sdk: gradio
sdk_version: 6.28.0
python_version: '3.12'
app_file: app.py
pinned: true
license: mit
short_description: Interactive multi-agent opinion dynamics simulator
thumbnail: >-
https://cdn-uploads.huggingface.co/production/uploads/656a180aadba74cd5ef69893/HcfF09F5S4rgtuI1GjYSe.png
SocialDynamics Lab
Interactive opinion dynamics across network structure, confirmation bias, committed minorities, and directional misinformation.
SocialDynamics Lab is a reproducible multi-agent simulator for exploring how simple local interaction rules can generate different population-level outcomes. It is designed for research prototyping, classroom demonstrations, and portfolio use rather than as a calibrated model of any real community.
Live Space: https://huggingface.co/spaces/imvirus/SocialDynamics_Lab
What you can explore
Choose 100, 500, or 1,000 agents, select a Random, Small World, or Scale Free graph, then vary:
- initial opinion distribution
- confirmation bias
- social-influence strength
- stubborn-agent fraction and stance
- misinformation exposure and direction
- stochastic noise
- simulation horizon
- random seed
The dashboard includes:
- interactive network state
- opinion trajectories with population quantile bands
- polarization, consensus, and echo-chamber diagnostics
- initial-versus-current opinion distributions
- degree-versus-opinion influence map
- population composition summary
- deterministic end-state interpretation
- one-click mechanism presets
- controlled comparison across network families
Scenario presets
| Preset | Purpose |
|---|---|
| Healthy Discussion | Low confirmation bias and no misinformation |
| Echo Chamber | Polarized initialization with strong cross-opinion attenuation |
| Misinformation Cascade | Directional exposure on a scale-free network |
| Stubborn Minority | A committed minority remains fixed while other agents adapt |
Presets are illustrative experimental configurations. They are not empirical claims about real populations.
Model
Each agent has a scalar opinion
[ x_i(t) \in [-1,1]. ]
For a non-stubborn agent, neighbor influence is weighted by opinion distance:
[ w_{ij}(t)=\exp{-\beta |x_i(t)-x_j(t)|}, ]
where the interface maps the confirmation-bias control to (\beta \in [0,6]).
The weighted neighborhood target is
[ S_i(t)=\frac{\sum_{j\in N(i)} w_{ij}(t)x_j(t)}{\sum_{j\in N(i)} w_{ij}(t)}. ]
The synchronous update is
[ x_i(t+1)=\operatorname{clip}_{[-1,1]}\left[x_i(t)+\alpha(S_i(t)-x_i(t))+M_i(t)+\epsilon_i(t)\right]. ]
Here, (\alpha) is the social-influence strength, (M_i(t)) is the optional external directional signal, and (\epsilon_i(t)) is Gaussian noise. Stubborn agents retain their assigned opinions exactly.
This is a custom smooth distance-weighted model inspired by classical consensus and bounded-confidence traditions; it is not an implementation of DeGroot or Hegselmann–Krause verbatim.
Diagnostics
Polarization
[ P(t)=\operatorname{Var}(x(t)). ]
Because opinions are bounded in ([-1,1]), the variance lies in ([0,1]).
Consensus
[ C(t)=1-\operatorname{Std}(x(t)), ]
clipped to ([0,1]).
Echo-chamber index
The simulator compares mean opinion disagreement on graph edges before and after applying the same confirmation-bias weights used in the update rule. A score near zero indicates little selective filtering; larger values indicate that effective influence is increasingly concentrated among opinion-similar neighbors.
These are transparent simulator diagnostics, not universal definitions of the corresponding social phenomena.
Network models
- Random: Erdős–Rényi graph with expected average degree near 8
- Small World: Watts–Strogatz graph with degree 8 and rewiring probability 0.12
- Scale Free: Barabási–Albert graph with
m=4
The configurations keep sparsity in a similar range while changing topology.
Large-population rendering
All configured agents and graph edges participate in the simulation and metric calculations.
For browser rendering only:
- 100-agent runs use a force-directed layout
- 500- and 1,000-agent runs use a deterministic hub-aware radial layout
- displayed edges are sampled for large graphs
- visual refresh frequency is reduced as population size grows
This keeps the hosted Space responsive without changing the underlying simulation.
Reproducibility
A fixed configuration and random seed reproduce:
- graph construction
- opinion initialization
- stubborn-agent assignment
- misinformation exposure assignment
- stochastic noise
- full opinion trajectory
Run locally
python -m venv .venv
# Windows
.venv\Scripts\activate
# macOS / Linux
# source .venv/bin/activate
pip install -r requirements.txt
python app.py
Tests
pip install pytest
pytest -q
The test suite covers graph generation, deterministic replay, metric sanity, opinion bounds, stubborn-agent invariance, misinformation direction, and large-population visualization without SciPy.
Repository structure
socialdynamics-lab/
├── app.py
├── README.md
├── requirements.txt
├── CITATION.cff
├── REFERENCES.bib
├── LICENSE
├── src/socialdynamics/
│ ├── metrics.py
│ ├── networks.py
│ ├── presets.py
│ ├── simulation.py
│ └── visualization.py
└── tests/
Scientific context
The simulator draws on established ideas from opinion dynamics and network science while using its own update rule and diagnostics.
- DeGroot, M. H. (1974). Reaching a Consensus. Journal of the American Statistical Association, 69(345), 118–121. https://doi.org/10.1080/01621459.1974.10480137
- Hegselmann, R., & Krause, U. (2002). Opinion Dynamics and Bounded Confidence: Models, Analysis and Simulation. Journal of Artificial Societies and Social Simulation, 5(3), 2. https://www.jasss.org/5/3/2.html
- Watts, D. J., & Strogatz, S. H. (1998). Collective dynamics of ‘small-world’ networks. Nature, 393, 440–442. https://doi.org/10.1038/30918
- Barabási, A.-L., & Albert, R. (1999). Emergence of Scaling in Random Networks. Science, 286(5439), 509–512. https://doi.org/10.1126/science.286.5439.509
- Erdős, P., & Rényi, A. (1959). On Random Graphs I. Publicationes Mathematicae, 6, 290–297.
BibTeX entries are available in REFERENCES.bib.
Responsible interpretation
SocialDynamics Lab is a synthetic mechanistic simulator. Parameter values and outputs should not be interpreted as measurements, forecasts, or validated estimates of real platforms, communities, demographic groups, or political populations.
Citation
If you use the software in teaching, a report, or a research prototype, cite the project using the metadata in CITATION.cff.
License
MIT License. Copyright © 2026 Anouar Imel.