Skip to main content
Challenge

Build a CityJSON 2.0 Implicit Geometry Tree Canopy Calculator

Analyze CityJSON 2.0 geometry-templates and SolitaryVegetationObject instances across municipal neighborhoods. Calculate urban tree canopy coverage and shade potential to assist municipal climate adaptation teams.

EngineeringHosted by Vera
Challenge brief

What you are building

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

Analyze CityJSON 2.0 geometry-templates and SolitaryVegetationObject instances across municipal neighborhoods. Calculate urban tree canopy coverage and shade potential to assist municipal climate adaptation teams.

Urban climate and forestry planner

Ingest CityJSON 2.0 models containing geometry-templates and vegetation instances.

Resolve implicit geometry template matrices to calculate real-world canopy bounding envelopes.

Aggregate total neighborhood canopy surface area and cross-reference with municipal land parcels.

Produce an urban canopy density scorecard highlighting areas deficient in thermal shade.

Municipal GIS web map showing tree point clouds, canopy footprints, and heat risk neighborhood overlays.

Acquire open CityJSON 2.0 municipal sample datasets containing vegetation objects or construct mock CityJSON template dictionaries. Starter examples below are synthetic. They are not downloaded records.

CityJSON Leverages CityJSON Section 1 geometry-templates definition for implicit geometries reused by City Objects.

qdrant, shapely, fastapi. Qdrant enables high-performance spatial nearest-neighbor search to identify heat-island parcels lacking tree coverage. Standard hosted model for structuring GIS spatial reports and summarizing environmental compliance metrics.

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.

Resolves template geometries using CityJSON transform scales and translation matrices.

Calculates cumulative canopy surface area in square meters per neighborhood zone.

Correctly handles files with empty geometry-templates by falling back to explicit geometries.

```json [ { "input": { "neighborhood": "Sector-4", "geometry_templates": { "templates": [ { "lod": "1", "type": "Solid", "canopy_radius_m": 4 } ] }, "vegetation_objects": [ { "id": "Tree-01", "template_index": 0, "anchor": [ 100, 200, 5 ] }, { "id": "Tree-02", "template_index": 0, "anchor": [ 115, 200, 5 ] } ] }, "expected_output": { "neighborhood": "Sector-4", "total_trees": 2, "estimated_canopy_area_sqm": 100.53, "shade_coverage_rating": "ADEQUATE", "warnings": [] } }, { "input": { "neighborhood": "Sector-9", "geometry_templates": { "templates": [] }, "vegetation_objects": [ { "id": "Tree-99", "template_index": 0, "anchor": [ 50, 50, 0 ] } ] }, "expected_output": { "neighborhood": "Sector-9", "total_trees": 0, "estimated_canopy_area_sqm": 0, "shade_coverage_rating": "DEFICIENT", "warnings": [ "Referenced template_index 0 not found in geometry-templates" ] } } ] ```

Produces theoretical urban environmental assessments; does not authorize physical tree pruning or urban forestry removal. Use mock external writes. Require human review before any real deployment.

Rules

Participation guide

Produces theoretical urban environmental assessments; does not authorize physical tree pruning or urban forestry removal. Use mock external writes and human review.

Delivery guide

How work is evaluated

Evaluation

Resolves template geometries using CityJSON transform scales and translation matrices. Calculates cumulative canopy surface area in square meters per neighborhood zone. Correctly handles files with empty geometry-templates by falling back to explicit geometries.

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

Ingest CityJSON 2.0 models containing geometry-templates and vegetation instances. Resolve implicit geometry template matrices to calculate real-world canopy bounding envelopes. Aggregate total neighborhood canopy surface area and cross-reference with municipal land parcels. Produce an urban canopy density scorecard highlighting areas deficient in thermal shade.

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

Resolves template geometries using CityJSON transform scales and translation matrices. Calculates cumulative canopy surface area in square meters per neighborhood zone. Correctly handles files with empty geometry-templates by falling back to explicit geometries.

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

Municipal GIS web map showing tree point clouds, canopy footprints, and heat risk neighborhood overlays.

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

Produces theoretical urban environmental assessments; does not authorize physical tree pruning or urban forestry removal.

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

  • Ingest CityJSON 2.0 models containing geometry-templates and vegetation instances.

  • Resolve implicit geometry template matrices to calculate real-world canopy bounding envelopes.

  • Aggregate total neighborhood canopy surface area and cross-reference with municipal land parcels.

  • Produce an urban canopy density scorecard highlighting areas deficient in thermal shade.

Resources and assets

Reference links and supporting material

Dataset notes

Acquire open CityJSON 2.0 municipal sample datasets containing vegetation objects or construct mock CityJSON template dictionaries. Supplied starter examples are synthetic, not source extracts.

Challenge setup

Configuration summary for this challenge.

Challenge input

Input details are not configured.

Qdrant

Open-source vector database.

Evaluated output

No output checks are configured.

Evaluation checks
  • Ingest CityJSON 2.0 models containing geometry-templates and vegetation instances. Resolve implicit geometr...
  • Resolves template geometries using CityJSON transform scales and translation matrices. Calculates cumulativ...
  • Municipal GIS web map showing tree point clouds, canopy footprints, and heat risk neighborhood overlays.
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
  • Qdrant · Optional
Observation
  • Qdrant · 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 2.0 Implicit Geometry Tree Canopy Calculator