Skip to main content
Challenge

Build a CityJSON Land Use and Bounding Setback Auditor

Parse CityJSON 2.0 LandUse and Building objects to evaluate parcel boundary compliance. Compute structural setbacks from geographicalExtent coordinates to flag municipal zoning buffer infringements.

EngineeringHosted by Vera
Challenge brief

What you are building

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

Parse CityJSON 2.0 LandUse and Building objects to evaluate parcel boundary compliance. Compute structural setbacks from geographicalExtent coordinates to flag municipal zoning buffer infringements.

Municipal Zoning Officer

Ingest CityJSON 2.0 files containing LandUse parcels and Building footprint geometries.

Extract 2D bounding polygon coordinates from geographicalExtent and surface boundary indices.

Calculate minimum Euclidean distance between building footprint edges and parcel boundary lines.

Generate a structured zoning infraction docket highlighting non-compliant setback violations.

Zoning review console displaying parcel boundary overlays, calculated setbacks, and infraction callouts.

Use open municipal 3D city models formatted in CityJSON 2.0 or generate synthetic parcel/building pairs. Starter examples below are synthetic. They are not downloaded records.

CityJSON Extracts LandUse objects, Building objects, and geographicalExtent bounding arrays from CityJSON 2.0 Section 2.

pydantic-ai, shapely, FastAPI. Pydantic AI guarantees strictly validated infraction reports and typed geometric distance records. Fast instruction model capable of interpreting municipal zoning codes against geometric coordinates.

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.

Parses LandUse and Building CityObjects from standard CityJSON 2.0 payloads.

Computes horizontal setbacks between building perimeters and parcel boundaries.

Flags structures violating minimum required municipal setback thresholds.

```json [ { "input": { "parcel_id": "PARCEL-401", "parcel_extent": [ 0, 0, 0, 50, 50, 0 ], "building_id": "BLDG-401", "building_extent": [ 6, 6, 0, 30, 30, 15 ], "required_min_setback_meters": 5 }, "expected_output": { "parcel_id": "PARCEL-401", "building_id": "BLDG-401", "computed_min_setback_meters": 6, "zoning_compliant": true, "infractions": [] } }, { "input": { "parcel_id": "PARCEL-402", "parcel_extent": [ 0, 0, 0, 40, 40, 0 ], "building_id": "BLDG-402", "building_extent": [ 2, 5, 0, 35, 35, 12 ], "required_min_setback_meters": 5 }, "expected_output": { "parcel_id": "PARCEL-402", "building_id": "BLDG-402", "computed_min_setback_meters": 2, "zoning_compliant": false, "infractions": [ "Western setback of 2.0m violates minimum required setback of 5.0m by 3.0m" ] } } ] ```

Automated checks serve as preliminary screening; final zoning permits require certified land surveyor sign-off. Use mock external writes. Require human review before any real deployment.

Rules

Participation guide

Automated checks serve as preliminary screening; final zoning permits require certified land surveyor sign-off. Use mock external writes and human review.

Delivery guide

How work is evaluated

Evaluation

Parses LandUse and Building CityObjects from standard CityJSON 2.0 payloads. Computes horizontal setbacks between building perimeters and parcel boundaries. Flags structures violating minimum required municipal setback thresholds.

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 files containing LandUse parcels and Building footprint geometries. Extract 2D bounding polygon coordinates from geographicalExtent and surface boundary indices. Calculate minimum Euclidean distance between building footprint edges and parcel boundary lines. Generate a structured zoning infraction docket highlighting non-compliant setback violations.

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

Parses LandUse and Building CityObjects from standard CityJSON 2.0 payloads. Computes horizontal setbacks between building perimeters and parcel boundaries. Flags structures violating minimum required municipal setback thresholds.

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

Zoning review console displaying parcel boundary overlays, calculated setbacks, and infraction callouts.

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

Automated checks serve as preliminary screening; final zoning permits require certified land surveyor sign-off.

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 files containing LandUse parcels and Building footprint geometries.

  • Extract 2D bounding polygon coordinates from geographicalExtent and surface boundary indices.

  • Calculate minimum Euclidean distance between building footprint edges and parcel boundary lines.

  • Generate a structured zoning infraction docket highlighting non-compliant setback violations.

Resources and assets

Reference links and supporting material

Dataset notes

Use open municipal 3D city models formatted in CityJSON 2.0 or generate synthetic parcel/building pairs. Supplied starter examples are synthetic, not source extracts.

Challenge setup

Configuration summary for this challenge.

Challenge input

Input details are not configured.

Pydantic AI

Typed Python agent framework.

Evaluated output

No output checks are configured.

Evaluation checks
  • Ingest CityJSON 2.0 files containing LandUse parcels and Building footprint geometries. Extract 2D bounding...
  • Parses LandUse and Building CityObjects from standard CityJSON 2.0 payloads. Computes horizontal setbacks b...
  • Zoning review console displaying parcel boundary overlays, calculated setbacks, and infraction callouts.
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
  • Pydantic AI · Optional
Orchestration
  • Pydantic AI · 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 Land Use and Bounding Setback Auditor