7517f79c07dff6da382b4d28199ddafcb3f6c9cb
TouchSensor 2.0
Real-time tactile sensor exploration UI powered by Qt 6 and a custom Modern Qt component toolkit.
Highlights
- Modern, material-inspired desktop shell built on the in-repo
modern-qtlibrary. - Modular component system (
NavComponent,ViewComponent) for quick UI experiments. - Real-time tactile matrix visualisation via the
HeatMapPlotwrapper around QCustomPlot. - Codec infrastructure (
components/ffmsep) ready for custom tactile packet decoding. - Serial transport module scaffolded for COM port discovery and streaming.
Architecture At A Glance
- Entry point:
main.cccomposes the themed window, navigation rail, and card-based layout. - Components:
components/hosts UI widgets, charts, and the tactile decoder pipeline. - Modern Qt toolkit:
modern-qt/provides declarative wrappers, theming, and Material icon helpers. - Data layer:
components/ffmsepimplements codec registration, packet decoding, and tactile frame processing. - Visualisation:
components/charts/heatmap.*exposes a themable heatmap control for sensor grids.
Getting Started
Prerequisites
- CMake 3.20+
- A C++23-capable compiler (MSVC 19.3x, Clang 16+, or GCC 13+)
- Qt 6 (Widgets, Network, PrintSupport modules)
- Eigen3
spdlog(fetched via package manager or provided to CMake)
Ensure Qt6_DIR (or CMAKE_PREFIX_PATH) points to the Qt install so CMake can locate the required modules.
Configure & Build
pacman -Sy
pacman -S mingw-w64-x86_64-toolchain
pacman -S mingw64/mingw-w64-x86_64-qt6-base
pacman -S mingw-w64-x86_64-eigen3 mingw-w64-x86_64-yaml-cpp
mkdir build
cmake -G "MinGW Makefiles" -B build -DCMAKE_INSTALL_PREFIX="YOUR INSTALL PATH"
cd build && mingw32-make install
cat install_manifest.txt
To run from the build directory:
.\touchsensor.exe
On Linux/macOS adjust the Qt path and executable name accordingly.
Project Layout
.
|-- components/
| |-- charts/ # QCustomPlot-based visualisations (heatmaps, etc.)
| |-- ffmsep/ # Codec system and tactile decoder experiments
| |-- view.cc # Main dashboard composition
| `-- ... # Additional UI widgets
|-- modern-qt/ # In-house declarative Qt UI framework
|-- serial/ # Serial communication helper library
|-- images/logo.png # Current app branding
|-- main.cc # Application bootstrap
`-- CMakeLists.txt # Build script (adds Qt, Eigen, Modern Qt, Serial, SPDLOG)
Roadmap (WIP)
- Flesh out tactile codec implementations and connect them to live serial streams.
- Replace placeholder random data with decoded sensor frames.
- Expand navigation targets beyond the current demo cards.
- Capture screenshots or recordings for documentation.
- Polish theming, animation masks, and landing experience.
Contributing
This repository is in active development; feel free to open issues or PRs once guidelines land. Until then, keep discussions in the project chat or issues board.
Acknowledgements
- Qt for the core UI framework.
- QCustomPlot powering the heatmap widget.
- spdlog for logging (wired via CMake).
- Internal Modern Qt toolkit built on top of creeper-qt utilities.
Description
Languages
C++
99.7%
CMake
0.3%

