docs: full Java library scan — new phases 9d/9e/10d–10g + parity table
Some checks failed
C++ Tests / test-fast (pull_request) Successful in 2m17s
API Docs / doc-build (pull_request) Successful in 49s
Markdown link check / check (pull_request) Successful in 45s
C++ Tests / test-cgal (pull_request) Failing after 10m38s
C++ Tests / quality-gates (pull_request) Successful in 2m5s

Complete scan of all de.varylab.discreteconformal packages (functional/,
unwrapper/, unwrapper/circlepattern/, unwrapper/koebe/,
unwrapper/quasiisothermic/, uniformization/, util/) against the
current roadmap.

New items added to java-parity.md:
- ConesUtility: cone detection, BFS cut, auto-placement, quantization (9d)
- MobiusCenteringFunctional: variational Lösung über Lorentz-Geometrie (9d)
- ElectrostaticSphereFunctional: Initialisierungsheuristik auf S² (9d)
- StereographicUnwrapper + SphereUtility: S²→ℂ atlas für genus-0 (9d)
- CirclePatternLayout + CirclePatternUtility + CPEuclideanRotation (9e)
- CutAndGlueUtility, StitchingUtility, PathUtility (9c additions)
- DualityUtility: Hodge-Stern + dual cycles — prerequisite 10a
- HyperellipticUtility + HyperIdealHyperellipticUtility (10b)
- CircleDomainUnwrapper: Koebe-Andreev-Thurston (10d)
- quasiisothermic/ package: QI maps + DBF + sin-condition (10e)
- KoebePolyhedron (10f)
- EuclideanCyclicFunctional + HyperbolicCyclicFunctional (10g)
- "Do not port" table: ColtIterationReporter, PETSc wrappers, etc.

New phases added to phases.md:
- Phase 9d: ConesUtility + StereographicUnwrapper + MobiusCenteringFunctional
- Phase 9e: CirclePatternLayout (complement to already-ported 9a.1)
- Phase 10d: CircleDomainUnwrapper (Koebe-Andreev-Thurston)
- Phase 10e: quasi-isothermic maps
- Phase 10f: Koebe polyhedra
- Phase 10g: cyclic-symmetry functionals

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Tarik Moussa
2026-05-25 23:17:48 +02:00
parent 7a1686daa5
commit f854f0e7f0
2 changed files with 168 additions and 8 deletions

View File

@@ -129,6 +129,89 @@ mesh type.
layer, +1 week integration.
```
9d — Cone metrics + sphere utilities (Java port — 2026 library scan)
────────────────────────────────────────────────────────────────────
```
9d.1 ConesUtility (Java port: unwrapper/ConesUtility.java)
→ cone_singularities.hpp
Fills the "⚠️ data structure only" gap in java-parity.md:
- Detect interior cone vertices (angle deficit ≠ 0)
- BFS path from cone to mesh boundary → cut edge set
- Auto-placement: conjugate gradient on Θ-gradient magnitude
- Quantization: snap cone angles to π/2, π/3, π/6 for
quad / triangle / hexagonal atlas targets
Java reference: unwrapper/ConesUtility.java
9d.2 StereographicUnwrapper + SphereUtility (Java port)
→ stereographic_layout.hpp
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)
9d.3 MobiusCenteringFunctional (Java port, optional upgrade)
→ integrate into layout.hpp normalise_hyperbolic()
Variational Möbius centering via Lorentz geometry:
E = Σ log(-⟨x,p⟩/√(-⟨x,x⟩))
Supplies gradient + Hessian — replaces iterative Fréchet mean.
Java reference: functional/MobiusCenteringFunctional.java
```
9e — Circle pattern layout (Java port — complement to Phase 9a.1)
────────────────────────────────────────────────────────────────────
```
9e CirclePatternLayout + CirclePatternUtility (Java port)
→ circle_pattern_layout.hpp
Phase 9a.1 ported the CPEuclidean energy + solver; this phase
adds the embedding step (ρ values → actual vertex positions in ℝ²).
- CirclePatternUtility: compute per-face radii ρ via NTR solver
- CirclePatternLayout: embed from ρ values (intersection-angle model)
- CPEuclideanRotation: rotation-invariant CP functional variant
Java references: unwrapper/circlepattern/CirclePattern{Layout,Utility}.java
unwrapper/circlepattern/CPEuclideanRotation.java
```
---
## ◼ New research directions — Phases 10d10g (2026 library scan)
These were identified by a full scan of the Java source tree in 2026.
They extend significantly beyond the Java port into new mathematical territory.
```
10d CircleDomainUnwrapper (KoebeAndreevThurston)
→ circle_domain_unwrapper.hpp
Conformal map of a multiply-connected planar region onto a
canonical disk-with-holes (classical complex-analysis result).
Java reference: unwrapper/CircleDomainUnwrapper.java (570 lines)
Mathematical basis: KoebeAndreevThurston + BeardonStephenson 1990
10e Quasi-isothermic maps
→ quasiisothermic.hpp
Generalisation of conformal maps for meshes where exact conformality
is unachievable (high Gaussian curvature, coarse triangulation).
Includes: Delaunay pre-conditioning, discrete Beltrami field,
sin-condition functional, Lawson-correspondence parameterization.
Java references: unwrapper/quasiisothermic/ (~1 200 lines total)
Mathematical basis: Lam 2015 + BohleLamPinkallReitebuch 2015
10f Koebe polyhedra
→ koebe_polyhedron.hpp
KoebeAndreevThurston theorem: realize every 3-connected planar
graph as a convex polyhedron with edges tangent to the unit sphere.
Connects circle packing with 3-D convex geometry.
Java reference: unwrapper/koebe/KoebePolyhedron.java (321 lines)
Mathematical basis: Koebe 1936 + Thurston 1997 (lecture notes)
10g Cyclic-symmetry functionals
→ cyclic_functional.hpp
Euclidean and hyperbolic DCE functionals reduced to a cyclic-symmetry
quotient — dramatically reduces DOFs for ornamental / symmetric surfaces.
Java references: functional/EuclideanCyclicFunctional.java
functional/HyperbolicCyclicFunctional.java (~530 lines)
```
---
## ◼ Optional / Hypothetical — geometry-central Cross-Comparison