The Social Ecological Systems Experiment Framework (sesef) is a Java framework providing networking, persistence, and configuration support for real-time interactive collective action experiments. For concrete examples, see the foraging and irrigation experiments.
The framework was developed from several years of experience developing interactive collective action experiments with 10-30 participants in a controlled system / computer lab. A common core was extracted with support for:
- experiment-wide and round-specific parameterizations via Java properties files
- networking, threading, data model, configuration, and user interface scaffolding for clients, facilitators, and servers
- event channel abstraction that decouples messaging between different system components (persistence, resource generation, client and server side data models and the user interface)
- scaffolding for automatic binary and XML based persistence of user events
There are many areas of improvement remaining:
- integration with http://netty.io for better networking support, finish implementing client and server NettyDispatchers
- easier web-based deployment (perhaps Play or dropwizard?) and a facilitator / experiment webapp
- standardized data export tools
- improved persistence mechanisms (currently XStream and standard Java serialization of PersistableEvents in a time ordered stream, brittle with class changes).
- P2P network synchronization to handle larger scale experiments
- better UI support and scaffolding
Current development is focused on web-based collective action experiments. If you'd like to use sesef to develop new experiments or are interested in customizing any of our existing experiments, please let us know.
Development supported by the ASU Center for Behavior, Institutions, and the Environment and the National Science Foundation.