Real time 3D map using WebGL

Hi there,

we’re working on a WebGL based rendering of OSM data hosted here.

We would be glad to have some feedback from the OpenStreetMap 3D community.

(if your browser or hardware does not support WebGL rendering it will fall back to OpenLayers)

Sorry, I can’t say that much, as the rendering disappears always after it’s finished and I just see a blank canvas:
I used FF 20 and WebGL seems to work corresponding to the WebGL demos form Mozilla.
Maybe you can fix that?

I never heard about that company before, so excuse me, but who are you exactly? :slight_smile:
And which Workflow, Data schema do you use?

This is a known issue in the post-process code we don’t know why sometimes the graphic driver returns a broken RenderTarget, you can try with this link (it deactivates the outline post-process)

Thanks that one works fine for me :smiley:

It looks really impressive due to the lightning/shadows and interaction (animation, camera perspective, …). Great job!
So I checked the areas that I worked on (Rostock, Schwerin) and see that there seem to be small misinterpretations of the S3DB and that some tags arent’t recognized yet (materials, some roof shapes and orientation, …). Another problem seems to be clipping with overlaying building:parts. That can be even a modelling problem, but maybe this can be solved within the conversion automatically?

Currently I’m still suprised, that you come with this brilliant project, while a few devs already tried similar approaches but they didn’t finished yet. So please, give us some more details :slight_smile:

Really nice.

What is license of this project? Is any chance that trees models are open source and can by used?

I’m sorry but there is no chance to get the code source or models for free.

For performance reason we are not handling everything for now, this is a non exhaustive list:

buildings and roof color
roofs shapes (flat, pyramidal, hipped, gabled, pitched, dome, onion, mansard)
barriers (wall, fence and hedge)
forest, tree, tree_row
artwork (sculpture and statues)
chimney and nuclear water cooling
wind generators
power lines, poles and towers

We’re glad you enjoyed our work.

I highly recommend, that at least the interpretation of buildings should be checked against the S3DB schema and compared to OSM2World and Kendzi interpretation. Otherwise, people might start (wrong) editing, if you roll out, because they expect the tags on the buildings to be wrong. After a short check, currently none of my multipart buildings look completely right.

My questions is, why didn’t you used one of the already existing converters, as OSM2World for example to create your vector tiles?

Concerning the question of kendzi, IMHO, your 3D object DB is derived from OSM dataset, thus it needs to be licensed under the terms of the OdbL? So I expect that Kendzi can take the models under the terms of OdbL?

P.S. Small note: Currently you lack osm attribution.

The question was about custom 3d models, placed as ‘marker’ the tree nodes. This does not make the models itself derived from Obdl data

I’m definitly not a legal expert, but from my POV:

  • OSM dataset is ODbL and the base for that computation
  • It’s enriched with ‘magic’ (extruding houses, applying 3d markers, …)
  • this new dataset is combined and saved in a 3D database

If you reflect the complexity of the single objects, I (personally) would expect that the whole dataset (and so every single object that is complex enough) is licensed under the same terms. But maybe this is a good question for OSMF LWG, this is just my intuitive feeling :wink:

Actually the building models are created on-the-fly from raw osm2pgsql data on the client, which I find really impressive :slight_smile:

Regarding your concerns; would you say one has to make a font freely available when creating tiles for a custom map style? I would think this is an analogous case here

Our 3d buildings extraction implementation is based on this wiki page and then we added a few fallback from this table that’s why we are not fully matching what you expect to see on the map.

We are not using a converter nor a ‘3D database’, the extruded stuff you can see on the map is computed client-side on the fly.

The osm copyright was displayed in the legal page but i just realized this page is not accessible anymore since the last UI refactoring (some heads will fall tomorrow…)

Concerning the “real” 3D models (the tree, the lighthouse, the Eiffel tower…) they were modelled in Maya and exported in a specific binary file format and so are property of our team.

Yes, very impressive. Worked out of the box on Firefox 15 the first time, although going back a few hours later, I’m no longer offered the choice to switch between 2D and 3D.

I love the fountains and trees. In Munich the river seems to be flowing the wrong way - is this a problem with the underlying ways?

@OliverLondon maybe you could not switch between 2D and 3D because you were too far away, try to zoom in.

I think there are currently 2 problems in your interpretation of S3DB that makes the results very different:

  1. min_height ignored
  2. Inheritance is applied differently
    Please compare your results against the well mapped areas:

As J3D says, a on-the-fly interpretation is impressive :slight_smile:

We’re handling min_height as explained in the OSM wiki (check,Petronas Towers, Kuala Lumpur and 26 East 23rd Street, New York)

The inheritance issue may be due to the lack of relation in our database, we’re handling building:part as building without any distinction.

Can you please link me some misinterpretation of the S3DB in our application so that we could have a look.

Here my examples: (Rostock Warnemünde) (Schwerin castle and surroundings)
As far as I remember I didn’t used a relation either, but of course my modelling can be wrong, too. But I make heavy use of inheritance, as IMHO we specified it at the 3D workshop.

Another aspect might be currently not within the S3DB specs: defaults
So kendzi/tordanik use yellow as basecolor for buildings. Even if your white looks really nice/modern we should try to unite the interpretations. Or no tool makes use of a default colour to show the user, that you need to specify everything?

For now we used 2 default colors for walls and roofs when they’re not specified with osm attributes, we specified a white/gray combo to get and architect sketch look.

I think the differences could come from our interpretation of building size:

total height (defined by ‘height’ or ‘building:height’ or (‘building:levels’*3 + ‘roof:levels’*3)).
roof height (defined by ‘roof:height’ or ‘building:roof:height’ or ‘building:cullis:height’ or ‘roof:levels’*3 or ‘building:roof:levels’*3)
wall height = total height - roof height [- min_height if specified]

Maybe it’s a wrong interpretation of this page mixed with this one

In addition to that i think that the aspect ratio & camera fov differences between your rendering and our make the comparison quite hard.


I just found out that removing the polygons with id=209603824 and id=96820490 gives a mush better look for “Schwerin castle”.
It seems that these 2 buildings are only partly rendered in osm2world.

A understandable decision. Unfortunatly this is different from the way the dev community handles it currently, which can result in artifacts. In the case of the castle, it’s really yellow. If a building is white, I wether specify it with building:colour=white

For now, only S3DB is the only semiformal agreement of the most of the devs. The levels should be only considered, if there is no other height information. Usually it’s just to generate a texture of windows and we encourage users to use dedicated height values to describe the geometry.

This is somewhat true, but O2W (for what I can say) is highly customizable, so you explore areas in the same interactive way as within your client.
I guess you know, that tagging schemas are only semi-formal here at OSM. So you need to consider, how it is used in the wild. Thats why the 3D staff offered the demo areas and example files to show you, how the current interpretation should look like.

Sorry, I have no idea, what you removed :frowning:
But please take care of the “we don’t tag for single renderers rule”.

I removed it locally in my client triangulation to see what would happen, i won’t change OSM data for my personal rendering :wink:

I checked the Schwerin castle in Kendzi3D and found that its rendering is matching mine.

It seams that by S3DB you should use relation for grouping building outline and building parts.