A native social simulation framework for configurable social-media experiments
Project description
NOTE: This repository is currently in alpha development, and we expect to ship further stability updates over the coming weeks
SiliSocS
SiliSocS (Silicon Society Sandbox) is an easy-to-use, configurable, and extensible framework for multi-agent social simulation and experimentation. It is structured around the EASE decomposition — Environment, Agents, Simulation engine, and Evaluation — taking inspiration from the Concordia framework, and providing a principled, reproducible configuration layer for simulated societies. It offers scenario-driven social grounding, Concordia-like game master-mediated environments, local and served backends, evaluation probes, runtime telemetry, and experimental study tooling. Interoperability for Concordia designed agents is available through an optional bridge extra.
- 2026 ICML Position Paper ICML 2026
- 2026 EASE Configuration: arXiv:2605.30258
- Documentation: sandbox-social.github.io/silisocs
Papers on a previous version centered on a served Mastodon social media network:
- 2024 NeurIPS Workshop Paper: arXiv:2410.13915
- 2025 IJCAI Demo Paper: IJCAI 2025
Install
The default package is intentionally lean and supports local simulations without dashboard, Mastodon, HuggingFace, or analysis dependencies:
pip install silisocs
Optional integrations are exposed as extras:
pip install "silisocs[hf]" # Hugging Face persona sources
pip install "silisocs[mastodon]" # real Mastodon backend
pip install "silisocs[dashboard]" # Streamlit launcher
pip install "silisocs[analysis]" # plotting and analysis dashboards
pip install "silisocs[viz]" # local backend web visualizers
pip install "silisocs[concordia]" # optional Concordia bridge
pip install "silisocs[hpc]" # optional Submitit/Slurm study helpers
For contributor work from a checkout:
git clone https://github.com/sandbox-social/silisocs.git
cd silisocs
uv sync --all-extras --group dev --group docs
Quick Start
Run the built-in package default scenario:
uv run silisocs
For a local smoke test without model API calls:
uv run silisocs sim.llm.provider=scripted
Override scale or model settings with Hydra dot notation:
uv run silisocs num_agents=10 num_steps=5 sim.llm.name=gpt-4o
Run a bundled external scenario:
uv run silisocs --config-path scenarios/election/conf
Run the packaged resource-market preset:
uv run silisocs scenario=resource_market agents=resource_market env=resource_market
Run the packaged virtual-space preset:
uv run silisocs scenario=virtual_space agents=virtual_space env=virtual_space
The same backends also have curated external examples under scenarios/:
uv run silisocs --config-path scenarios/resource_market/conf scenario=resource_market agents=resource_market env=resource_market
uv run silisocs --config-path scenarios/virtual_space/conf scenario=virtual_space agents=virtual_space env=virtual_space
Outputs are written under outputs/<scenario_name>/<jobname>/ and include
action_events.jsonl, probe_events.jsonl, prompts_and_responses.jsonl,
sim_metrics.json, a resolved Hydra config snapshot, and a local
SQLite backend database for local platforms.
Studies and Experiments
Study orchestration lives in experiments/run_study.py. It expands hypotheses,
conditions, scenarios, and seeds into reproducible simulation runs, then executes
the configured evaluators and writes organized artifacts under the study's
generated/ directory.
uv run python -m experiments.run_study --study experiments/studies/study_template_v1 plan
uv run python -m experiments.run_study --study experiments/studies/study_template_v1 run --only-hypothesis h1_timeline_mechanism
uv run python -m experiments.run_study --study experiments/studies/study_template_v1 summary-append --author analyst --hypothesis h1_timeline_mechanism --note "Initial finding"
Custom commands plug in through conditions.<id>.execution.command, evaluator
commands through the evaluations list, and optional HPC setup through the
study runner's submitit or slurm-array commands. See
docs/experiments.md and
docs/study_schema.md.
Architecture
The canonical runtime entry point is src/silisocs/runtime/runner.py. It
composes Hydra configuration, builds agents, initializes memory, constructs the
environment backend and game master, runs the simulation engine, and writes
artifacts.
silisocs/
├── src/silisocs/
│ ├── agents/ # Native and bridge-compatible runtime agents
│ ├── conf/ # Packaged Hydra defaults
│ ├── dashboard/ # Optional Streamlit scenario launcher
│ ├── environments/ # Game masters and environment backends
│ ├── evaluations/ # Probes, telemetry, and optional analysis tools
│ ├── runtime/ # Runner, config projection, and orchestration
│ └── simulation_engines/ # Engine loop, step, and turn policies
├── scenarios/ # Scenario configs and curated inputs
├── experiments/ # Study orchestration and generated study outputs
├── docs/ # ProperDocs documentation
└── tests/ # Unit and integration tests
Optional Concordia Bridge
SiliSocS runs on native runtime contracts by default. The optional Concordia bridge is for porting Concordia-designed agents or components without making Concordia part of the default install:
- All runtime agents satisfy
silisocs.agents.base_agent.Agent. - Native runtime classes and GM components are the primary extension API.
- Legacy Concordia-shaped components are isolated behind
silisocs.adapters.concordia. - Scenario YAML selects builders, backends, policies, probes, and prompts so most experiment designs do not require Python edits.
See docs/concordia_bridge.md and docs/building_agents.md for the extension contracts.
Development
Common commands:
uv run pytest
uv run silisocs-config-dry-run --project-root .
uv run poe lint
uv build --sdist --wheel
uv run --group docs properdocs build --strict
uv run pytestruns the test suite in the current environment.uv run silisocs-config-dry-run --project-root .composes shipped scenario and replication configs without running LLM calls.uv run poe lintruns the configured formatting, static checks, and type checks.uv build --sdist --wheelbuilds release artifacts indist/.uv run --group docs properdocs build --strictbuilds the documentation site and fails on broken links or stale navigation.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file silisocs-0.1.0.tar.gz.
File metadata
- Download URL: silisocs-0.1.0.tar.gz
- Upload date:
- Size: 338.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4b2a195e59e048743bab821098302af10a385d0cee72fe76722e7843fd630dfe
|
|
| MD5 |
8dfb91c4bb08e2d2e4e2c548bfe9f850
|
|
| BLAKE2b-256 |
42818e7346a7ade0f4afb174e1a2207ab56d0a1cabc4baeed274bfca808b93b4
|
Provenance
The following attestation bundles were made for silisocs-0.1.0.tar.gz:
Publisher:
publish.yml on sandbox-social/silisocs
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
silisocs-0.1.0.tar.gz -
Subject digest:
4b2a195e59e048743bab821098302af10a385d0cee72fe76722e7843fd630dfe - Sigstore transparency entry: 1700473304
- Sigstore integration time:
-
Permalink:
sandbox-social/silisocs@f6689f0cb8b14a1f4232f724813b2467aeca4d47 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/sandbox-social
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@f6689f0cb8b14a1f4232f724813b2467aeca4d47 -
Trigger Event:
release
-
Statement type:
File details
Details for the file silisocs-0.1.0-py3-none-any.whl.
File metadata
- Download URL: silisocs-0.1.0-py3-none-any.whl
- Upload date:
- Size: 344.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c46b8e9c676340b6bd54a6b5d7d81b55f766f5eeaf56fcf0c00dce7f6eee66ed
|
|
| MD5 |
7d5f5372bcd5eb80729dffa1a98c5bc0
|
|
| BLAKE2b-256 |
95121a2ddd4c7ace7f221bf752ac40c6a05b727574ee13099d248d2164a6ee3a
|
Provenance
The following attestation bundles were made for silisocs-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on sandbox-social/silisocs
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
silisocs-0.1.0-py3-none-any.whl -
Subject digest:
c46b8e9c676340b6bd54a6b5d7d81b55f766f5eeaf56fcf0c00dce7f6eee66ed - Sigstore transparency entry: 1700473409
- Sigstore integration time:
-
Permalink:
sandbox-social/silisocs@f6689f0cb8b14a1f4232f724813b2467aeca4d47 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/sandbox-social
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@f6689f0cb8b14a1f4232f724813b2467aeca4d47 -
Trigger Event:
release
-
Statement type: