CloudPeek
Single-header C++ point cloud viewer — OpenGL 3.3 rendering, arcball camera, no PCL or Open3D required
Problem
Point cloud processing pipelines involve many intermediate representations that are hard to inspect without a visualiser that can be dropped into a debug build instantly. RViz is powerful but requires a full ROS installation; PCL’s built-in visualiser requires a full PCL install and can’t run headlessly. There was no single-header option that just worked with a PCD file and minimal dependencies.
Approach
A minimal viewer built around OpenGL 3.3 Core Profile and GLFW, distributed as a single C++ header. Drop PointCloudViewer.h into any CMake project — no PCL, no Open3D, no ROS dependency. The viewer loads binary PCD files directly, renders points colourised by distance from origin, and exposes full arcball camera controls via mouse and keyboard.
Results
Supported formats: Binary PCD with fields x, y, z, rgb, rgba (extensible via the SUPPORTED_FIELDS config constant).
Camera model: Arcball — left-drag to orbit, scroll to zoom, arrow keys or WASD to pan, R to reset view.
Rendering: OpenGL 3.3 Core Profile. Point size, colour mapping (distance-based gradient), grid overlay (PCL coordinate convention), and XYZ axis indicators are all configurable constants in the Config namespace.
Controls:
-
F1— toggle captured/free cursor mode -
R— reset camera to initial position -
ESC— exit -
Cross-platform: Linux, macOS, Windows (CMake build)
-
Apache 2.0 license
-
124 stars on GitHub
Stack
Technologies