NDVI — Vegetation density
Normalised red and near-infrared contrast. Useful for a first read of canopy density and broad vegetation vigour.
View on terrain ↑Pan to any agricultural area, zoom to field scale, and click Load indices — no boundary registration required. Seven Sentinel-2 spectral indices render as terrain above a satellite tile base fitted to the current bounds. Select an index to swap the surface; the imagery and camera position stay fixed. Orbit controls make boundary-free monitoring tactile: the field becomes a surface you can turn, compare, and inspect from any angle. After a live analysis, Scene RGB swaps in the lower-resolution Sentinel image from the same acquisition date; Terrain swaps in contour context.
Run analysis to view
Normalised red and near-infrared contrast. Useful for a first read of canopy density and broad vegetation vigour.
View on terrain ↑Uses the red-edge band to stay sensitive in dense canopy where NDVI can saturate. Useful for chlorophyll and nitrogen-related patterns.
View on terrain ↑Highlights water and wetness contrasts in the visible and near-infrared bands. Useful for drainage, inundation, and surface water signals.
View on terrain ↑Compares near-infrared and short-wave infrared response. Useful for moisture stress and canopy hydration patterns.
View on terrain ↑Reduces atmospheric and soil-background effects compared with NDVI. Useful when dense vegetation or haze makes simple contrast less stable.
View on terrain ↑Compensates for exposed soil brightness. Useful for sparse canopy, early growth, dry fields, or mixed bare-soil scenes.
View on terrain ↑Expresses near-infrared to red-edge contrast as a chlorophyll-oriented ratio. Useful for within-field nutrition and canopy status variation.
View on terrain ↑The live path is Sentinel-2 L2A imagery -> Cloudflare Worker -> encoded index rasters -> browser value grids -> Three.js terrain geometry. The browser sends viewport bounds, date, and an adaptive grid size to the Worker. At field scale, up to and including 10 ha (0.1 km²), the Explorer requests a 512 × 512 grid; larger allowed viewports up to 200 ha use 256 × 256.
The Worker returns seven spectral indices as base64-encoded PNGs, plus scene metadata. Base64 is only a text wrapper and PNG compression is lossless; the intentional precision limit is the one-byte channel used to transport each index value. For NDVI, which is encoded across -1 to +1, that means about 0.0078 index units per step. A representative 10 ha request is roughly 0.3 MB over the wire, mostly the encoded PNG rasters.
The PNGs are not used as surface textures. The Explorer decodes each image into a numeric grid, maps
each grid cell to a vertex height and colour, and builds a Three.js BufferGeometry mesh.
At 10 ha the display grid is denser than Sentinel-2's native 10-20 m bands, so neighbouring
vertices should be read as resampled display points rather than independent source observations.
The base context defaults to sharper MapTiler imagery for orientation, while Scene RGB uses the same
Sentinel acquisition as the index grids when the live response includes it.
If the live path is unavailable, a procedural fixture preserves the tactile interaction model; treat
that fallback as illustrative interaction data rather than crop observations.