← Back to projects

C++ · Qt · VTK · OpenVR · CMake

VR CAD Visualisation System

A C++/Qt desktop application using VTK and OpenVR to load, inspect, manipulate, and view STL CAD models in both desktop and virtual reality environments.

Desktop interface of the VR CAD Visualisation System
Qt and VTK desktop CAD viewer interface VR view of CAD models rendered using OpenVR

Overview

This project was developed as a group engineering software project to create a CAD visualisation system with both desktop and VR support. The application uses Qt for the interface, VTK for rendering and model processing, and OpenVR for immersive visualisation.

My Contribution

I worked across the application structure, model handling, VR rendering pipeline, live GUI-to-VR updates, documentation, and packaging. The project involved both software engineering and practical debugging to make the desktop and VR views behave reliably.

Key Features

  • Recursive STL folder loading for CAD assemblies.
  • Tree-based model structure for selecting and managing parts.
  • Colour and visibility controls with live updates.
  • VTK shrink and clip filters for model inspection.
  • Dedicated VR render thread using OpenVR.
  • Live GUI-to-VR updates without restarting the VR session.
  • Windows installer packaging and Doxygen documentation through GitHub Pages.

Engineering Challenges

One of the main challenges was keeping the desktop and VR rendering pipelines stable while allowing live changes from the GUI. The project required careful handling of VTK actors, model properties, threading, shutdown order, and VR restart behaviour.

What I Learned

This project strengthened my experience with C++ application structure, graphical user interfaces, rendering pipelines, technical documentation, Git/GitHub workflow, and debugging complex software systems across desktop and VR environments.