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:
53
README.md
53
README.md
@@ -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.
|
||||
|
||||
> **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 1–3 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 (2–3 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) (2–3 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 (1–2 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
|
||||
|
||||
conformallab++ is released under the MIT License (see [LICENSE](LICENSE)).
|
||||
|
||||
Reference in New Issue
Block a user