{"id":13593527,"url":"https://github.com/3dcitydb/3dcitydb","last_synced_at":"2026-02-25T20:08:05.020Z","repository":{"id":1721815,"uuid":"14438397","full_name":"3dcitydb/3dcitydb","owner":"3dcitydb","description":"3D City Database - The Open Source CityGML Database","archived":false,"fork":false,"pushed_at":"2025-03-17T06:56:14.000Z","size":568440,"stargazers_count":400,"open_issues_count":3,"forks_count":81,"subscribers_count":41,"default_branch":"master","last_synced_at":"2025-04-02T10:08:19.740Z","etag":null,"topics":["3d-city-model","citygml","database","gis","ogc","oracle","postgresql"],"latest_commit_sha":null,"homepage":"http://www.3dcitydb.org/","language":"PLpgSQL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/3dcitydb.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-11-16T00:08:50.000Z","updated_at":"2025-03-30T16:33:55.000Z","dependencies_parsed_at":"2023-10-10T13:43:43.898Z","dependency_job_id":"3beba6ef-503f-451a-90c1-75111d769001","html_url":"https://github.com/3dcitydb/3dcitydb","commit_stats":{"total_commits":900,"total_committers":16,"mean_commits":56.25,"dds":0.72,"last_synced_commit":"d3ebb41ba26ecb8ab4ddf5d295025ef04e756155"},"previous_names":[],"tags_count":23,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3dcitydb%2F3dcitydb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3dcitydb%2F3dcitydb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3dcitydb%2F3dcitydb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/3dcitydb%2F3dcitydb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/3dcitydb","download_url":"https://codeload.github.com/3dcitydb/3dcitydb/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248027407,"owners_count":21035594,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["3d-city-model","citygml","database","gis","ogc","oracle","postgresql"],"created_at":"2024-08-01T16:01:21.238Z","updated_at":"2026-02-25T20:08:05.013Z","avatar_url":"https://github.com/3dcitydb.png","language":"PLpgSQL","funding_links":[],"categories":["PLpgSQL"],"sub_categories":[],"readme":"![Build scripts](https://img.shields.io/github/actions/workflow/status/3dcitydb/3dcitydb/build-3dcitydb-scripts.yml?badge=build\u0026style=flat-square)\n![release](https://img.shields.io/github/v/release/3dcitydb/3dcitydb?display_name=tag\u0026style=flat-square)\n\n3D City Database V5\n===================\n\nThe **3D City Database V5** is a free 3D geo database to store, represent, and manage \nvirtual 3D city models on top of a standard spatial relational database. \nThe database model contains semantically rich, hierarchically structured, multi-scale \nurban objects facilitating complex GIS modeling and analysis tasks, \nfar beyond visualization.\n\nThe database schema of the 3D City Database V5 results from a systematic mapping \nof the data model defined in the \n[OGC City Geography Markup Language Conceptual Model (**CityGML Version 3.0**)](https://www.ogc.org/standard/citygml/),\nan international standard for representing and exchanging\nvirtual 3D city models issued by the [Open Geospatial Consortium (OGC)](https://www.ogc.org/). \n\nCompared to the earlier versions of the 3DCityDB (V4), more generic mapping rules have been\napplied resulting in a significant reduction of the number of database tables.\nFurthermore, geometry objects are now directly mapped onto corresponding data types \nprovided by PostGIS; i.e. Solid, MultiSurface, CompositeSurfaces, TINs, etc. are no longer\nsplit into their individual polygons stored as separate rows as it was done in 3DCityDB V4. \nThis makes it much easier to express spatial queries in SQL, faster to evaluate such queries, \nand also to directly connect to the 3DCityDB from geoinformation systems \nlike QGIS or ArcGIS and utilize the spatial objects. Overview of the \n[relational schema of 3DCityDB V5](postgresql/db-schema/3dcitydb-schema.pdf).\n\nThe 3D City Database has been realized as a PostgreSQL/PostGIS database schema with a collection of pgSQL utility functions, supporting following key features:\n\n * Full support for CityGML versions 3.0, 2.0 and 1.0\n * Complex thematic modelling including support for Application Domain Extensions (ADE). \n * Four (CityGML 3.0) or Five (CityGML 2.0 and 1.0) different Levels of Detail (LODs)\n * Appearance information (textures and materials)\n * Digital terrain models (DTMs) represented as TINs\n * Representation of generic and prototypical 3D objects\n * Free, also recursive aggregation of geo objects\n * Flexible 3D geometries (Solid, CompositeSolid, MultiSurface, CompositeSurface, \n   Polygon, TINs, MultiCurve, CompositeCurve, LineString, LinearRing, Point)\n * Stored database functions to delete complex objects including all their nested \n   sub-objects and geometries. As an alternative, objects can only be marked as terminated,\n   which leaves them in the database but sets their termination date timestamps accordingly.\n   This realizes a simple but powerful historization / versioning mechanism. \n * Import and export tool available to read and write CityGML datasets of arbitrary file \n   sizes using both GML and CityJSON encoding. \n   The [citydb-tool](https://github.com/3dcitydb/citydb-tool) allows the on-the-fly\n   upgrade of CityGML 2.0 / 1.0 datasets during import to CityGML 3.0 and the downgrade \n   of stored CityGML 3.0 datasets in the database to CityGML 2.0 or 1.0 files.\n\nThe 3D City Database comes as a collection of SQL scripts that allow for creating and \ndropping database instances. Different versions of automatically generated Docker containers are\navailable. They allow for an immediate launching of a PostgreSQL/PostGIS database with \npreinstalled 3DCityDB data schema and scripts by a single command.\n\nWho is using the 3D City Database?\n----------------------------------\n\nThe 3DCityDB V5 has just been released and we expect that most users of the earlier\nversion (V4) will migrate to the new version sometime in the future. Note, that the \nearlier version V4 is still working, \n[available](https://github.com/3dcitydb/3dcitydb/tree/3dcitydb-v4), and will also still\nbe supported for some time in the next 1-2 years. However, we recommend to start new projects \nusing the new version V5. V4 of the 3D City Database is in use in real life production systems in \nmany places around the world such as Berlin, Potsdam, Hamburg, Munich, Frankfurt, Dresden, \nRotterdam, Vienna, Helsinki, Singapore, Zurich and is also being used in a number of research projects.\n\nThe companies [Virtual City Systems](https://vc.systems/) and [M.O.S.S.](https://www.moss.de/), \nwho are also partners in development, use the 3D City Database at the core of their \ncommercial products and services to create, maintain, visualize, transform, and export \nvirtual 3D city models. Furthermore, the state mapping agencies of the federal states in Germany \nstore and manage the nation-wide collected 3D city models (including approx. 56 million building models\nand bridges) in CityGML LOD1 and LOD2 using the 3D City Database. \n\nWhere to find CityGML data?\n---------------------------\nAn excellent list of Open Data 3D city models, especially also represented using CityGML, \ncan be found in the [Awesome CityGML list](https://github.com/OloOcki/awesome-citygml). \nCurrently, datasets from 21 countries and 65 regions/cities can be downloaded for free\n(with a total of \u003e210 million semantic 3D building models). All of the provided CityGML files \ncan be loaded, analyzed, and managed using the 3DCityDB.\n\nLicense\n-------\nThe 3D City Database is licensed under the \n[Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0).\nSee the `LICENSE` file for more details.\n\nNote that releases of the software before version 3.3.0 continue to be licensed under \n[GNU LGPL 3.0](https://www.gnu.org/licenses/lgpl-3.0.en.html).\nTo request a previous release of the 3D City Database under Apache License 2.0 \ncreate a GitHub issue.\n\nLatest release\n--------------\nThe latest stable release of the 3D City Database is 5.1.2.\n\nYou can download the latest release as well as previous releases from the\n[releases section](https://github.com/3dcitydb/3dcitydb/releases).\n\nSystem requirements\n-------------------\nSetting up an instance of the 3D City Database requires an existing installation of a PostgreSQL database. Currently, only following database versions are supported:\n\n* PostgreSQL \u003e= 14 with PostGIS \u003e= 3.1\n\nIt is recommended that you always install the latest patches, minor releases, and security updates for your\ndatabase system. Database versions that have reached end-of-life are no longer supported by the 3D City Database.\n\nDocumentation and literature\n----------------------------\nA complete and comprehensive user manual on the 3D City Database V5 and its tools is\navailable [online](https://docs.3dcitydb.org/).\n\nAn Open Access paper on the 3DCityDB (version 4) has been published in the International\nJournal on Open Geospatial Data, Software and Standards 3 (5), 2018: \n[Z. Yao, C. Nagel, F. Kunde, G. Hudra, P. Willkomm, A. Donaubauer, T. Adolphi, T. H. Kolbe: 3DCityDB - a 3D geodatabase solution for the management, analysis, and visualization of semantic 3D city models based on CityGML](https://doi.org/10.1186/s40965-018-0046-7). \nPlease use this reference when citing the 3DCityDB project.\n\nDatabase setup\n--------------\nTo create a new database instance of the 3D City Database, download and unzip the\nlatest release from the [releases section](https://github.com/3dcitydb/3dcitydb/releases)\nor [build](https://github.com/3dcitydb/3dcitydb#building) the database scripts\nfrom source. Afterwards, simply execute the `create-db.bat` batch script\nunder Windows respectively the `create-db.sh` shell script under UNIX/Linux/MacOS\nenvironments. These scripts are available for PostgreSQL with PostGIS extension\nand can be found in the subfolders \"3dcitydb/postgresql/shell-scripts/windows\"\nand \"3dcitydb/postgresql/shell-scripts/unix\".\n\nThe connection details for your database account have to be edited in the\n`connection-details` script prior to running the `create-db` script (or any\nother shell script provided in these folders).\n\nThe shell scripts can usually be executed on double click. For some UNIX/Linux\ndistributions, you will have to run the script from within a shell environment.\nPlease open your favorite shell and first check whether execution rights are\ncorrectly set for the script.\n\nTo make the script executable for the owner of the file, enter the following:\n\n    chmod u+x create-db.sh\n\nAfterwards, simply run the script by the following command:\n\n    ./create-db.sh\n\nThe setup procedure requires the following mandatory user inputs:\n1) Spatial Reference System ID (SRID) to be used for all geometry objects,\n2) EPSG code of the height system (optional),\n3) String encoding of the SRS used for the gml:srsName attribute in CityGML exports.\n\nAfterwards, the script will start the setup procedure and invoke additional\nSQL scripts in the background. Please refer to the \n[user manual](https://docs.3dcitydb.org/latest/first-steps/)\nof the 3D City Database for a comprehensive step-by-step guide.\n\nDatabase deletion\n-----------------\nTo drop an existing database instance of the 3D City Database, simply execute\nthe shell script `drop-db` for your database and operating system. Make sure \nthat you have entered the correct connection details in the script \n`connection-details` beforehand.\n\nUsing with Docker\n-----------------\n\nThe 3D City Database is also available as Docker image. You can either build an image for PostgreSQL \nyourself using one of the provided Docker files or use a pre-built PostgreSQL image from Docker Hub at \n[https://hub.docker.com/r/3dcitydb/3dcitydb-pg](https://hub.docker.com/r/3dcitydb/3dcitydb-pg) \nor from Github container registry at \n[https://github.com/orgs/3dcitydb/packages?ecosystem=container](https://github.com/orgs/3dcitydb/packages?ecosystem=container).\n\nA comprehensive documentation on how to use the 3D City Database with Docker can be found in the\n[online user manual](https://docs.3dcitydb.org/latest/3dcitydb/docker/).\n\nBuilding\n--------\n\nThe 3D City Database uses [Gradle](https://gradle.org/) as build system. To build the\ndatabase scripts for setting up and running a database instance from source,\nclone the repository to your local machine and run the following command from\nthe root of the repository.\n\n    \u003e gradlew installDist\n\nThe build process runs on all major operating systems and only requires Java 11 or\nhigher to run.\n\nIf the build was successful, you will find the 3D City Database scripts\nunder `build/install/3dcitydb`.\n\nContributing\n------------\n* To file bugs found in the software create a GitHub issue.\n* To contribute code for fixing filed issues create a pull request with the issue id.\n* To propose a new feature create a GitHub issue and open a discussion.\n\nCooperation partners and supporters\n-----------------------------------\nThe 3D City Database V5 has been developed by and with the support from the following cooperation partners:\n\n* [Chair of Geoinformatics, Technical University of Munich](https://www.asg.ed.tum.de/gis/)\n* [Virtual City Systems, Berlin](https://vc.systems/)\n* [M.O.S.S. Computer Grafik Systeme GmbH, Taufkirchen](https://www.moss.de/)\n* [Zentrum für Geodäsie und Geoinformatik, Hochschule für Technik Stuttgart](https://www.hft-stuttgart.de/p/zhihang-yao)\n* [LIST Eco GmbH \u0026 Co. KG, Köln-Ehrenfeld](https://www.list-eco.de/)\n\nFurther plans\n-------------\nWe are currently working on a couple of things and functionalities, that are intended to be provided in the future:\n\n* Support for the Oracle database management system (sponsors or contributors are welcome!)\n* Support for a tool to export visualization data in the form of 3DTiles. For that purpose we are \n  currently customizing the third-party Open Source tool [pg2b3dm](https://github.com/Geodan/pg2b3dm) \n  developed by Bert Temme to directly work on the 3DCityDB V5. The tool will be provided as a customized \n  Docker container, too.\n* Inclusion of the recently released \n  [3DCityDB Web Map Client 2.0.0](https://github.com/3dcitydb/3dcitydb-web-map) as part of the \n  new 3DCityDB V5 software package together with the visualization tool mentioned above\n* Collaboration with Giorgio Agugiaro from TU Delft on getting the \n  [QGIS plugin for 3DCityDB V4](https://github.com/tudelft3d/3DCityDB-Tools-for-QGIS) upgraded\n  to V5. (In fact, Giorgio and his team are already working on this)\n* Support for the CityGML 3.0 modules Versioning and Pointcloud in the citydb-tool\n\nMore information on CityGML\n---------------------------\n[OGC CityGML](https://www.ogc.org/standard/citygml/) is an open data model for the \nstructuring and representation of semantic 3D city models. The aim of CityGML is to \nprovide a common definition of the basic entities, attributes, and relations \nof 3D city models. Such models play a key role in Urban Digital Twins, but also to\nfacilitate BIM-GIS integration while keeping the structural, spatial, and semantic \ninformation. The [CityGML conceptual model](https://docs.ogc.org/is/20-010/20-010.html) \nhas been mapped onto different data encodings (i.e. data exchange formats). \nThe [GML encoding](https://docs.ogc.org/is/21-006r2/21-006r2.html) \n(\"CityGML files\") is a complete mapping of all aspects of the conceptual data model \nof CityGML 3.0 onto XML and guarantees lossless data transfer of any kind of CityGML data. \n[CityJSON](https://www.ogc.org/standards/cityjson/) is a mapping of a\nsubset of CityGML 3.0 onto a simpler, JSON-based file format. The 3DCityDB can be \nconsidered a third type of encoding of the CityGML data model - in this case, data \nis encoded within the tables of a spatial relational database schema.\n\nCityGML is an international OGC standard and can be used free of charge.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F3dcitydb%2F3dcitydb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F3dcitydb%2F3dcitydb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F3dcitydb%2F3dcitydb/lists"}