Skip to main content
Challenge

Build a CityJSON to BCF Coordination Issue Dispatcher

Parse urban building models in CityJSON format to detect missing spatial metadata and register structured coordination tickets. Generate compliant BCF-XML action issues for project engineering teams.

EngineeringHosted by Vera
Challenge brief

What you are building

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

Parse urban building models in CityJSON format to detect missing spatial metadata and register structured coordination tickets. Generate compliant BCF-XML action issues for project engineering teams.

Urban GIS Coordinator

Ingest CityJSON payload containing CityObjects, vertices, and coordinate transform parameters.

Validate geographic extent and child-parent object topology for registered building installations.

Identify unlinked children and missing height attributes across building entities.

Synthesize BCF issue records with proposed geometry fixes for BIM coordinator review.

Web dashboard showing CityJSON hierarchy tree, issue highlights, and BCF-XML export button.

Download open CityJSON v2.0 sample models from cityjson.org or provide mock json fixtures. Starter examples below are synthetic. They are not downloaded records.

CityJSON Utilizes CityJSON specification section 1 and 2 for CityObjects, attributes, geographicalExtent, and parent-child hierarchy schema.

pydantic-ai, fastapi, pytest. Pydantic AI enforces type-safe schemas across parsed CityJSON structures and target BCF issue payloads. Fast structured JSON generation model with strict schema validation via API or local vLLM.

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.

CityObjects are successfully parsed into typed models with geographicalExtent extracted.

Unlinked 2nd-level entities lacking valid parent references trigger validation tickets.

BCF issue payload emits required topic uuid, priority, and suggested attribute remedy.

```json [ { "input": { "type": "CityJSON", "version": "2.0", "transform": { "scale": [ 1, 1, 1 ], "translate": [ 0, 0, 0 ] }, "CityObjects": { "b-101": { "type": "Building", "geographicalExtent": [ 10, 20, 0, 30, 40, 15 ], "attributes": { "measuredHeight": 15 }, "children": [ "bi-101-a" ] }, "bi-101-a": { "type": "BuildingInstallation", "parents": [ "b-101" ] } }, "vertices": [] }, "expected_output": { "status": "valid", "issues_detected": 0, "bcf_topics": [] } }, { "input": { "type": "CityJSON", "version": "2.0", "transform": { "scale": [ 1, 1, 1 ], "translate": [ 0, 0, 0 ] }, "CityObjects": { "bi-orphan": { "type": "BuildingInstallation", "parents": [] } }, "vertices": [] }, "expected_output": { "status": "invalid", "issues_detected": 1, "bcf_topics": [ { "topic_id": "ERR-TOPOLOGY-01", "description": "2nd-level CityObject bi-orphan lacks required parent building reference", "severity": "critical" } ] } } ] ```

Does not apply modifications directly to production municipal cadastres; produces reviewable issue tickets only. Use mock external writes. Require human review before any real deployment.

Rules

Participation guide

Does not apply modifications directly to production municipal cadastres; produces reviewable issue tickets only. Use mock external writes and human review.

Delivery guide

How work is evaluated

Evaluation

CityObjects are successfully parsed into typed models with geographicalExtent extracted. Unlinked 2nd-level entities lacking valid parent references trigger validation tickets. BCF issue payload emits required topic uuid, priority, and suggested attribute remedy.

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 payload containing CityObjects, vertices, and coordinate transform parameters. Validate geographic extent and child-parent object topology for registered building installations. Identify unlinked children and missing height attributes across building entities. Synthesize BCF issue records with proposed geometry fixes for BIM coordinator review.

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

CityObjects are successfully parsed into typed models with geographicalExtent extracted. Unlinked 2nd-level entities lacking valid parent references trigger validation tickets. BCF issue payload emits required topic uuid, priority, and suggested attribute remedy.

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 showing CityJSON hierarchy tree, issue highlights, and BCF-XML export button.

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

Does not apply modifications directly to production municipal cadastres; produces reviewable issue tickets only.

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 payload containing CityObjects, vertices, and coordinate transform parameters.

  • Validate geographic extent and child-parent object topology for registered building installations.

  • Identify unlinked children and missing height attributes across building entities.

  • Synthesize BCF issue records with proposed geometry fixes for BIM coordinator review.

Resources and assets

Reference links and supporting material

Dataset notes

Download open CityJSON v2.0 sample models from cityjson.org or provide mock json fixtures. 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 payload containing CityObjects, vertices, and coordinate transform parameters. Validate geo...
  • CityObjects are successfully parsed into typed models with geographicalExtent extracted. Unlinked 2nd-level...
  • Web dashboard showing CityJSON hierarchy tree, issue highlights, and BCF-XML export button.
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 to BCF Coordination Issue Dispatcher