Comment on page
Easy Multiplayer Interactive Experiments in the Browser
Empirica is the one method that provides enough flexibility to build any experiment while still being accessible and helpful to the researcher.
While Node.js and React.js are powerful tools, and you could build sophisticated experiments with them, Empirica makes building and managing your experiments much easier.
Notably, Empirica provides an Admin Panel that allows you to manage the conditions of your experiments (Treatments and Factors) and which Games are running, collecting data, or waiting for players.
Empirica does the heavy lifting in managing games, player connections, game life cycles, and more.
Empirica v2 is a major departure from v1. It goes well beyond a few API changes since we have completely rebuilt Empirica from the ground up with new technologies. Here are a few key elements of the change:
- New Features! We have introduced a bunch of new capabilities. We are still working on the documentation, but here are a couple of examples of what's now possible:
- Custom assignments: we have opened up the entire assignment flow. You can hook in anywhere and do all kinds of fun new assignment logic.
- (Re-)Assignment to ongoing games: players can join ongoing games. They can also be reassigned between games.
- Developer UX Loading is fast; changes refresh instantly; we use standard npm libraries; the empirica command helps through the development process, etc. We have built a strong foundation and have only started the developer experience improvements.
- New Technologies We are still using open-source technologies, but we no longer rely on Meteor.js. We have built a custom framework with a GraphQL server in Go. The backend is still on Node.js, though we no longer use Fibers, a deprecated Node.js technology used in Meteor. And we are up to date with React v18+ on the frontend.
- Open Architecture We have purposefully centered our design on a Graphql API. We are not locked into one language or framework. We currently support a Node.js backend and a React front. But someone could develop a python backend to integrate with their existing libraries and a Flutter frontend to build a mobile app.
To learn more about Empirica v2's differences and how to migrate to v2, see our v2 migration guide.