Skip to content
Andrew Voirol
Monday, August 31, 2026geogenesis-unfolding-globe

Multi-projection topology mutators: Taylor sinc guards and Newton-Raphson Kepler solvers

Visualizationd3-geoProjection

GeoGenesis supports four cartographic projection topologies: Orthographic (3D disk), Equirectangular (Plate Carrée), Winkel Tripel (National Geographic standard), and Mollweide (equal-area ellipse).

1. Winkel Tripel: 4th-Order Taylor Series Sinc Guard

Winkel Tripel is calculated as the arithmetic mean of the Equirectangular and Aitoff projections, with standard parallel ϕ1=arccos⁡(2/π)≈50.467∘\phi_1 = \arccos(2/\pi) \approx 50.467^\circϕ1​=arccos(2/π)≈50.467∘:

α=arccos⁡(cos⁡ϕcos⁡λ2)\alpha = \arccos\left(\cos\phi \cos\frac{\lambda}{2}\right)α=arccos(cosϕcos2λ​)

At the projection center (λ→0,ϕ→0  ⟹  α→0\lambda \to 0, \phi \to 0 \implies \alpha \to 0λ→0,ϕ→0⟹α→0), direct evaluation of sin⁡(α)/α\sin(\alpha)/\alphasin(α)/α causes floating-point division by zero. A 4th-order Taylor series expansion eliminates the singularity:

sinc(α)={1−α26+α4120if ∣α∣<10−6sin⁡ααotherwise\text{sinc}(\alpha) = \begin{cases} 1 - \frac{\alpha^2}{6} + \frac{\alpha^4}{120} & \text{if } |\alpha| < 10^{-6} \\ \frac{\sin\alpha}{\alpha} & \text{otherwise} \end{cases}sinc(α)={1−6α2​+120α4​αsinα​​if ∣α∣<10−6otherwise​

Xwintri(λ,ϕ)=R2[λ⋅2π+2cos⁡ϕsin⁡(λ/2)sinc(α)],Ywintri(λ,ϕ)=R2[ϕ+sin⁡ϕsinc(α)]X_{\text{wintri}}(\lambda, \phi) = \frac{R}{2} \left[ \lambda \cdot \frac{2}{\pi} + \frac{2 \cos\phi \sin(\lambda / 2)}{\text{sinc}(\alpha)} \right], \quad Y_{\text{wintri}}(\lambda, \phi) = \frac{R}{2} \left[ \phi + \frac{\sin\phi}{\text{sinc}(\alpha)} \right]Xwintri​(λ,ϕ)=2R​[λ⋅π2​+sinc(α)2cosϕsin(λ/2)​],Ywintri​(λ,ϕ)=2R​[ϕ+sinc(α)sinϕ​]

2. Mollweide Equal-Area: Newton-Raphson Kepler Solver

The Mollweide projection requires solving the transcendental Kepler equation for parametric latitude θ\thetaθ:

2θ+sin⁡(2θ)=πsin⁡ϕ2\theta + \sin(2\theta) = \pi \sin\phi2θ+sin(2θ)=πsinϕ

Using Newton-Raphson iteration seeded with θ0=ϕ\theta_0 = \phiθ0​=ϕ:

θn+1=θn−2θn+sin⁡(2θn)−πsin⁡ϕ2+2cos⁡(2θn)\theta_{n+1} = \theta_n - \frac{2\theta_n + \sin(2\theta_n) - \pi \sin\phi}{2 + 2\cos(2\theta_n)}θn+1​=θn​−2+2cos(2θn​)2θn​+sin(2θn​)−πsinϕ​

The solver terminates when ∣Δθ∣<10−11|\Delta\theta| < 10^{-11}∣Δθ∣<10−11 (typically ≤4\le 4≤4 iterations).

← Previous

Continuous unfurl engine: Pythagorean limb departure and dynamic horizon clipping

Next →

Hardware-accelerated country picking: 24-bit bijective RGB buffers


Andrew Voirol

Builder, hacker, shipper. Currently leaving localhost.

Navigate

WorkThreadsBuilder's LogAboutContactRSS Feed

Connect

X / TwitterGitHubLinkedIn

© 2026 Andrew Voirol·Back to top ↑
✦Just one prompt away from figuring it all out.