Computational companions to the Quantum Social Physics (QS) framework — the prose/theory repo that develops a three-layer model of trust capital, "superconducting society," and quantum-probability social cognition. This repo holds the neutral, shareable simulation code that pre-checks the framework's falsifiable predictions before (and alongside) human-subjects experiments.
Independent sibling repo. This is a standalone git repository living next to the QS prose repo under the author's
pub-root/container. It is meant to be shared and cloned on its own; it can also be wired into the QS paper as a git submodule for paper↔code version pinning.
The intended evidence hierarchy is:
- Real experiment (best) — randomly assign real humans to conditions and let
behavior be the judge. It can surprise you and prove you wrong. For these
predictions the real-experiment tier is feasible and has precedent (Centola's
networked experiments; Shirado & Christakis 2017 human+bot networks; Bond et al.
2012). The designs live in the QS repo's
pre-registrations.md. - Neutral simulation (this repo, fallback / cheap pre-check) — shows whether a mechanism is sufficient to produce a pattern, and can kill a prediction cheaply. It cannot confirm a claim about real societies, because of equifinality: many different mechanisms can produce the same pattern, so reproducing an observation does not single yours out.
A simulation only counts as evidence if it could have failed. The safeguards that
make this one a severe test (not a confirmation mirror) are listed below and in
PREREG.md.
Prediction (QS §5, P2.4): at matched trust-capital density, generalized / upstream reciprocity ("paying it forward", A→B→C) yields higher cooperation coherence and (as originally worded) larger-scale cooperation than direct (two-body, A↔B) reciprocity. This simulation refines that wording — see the result below: the breadth reading holds, the raw-volume reading does not.
Model (src/trust_sim.py), in System-Dynamics grammar (QS §3):
- Each agent holds a trust-capital stock
Twith an inflow (receiving help raises it — the reinforcing loop, "paying it forward") and outflows (decay, and the rival below). - The rival is a balancing loop, Tsvetkova & Macy (2014): non-recipient
observers of help lose trust (suppression/crowding-out). Strength
beta_suppressis swept from off to dominant — it is given a real path to win. - Conditions differ only in routing the forward step: direct bounces help A↔B; generalized passes it onward to a new stranger.
Neutrality safeguards:
- Paired design — both conditions share graph, initial trust, and donor schedule per seed → "matched trust density" is enforced, not assumed.
- The rival can overturn the prediction; outcomes against P2.4 are reported.
- Propagation-dominated regime chosen on structural grounds (else the primary DV
saturates and the test is dead) — see
PREREG.md.
| DV | Winner | Robust to the rival? |
|---|---|---|
| Coherence (evenness) — primary | Generalized (Δ ≈ +0.09 at baseline) | Eroded ~70% by the rival but not reversed |
| Reach (distinct agents) — exploratory | Generalized | Eroded, not reversed |
| Total volume (raw help-acts) — exploratory | Direct (100% of cells) | — |
Interpretation: generalized reciprocity wins on breadth (coherence, reach); direct reciprocity wins on raw volume (self-reinforcing dyads pump more help). So the simulation partially refutes P2.4 as worded — its "larger-scale" clause should be split into breadth (supported here) vs. volume (refuted here). This is exactly the kind of correction a mirror-simulation would have hidden, and it feeds back into the QS framework §5.
Figures: results/p2_4_phase_coherence.png, results/p2_4_phase_volume.png,
results/p2_4_slice.png; data results/p2_4_phase.csv; verdict
results/p2_4_summary.txt.
conda env create -f environment.yml # conda-forge only; creates env "qs-sim"
conda run -n qs-sim python run_p2_4.py # ~10 s; (re)writes results/Dependencies (numpy, pandas, matplotlib, networkx) are declared in
environment.yml on conda-forge — no Anaconda defaults channel (so no
Terms-of-Service gate for anyone who clones), and no pip requirements.txt (so GitHub
Dependabot, which parses pip/npm but not conda env files, has nothing to alert on).
Deterministic given the seeds in run_p2_4.py (seeds 0–15).
run_p2_4.py— generalized vs. direct reciprocity (done)run_p3_2m_recovery.py— P3.2-M (society of LLMs), Tier-A model-recovery precursor: shows the parameter-free QQ-equality test discriminates M0 (no order) / M1 (classical order) / M2 (quantum) and fixes the sample size (done — PASS, pre-registered N ≈ 6,400 resp.×item-pairs/order; binding failure mode is "false-quantum" at small N; seePREREG_P3_2M.md,results/p3_2m_summary.txt).llm_qq_runner.py— live Tier-A harness for the society-of-LLMs QQ study (done; mock-validated). Administers paired items in both orders with a consent-analog preamble + decline handling, and applies the shared QQ classifier. Runs end-to-end now via a built-in mock (--mock M0|M1|M2), which recovers each generating process at the pre-registered N. Real participants — Gemini, Grok, Claude — are inproviders.py(purerequests, formats adapted from the author'sgemini-python-tutor; keys from env, never hard-coded/logged; offline-validated viapython providers.py --selftest). Live calls are cost-guarded: a real--providerdoes nothing without--live(a full run is tens of thousands of billable calls — pilot first, confirm cost + each provider's research-use ToS).run_p2_5.py— P2.5 machine-node asymmetry (donor vs. intermediary × memory), with the Karpus-exploitation & Crandall-illegibility rivals (done — REFUTES the prediction as worded). At matched help-volume, a single concentrated machine donor spreads cooperation less broadly/evenly than the same volume scattered across random human donors (donor Δcoherence and Δreach both < 0); stateless-intermediary attenuation is negligible at one node. Like the P2.4 volume result, this feeds a wording correction back into the framework. Seeresults/p2_5_summary.txt.- P3.2 (human) — order-vs-count adjudication: M0/M1/M2 model-recovery + fitting (planned)
MIT (LICENSE), © 2026 Kangwon Lee — please confirm/adjust the license and author
before publishing the repo. If you use this, cite the QS framework paper and this
repository. Author: Prof. Kangwon Lee, kangwon.lee@ieee.org.