The Sphere Is Not Flat!

An Applied Computational Geometry Demo
By Omar Hesham [April 2010] - Last modified March 2016.

In this demo we present a two-part visualization of P.L. Robinson's "The Sphere Is Not Flat" published in the February 2006 issue of the American Mathematical Monthly, in which he presented a simple proof of the fact that the earth is not flat (i.e. if you project any part of the earth onto a two-dimensional plane, then distances must be distorted). - Yes, that includes Google Maps (gasp!). Google Earth is fine though...

Part 1: Visual Proof

In this section, we aim to give you a good introduction necessary to understand the proof, in addition to visualizing some examples that we feel will aid greatly in understanding quite a powerful yet simple proof. The examples were sourced from abstract scenarios mentioned in the paper.

The navigation arrows at the bottom should help you get started!

Content on this page requires a newer version of Adobe Flash Player.

Get Adobe Flash player


Once you've completed Part I, head over to the fun side in Part II.


Part 2: Try It Yourself!

Here's where you can explore these concepts and experience the non-isometric properties yourself. In this simple doodle, you can create points in the Eudliean space, and watch as they get mapped onto a spherical surface. Now you can compare the relavant distances and come up with examples yourself to demonstrate how cannot be preserved.

Left Mouse Click - Create dot
Click and Drag (in 2D View ) - Drag the dot around
Click and Drag (in Sphere View) - Rotates the camera
MouseWheel (in Sphere view) - Zoom In/Out
Doubleclick - Delete the dot
Ctrl - Show/Hide Euclidean plane grid
Shift - Switch sphere shading mode


Euclidean 2D Plane
(Reference Radius = π)
(Unit Sphere, Radius = 1)

Content on this page requires a newer version of Adobe Flash Player.

Get Adobe Flash player

Math behind the scenes

In essence, the mapping function works to maintain the distance from every new point you create, to the reference orange node (in both views). So the distance between the points themselves are different, hence the mapping is not isometric. For every point p in the 2D plane, and its corresponding Sphere point q:

distance(referenceDotIn2D, p) = distance(referenceDotInSphere, q)

given that a distance in 2D space is defined as the length of the straight line connecting two points, and the distance on a Sphere is measured as the length of the shortest great circular arc between them.

Coordinate mapping:

Euclidean 2D Plane
(Reference Radius = π)
(Unit Sphere, Radius = 1)
r =distance from origin = sqrt(x^2 + z^2) R = r
x coordinate X = sin(R) * (x/r)
y coordinate (= Zero) Y = cos(R)
z coordinate Z = sin(R) * (z/r)

Future Development

Source Code & Resource