As MLH Fellows who have not used LabGraph before, we had a really hard time understanding its purpose, how to set it up correctly, and what to expect from the library. So we decided to help future MLH Fellows get up to speed both on concepts and usage with an interactive tool. LabGraph Interactive lets you check out the power of real-time systems completely online.

What it does

LabGraph Interactive makes checking out the library easy with a terminal built with JS and simulations ran with Python. Once you open the terminal, you can run simulations that we built using LabGraph's principles of Streams and Graphs. You can see the resulted graphs at the top of the terminal

How we built it

We built the terminal using available tutorials and JS principles of HTML DOM. We prepared LabGraph's simulations using matplotlib, setuptools, and, of course, labgraph. To build the project, we also had to learn the principles that LabGraph is based on, which include real-time computational graphs

Challenges we ran into

Some of the challenges we ran into include:

  1. Learning to the use the library with its limited scope aimed at research experiments in neurology and psychology
  2. Managing teamwork with only two teammates and busy schedules, along with looking for ways to improve the library

Accomplishments that we're proud of

We are proud of setting up the LabGraph library correctly on our local computers as there was a versioning issue for MacOS Monterey and Big Sur.

We are also proud of building a LabGraph simulation based on the concepts such as Average Noise and Rolling Averager.

What we learned

We learned how to use Docker to setup individual containers for work with LabGraph on MacOS Monterey. But most importantly, we learned how to use LabGraph to build a simple project like ours.

What's next for LabGraph Interactive

We hope to build a Docker container that will produce randomly generated real-time graphs with LabGraph nodes and build a back-end with Flask to output the graphs 24/7.

Built With

Share this project: