Skip to main content
Jonathan Andrei
Concordia University

Concordia University

Research Assistant, Winter 2022 semester

January 2022 - May 2022Montréal, CanadaAcademic research, real-time sensor processing

Real-time IMU visualisation in C++ and OpenGL, 99% system accuracy, cross-platform

Wrote a cross-platform C++ application that read roll, pitch, yaw, quaternion, acceleration, and angular velocity from an IMU sensor, then visualised the orientation live using quaternion-based rotations in OpenGL.

C++OpenGLIMU sensorsQuaternionsCross-platform

The problem

A research group needed to visualise IMU (inertial measurement unit) sensor data in real time on multiple platforms. The existing pipeline was slow, and the visualisation lagged the sensor rate.

Rotation using Euler angles introduces gimbal lock at certain orientations, which visibly breaks the model when the axes align. Quaternions avoid that entirely but the math is less intuitive.

The approach

Built a cross-platform C++ application to process and visualise the sensor stream in real time. Implemented 3D visualisation with OpenGL using quaternion-based rotations, which sidestep the gimbal-lock trap that Euler angles fall into.

Profiled the hot path and optimised the collection and analysis algorithms so the visualisation stayed at frame rate as the sensor sample rate went up.

The outcome

System accuracy improved to 99% by tightening the collection and analysis algorithms.

Processing time reduced. Overall system responsiveness improved.

The application ran identically on the platforms the research group needed.

What I take from this

Frame-rate systems have a hard ceiling. You cannot cheat the math. Optimisation is not about writing faster code, it's about doing less work per frame. That mental model transfers directly to every latency-sensitive system I've touched since: real-time inference, streaming APIs, live agent loops, live-updating UIs.