Mar 25, 2026

Public workspaceReproducing Simulation Results for the BCAT Model

  • Chung-Yuan Huang1
  • 1Department of Computer Science and Information Engineering, Chang Gung University, Taiwan
  • BCAT
Icon indicating open access to content
QR code linking to this content
Protocol CitationChung-Yuan Huang 2026. Reproducing Simulation Results for the BCAT Model. protocols.io https://dx.doi.org/10.17504/protocols.io.261geykydv47/v1
License: This is an open access protocol distributed under the terms of the Creative Commons Attribution License,  which permits unrestricted use, distribution, and reproduction in any medium, provided the original author and source are credited
Protocol status: Working
We use this protocol and it's working
Created: March 25, 2026
Last Modified: March 25, 2026
Protocol Integer ID: 313878
Keywords: bcat model, innovation diffusion model, simulation result, bcat, mixed opinion dynamic, best game no one played phenomenon, scaling analysis, plos one paper, mechanism decomposition experiment, protocol
Abstract
This protocol provides step-by-step instructions for reproducing the simulation results presented in the PLOS ONE paper "Exploring the Best Game No One Played Phenomenon Using A Mixed Opinion Dynamics and Innovation Diffusion Model." It covers environment setup, running the BCAT (Bounded Confidence and Adoption Threshold) model, executing sensitivity analysis, mechanism decomposition experiments, and finite-size scaling analysis across four network topologies (Regular Lattice, Small-World, Random, Scale-Free).
Troubleshooting
Environment Setup
Clone the BCAT repository and install dependencies. Requires Python 3.10 or later.

git clone https://github.com/canslab1/BCAT.git
cd BCAT
pip install -r requirements.txt

Dependencies: numpy>=1.24.0, networkx>=3.0, matplotlib>=3.7.0
Running a Single Simulation
Launch the BCAT GUI application:

python3 BCAT.py

Set parameters using the left panel sliders. For the baseline scenario (Fig. 4 - Favorable Review + Good Sales): no-of-pioneers=5, clustered-pioneers=ON, bounded-confidence=50, convergence-rate=0.1, avg-of-attitudes=50, std-of-attitudes=10, avg-of-thresholds=20, std-of-thresholds=5, network-type=SWN, rewiring-probability=0.00, max-time=300. Click Setup, then Run.
Sensitivity Analysis (Table 3, Figs 7-9)
To reproduce Table 3 and Figures 7-9 from the pre-computed sensitivity analysis data:

cd scripts
python3 reproduce_table2_figs.py

This reads the 1,000-run batch experiment results from data/sensitivity_analysis/ (4 Excel workbooks, one per network topology) and generates statistical tables and figures. Alternatively, to re-run the full sensitivity analysis from scratch, use the BCAT GUI Experiments button with the parameters in test_scenarios/sensitivity_analysis_1000_runs.json.
Mechanism Decomposition (Fig 10)
Run the three controlled experiments (MD-A, MD-B, MD-C) to disentangle the opinion clustering and coordination failure channels:

cd scripts
python3 run_mechanism_decomposition.py

This executes 30,000 total simulation runs across lattice and small-world topologies. Pre-computed results are available in data/mechanism_decomposition/ as CSV files. MD-A isolates coordination failure (FRI=1.0), MD-B isolates opinion clustering (no pioneers, GSI=0), and MD-C runs the full BCAT baseline.
Finite-Size Scaling Analysis
Run scaling experiments at N=400, 900, 1,600, and 2,500 agents to confirm robustness:

cd scripts
python3 finite_size_scaling.py

This confirms that the "best game no one played" phenomenon and the dominance of avg-of-thresholds are robust to system size. Pre-computed results are in data/finite_size_scaling/. The script generates summary statistics by threshold and population size.