lab.js is an open-source JavaScript library and GUI for building experiments in the neuro- and behavioral sciences (https://lab.js.org). 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, our goal will be to expand the library’s reach to laboratory equipment such as EEG and eye-tracking hardware, biosensors, and potentially neuroimaging systems. This will allow for the integration of further data sources in studies built with lab.js, and more types of research to benefit from the project. The technical conduit for this work will be the Lab Streaming Layer (LSL, GitHub - sccn/labstreaminglayer: LabStreamingLayer super repository comprising submodules for LSL and associated apps.), which provides a widely supported standard for communication between different instruments, and a framework for collecting time series from a multitude of sensors. Your task in this project (as we envision it) will be to establish communication between a study running in lab.js, and the LSL. We are open to your ideas and suggestions, but one way of achieving this would be to expose the LSL through
Electron (https://www.electronjs.org/), a framework for creating desktop applications with JavaScript that provides wide-ranging capabilities for low-level access to the operating system.
As a stretch goal, we hope to benchmark the result with you, and establish the temporal resolution and alignment the system provides. To work with lab.js and Electron, ideally you’re ready to develop in JavaScript, but we would be thrilled to introduce you to the project, and of course 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 JavaScript, ideally some Electron (or interest in picking it up)