docs: record 2026-05-28 full-library scan findings in roadmap
Some checks failed
C++ Tests / test-fast (pull_request) Successful in 1m55s
API Docs / doc-build (pull_request) Successful in 53s
Markdown link check / check (pull_request) Successful in 1m1s
C++ Tests / test-cgal (pull_request) Has been skipped
C++ Tests / quality-gates (pull_request) Failing after 2m3s
Some checks failed
C++ Tests / test-fast (pull_request) Successful in 1m55s
API Docs / doc-build (pull_request) Successful in 53s
Markdown link check / check (pull_request) Successful in 1m1s
C++ Tests / test-cgal (pull_request) Has been skipped
C++ Tests / quality-gates (pull_request) Failing after 2m3s
Cross-referenced all 232 Java classes against the roadmap. New plan entries for genuinely-useful, previously-unplanned items: - 9g.1 conformal quality measures (Isothermicity, ConformalEquivalence, FlippedTriangles, LengthCrossRatio + ConvergenceUtility metrics) - 9g.2 optional period-matrix convergence experiment (method only; Java harness depends on Mathematica/JLink + jReality, not ported) - DEC operator layer (heds/dec/) noted as a 10a prerequisite - HomotopyUtility -> 10a (explicit generator cycles; not covered by cut_graph.hpp, which yields only the 2g cut edges) - SurfaceCurveUtility -> 9c; MercatorTextureProjection -> 9d.3 companion Documented as deliberately out-of-scope: SpanningTreeUtility (subsumed by cut_graph.hpp), convergence/* harness, datasource/* (jReality viewer decoration), *Big arbitrary-precision geometry, jReality GUI, and the MTJ/Tao/PETSc solver bindings. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -124,6 +124,10 @@ mesh type.
|
||||
Java sources: FundamentalPolygonUtility.java (698 lines)
|
||||
+ CanonicalFormUtility.java (532 lines)
|
||||
+ CuttingUtility / SurgeryUtility (~800 lines)
|
||||
+ SurfaceCurveUtility.java (360 lines, 2026-05-28
|
||||
scan) — curve operations on the surface (cut-path
|
||||
tracing / fundamental-domain boundary); supporting
|
||||
infrastructure for the polygon construction.
|
||||
Mathematical source: Poincaré 1882 + Sechelmann 2016 §5
|
||||
Research component: bridging to conformallab++ cut_graph.hpp
|
||||
+ holonomy infrastructure.
|
||||
@@ -164,6 +168,15 @@ mesh type.
|
||||
Stereographic projection S²→ℂ∪{∞} + Möbius centering for
|
||||
genus-0 surfaces. Converts spherical DCE output to a flat 2-D atlas.
|
||||
Java reference: unwrapper/StereographicUnwrapper.java (266 lines)
|
||||
Note (2026-05-28 visualisation scan): plugin/algorithm/
|
||||
StereographicTextureProjection.java (88 lines) is the texture
|
||||
front-end of this same math — no separate item. The supporting
|
||||
math/CP1 + ComplexUtility.stereographic are deliberately NOT
|
||||
ported (redundant with std::complex + the existing MobiusMap,
|
||||
see porting-status.md).
|
||||
Optional companion: MercatorTextureProjection.java (47 lines) —
|
||||
a distinct cylindrical conformal display projection; small
|
||||
nice-to-have for the sphere-visualisation bucket, not required.
|
||||
|
||||
9d.4 MobiusCenteringFunctional (Java port, optional upgrade)
|
||||
→ integrate into layout.hpp normalise_hyperbolic()
|
||||
@@ -210,6 +223,59 @@ mesh type.
|
||||
Replaces euclidean_hessian.hpp for non-triangular inputs.
|
||||
Status: 🔲 planned (pure research, no Java source)
|
||||
Effort: medium (~2 weeks core + tests; +1 week Newton integration).
|
||||
|
||||
9g — Conformal quality measures (Java port — 2026-05-28 scan)
|
||||
──────────────────────────────────────────────────────────────────
|
||||
|
||||
9g.1 Quantitative correctness metrics for a computed conformal map
|
||||
→ conformal_quality.hpp
|
||||
Lifts the measure math out of the jReality plugin + convergence
|
||||
layers (the math is GUI-independent). High value / low effort:
|
||||
these directly strengthen the validation story for the already-
|
||||
shipped genus-0/1 pipeline (doc/math/validation.md).
|
||||
- IsothermicityMeasure (113 lines) — pointwise deviation
|
||||
from conformality (anisotropy of the induced metric).
|
||||
- DiscreteConformalEquivalencemMeasure (82 lines) — per-edge
|
||||
length-cross-ratio residual vs. the conformal-equivalence
|
||||
condition.
|
||||
- FlippedTriangles (17 lines) — detects inverted /
|
||||
degenerate triangles in a 2-D layout (embedding-validity check).
|
||||
- LengthCrossRatio (12 lines) — the discrete conformal
|
||||
invariant itself (per-edge), shared input for the two measures.
|
||||
- ConvergenceUtility measures (~110 lines, math/float only — no
|
||||
Mathematica/jReality deps): getMaxMeanSumCrossRatio
|
||||
(q=(a·c)/(b·d), qfun=(q+1/q)/2−1), getMaxMeanSumMultiRatio
|
||||
(per-face product, =1 iff conformal), and
|
||||
getMaxMeanSumScaleInvariantCircumRadius (R/√A, scale-invariant
|
||||
mesh-quality). The operational counterpart of LengthCrossRatio.
|
||||
Java references:
|
||||
plugin/visualizer/IsothermicityMeasure.java
|
||||
plugin/visualizer/DiscreteConformalEquivalencemMeasure.java
|
||||
plugin/visualizer/FlippedTriangles.java
|
||||
heds/adapter/types/LengthCrossRatio.java
|
||||
convergence/ConvergenceUtility.java
|
||||
Mathematical reference: Springborn-Schröder-Pinkall 2008
|
||||
(length cross-ratio = discrete conformal invariant).
|
||||
Status: 🔲 planned (Java port; no new theory).
|
||||
Effort: small (~3 days incl. gradient-free tests). No
|
||||
dependencies — can land before 9a–9f.
|
||||
|
||||
9g.2 Period-matrix convergence study (validation experiment — optional)
|
||||
→ tests/cgal/test_period_matrix_convergence.cpp (experiment, not
|
||||
a library feature)
|
||||
Empirical validation for the already-shipped period_matrix.hpp +
|
||||
discrete_elliptic_utility.hpp: generate a genus-1 elliptic mesh
|
||||
with a known analytic τ, then refine / subdivide / add Gaussian
|
||||
vertex noise and plot |τ_computed − τ_expected| → 0.
|
||||
Java reference: convergence/* (~1400 lines) — a CLI harness
|
||||
(joptsimple) that drives the same study. Do NOT port the
|
||||
harness: it depends on Mathematica via JLink and on jReality's
|
||||
OBJ reader + LoopLinear subdivision. Port only the *method*:
|
||||
- subdivision → igl::loop (libigl already available)
|
||||
- noise → trivial (vᵢ += σ·N(0,1))
|
||||
- error metric → the 9g.1 quality measures + τ residual
|
||||
Status: 🔲 optional (raises empirical confidence in genus-1 τ;
|
||||
no new library surface). Effort: small (~2–3 days).
|
||||
```
|
||||
|
||||
---
|
||||
@@ -332,10 +398,21 @@ Phase 10 Global uniformization for genus g ≥ 2
|
||||
Java sources (partial, port-with-research):
|
||||
CanonicalBasisUtility.java 337 lines (homology basis)
|
||||
HomologyUtility.java 122 lines
|
||||
HomotopyUtility.java 57 lines (2026-05-28 scan) —
|
||||
reconstructs the explicit generator *cycles* (bridge edge +
|
||||
tree path via HomologyUtility.findCycle). NOT covered by
|
||||
cut_graph.hpp, which yields only the 2g cut *edges*; the closed
|
||||
loops are needed to integrate 1-forms along b-cycles.
|
||||
DualityUtility.java 308 lines
|
||||
DiscreteHarmonicFormUtility.java 657 lines
|
||||
DiscreteHolomorphicFormUtility.java 285 lines
|
||||
Effort: ~6 weeks net (4 utility ports + 1 integration).
|
||||
Prerequisite — DEC operator layer (2026-05-28 scan, previously
|
||||
unrecorded): the four utilities above are built on the discrete-
|
||||
exterior-calculus primitives in heds/dec/ (DEC.java 76 lines,
|
||||
AbstractDECOperator, DECPairing, DualChain, DualForm — the d / ⋆ /
|
||||
primal-dual pairing operators). Port this thin operator layer
|
||||
first; the form utilities assume it exists. Effort: ~3 days.
|
||||
Effort: ~6 weeks net (1 DEC layer + 4 utility ports + 1 integration).
|
||||
|
||||
10b Siegel period matrix Ω ∈ H_g (g×g complex symmetric, Im(Ω) > 0)
|
||||
→ Ωᵢⱼ = ∫_{bⱼ} ωᵢ
|
||||
|
||||
Reference in New Issue
Block a user