|
CDT++ 1.0.0
Causal Dynamical Triangulations in C++
|
cdt-viewer is a reproducible archival renderer for the CDT++ documentation, not part of the cross-platform simulation interface. It restores CGAL 6.2's Qt basic viewer as an explicit macOS opt-in while keeping the supported reference, parallel, and debug builds headless.
On macOS, a clean checkout can build the viewer and run its noninteractive render smoke test with:
The macOS CI matrix cell runs this same focused recipe after the required headless build/test contract. Linux and Windows CI remain headless and validate only the tracked viewer inputs and canonical artifact through just check.
Regenerate and validate the tracked README hero image with one command:
viewer-render reads viewer/manifests/v1/hero.json, loads and validates its versioned OFF fixture and metadata sidecar, renders docs/images/S3-7-27528-I1-R1.png, and verifies the complete tracked artifact contract. The static validation is also available without building Qt:
For interactive inspection after just viewer-build, omit --output:
The viewer CMake preset sets ENABLE_VIEWER=ON and requests the vcpkg manifest feature of the same name. That feature opts CGAL into its qt feature; CGAL owns the resulting Qt and Eigen dependency boundary. No viewer feature, Qt package lookup, or viewer target is present in an ordinary headless configure.
The canonical input is viewer/fixtures/v1/S3-7-27528-I1-R1-seed30.off, accompanied by its required .off.meta integrity and provenance manifest. It was produced from revision 8f765ee90d873e51ba2c15bd51a7e85a6558c1fa with:
The fixture contains 4,940 vertices, 33,746 edges, 56,335 faces, and 27,528 simplices across timeslices 1 through 7. Its SHA-256 digest and the payload size, FNV-1a checksum, placement fingerprint, and topology fingerprint from the sidecar are checked before rendering.
Seed 30 was chosen empirically, and this tracked run matched the legacy hero's 27,528-simplex count. The seed reproduces the random inputs, not necessarily CGAL's exact tetrahedralization, so the checked-in OFF payload is the canonical rendering fixture.
viewer/manifests/v1/hero.json conforms to viewer/schema/render-manifest-v1.schema.json. It pins:
The archival style deliberately renders outward-facing colored facets, limits vertex marks to the convex hull, and derives thin black separators from color discontinuities in the finished frame. This avoids CGAL 6.2's all-interior edge pass obscuring the surface while retaining the black-wireframe and red-vertex character of the historical hero.
The CTest smoke renderer creates its PNG through Qt's framebuffer path without displaying an interactive window. It rejects dependency-version mismatches, corrupt or topologically different fixtures, wrong output dimensions, empty files, and images below the declared foreground-pixel threshold.
Exact PNG identity is required only on the canonical macOS 26.6.1 arm64, Xcode 26.6, CGAL 6.2-I-900, and Qt 6.11.1 renderer recorded by the manifest. Other environments may differ in rasterization and must instead pass fixture integrity, topology, image-dimension, nonempty-file, and foreground-pixel checks. Linux and Windows remain supported for the headless application, but are not supported viewer-generation platforms for v1.0.0.
| Artifact | Classification | Provenance and policy |
|---|---|---|
| docs/images/S3-7-27528-I1-R1.png | Active reproducible hero | Generated by just viewer-render from the versioned fixture and manifest above; referenced by the README. |
| docs/images/26.eps | Historical archival visual | Original provenance is unavailable; retained for history and not referenced by active documentation. |
| docs/images/26.png | Historical archival visual | Raster counterpart of 26.eps; original render inputs and parameters are unavailable. |
| docs/images/44.png | Historical archival visual | Original render inputs and parameters are unavailable; no reproducibility claim is made. |
| docs/images/t8-v68-s298.png | Historical archival visual | Original render inputs and parameters are unavailable; no reproducibility claim is made. |
Historical visuals are intentionally not accepted as validation evidence. New active documentation visuals must add a versioned source fixture or data file, an explicit generation manifest or command, and an automated structural check; canonical raster identity should be pinned only when the rendering platform and toolchain are also pinned.