A way from OSM tags to an OBJ file server proposal?

Many of us would like to have more detailed 3D Models, by 3D arcs or even “really" 3D file formats.

I think, we have to consider three steps:

  1. Editors:
  • How do you edit with Simple_3D_buildings? Is there a reall WYSIWYG editor? The JSON Kendzi3D is on a good way, is it? OSMBuidlings did something to, right?
  • There are a lot of 3D editors out there, like Blender or ScetchUp. But they do not export OSM-Tagging. In Blender, you could limit yourself and an Tag-Export would be possible.
  • Because it is ought to be experimental, “OSM go” could add editing to. Setting the height/levels is intended anyway. Id would be a lot of work but great if all tags could be edited in side the virtual world, even (some of) S3DB.
  1. Formats:
  • S3DB would produce great views. But would you like to edit it blind? But this would still set limits.
  • An format like OBJ would not. Could we agree to this format? Even SketchUp can export it.
  • An 3D editor, even if it uses OSM tags could also export OSM files. So complex models could transformed.
  1. Storage:

Is OSM really the place to store 3D models? We are not talking about big data. Even thousands of models would not take much MB. But as a tag orgy? OBJ could be compressed into a long string as value of one tag. Sounds odd to.

Who is using the OSM or OBJ data? Only 3D renderers. Which of them is already storing model files?

  • OSMBuildings has 2

  • OSM go 5

  • What about F4?

  • Others?
    Because it isn’t big data, each render server could syncronice and have a copy of all models, for fast rendering and for redundant storage. Will F4 and the others accept that idea?


Even if we use OBJ formatted files, we need a tagging schema to place the models.
Including a tagging proposal how to reference to the model file,

  • were to position, rotate and scale;
  • what buildings are replaced by the model (by a tag at each building or a list in a relation?) etc.
    Who has done proposals already and likes to help?

(I will update the lists above, if comments give more facts or ideas)

OBJ is widely supported and easy to parse for applications. It is pretty limited in its capabilities, but if the goal is to get off the ground quickly, I’m inclined to agree that it’s probably the best choice.

Yes, putting models into tags would probably not go down well with mappers, and would also clash with key/value length limits. The best choice, therefore, is most likely to upload the model files to some external repository. As it happens, the creation of such a website is one of the suggested projects for this year’s Google Summer of Code. So we might be able to get started on this project very soon. :slight_smile:

Position should ideally be linked to the position in OSM, so that moving an object in OSM also moves the model associated with it.

As for rotation and scale, I would distinguish between two cases: Unique models (a famous castle etc.) should already be properly rotated and scaled within the model file. Generic models (a bollard, post box etc.) would be rotated and scaled based on OSM tags, such as height and direction.

As a long-time wiki editor with a few proposals under my belt, I would be glad to create and advertise a proposal for this tagging as soon as the GSoC project is underway.

@Tordanik Is there more about that GSoC project? I think, we need a server software (may be PHP)

I think @Tordanik referred to https://wiki.openstreetmap.org/wiki/Google_Summer_of_Code/2017/Project_Ideas/3D_Model_Repository.

Actually, both server-side part, that’ll handle uploading and saving models (that is: saving the model physically on the server and linking it somehow to the OSM database), and authenticating users, and a client-side part that’ll render the model. It’s possible to render the model on the server (eg. to a PNG image), but I think it would be better to use eg. three.js to render it on the client (the GSoC proposal mentions “a JS based live view”), it’ll also allow to interactively explore the model. Maybe it should also render nearby objects (sort of 3D map, like F4’s demo), but that’s a bit more complicated.

The server API should return the whole model in a renderable format. Aren’t different levels of detail embedded in the model itself? Or maybe it depends on file format? Should it allow any client to download models or limit them by eg. API keys of some sort? [Probably not, because we would need some keys for project’s home website and everyone could use them for their projects :)]

Other instances of this server API or it’s about other systems of similar role?

it’ goin on:

Great Karlos! We are waiting.

Good Luck!

Google Summer of Code is over and the coding work for the 3D model repository is pretty much complete. Check out the lastest blogpost for a summary: http://www.openstreetmap.org/user/n42k/diary/42379

We’re now working towards launching the repository (which involves legal issues, branding, and hosting for the most part). So stay tuned! :slight_smile: