OpenBuildingModels2

From OpenStreetMap Wiki
Jump to navigation Jump to search

We want to resurect OpenBuildingModels project.

See also 3D_development

Summary

As part of 3d development for OSM we need a web platform to collect, share and eddit 3d models of architecture in collaborative way.

This project mostly is not about viewing 3d models in browser, that's already been done in many ways. see: Cesium.js, unity, blend4web

Requirements

  1. One object - many models (with different fidelity)
  2. Versioning of models
  3. Referencing and linkin with osm via web platform
  4. Textures storage
  5. Mdels should be accessible (introspect models to keep track of shared textures, and model footprint generation)
  6. Templating
  7. Open format, open data license, osm oauth
  8. Models linking (link model of interiors, link model of terrain)

Development notes

  1. Distributed file system as storage. Google cloud vs Amazon S3 Cloud vs https://en.wikipedia.org/wiki/Comparison_of_distributed_file_systems
  2. Different levels of accesability for curent version and archive
  3. Metadata may be stored in rdms (Postgis)
  4. Queries, and dumps

Objects

Object page (aggregates differen variants of model for the same osm object, referenced from osm by id)

Model (Actual 3d model of an object)
*- History node (previous varians of model, or its tags, or geo-reference)
   |- Tags
   |- Geo reference
   |- Texture nodes (tracks the usage of textures)
   |- Matherial node (traks used materials)
   |- Author

Texture (Actual texture)

Processes

Add new model:

  1. User creates new model, (create new page, one page aggregates different variants of same model)
  2. User uploads model data
  3. System parses model, obtaining metainformation (textures, number of polygons, materials), and creating footprint
  4. System tracks versions of that model
  5. System assign tags to the model
  6. Aftre that user can georeference the model

Georeference model:

  1. Show user the map
  2. User clicks on the map close to the reference object
  3. Using overpass or osm api query map and parse objects geometry/geometries
  4. If there is no previously binded model, assign model (page id) to osm object, add heading
  5. if there is model binded to object, show existing models, alllow to add subj. model to the object page

OSM tagging

The easiest scheme is just add model (page id) to building or any other object. None the less there are mpre complex cases, when model covers more than one object inside osm. In that case you can use 3dmodel relation.

osm to 3d models share app impprts

There are two topics here. First we have simple 3d schema which allows to create simple models of buildings, it would be great to implement that kind of import.

Another topic is that we want to synchronize references which were added directly to osm. But as long as we dont have big 3d modellers community and a big number of such edits, we can start without full osm planet database and pereodically sync witj local dumps parsing