Skip to content

3D Globe widget

A rotating 3D globe with visitors plotted as country shading or city points. The most visually striking of the four widgets. Built for hero sections, READMEs, and "wow" moments.

3D globe rotating with city dots

When to use it

  • OSS project READMEs: free on .edu, GitHub Pages, and GitLab Pages with the Hobby tier
  • Landing-page hero sections: pair with a tagline, lets visitors play with it
  • Conference closers: a 30-second auto-rotating globe is a great curtain
  • Internal dashboards: rotate it on a wall display for a fancy "where users are" view

Quick install

Two variants, depending on whether you want city points or country heatmap:

<!-- Globe with city POINTS (dots) -->
<script
  defer
  src="https://statable.com/js/gp.js"
  data-hash="YOUR_PUBLIC_HASH">
</script>
<!-- Globe with country HEATMAP (shading) -->
<script
  defer
  src="https://statable.com/js/gw.js"
  data-hash="YOUR_PUBLIC_HASH">
</script>

Don't copy the snippet from this page. The real one lives in Site settings → Widget → Globe, with data-hash already filled in and a one-click copy button. Both variants share the same options below.

Options

AttributeValuesDefaultNotes
data-hashyour public hash(required)
data-themelight / dark / autoautoAffects globe surface, ocean, and lighting
data-period1d / 7d / 30d / 90d7dTime window for the data
data-primary-colorhexStatable blueCountry shading or dot colour
data-rotation-speedoff / slow / medium / fastslowAuto-rotation speed
data-tilt-presetdefault / realisticdefaultGlobe axis tilt; realistic matches Earth's 23.5°
data-shadow-presetnone / soft / strongsoftDrop shadow under the globe
data-graticuletrue / falsetrueShow meridian / parallel grid lines
data-lightingtrue / falsetrueSubtle lighting effect for depth
data-widthauto or pixelsauto
data-heightauto or pixelsautoA square ratio works best

The widget refreshes every 10 seconds.

Examples

Default points variant on a hero section:

<section class="hero">
  <h1>Your traffic, visualised.</h1>
  <script defer
    src="https://statable.com/js/gp.js"
    data-hash="03D3Cfb9eA"
    data-width="600"
    data-height="600">
  </script>
</section>

Country heatmap, fast rotation, no shadow, dark theme:

<script defer
  src="https://statable.com/js/gw.js"
  data-hash="03D3Cfb9eA"
  data-theme="dark"
  data-rotation-speed="fast"
  data-shadow-preset="none"
  data-primary-color="#10B981">
</script>

Stationary realistic globe with a graticule:

<script defer
  src="https://statable.com/js/gp.js"
  data-hash="03D3Cfb9eA"
  data-rotation-speed="off"
  data-tilt-preset="realistic"
  data-graticule="true"
  data-shadow-preset="strong">
</script>

README badge, minimum-effort embed for a GitHub project page:

<p align="center">
  <script defer
    src="https://statable.com/js/gp.js"
    data-hash="03D3Cfb9eA"
    data-width="320"
    data-height="320">
  </script>
</p>

Interactions

  • Drag to rotate manually. Auto-rotation pauses while dragging.
  • Scroll/pinch to zoom. Limited so the globe doesn't disappear off-axis.
  • Hover a city dot or country for a tooltip with name and visitor count.

Notes

  • WebGL required. Modern browsers (Chrome, Safari, Firefox, Edge) qualify. Mobile browsers work too. If WebGL is unavailable, the widget shows a small fallback message. Use the flat map widget for guaranteed support.
  • Performance: ~15 KB gzipped plus globe geometry (cached after first load). Renders smoothly at 60 fps on modern devices. On older mobiles, set data-rotation-speed="off" to save battery.
  • Lighting: if the globe looks flat, set data-lighting="true" (default). It adds a subtle highlight on the visible hemisphere.
  • Two bundles, one widget. Some users want city-level granularity (gp.js, points), others prefer aggregated country shading (gw.js, heatmap). Pick whichever reads better.

See also: Live Users · Top Countries · Visitor map · Public dashboard & sharing