ProjectsKnot3d++
08 / Systems / mathematics

Knot3d++

A C++ port of the Knot Workbench with a shared topology engine, CLI pipeline, and optional Qt GUI.

Category
Systems / mathematics
Stack
C++ · Qt · VTK · Mathematics
Year
2026

Overview

Knot3d++ carries the topology-first workflow of Knot Workbench into a native C++ application. The CLI and GUI use the same parsing, normalization, invariant, recognition, and export contracts so a saved analysis does not depend on which front end produced it.

The port is more than a language translation: native paths now compute the Alexander polynomial and determinant, signature support is explicit about its alternating-diagram scope, and lookup-backed hints are labeled as hints rather than presented as native proofs.

Methodology

Planar diagram codes are validated and normalized before the shared engine constructs topology. Analysis is assembled from native invariant calculations, HFK-derived and identification helpers, and a separate unknotting search path. Versioned JSON payloads retain provenance so consumers can distinguish computed fields from lookup guidance.

The CLI is the deterministic pipeline boundary for analysis, recognition, normalization, and mesh export. The optional Qt/VTK GUI consumes the same engine and session contracts, while CTest exercises the CLI path independently of whether a local machine has a working Qt platform plugin.

What it does

  • PD-code parsing, validation, and convention normalization
  • Native Alexander polynomial, determinant, and scoped signature paths
  • HFK-derived tau, epsilon, genus, and knot-identification helpers
  • Unknotting search with explicit native and lookup upper bounds
  • Versioned analysis, recognition, crossing-change, and session JSON
  • CLI analysis and OBJ, STL, GLB, PNG, and CSV export
  • Optional Qt GUI with 2D diagram and 3D viewport workflows