Skip to main content
Challenge

Build a CityJSON Bridge Constructive Element Asset Register

Parse CityJSON 2.0 Bridge objects and associated BridgeConstructiveElement instances into structured municipal asset registers. Validate parent-child relations and flag missing bridge addresses before asset management import.

EngineeringHosted by Vera
Challenge brief

What you are building

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

Parse CityJSON 2.0 Bridge objects and associated BridgeConstructiveElement instances into structured municipal asset registers. Validate parent-child relations and flag missing bridge addresses before asset management import.

Municipal infrastructure maintenance engineer

Upload CityJSON files containing Bridge and BridgeConstructiveElement objects.

Traverse CityObjects hierarchy to check parents array conformance.

Extract address and geographical extent metadata for municipal tagging.

Simulate asset record ingestion and produce audit summary.

Web dashboard with JSON schema validator, spatial tree hierarchy inspector, and CSV register export.

Download standard CityJSON 2.0 minimal models from cityjson.org or mock synthetic CityJSON bridge snippets in sandbox. Starter examples below are synthetic. They are not downloaded records.

CityJSON Extracts CityJSON 2.0 Bridge and BridgeConstructiveElement object definitions, checking parent references and address properties from section 2.2.

pydantic-ai, fastapi, pydantic. Pydantic AI provides strict schema enforcement to parse nested CityJSON hierarchical structures and parent-child relations safely. Fast inference model via API or local vLLM for JSON attribute reasoning and validation.

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.

Flags second-level BridgeConstructiveElement instances missing a valid parents key.

Verifies CityJSON version is 2.0 and type is CityJSON.

Extracts address records when present or outputs missing address notices.

```json [ { "input": { "type": "CityJSON", "version": "2.0", "transform": { "scale": [ 1, 1, 1 ], "translate": [ 0, 0, 0 ] }, "CityObjects": { "bridge-1": { "type": "Bridge", "address": [ { "city": "Rotterdam", "country": "NL" } ], "children": [ "elem-101" ] }, "elem-101": { "type": "BridgeConstructiveElement", "parents": [ "bridge-1" ] } }, "vertices": [] }, "expected_output": { "valid": true, "bridge_count": 1, "element_count": 1, "records": [ { "id": "elem-101", "parent_bridge": "bridge-1", "location_address": "Rotterdam, NL", "status": "ready" } ], "issues": [] } }, { "input": { "type": "CityJSON", "version": "2.0", "transform": { "scale": [ 1, 1, 1 ], "translate": [ 0, 0, 0 ] }, "CityObjects": { "elem-999": { "type": "BridgeConstructiveElement", "parents": [] } }, "vertices": [] }, "expected_output": { "valid": false, "bridge_count": 0, "element_count": 1, "records": [], "issues": [ "elem-999: BridgeConstructiveElement must have at least one parent ID." ] } } ] ```

Simulates municipal database synchronization; never issues physical structural certifications. Use mock external writes. Require human review before any real deployment.

Rules

Participation guide

Simulates municipal database synchronization; never issues physical structural certifications. Use mock external writes and human review.

Delivery guide

How work is evaluated

Evaluation

Flags second-level BridgeConstructiveElement instances missing a valid parents key. Verifies CityJSON version is 2.0 and type is CityJSON. Extracts address records when present or outputs missing address notices.

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

Upload CityJSON files containing Bridge and BridgeConstructiveElement objects. Traverse CityObjects hierarchy to check parents array conformance. Extract address and geographical extent metadata for municipal tagging. Simulate asset record ingestion and produce audit summary.

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

Flags second-level BridgeConstructiveElement instances missing a valid parents key. Verifies CityJSON version is 2.0 and type is CityJSON. Extracts address records when present or outputs missing address notices.

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

Web dashboard with JSON schema validator, spatial tree hierarchy inspector, and CSV register export.

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

Simulates municipal database synchronization; never issues physical structural certifications.

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

  • Upload CityJSON files containing Bridge and BridgeConstructiveElement objects.

  • Traverse CityObjects hierarchy to check parents array conformance.

  • Extract address and geographical extent metadata for municipal tagging.

  • Simulate asset record ingestion and produce audit summary.

Resources and assets

Reference links and supporting material

Dataset notes

Download standard CityJSON 2.0 minimal models from cityjson.org or mock synthetic CityJSON bridge snippets in sandbox. 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
  • Upload CityJSON files containing Bridge and BridgeConstructiveElement objects. Traverse CityObjects hierarc...
  • Flags second-level BridgeConstructiveElement instances missing a valid parents key. Verifies CityJSON versi...
  • Web dashboard with JSON schema validator, spatial tree hierarchy inspector, and CSV register export.
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 Bridge Constructive Element Asset Register