An X3D Globe

Here’s a globe that I built using X3Dom along with some other standard tools in Observable:

This globe is a bit different from most other interactive globes that I’ve seen that are typically either:

  • 2D images that are maps in orthographic projection or
  • 3D renderings (using X3Dom or THREE) with a texture.

By contrast, this globe is built from a data file defining triangulations of Earth’s 90 largest land masses. The result is a genuine 3D rendering allows more interactivity than a texture based rendering can. (Although, there’s not a lot of interactivity built in just yet.)

1 Like

Looks great ! If you are using lat. long. coordinates you may be interested in X3D’s geospatial component:

1 Like

Thanks! I’m almost using lat/lon coordinates; the points are in the form of

[longitude, latitude, elevation]

triples, though the longitude and latitude are expressed in radians. Those points are then mapped to the globe using spherical coordinates as defined in the lnglat_to_globe function. I’ve seen the examples that you refer to but haven’t read the documentation. You’re probably right that I could benefit from looking more closely.

Thanks again!

Yeah, this is essentially what the geospatial X3D component provides, a mapping from spherical (or UTM) coordinates to geocentric coordinates, in meters. Here is the notebook using geocoordinate nodes in place of coordinate nodes:

Let me add that the full version of x3dom is required which contains the geospatial component (and many other’s). For some reason, the full version is not published on npm but it can be loaded directly from

[I have added a vertical exaggeration slider for some interactivity, and also shading.]