Architecture
High-level design showing how the QML UI, C++/VTK core, and build toolchain interact across desktop and WebAssembly targets.
Key ideas
- Separation of concerns: QML handles UI and interactions; C++/VTK handles data processing and rendering.
- Single codebase, multiple targets: same sources build to native desktop or Emscripten WebAssembly via CMake.
- Bridge layer: a small C++/QML bridge (invokables, properties, signals) exposes VTK features to QML without duplicating logic.
- Consistent runtime contract: WebAssembly and desktop runtimes share the same bridge/API so UI code is target-agnostic.