Skip to main content
Challenge

Build a CityJSON Urban Flood Inundation Assessor

Assess coastal and riverine flood vulnerabilities using CityJSON 3D terrain and building footprints. Identify ground-floor habitable spaces below projected sea level rises to plan flood defenses.

EngineeringHosted by Vera
Challenge brief

What you are building

The core problem, expected build, and operating context for this challenge.

Assess coastal and riverine flood vulnerabilities using CityJSON 3D terrain and building footprints. Identify ground-floor habitable spaces below projected sea level rises to plan flood defenses.

Urban Resilience and Infrastructure Planner

Load a municipal CityJSON model containing Building and WaterBody objects.

Parse geographicalExtent bounding boxes and base elevation coordinates.

Simulate projected water surge levels against building ground finished elevations.

Generate a structured vulnerability report identifying high-risk municipal assets.

Interactive floodplain map displaying water level contours, affected building polygons, and flood mitigation priority tables.

Download open CityJSON 2.0 city models from European municipal open geodata repositories. Starter examples below are synthetic. They are not downloaded records.

CityJSON Reads geographicalExtent [minx, miny, minz, maxx, maxy, maxz] and WaterBody city objects from CityJSON.

langgraph, fastapi, pydantic. LangGraph choreographs the multi-stage evaluation pipeline between elevation extraction, surge comparison, and risk ranking. General instruction API model to synthesize resilience recommendations from geospatial flood impact data.

Submit runnable source, pinned dependencies, setup commands, a working interface, example outputs, and a recorded end-to-end demo. Include tests and an action log.

Extracts minz ground elevation from CityJSON building bounding boxes.

Flags buildings where minz is lower than the projected surge height.

Outputs risk classifications based on flood inundation depth.

```json [ { "input": { "surge_scenario_name": "100-Year Surge Event", "projected_flood_elevation_m": 4.2, "building": { "id": "Docklands_Warehouse_04", "type": "Building", "geographicalExtent": [ 85200, 447100, 3.1, 85250, 447160, 15 ], "attributes": { "owner": "Port Authority", "occupancy": "Storage" } } }, "expected_output": { "building_id": "Docklands_Warehouse_04", "ground_elevation_m": 3.1, "flood_level_m": 4.2, "inundation_depth_m": 1.1, "risk_category": "CRITICAL", "mitigation_recommended": "Install deployable flood barriers and elevate ground-level electrical switchgear." } }, { "input": { "surge_scenario_name": "100-Year Surge Event", "projected_flood_elevation_m": 4.2, "building": { "id": "Upland_Apartments_12", "type": "Building", "geographicalExtent": [ 86000, 448000, 8.5, 86040, 448050, 24 ], "attributes": { "owner": "Civic Housing", "occupancy": "Residential" } } }, "expected_output": { "building_id": "Upland_Apartments_12", "ground_elevation_m": 8.5, "flood_level_m": 4.2, "inundation_depth_m": 0, "risk_category": "SAFE", "mitigation_recommended": "No structural floodproofing required." } } ] ```

Surge calculations represent macro-level planning simulations. Emergency flood management must follow official civic emergency protocols. Use mock external writes. Require human review before any real deployment.

Rules

Participation guide

Surge calculations represent macro-level planning simulations. Emergency flood management must follow official civic emergency protocols. Use mock external writes and human review.

Delivery guide

How work is evaluated

Evaluation

Extracts minz ground elevation from CityJSON building bounding boxes. Flags buildings where minz is lower than the projected surge height. Outputs risk classifications based on flood inundation depth.

Submission format

Runnable source, pinned dependencies, setup commands, working interface, example outputs, recorded demo, tests, and action logs.

Datasets

Challenge datasets

Public datasets, plus the private datasets you have access to.

Evaluation rubric

How submissions are scored

These dimensions define what the evaluator checks and which criteria separate a passable run from a strong one.

Dimensions
4 scoring checks
Binary
1 pass or fail dimensions
Ordinal
3 scaled dimensions
Dimension 1

Complete workflow

Load a municipal CityJSON model containing Building and WaterBody objects. Parse geographicalExtent bounding boxes and base elevation coordinates. Simulate projected water surge levels against building ground finished elevations. Generate a structured vulnerability report identifying high-risk municipal assets.

Score scale
012
Score 0

Missing or incorrect.

Score 1

Partly complete, with documented gaps.

Score 2

Complete, with reproducible evidence.

Dimension 2

Correctness and evidence

Extracts minz ground elevation from CityJSON building bounding boxes. Flags buildings where minz is lower than the projected surge height. Outputs risk classifications based on flood inundation depth.

Score scale
012
Score 0

Missing or incorrect.

Score 1

Partly complete, with documented gaps.

Score 2

Complete, with reproducible evidence.

Dimension 3

Review interface

Interactive floodplain map displaying water level contours, affected building polygons, and flood mitigation priority tables.

Score scale
012
Score 0

Missing or incorrect.

Score 1

Partly complete, with documented gaps.

Score 2

Complete, with reproducible evidence.

Dimension 4

Safe execution

Surge calculations represent macro-level planning simulations. Emergency flood management must follow official civic emergency protocols.

Binary check

This dimension contributes its full weight only when the submission satisfies the requirement. Partial credit is not awarded.

Learning goals

What you should walk away with

  • Load a municipal CityJSON model containing Building and WaterBody objects.

  • Parse geographicalExtent bounding boxes and base elevation coordinates.

  • Simulate projected water surge levels against building ground finished elevations.

  • Generate a structured vulnerability report identifying high-risk municipal assets.

Resources and assets

Reference links and supporting material

Dataset notes

Download open CityJSON 2.0 city models from European municipal open geodata repositories. Supplied starter examples are synthetic, not source extracts.

Challenge setup

Configuration summary for this challenge.

Challenge input

Input details are not configured.

LangGraph

Runtime for stateful agent workflows.

Evaluated output

No output checks are configured.

Evaluation checks
  • Load a municipal CityJSON model containing Building and WaterBody objects. Parse geographicalExtent boundin...
  • Extracts minz ground elevation from CityJSON building bounding boxes. Flags buildings where minz is lower t...
  • Interactive floodplain map displaying water level contours, affected building polygons, and flood mitigatio...
Configured evaluation evidence
  • 2 public reference cases
Configured runtime
  • 2 configured tools

Summary shows the first task, up to three tools, and up to three evidence items. Open the technical recipe to view all configured items.

View technical recipe

Configured tools

Action Space
  • LangGraph · Optional
Orchestration
  • LangGraph · Optional

Evaluation contract

  • Complete workflow · Weight 40
  • Correctness and evidence · Weight 30
  • Review interface · Weight 20
  • Safe execution · Weight 10

Reference cases

  • 2 public reference cases

Workflow tasks

No workflow tasks are configured.

Recipe freeze marker

No recipe freeze time is recorded.

Frequently Asked Questions about Build a CityJSON Urban Flood Inundation Assessor