Python HTML CSS JavaScript
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
deploy add logging to uwsgi Nov 3, 2016
.landscape.yml add config Mar 17, 2015


vcweb is a Python/Django framework for developing collective action experiments. These experiments are characterized by parameterizable experiment configurations with parameters applicable across the entire experiment or specific to a given round and a random set of participants that are partitioned into groups (or networks). Our experiments typically involve common pool resources where individuals must balance self interest with the good of the group or linear public good games where majority group contribution is needed to maximize payoffs.

We maintain a managed instance of vcweb at but you are welcome to host your own server.


  • Subject pool management: participant recruitment and experiment session management with custom invitation emails
  • Real-time chat and server push events via sockjs-tornado and Redis
  • Support for two broad classes of experiments:
    • Controlled experiments typically run in a computer lab with captive participants, characterized by timed rounds of parameterizable duration, and round transitions manually managed by an experiment facilitator, i.e., when all participants have completed a round or the round duration has expired, the experiment facilitator is notified in their web interface that time is up and that they can safely advance to the next round. When they click the "Advance to next round" button, all participants are automatically transitioned to the next round. Development is ongoing to properly implement automated round transitions where all participants automatically advance to the next round when user input is finished.
    • Extended experiments that span multiple days or weeks with scheduled custom experiment logic, e.g., at midnight determine the current state of a resource and up-till-now payments, then send summary emails to all registered participants.
  • Web based experiment parameterization for multiple treatments with support for experiment-wide and round-specific parameters. Standard parameters include show up fees, exchange rate for tokens to currency, round durations, and group size. Custom parameters are defined by experiment developers; examples include initial resource levels and regrowth factors for a common pool resource game. An experiment treatment consists of an ordered set of round parameterizations. Round parameterizations can be specified to repeat N times as well.
  • Flexible data model for managing the metadata and relationships between Experiments, ExperimentConfigurations, RoundConfigurations, and generated Participant and Group data. Work is ongoing to simplify and improve this API.
  • Existing experiment UIs have been implemented using Bootstrap 3, knockout, jQuery Mobile, and Sencha Touch but the view layer is unopinionated and experiments can be implemented with arbitrary web or mobile UIs. Some ideas: reactjs and Om, angular, emberjs, d3js, processingjs.

run experiments or develop new experiments

Please contact us if you'd like to request an experimenter account or develop new experiments

participate in an experiment

In order to participate in a vcweb experiment you must be invited to one by an experimenter.

try it out

You can try the software as a demo experimenter by logging in to with the following credentials:

This experimenter has limited access to a single experiment, a Forestry Communication / No Communication setup. You can view the page by clicking on the "Monitor" button to connect to the experiment and view any generated data. There are 10 demo participants registered with the experiment. Their credentials are listed below

codebase status

Build Status Coverage Status Code Health