Build a CityJSON Coordinate Precision and Transformation Verifier
Inspect CityJSON transform matrices and vertex compression precision to verify spatial fidelity. Detect degenerate surface geometries and scale anomalies before municipal GIS federation.
What you are building
The core problem, expected build, and operating context for this challenge.
Inspect CityJSON transform matrices and vertex compression precision to verify spatial fidelity. Detect degenerate surface geometries and scale anomalies before municipal GIS federation.
GIS Spatial Data Coordinator
Parse CityJSON root transform object including scale and translate vector arrays.
Decompress integer coordinates to real-world world coordinates across vertex arrays.
Identify zero-area polygons, inverted normal facets, or out-of-bounds geographic coordinates.
Produce transformation fidelity report with recommended quantization tolerance corrections.
Diagnostics dashboard showing coordinate transformation histograms and defective vertex listings.
Generate synthetic CityJSON files with varied transform scales and intentionally corrupted vertices. Starter examples below are synthetic. They are not downloaded records.
CityJSON Directly implements the CityJSON Section 1 Transform Object (scale and translate arrays) and Section 3.1 vertex decoding.
pydantic-ai, numpy, fastapi. Pydantic AI validates strict numerical schemas for transform vectors and vertex coordinate triplets. Local or hosted model supporting schema evaluation and structured JSON output.
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.
Properly verifies that scale vectors contain exactly three positive non-zero floats.
Flags compressed vertices that produce identical real-world coordinates within single polygons.
Outputs decompressed bounding extents matching metadata ranges.
```json [ { "input": { "type": "CityJSON", "version": "2.0", "transform": { "scale": [ 0.001, 0.001, 0.001 ], "translate": [ 10000, 20000, 0 ] }, "vertices": [ [ 0, 0, 0 ], [ 1000, 0, 0 ], [ 1000, 1000, 0 ] ] }, "expected_output": { "transform_valid": true, "vertex_count": 3, "degenerate_polygons": 0, "status": "VALID_GEOMETRY" } }, { "input": { "type": "CityJSON", "version": "2.0", "transform": { "scale": [ 0, 0.001, 0.001 ], "translate": [ 0, 0, 0 ] }, "vertices": [ [ 10, 20, 30 ] ] }, "expected_output": { "transform_valid": false, "vertex_count": 1, "degenerate_polygons": 0, "status": "INVALID_SCALE_VECTOR" } } ] ```
Geometric validation processes geospatial metadata only and modifies no external physical municipal databases. Use mock external writes. Require human review before any real deployment.
Participation guide
Geometric validation processes geospatial metadata only and modifies no external physical municipal databases. Use mock external writes and human review.
How work is evaluated
Properly verifies that scale vectors contain exactly three positive non-zero floats. Flags compressed vertices that produce identical real-world coordinates within single polygons. Outputs decompressed bounding extents matching metadata ranges.
Runnable source, pinned dependencies, setup commands, working interface, example outputs, recorded demo, tests, and action logs.
Challenge datasets
Public datasets, plus the private datasets you have access to.
How submissions are scored
These dimensions define what the evaluator checks and which criteria separate a passable run from a strong one.
Complete workflow
Parse CityJSON root transform object including scale and translate vector arrays. Decompress integer coordinates to real-world world coordinates across vertex arrays. Identify zero-area polygons, inverted normal facets, or out-of-bounds geographic coordinates. Produce transformation fidelity report with recommended quantization tolerance corrections.
Missing or incorrect.
Partly complete, with documented gaps.
Complete, with reproducible evidence.
Correctness and evidence
Properly verifies that scale vectors contain exactly three positive non-zero floats. Flags compressed vertices that produce identical real-world coordinates within single polygons. Outputs decompressed bounding extents matching metadata ranges.
Missing or incorrect.
Partly complete, with documented gaps.
Complete, with reproducible evidence.
Review interface
Diagnostics dashboard showing coordinate transformation histograms and defective vertex listings.
Missing or incorrect.
Partly complete, with documented gaps.
Complete, with reproducible evidence.
Safe execution
Geometric validation processes geospatial metadata only and modifies no external physical municipal databases.
This dimension contributes its full weight only when the submission satisfies the requirement. Partial credit is not awarded.
What you should walk away with
Parse CityJSON root transform object including scale and translate vector arrays.
Decompress integer coordinates to real-world world coordinates across vertex arrays.
Identify zero-area polygons, inverted normal facets, or out-of-bounds geographic coordinates.
Produce transformation fidelity report with recommended quantization tolerance corrections.
Reference links and supporting material
Generate synthetic CityJSON files with varied transform scales and intentionally corrupted vertices. 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.
- Parse CityJSON root transform object including scale and translate vector arrays. Decompress integer coordi...
- Properly verifies that scale vectors contain exactly three positive non-zero floats. Flags compressed verti...
- Diagnostics dashboard showing coordinate transformation histograms and defective vertex listings.
- 2 public reference cases
- 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
- Pydantic AI · Optional
- 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.