Calibrated from GEE execution on 2026-03-29 (actual: 23.95 degrees). Will be validated against QGIS and folia outputs. Cross-platform variation expected from different slope algorithms (Horn vs. Zevenbergen-Thorne) and edge handling.
| Workflow | Model | Backend | Status | Answer | Error | Cost | Latency |
|---|---|---|---|---|---|---|---|
| exec | gold | gee | PASS | 23.946871106724288 | 0.2% | $0.000029 | 514ms |
| exec | gold | folia-rust | PASS | 20.254913330078125 | 15.6% | --- | 50ms |
| exec | gold | qgis | PASS | 20.828126919688536 | 13.2% | --- | 200ms |
Known-correct folia spec for this problem. This is the reference implementation used for backend quality testing.
# Platform Comparison: Terrain Derivatives — Gold Spec
#
# Compute slope, aspect, and hillshade from Copernicus DEM 30m
# over the Mt. Rainier region. Ground truth: mean slope ~24 degrees.
#
# This spec is designed to run through both the Python backend and
# browser-wasm executor (folia bench exec -b browser-wasm).
name: terrain-derivatives
version: "1.0"
description: >
Compute terrain derivatives (slope, aspect, hillshade) from a 30m DEM
over Mt. Rainier. Report the mean slope in degrees.
Ground truth: ~24 degrees (calibrated from GEE 2026-03-29).
settings:
default_bbox: [-121.9, 46.7, -121.6, 46.9]
default_crs: EPSG:4326
layers:
# ============================================================
# SOURCE LAYERS
# ============================================================
source/dem:
uri: stac://earth-search/cop-dem-glo-30
type: raster
description: >
Copernicus GLO-30 DEM (30m), equivalent to SRTM coverage.
Mt. Rainier region, WA.
params:
bbox: [-121.9, 46.7, -121.6, 46.9]
# ============================================================
# COMPUTE: TERRAIN DERIVATIVES
# ============================================================
compute/slope:
type: raster
description: >
Slope in degrees computed from the DEM using Horn's method.
compute:
op: terrain_slope
inputs:
dem: { layer: source/dem }
params:
units: degrees
algorithm: horn
compute/aspect:
type: raster
description: >
Aspect in degrees (0-360, clockwise from north).
compute:
op: terrain_aspect
inputs:
dem: { layer: source/dem }
compute/hillshade:
type: raster
description: >
Hillshade with standard illumination (azimuth 315, altitude 45).
compute:
op: terrain_hillshade
inputs:
dem: { layer: source/dem }
params:
azimuth: 315
altitude: 45
# ============================================================
# RESULT: MEAN SLOPE
# ============================================================
result/mean-slope:
type: table
description: >
Mean slope across the AOI in degrees.
Ground truth: ~24 degrees.
compute:
op: analysis_zonal_stats
params:
stats: [mean]
inputs:
raster: { layer: compute/slope }
The prompt given to LLMs in single-shot workflow benchmarks.
Problem: Compute slope, aspect, and hillshade from the SRTM 30m DEM
for the Mt. Rainier region. Report the mean slope in degrees.
Study area: -121.9, 46.7, -121.6, 46.9 (Mt. Rainier, WA).
Data: USGS SRTM 30m.
Expected answer: approximately 24 degrees mean slope.