Open-source JavaScript framework for running multiplayer interactive experiments and games in the browser


The "physical" lab

Since the 1950s, social scientists of all disciplines have been studying people in “behavioral labs” at universities. These labs typically involve cramming a group of people into a room for an hour or so and asking them to do something.

Do you develop interactive human experiments? If so, you’ve probably had the experience where you had an idea, then decided on the independent variables that you will manipulate, the task that the participants will perform, and the overall environment that they will operate in. Then you've probably sat down to code the experiment but got side-tracked by all the logistics: crossing your independent conditions to form treatments, repeating your conditions, randomization, storing intermediate data, managing participants, synchronization, timers, waiting rooms, setting up an infrastructure, etc. It’s frustrating to put all that effort in before even getting to what’s really unique about the experiment. This is a lot of work ... and this work is redundant. Worse, it encourages bad practices like copy-pasting boilerplate from someone else’s experiment code without understanding it or creating ad-hoc experiments that are not replicable nor reusable.

The purpose of Empirica is to address the problem of long development cycles required to produce software to conduct human online experiments by handling all the boring logistics and allowing the researcher to get straight to what is really interesting, whatever that may be. Researchers time should not be spent in implementing the software and reinventing the wheel every time they try to experiment with their ideas.

So, we  released the first beta version of Empirica. But before you get started there are a few things you should know:


The "Virtual" lab

The “Virtual Lab” refers to using software-controlled experiments with Internet participants to overcome many of the limitations of brick-and-mortar lab experiments. The photo is taken from TurkServer, part of Andrew Mao's PhD thesis from Harvard University.

  • This is a Friends & Family beta - this means that you will be using a version of Empirica that is not yet ready for public release and still lacks proper documentation and examples. You should be prepared to find things which don't work perfectly, so please give us feedback on how to make them better. You can provide us with feedback by sending an email to hello@empirica.ly or by creating an issue on GitHub. The more feedback you give us, the better!

  • We are small, but you can help us grow- Empirica is an open source project, and we are grateful for any contribution, no matter how minor. Improving documentation, bug triaging, or writing tutorials are all examples of valuable contributions. You can also contribute by advising us on how to do things better! So far, we are lucky to be advised by a strong team of academics and science enthusiasts including Iyad Rahwan, Alex ‘Sandy’ Pentland, Alejandro Campero, Niccolo Pescetelli, and Joost P Bonsen.

  • Nothing good is free, but you will not pay - this project was initially created because we needed a solution for our own use, and then chose to release the code as open source. We want to provide value to others for free. We hope that by releasing our project to open source, we can multiply the development resources, without having to hire coders. However, there are bills that we need to pay. So far, we've been financially supported by Scalable Cooperation at the MIT Media Lab and the MIT Sandbox Innovation Fund. If you know of any additional financial support opportunities, please let us know! If you can make an introduction, even better!

That said, here is the official website https://empirica.ly and GitHub repository. Also, here is some sort of a tutorial. Happy experimenting!

If you have any questions or you would like to collaboratively develop experiments powered by Empirica, just reach out!