B3DO — Basilicata 3D Open
Type: Geospatial processing pipeline
Role: Project Lead · Software Architect · Data Pipeline Engineer
Status: Unpublished / in active development
Domain: Geospatial data, terrain modeling, 3D model generation, open data
Stack: Python, GDAL, Rasterio, NumPy, PyVista, Fiona, Typer
Overview
B3DO is a geospatial processing pipeline designed to transform public terrain datasets of the Basilicata region into 3D terrain models.
The project is not a web application. Its architectural value is in the reproducible data-to-model workflow: raw digital terrain model tiles and vector datasets are validated, merged, clipped to regional boundaries, resampled into multiple levels of detail, converted into 3D meshes, and enriched with terrain textures and hydrographic overlays.
The goal is to create an open, inspectable pipeline for building 3D representations of Basilicata from public geospatial data.
Problem Space
Public geospatial datasets are often available as specialized source formats rather than as ready-to-use 3D assets.
Turning them into usable terrain models requires several coordinated steps:
- validating local system dependencies and source datasets
- merging multiple DTM tiles into a canonical raster
- extracting the regional boundary from administrative vector data
- clipping terrain data to the target geographic area
- resampling the terrain into practical model resolutions
- generating 3D meshes from elevation rasters
- producing terrain textures using hillshade and color relief
- overlaying hydrographic information such as rivers
B3DO treats these steps as an explicit pipeline rather than a one-off manual GIS workflow.
Pipeline Architecture
flowchart TB
RAW[Raw public geospatial data] --> CHECK[Diagnostics / Doctor]
RAW --> DTM[DTM ASCII tiles]
RAW --> BOUNDARY[Administrative boundaries]
RAW --> HYDRO[Hydrographic vectors]
DTM --> MERGE[Merge DTM tiles]
BOUNDARY --> REGION[Extract Basilicata boundary]
MERGE --> CLIP[Clip terrain to boundary]
REGION --> CLIP
CLIP --> CANONICAL[Canonical Basilicata DTM]
CANONICAL --> RESAMPLE[Resample by target resolution]
RESAMPLE --> MESH[Generate 3D terrain mesh]
RESAMPLE --> SHADE[Hillshade]
RESAMPLE --> COLOR[Hypsometric color relief]
SHADE --> TEXTURE[Terrain texture]
COLOR --> TEXTURE
HYDRO --> RIVERS[Clip and filter rivers]
REGION --> RIVERS
TEXTURE --> OVERLAY[Overlay rivers on texture]
RIVERS --> OVERLAY
MESH --> MODEL[LOD terrain models]
OVERLAY --> PREVIEW[Textured 3D preview]
Core Workflow
B3DO exposes the pipeline through a CLI built with Typer.
The workflow includes:
doctorto validate GDAL tools, input folders, DTM tiles, boundaries, and optional river datasetsmergeto combine raw DTM ASCII tiles into a GeoTIFFboundaryto extract the Basilicata regional boundary from source shapefilesclipto produce the canonical clipped terrain rasterresampleto create target-resolution rastersmeshandbuildto generate terrain meshes and LOD outputscolorizeto produce hillshade and hypsometric color relief rasterstextureandtexture-riversto build terrain textures and overlay riversview-completeto inspect a textured 3D scene
This structure makes the pipeline repeatable, diagnosable, and suitable for incremental improvement.
Data and Model Boundaries
The project separates raw data, processed data, build artifacts, and final model outputs.
Key boundaries include:
- raw DTM tiles and vector datasets
- processed canonical rasters and clipped vectors
- generated raster products such as hillshade, color relief, and textures
- preview models and LOD terrain meshes
- web, print, and model-output directories
This separation keeps the pipeline clear: source data remains distinct from derived artifacts, and each stage can be re-run without confusing inputs with outputs.
3D Terrain Generation
The mesh generation layer converts elevation rasters into 3D terrain surfaces.
Rasterio reads the elevation model and transform metadata, NumPy constructs coordinate grids and elevation arrays, and PyVista builds a structured grid that can be exported as a surface mesh.
The pipeline also supports vertical exaggeration, which is useful when inspecting regional terrain features and producing visually readable previews.
Texture and Hydrography
B3DO does not stop at bare elevation meshes.
The pipeline can generate terrain textures by combining:
- hillshade rasters
- hypsometric color relief
- river vectors clipped to the Basilicata boundary
The result is a more informative terrain representation where elevation, relief, and hydrographic structure can be inspected together.
Why This Project Matters
B3DO expands my portfolio beyond backend and cloud systems into geospatial processing and computational model generation.
It demonstrates the same architectural principles applied to a different domain:
- explicit processing boundaries
- reproducible CLI workflows
- validation before execution
- separation between raw inputs and generated artifacts
- modular pipeline stages
- long-term maintainability over manual one-off processing
This is valuable because software architecture is not limited to web services. The same thinking applies when transforming complex data into reliable, reusable technical outputs.
Current Scope and Disclosure
B3DO is currently unpublished and should be read as an active pipeline project rather than a released public product.
The case study intentionally focuses on the architecture and workflow of the processing system, without presenting it as a completed public dataset or production service.
What This Case Study Demonstrates
This project demonstrates experience in:
- geospatial data processing
- reproducible data pipelines
- CLI-driven engineering workflows
- terrain model generation
- raster and vector processing
- 3D mesh generation
- separation of source data and derived artifacts
- applying architectural thinking outside traditional backend systems