docs: add StereographicUnwrapper + CircleDomainUnwrapper to roadmap

Audit found that 2 of the 4 Java-port candidates from the conformal-
mapping discussion were missing from the documentation:

* StereographicUnwrapper (266 Java LoC) — projects spherical layout
  S² → ℂ via stereographic projection + Möbius centring.  Closes the
  visualisation gap from discrete_conformal_map_spherical() which
  currently returns Point_3 on S²; downstream uses typically want a
  2-D atlas.  Suggested phase: 10b' (alternative methods, parallel
  to Hyperbolic / Quasi-isothermic).  Effort: small (~3 days).

* CircleDomainUnwrapper (570 Java LoC) — conformal map of a
  multiply-connected planar region onto a disk-with-holes (Koebe's
  general uniformization theorem 1909).  A use-case class
  conformallab++ does not currently cover (annulus, slit torus,
  fluid flow around obstacles, electrostatics with multiple
  conductors).  Suggested phase: 11c.  Effort: large (~2 weeks).

Added to all three roadmap documents:

* doc/roadmap/java-parity.md      — worth-porting table extended
* doc/roadmap/research-track.md   — Java-backlog summary extended
* doc/roadmap/phases.md           — Phase 10b' bullet + new
                                    Phase 11c block with full math
                                    context (Koebe 1909 reference,
                                    classical complex-analysis use cases).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Tarik Moussa
2026-05-22 13:12:22 +02:00
parent b7e837815f
commit ff9c9ec11b
3 changed files with 30 additions and 3 deletions

View File

@@ -61,6 +61,8 @@ They are candidates for Phase 9 or Phase 10.
| `HyperbolicCyclicFunctional` (530 lines) | Discrete hyperbolic conformal energy (analogue of Euclidean) — completes the geometry suite | 10bc | | `HyperbolicCyclicFunctional` (530 lines) | Discrete hyperbolic conformal energy (analogue of Euclidean) — completes the geometry suite | 10bc |
| `QuasiisothermicUtility` + `SinConditionApplication` (~1200 lines) | Lawson-correspondence parametrisation, sin-condition functional | 10b | | `QuasiisothermicUtility` + `SinConditionApplication` (~1200 lines) | Lawson-correspondence parametrisation, sin-condition functional | 10b |
| `KoebePolyhedron` (321 lines) | KoebeAndreevThurston circle-packing construction | 10c | | `KoebePolyhedron` (321 lines) | KoebeAndreevThurston circle-packing construction | 10c |
| `StereographicUnwrapper` (266 lines) | Stereographic projection S²→ + Möbius centring — converts the Spherical-DCE output into a 2-D atlas | 10b' (Sphere visualisation) |
| `CircleDomainUnwrapper` (570 lines) | Conformal map of a multiply-connected planar region onto a disk-with-holes — classical complex-analysis use case | 11+ (new use-case class) |
| `ElectrostaticSphereFunctional`, `MobiusCenteringFunctional` | Sphere-domain pre-processing functionals | 10c (optional) | | `ElectrostaticSphereFunctional`, `MobiusCenteringFunctional` | Sphere-domain pre-processing functionals | 10c (optional) |
Note: items marked as *new research* (e.g. Inversive Distance, HyperIdeal Hessian variants) Note: items marked as *new research* (e.g. Inversive Distance, HyperIdeal Hessian variants)

View File

@@ -223,6 +223,12 @@ Phase 10 Global uniformization for genus g ≥ 2
QuasiisothermicUtility.java + SinConditionApplication.java QuasiisothermicUtility.java + SinConditionApplication.java
(~1 200 Java lines combined). (~1 200 Java lines combined).
→ MobiusCenteringFunctional (Java, 289 lines) — sphere centering. → MobiusCenteringFunctional (Java, 289 lines) — sphere centering.
→ StereographicUnwrapper (Java, 266 lines) — projects the
spherical layout S²→ via stereographic projection plus a
Möbius centring step. Closes the visualisation gap from
`discrete_conformal_map_spherical()` (currently outputs
Point_3 on S²; many downstream uses want a 2-D atlas).
Effort: small (~3 days).
Each independent; can be tackled in any order. Each independent; can be tackled in any order.
10c Full uniformization for genus g ≥ 2 10c Full uniformization for genus g ≥ 2
@@ -292,7 +298,24 @@ Phase 10 Global uniformization for genus g ≥ 2
visualisation; consider porting only the visualisation; consider porting only the
algorithmic core. algorithmic core.
Both items are tracked here so the project memory is preserved; they 11c Multiply-connected planar conformal maps (CircleDomainUnwrapper)
are NOT roadmap commitments. See `research-track.md` for the formal Java source: unwrapper/CircleDomainUnwrapper.java (570 LoC)
research-versus-port classification before starting either. Mathematical basis: Riemann mapping theorem for multiply-
connected domains — every n-connected planar
region is conformally equivalent to a disk
with (n1) round holes (Koebe's "general
uniformization theorem", 1909).
Use case: Classical complex-analysis problems —
conformal mapping of an annulus, a torus
slit on a plane, fluid flow around obstacles,
electrostatics with multiple conductors.
**A use-case class conformallab++ does not
currently cover.**
Requires: Phase 10b' QuasiisothermicUtility or the
CP-Euclidean machinery from Phase 9a.1.
Effort: large (~2 weeks).
All three items are tracked here so the project memory is preserved;
none of them are roadmap commitments. See `research-track.md` for the
formal research-versus-port classification before starting any.
``` ```

View File

@@ -294,6 +294,8 @@ These are tracked separately in
| `HyperbolicCyclicFunctional` | 530 | 10bc | 2 weeks | | `HyperbolicCyclicFunctional` | 530 | 10bc | 2 weeks |
| `QuasiisothermicUtility` + `SinConditionApplication` | ~1 200 | 10b | 3 weeks | | `QuasiisothermicUtility` + `SinConditionApplication` | ~1 200 | 10b | 3 weeks |
| `KoebePolyhedron` | 321 | 10c | 2 weeks | | `KoebePolyhedron` | 321 | 10c | 2 weeks |
| `StereographicUnwrapper` | 266 | 10b' (Sphere→ atlas) | small (~3 days) |
| `CircleDomainUnwrapper` | 570 | 11+ (multiply-connected planar regions) | large (~2 weeks) |
| `MobiusCenteringFunctional`, `ElectrostaticSphereFunctional` | 289 + 127 | 10c (optional) | small | | `MobiusCenteringFunctional`, `ElectrostaticSphereFunctional` | 289 + 127 | 10c (optional) | small |
Total identified backlog: ~6 500 Java lines, estimated ~5 months of work Total identified backlog: ~6 500 Java lines, estimated ~5 months of work