
Concordia University
Research Assistant, Winter 2022 semester
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.
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.