An online tool for researchers to host and conduct customizable online experiments with users.
As a part of our vision for SynthARium (formerly experimental-hub), we hope to make at-home video conferencing studies have more laboratory control through the experimenter and participant workflows we have designed to allow safeguards in the workflow and a flexible UI (e.g. custom participant video screen position, size, and order, limiting participant exposure pre-experiment to others in the call or seeing themselves with a filter too early, etc.). We also hope that the experimental templates and filters our platform uses helps the egological validity and repeatability of both HCI and psychology experiments and encourages sharing of anonymized data of the experiment. Finally, because our experimental hub is self-hosted, there should be more control over the data privacy of where potentially sensitive video and audio data is being stored.
For detailed motivation about SynthARium see our introduction to the Experimental Hub, read our UbiComp'23 poster paper, or checkout our Medium blog. Otherwise, get started with our quick start or detailed set up instructions to try it out yourself!
In case you want to build the frontend yourself, follow the steps in this section.
For the general setup and prerequisites, please take a look at the frontend and backend READMEs. Continue with the steps bellow after both the frontend and backend are set up.
- Build frontend
- Skip this step if there were no changes to the frontend since the last build process
- Go to the frontend directory:
cd frontend
- If this is your first time running the experimental hub run:
npm install
- Build the frontend:
npm run build
. Make sure the build process finishes without any errors
- (Re-) Start server
- If the server is already running: stop the server
- Make sure to take a look at the settings. For more details see backend configuration
- It is recommended to set
environment
toprod
to disable CORS
- It is recommended to set
- In your venv, run
pip install -r requirements.txt
(click here for more detailed instructions on setting up a virtual environment) - Start the server by executing
main.py
in the backend directory. For example from the root directory:python backend/main.py
- In your favorite browser (tested mainly with Chrome) go to http://localhost:8080/ or https://localhost:8080/ depending on your projects configuration.
- For development, the React / frontend development server is recommended:
npm start