docs: add Phase 3d–4b roadmap to README

Six concrete next steps toward Phase 3 completion and Phase 4 (solver):
  3d  EuclideanCyclicFunctional — most critical missing functional
  3e  Spherical gauge-fix (1D Brent along additive u constant)
  3f  Analytic Hessian via CGAL::Weights::cotangent_weight()
  3g  Consolidate duplicate PI constant
  4a  Minimal Newton solver with Eigen SimplicialLDLT
  4b  CGAL::IO read/write OBJ for mesh round-trip testing

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Tarik Moussa
2026-05-12 00:25:36 +02:00
parent a4c2a89e7e
commit dc0d3ca005

View File

@@ -4,7 +4,7 @@ conformallab++ is a modern C++ reimplementation of the [ConformalLab](https://gi
The long-term goal is a **CGAL package** that brings discrete conformal maps (hyper-ideal, spherical, Euclidean) to the CGAL ecosystem using `CGAL::Surface_mesh` as the underlying half-edge data structure. The long-term goal is a **CGAL package** that brings discrete conformal maps (hyper-ideal, spherical, Euclidean) to the CGAL ecosystem using `CGAL::Surface_mesh` as the underlying half-edge data structure.
> **Status:** Phase 3 complete. Core geometry (Clausen, hyper-ideal, spherical) and the CGAL mesh infrastructure are in place. Solvers and full CLI pipeline are coming next. > **Status:** Phase 3 abgeschlossen. Kern-Geometrie (Clausen, Hyper-Ideal, Sphärisch) und CGAL-Mesh-Infrastruktur sind vorhanden. Zum Abschluss von Phase 3 und als Vorbereitung für Phase 4 stehen noch sechs konkrete Schritte aus — siehe [Roadmap](#roadmap).
--- ---
@@ -192,6 +192,57 @@ docker buildx build \
--- ---
## Roadmap
Die Phasen 13 sind abgeschlossen. Die folgenden Schritte schließen Phase 3 ab und
bereiten Phase 4 (Solver) vor. Die Zeitangaben sind grobe Schätzungen.
---
```
Phase 3d EuclideanCyclicFunctional portieren (23 Tage)
→ Wichtigster fehlender Baustein: Euklidische Uniformisierung
(genus-0 Flachparameterisierung, Kotangenten-Laplace)
→ Energie + Gradient auf ConformalMesh
→ Entsperrt die verbleibenden HDS-blockierten Tests
→ Voraussetzung für jeden end-to-end Optimiererlauf
Phase 3e Gauge-Fix für SphericalFunctional (1 Tag)
→ Java-Äquivalent: maximizeInNegativeDirection() vor jeder
Auswertung — 1D-Liniensuche (Brent) entlang der
globalen Additionskonstante in u_v
→ Ohne Gauge-Fix ist die Energie auf geschlossenen Flächen
nach unten unbeschränkt; kein Optimierer kann konvergieren
Phase 3f Hessian (Sphärisch → Euklidisch) (23 Tage)
→ Analytischer Hessian = Kotangenten-Laplace-Operator
→ CGAL::Weights::cotangent_weight() als Basis für
die Kantenbeiträge nutzen (bereits in CGAL 6.0 enthalten)
→ Entsperrt Newton-/Trust-Region-Verfahren
→ Reihenfolge: Sphärisch zuerst (kleinster Hessian),
dann Euklidisch
Phase 3g PI-Konstante konsolidieren (< 1 Stunde)
→ conformallab::PI in hyper_ideal_geometry.hpp und
lokales pi in hyper_ideal_utility.hpp zusammenführen
→ Einzelne constants.hpp oder in conformal_mesh.hpp
Phase 4a Minimaler Newton-Solver (12 Tage)
→ Eigen SimplicialLDLT (bereits Projektabhängigkeit)
→ Newton-Schritt: Δx = H⁻¹·g mit Hessian aus 3f
→ Kein externer PETSc-Solver nötig für erste Tests
→ Konvergenzkriterium: ||g||∞ < tol
Phase 4b CGAL::IO für Mesh-Import/Export (< 1 Tag)
→ CGAL::IO::read_OBJ / write_OBJ auf Surface_mesh:
null Eigenentwicklung, sofort nutzbar
→ Ermöglicht Round-Trip-Tests gegen Java-Referenz-Meshes
→ Mittelfristig: CGAL::IO::read_OFF für .off-Dateien
(ersetzt Java-XML-Serialisierung für Testzwecke)
```
---
## License ## License
conformallab++ is released under the MIT License (see [LICENSE](LICENSE)). conformallab++ is released under the MIT License (see [LICENSE](LICENSE)).