X-GIS

Concept

A real 3D globe.

X-GIS renders a Google-Earth-style globe — not a flat map bent into a sphere. Geometry lives in 3D Earth-Centered coordinates and the camera orbits the planet. The same source data renders as the globe or as seven flat projections.

Compiling globe…
Source · land.geojsonProjectionGlobe · 3D

Drag to orbit · scroll to zoom · two-finger drag tilts. Rendered live, in your browser.

The render

The globe above is a live X-GIS render compiling in your browser — the same runtime that powers the home page hero. One small .xgis source declares a land layer; X-GIS compiles it to GPU shaders and draws it on the sphere. Drag to orbit, scroll to zoom. Everything below explains how the globe actually works — each claim is true of the engine, with the not-yet-built parts marked as roadmap.

A real 3D globe

01

Geometry lives in ECEF

Vertices are positioned in ECEF — Earth-Centered, Earth-Fixed 3D coordinates, the origin at the planet's center. This is a true 3D scene with an orbit camera, not a 2D map texture wrapped onto a ball. Tilt is a real camera tilt; the horizon is a real horizon.
02

The camera orbits the planet

Drag rotates the globe, scroll zooms toward the surface, a two-finger vertical drag tilts (pitch). Because the scene is genuinely 3D, pitch is an actual tilt of the view — not a flattened disc like the orthographic projection's "globe-like" look.

The ellipsoidal geoid

03

Earth is the WGS84 ellipsoid, not a sphere

The planet is modeled as the WGS84 ellipsoid — flattened at the poles, bulging at the equator — not a perfect sphere. Vertex math is done on the ellipsoid so positions land where the datum says they should.
04

The geoid seam (~21 km), handled

X-GIS keeps vertex math on the ellipsoid while the camera uses a sphere model. The gap between the two — about 21 km between the equatorial and polar radius — is the "geoid seam," and the engine accounts for it rather than letting vertices and camera disagree.

One source, any projection

The same data renders as the globe or as a flat map — sphere to plane and back, from one source, no re-tessellation.

05

The globe plus seven flat projections

Switch between the 3D globe and seven flat projections — Mercator, Natural Earth, Orthographic, Stereographic, Azimuthal Equidistant, Equirectangular, and Oblique Mercator. The source data is stored once; the projection is chosen per frame.

The mechanics of that switch — why it's a single uniform write with no re-tiling — are covered in Projection switching.

Precision: the hard problem

A planet is enormous and the GPU works in 32-bit floats, which lose precision at street scale. Two mechanisms keep the globe sharp from a city block out to orbit.

06

RTC keeps geometry f32-precise

RTC (relative-to-center) expresses geometry relative to a nearby anchor instead of the planet's center, so coordinates stay small and f32 keeps its precision — from city streets up to an orbital view. The full coordinate scheme is in RTC + DSFUN precision.
07

A logarithmic depth buffer

Near geometry (a city street) and far geometry (the horizon, orbit) have to render in one frame without z-fighting. X-GIS uses a logarithmic depth buffer so that enormous near-to-far range resolves cleanly in a single pass.

Raster on the globe

08

Per-fragment inverse-Mercator drape

Raster tiles are draped onto the sphere with a per-fragment inverse-Mercator: each fragment inverts the Mercator projection so the imagery lands in the right place on the curved surface, instead of stretching a flat texture across it.

Where it is going

Roadmap · not yet shipped

These are planned, not built. They are on the roadmap, not in the engine today:

  • Terrain — elevation on the surface.
  • 3D tiles — streamed 3D mesh content.
  • Streaming + LOD — level-of-detail loading at planet scale.
  • Fly-to camera — animated camera moves across the globe.

Tracked in the repo ROADMAP.md ↗.

See it live

The globe at the top of this page is the real thing. For the full experience — the globe cycling through every projection from one source — open the home page hero, or explore real maps in the examples gallery.

Specifications

See also