Interactive Explorer

Search and explore 6.7 million material samples

parquet
spatial
h3
performance
isamples
  1. Instant (<1s): Pre-aggregated H3 res4 summary (0.5 MB) → 38K colored circles
  2. Zoom in: Automatically switches to res6 (112K) then res8 (176K) clusters
  3. Zoom deeper (<120 km): Individual sample points from 63 MB lite parquet
  4. Click: Cluster info or individual sample card with full metadata
  5. Search: Find samples by name — results fly to the location on the globe

Circle size = log(sample count). Color = dominant data source.

Material
Sampled Feature
Specimen Type
Loading H3 global overview...
Click a cluster or sample on the globe

Samples table

Loading samples matching the current filters...

1 How This Demo Works

Pre-aggregated H3 hexagonal indices achieve near-instant globe rendering, with seamless drill-down to individual samples:

Phase Data Size Points
Instant H3 res4 0.5 MB 38K clusters (continental)
Zoom in H3 res6 1.3 MB 112K clusters (city)
Zoom more H3 res8 2.0 MB 176K clusters (neighborhood)
Zoom deep Map lite 63 MB (range req.) Up to 5K individual samples
Click sample Full dataset 300 MB (range req.) Full metadata for 1 sample

Sizes are decimal MB (10⁶ bytes), matching the manifest’s byte counts.

Static files, zero backend. All queries run in your browser via DuckDB-WASM with HTTP range requests — only the bytes you need are transferred. The manifest directly inventories 21 objects — including five search-index sidecars — and summarizes the index’s 847 shard files (256 base plus 591 hot); the index directory holds 852 objects in all. Any one view touches only a handful of them. The authoritative inventory is isamples_202608_release_manifest.json (human twin: CANONICAL.md), which the Explorer cross-checks at boot.

Every file-size figure above comes from the published release manifest, which the Explorer also cross-checks at boot. (The cluster counts come from the parquet row counts — see below — and the timings, the 120 km threshold and the 5K point budget are properties of the app, not the data.) To re-derive the sizes without taking this page’s word for it:

curl -s https://data.isamples.org/isamples_202608_release_manifest.json \
  | jq '.files | to_entries[] | select(.key|test("h3_summary|_wide\\.|map_lite"))
        | {file: .key, bytes: .value.size_bytes}'

Cluster counts come from the parquet row counts, not the manifest:

SELECT count(*) FROM read_parquet(
  'https://data.isamples.org/isamples_202608_h3_summary_res4.parquet');

2 See Also

  • Guided Tour — seven views of the Explorer, with the queries behind them
  • Tutorials — index of all interactive tutorials