← All projects

Systems

Qt/OpenGL viewer

Windows, Linux and macOS desktop app to load and inspect meshes.

Done Sprint S26-S27 · 13 points
In short, no jargon for non-developersRead the summaryClose
What it is
An application to install on your computer (Windows, macOS or Linux) to open a 3D object, turn it around and read its properties.
What it is for
This is the form of the engineering software used every day, delivered ready to install.
What it shows
Taking a desktop application all the way to delivery, with an installer for each of the three systems.
Source code

How the pieces fit together

Diagram: lib-c → MeshModel (mesh read) ; Window → MeshModel (opens) ; MeshModel → Renderer ; Window → Renderer (draws) ; Window → Camera ; Camera → Renderer (view, zoom) ; MeshModel → Picking (click: vertex or face). mesh read opens draws view, zoom click: vertex or face lib-c reads the files MeshModel normals, colours Picking ray casting on the CPU Window Qt Widgets, Linguist Renderer OpenGL 3.3, GLSL Camera orbital, no OpenGL

The viewer at work

A Qt 6 and OpenGL desktop application for Windows, Linux and macOS: it reads the file with the portfolio's C library and computes its topology with the topologie project, then shows the mesh and its invariants.

To run it at home (Qt 6.5 or later, CMake, a C++20 compiler):

Ready-to-run programs (Windows folder, macOS disk image, Linux AppImage, unsigned), built and launched once by the CI, kept for 30 days: artifacts of the qt workflow

Tech stack

  • C++
  • Qt
  • OpenGL
  • Qt Test

Who does what

C++
The C++20 application: mesh model, camera and ray-cast picking, testable without OpenGL; reading by lib-c, topology by the topology project.
Qt
Windows, menus, panels, drag and drop and the French translation (Qt Linguist); windeployqt, macdeployqt and AppImage for the executables.
OpenGL
The 3D rendering (OpenGL 3.3, GLSL shaders): two-sided lighting, wireframe, curvature colours.
Qt Test
The tests, including an off-screen rendering read back pixel by pixel, on Linux, Windows and macOS.

Definition of Done

  • Code reviewed, diff by diff
  • Unit and integration tests green
  • Green CI on Linux, Windows and macOS when compiled
  • README, REVIEW.md and DECISIONS.md up to date
  • Texts in French and English
  • Demo deployed and tested on mobile