Skip to content

Real-time Visualizations

Products used: Neon

TIP

Raw data streams can feel abstract. What if you could bring them to life? This guide shows you how to visualize everything from 3D eye models to dynamic data plots, turning numbers into intuitive visuals.

From Data Streams to Intuitive Insights

Neon provides a rich collection of real-time data, including 3D eye poses, pupil diameter, blinks, and IMU readings. While this raw data is powerful, seeing it as a stream of numbers in a console can make it difficult to grasp what's truly happening. The "aha!" moment often comes when you can see the data in visualisations, transforming abstract numbers into a clear, intuitive understanding of behaviour.

The benefits of live visualisation go beyond simple data inspection. For example, visualising 3D eye poses can be important for monitoring patients in clinical applications. In high-intensity scenarios, like performing surgery or long-distance trucking, plotting eyelid aperture in real time can provide insights into a wearer's state.

This is where our guide comes in. It shows how to build these visualisations and run them in real-time, providing a foundation not just for seeing your data more intuitively, but also for building with it.

Understanding in the Moment

Neon’s Real-time API is designed to make it easy to stream data to a computer. If you want to visualize this data, though, it requires planning how to best represent it. This Alpha Lab guide addresses that need directly. It shows how to build real-time visualisations using Python and PyQtGraph, an approach performant enough to handle live 3D visualisations, yet simple enough for those new to coding. It’s designed for when you want to monitor data live during an experiment, create interactive bio-feedback applications, prototype a new gaze-contingent system, and more!

Steps to Recreate

Load up your Python environment, connect Neon, and follow the steps in the Github repository’s instructions.

What You'll Learn to Build

This guide provides the foundation and hands-on examples for creating three distinct types of visualisations:

  • 3D Eye Pose: Render a 3D model of each eyeball next to the corresponding eye video. This visualisation includes the pose of the eye model, its optical axis vector, and a dynamic representation of the eyelid opening.
  • Dynamic 2D Data Plots: Generate real-time, scrolling plots for any of Neon's numerical data streams, such as pupil size and blink events.
  • 3D Module Orientation: See a live 3D visualisation of the Neon module's orientation in space, rendered using the real-time IMU data stream.

These examples are more than just demos; they are well-commented, modular starting points for your own projects in monitoring, clinical testing, sports science, and beyond.

Feel free to use the code as a base for your own investigations and share what you come up with in our #show-and-tell channel on Discord.

TIP

Need assistance with the example visualizations? Reach out to us via email at info@pupil-labs.com, on our Discord server, or visit our Support Page for dedicated support options.