GSoC 2021 Project Idea 24.1: LAB.JS Collecting Behavioral and Neuroscientific Data with Shiny (in R) and lab.js

lab.js is an open-source JavaScript library and GUI for building experiments in the neuro- and behavioral sciences ( Researchers worldwide use it to construct and run experiments online and in the laboratory, as well as for teaching research methods and experimental design.

In this project, we would like to extend the capabilities for data collection to the Shiny framework for web applications in R (, which is a great, open-source library for building interactive, data-driven websites as well as collecting data, for example via questionnaires. Shiny also makes it easy for researchers to deploy websites on their own infrastructure as well as commercial providers such as ( The goal we’d like to achieve with you will be to enable running behavioral experiments, and to collect data, via lab.js and Shiny.

Your task (as we envision it) will be to build a prototype lab.js study that runs via Shiny, document how it works, and work with us to automate the process of generating and deploying more studies like it. The end goal will be to provide a one-click study export to Shiny, similar to the deployment options that lab.js provides already (Deploy studies online — lab.js 20.1.1 documentation). Ideally, you’re broadly familiar with R, have some interest or experience in web development (via Shiny), and are prepared to pick up some JavaScript to interact with lab.js. Of course, we would be thrilled to introduce you to the project, and support you in your work.

Please do not hesitate to get in touch – we would be glad to answer any questions you have, and help sketch out a formal proposal. You’re warmly invited to say hello in our community (lab.js · Support) – we’d love to hear from you!

Lead mentor: Felix Henninger @felixhenninger (University of Mannheim / Helmholtz AI / LMU Munich)

Backup/Co-mentor: Yury Shevchenko (iScience group, University of Konstanz)

Skills: Intermediate R, basic familiarity with web development in JavaScript, ideally some React (or interest in picking it up)

Hi everyone, thanks a lot for checking out our project! I just wanted to invite y’all to ping me if I can help, I’d be thrilled to answer questions and help out as best as I can. Looking forward to hearing from you!