Interactive 3D Cryosphere Explorer for Antarctica and Greenland
3D ICE turns state-of-the-art cryosphere datasets into an explorable browser experience for research communication, teaching, and public engagement.
Website · Launch Explorer · Releases
3D ICE is a standalone source repository for the full 3D ICE experience: the GitHub Pages site, the interactive browser runtime, bundled cryosphere datasets, preview media, and the preparation scripts used to turn scientific source data into web-ready assets.
The project is designed to bridge rigorous glaciological research and public curiosity. It lets people rotate, zoom, and layer Antarctica and Greenland datasets directly in the browser, then jump from the visualization to the underlying source products.
Click to watch the full 3D ICE demo on YouTube.
- Publish
static/directly to GitHub Pages as a standalone site. - Preserve the legacy
/tools/...public paths used by the main personal site. - Ship a compatibility bundle for downstream deployment into another repo.
- Keep runtime assets, prepared data products, and data-preparation tooling together.
| Capability | What 3D ICE provides |
|---|---|
| Fully interactive 3D viewing | Rotate, zoom, and inspect Antarctica and Greenland as if handling a physical model. |
| Layered cryosphere exploration | Combine bed topography, surface velocity, basin boundaries, basal friction, subglacial hydrology, and ocean streamlines in one scene. |
| Antarctica-specific overlays | Explore WAOM2 ocean circulation, IMBIE-refined basins, subglacial channels, and RISE basal melt plus thermal-driving fields. |
| Greenland-specific overlays | Explore ITS_LIVE velocity mosaics, Greenland basin boundaries, basal friction fields, and clipped Arctic ocean circulation around Greenland. |
| Research-friendly workflow | The runtime exposes direct links back to the source datasets, so the visual layer stays connected to the original scientific products. |
| Cross-platform delivery | Balanced presets support mobile touchscreens, while HD options target larger desktop displays. |
| Flexible deployment | The runtime auto-detects project-path prefixes, so it works both at a site root and under GitHub Pages project paths such as /3d-ice/tools/.... |
The site itself is static. A simple local file server is enough:
cd static
python3 -m http.server 4173Then open:
http://127.0.0.1:4173/http://127.0.0.1:4173/tools/3D-interactive-cryosphere-explorer.html
The bundling utilities use only built-in Node APIs. Node 20+ is the expected environment because that is what the release workflow uses.
npm run bundle:compat
npm run smoke:compatThis produces:
dist/3d-ice-compat.tar.gzdist/3d-ice-compat.tar.gz.sha256dist/3d-ice-compat-manifest.json
The tarball always expands to a top-level tools/ directory so the main site can continue serving
legacy /tools/... URLs unchanged.
| Path | Purpose |
|---|---|
static/index.html |
Standalone landing page for the site root. |
static/css/3d-ice-home.css |
Vendored landing-page custom styles used by the site root. |
static/tools/3D-interactive-cryosphere-explorer.html |
Main interactive runtime. |
static/tools/data/ |
Web-ready cryosphere datasets and metadata packages. |
static/tools/media/3d-ice/ |
Preview stills and loop videos used across the experience. |
static/tools/vendor/three/ |
Vendored Three.js runtime dependencies. |
scripts/ |
Data preparation, visualization support, trailer capture, and release utilities. |
dist/ |
Generated compatibility bundle artifacts. |
.github/workflows/ |
GitHub Pages deployment and compatibility release automation. |
| Region | Layers in the experience | Representative source products |
|---|---|---|
| Antarctica | Bed topography, surface elevation, thickness, mask, refined basins, velocity, basal friction, subglacial hydrology, ocean streamlines, basal melt, thermal driving | BedMachine Antarctica v4, Bedmap3 v1.0 (CC BY 4.0), MEaSUREs Antarctic Boundaries v2, MEaSUREs Phase-Based Antarctica Velocity v1, Antarctic basal friction inversions, GlaDS Antarctic subglacial hydrology, WAOM2, RISE |
| Greenland | Bed topography, surface elevation, thickness, mask, basin boundaries, velocity, basal friction, ocean streamlines | BedMachine Greenland v6, QRF Greenland subglacial topography (2025), MEaSUREs ITS_LIVE v2, Greenland basal friction ensemble inversion reference, Copernicus Marine Arctic Ocean Physics |
Bedmap3 is available as a 10 km Balanced or 4 km HD Antarctica terrain alternative. Both modes support velocity, flowlines, basal friction, effective pressure, subglacial channels, refined basins, and WAOM2 ocean streamlines. The gridded velocity, basal-friction, and hydrology layers are regenerated on Bedmap3's native grid; the projected WAOM2 streamlines are clipped against the active terrain at runtime. RISE basal melt and thermal-driving fields remain exclusive to BedMachine v4.
Greenland QRF subglacial topography (2025) is available as 3 km Balanced and 1 km HD terrain alternatives. The 300 m QRF GeoTIFF is sampled at pixel centres. The package replaces bed elevation only for grounded ice where the QRF prediction is valid, keeps BedMachine Greenland v6 surface elevation and mask, derives internally consistent thickness from those two fields, and falls back to BedMachine values over QRF gaps, ocean, and floating ice. Velocity, flowlines, basal friction, basins, and ocean streamlines reuse their existing BedMachine-aligned grids. The upstream data repository does not state a standalone data licence; confirm redistribution terms with the authors before publishing derived assets.
This repository publishes static/ directly to GitHub Pages. That serves:
/as the standalone landing page/css/3d-ice-home.cssas the vendored landing-page stylesheet/tools/3D-interactive-cryosphere-explorer.htmlas the main runtime/tools/data/*,/tools/media/3d-ice/*,/tools/vendor/*, and/tools/3d-antarctica/as supporting assets
The Pages workflow writes static/.nojekyll before deployment so the project-path asset layout is
preserved exactly as shipped.
- Push to
mainto deploystatic/to GitHub Pages. - Push a tag like
v0.1.0to build and publish compatibility assets to a GitHub release. - Use
workflow_dispatchwhen you want either workflow to run manually.
The release workflow uploads and optionally publishes:
dist/3d-ice-compat.tar.gzdist/3d-ice-compat.tar.gz.sha256dist/3d-ice-compat-manifest.json
Visit the live explorer in any WebGL-capable browser, or serve locally:
cd static
python3 -m http.server 4173
# open http://127.0.0.1:4173/tools/3D-interactive-cryosphere-explorer.htmlTo regenerate datasets from source NetCDF/HDF5 or GeoTIFF files:
# Python 3.10+ required
pip install h5py numpy scipy netCDF4 tifffile
# Example: prepare BedMachine Antarctica
python scripts/prepare_bedmachine_antarctica.py --input BedMachineAntarctica_V4.nc
# Example: prepare Bedmap3 Antarctica from the four official GeoTIFF grids
python scripts/prepare_bedmap3_antarctica.py --input-dir /path/to/bedmap3
# Example: prepare the Bedmap3 HD mode
python scripts/prepare_bedmap3_antarctica.py --input-dir /path/to/bedmap3 --resolution-m 4000 --basename bedmap3_antarctica_4km
# Translate the Antarctica overlay packages to Bedmap3's native grids
python scripts/prepare_bedmap3_antarctica_overlays.py
# Prepare Greenland QRF terrain alternatives from the published 300 m GeoTIFF
python scripts/prepare_qrf_greenland.py --input /path/to/QRF_greenland_ice_predictions_300m.tif# Create a virtual environment
python3 -m venv .venv && source .venv/bin/activate
# Install test dependencies
pip install pytest pytest-cov h5py numpy
# Run unit tests
pytest tests/ --ignore=tests/e2e -v
# Run bundle smoke test (requires Node.js 20+)
npm run bundle:compat && npm run smoke:compatIf you use 3D ICE in your research or teaching, please cite:
@article{wang2026,
author = {Wang, Yu},
title = {3D ICE: An Interactive Browser-Based Cryosphere Explorer for Antarctica and Greenland},
journal = {Journal of Open Source Software},
year = {2026}
}We welcome contributions! Please see CONTRIBUTING.md for guidelines.
This project follows the Contributor Covenant Code of Conduct.
This project is licensed under the MIT License.
This repo is intentionally focused on the standalone 3D ICE experience and related distribution artifacts. It is the source of truth for:
- the browser runtime
- the standalone landing page
- prepared data bundles
- preview media
- compatibility packaging for downstream deployment
If you are looking for the broader personal site that consumes the compatibility bundle, this repo is the upstream asset and runtime source rather than the final umbrella website.