Finding-U1 and Finding-U2 from doc/reviewer/usability-audit-2026-05-31.md.
The existing examples (example_euclidean, example_layout, example_hyper_ideal)
all used the "natural theta" pattern which makes x*=0 trivially the
equilibrium — u_v ≈ 0 everywhere, no deformation. A new user following
these examples saw solver output but not conformal geometry.
New: example_flatten.cpp
- PRIMARY USE CASE: conformally flatten a mesh to the plane
- Sets Θ_v = 2π for all interior vertices (flat target)
- Pins boundary vertices (no Gauss-Bonnet check for open meshes)
- Demonstrates non-trivial u_v (cathead.obj: range ≈ 2.96, 5 Newton iters)
- Documents the difference from "natural theta" explicitly
New: example_cgal_api.cpp
- Demonstrates CGAL::discrete_conformal_map_euclidean (Discrete_conformal_map.h)
- First runnable CGAL public API example; contrast with internal API
- Documents the "natural theta" default behaviour and explains why u_v=0
- Explains when to use CGAL API vs internal API
Both examples registered in code/examples/CMakeLists.txt and compile
cleanly with -DWITH_CGAL=ON.
Updated:
- example_euclidean.cpp: prominent "TESTING CONVENTION" warning
- example_layout.cpp: same warning on set_natural_theta helper
- doc/getting-started.md: example_flatten is now the recommended
"start here" example; note on natural-theta behaviour added
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Reviewer meeting materials
A single landing page for the three documents associated with an external-reviewer meeting. The materials are written for a peer who actively publishes in discrete differential geometry — specifically the decorated-DCE / Penner-coordinates / hyperideal-polyhedra / canonical-tessellations research line — and who would potentially use conformallab++ as numerical infrastructure for their own future experiments.
| Document | Audience | Purpose |
|---|---|---|
briefing.md |
the reviewer | one-page orientation: what the project is, where to look first, what we want from them |
questions.md |
the reviewer | the 5 concrete decisions we want their opinion on (skim before the meeting) |
agenda.md |
me | my own meeting playbook: timing, order, the "no" question, post-meeting memo template |
After the meeting, a fourth file 2026-XX-XX-meeting-notes.md should
land here too — the memo template at the bottom of agenda.md is the
suggested structure.
When to send to the reviewer
- briefing.md + questions.md: as part of the meeting-confirmation email, ~5 business days before the meeting. Subject line: "Pre-read for our conformallab++ chat (~15 min)".
- agenda.md: never send. This is internal scaffolding.
Hub-Page durability
The reviewer hub HTML at https://tmoussa.codeberg.page/ConformalLabpp/
is published from doc/reviewer/hub.html in the repo (not from a
detached preview branch). This means:
- Merging any of the open PRs into
maintriggers.gitea/workflows/doxygen-pages.ymlwhich republishes the hub alongside fresh Doxygen HTML — the reviewer URL stays live across merges with no manual intervention. - The hub is source-controlled, so changes are reviewable via PR like any other doc, and old versions live in git history.
- The original Doxygen index moves to
/doxygen.htmlwhenever the hub override is active; both are reachable from the hub itself.
Quick links the reviewer should bookmark
- 🌐 Reviewer-hub landing page: https://tmoussa.codeberg.page/ConformalLabpp/ (the hub shows status badges, a "what's new" banner with the most recent delta, the research-alignment table, and direct links into every document below)
- 📦 Source: https://codeberg.org/TMoussa/ConformalLabpp
- 📝 Architecture decisions (incl. the Q7 "no" prompt):
../architecture/locked-vs-flexible.md - 📐 Schläfli derivation (for Q3):
../math/hyperideal-hessian-derivation.md - 📚 Literature index (for Q1 + Q3):
../math/references.md - 🗺️ Per-phase roadmap (for Q1):
../roadmap/phases.md - 🧪 Research-track entries with acceptance criteria (Q1 + Q2):
../roadmap/research-track.md