Streets GL — a new 3D renderer for OSM

This is very interresting.
Is there already a discussion regarding this topic and how do you see the integration?

Just a quick comment - I tried these coordinates near me:

Not much is mapped there so it should load fast.

The diagonal buildings are a gas station. Front one is the canopy over the gas pumps, and it is tagged as just a roof, but shows up as a building with windows. Is there some other tag it needs, to show up correctly as a roof? Or do you need to fix the renderer so a roof tagged like that shows up correctly?

The tag was changed from a generic building to roof about a month ago. The last data update for streetsGL was in September last year, so the renderer doesn’t know yet that it is a roof.
There would need to be a data update for StreetsGL for it to show up properly.

3 Likes

Core glTF does not support storing multiple levels of detail for an object within a single file, nor do any of the other 3D model formats discussed here as far as I know.

Of course, a model repository could quite easily allow you to upload you the different levels of detail as separate files. Supporting these kinds of features and conventions that make models suitable for use in 3D city models (e.g. consistent use of coordinate systems, appropriate textures and polygon counts for real-time rendering, and suitable licenses), seems easier on a dedicated platform than on Commons, where – even if we could convince them to support glTF as an additional format – we’d have to deal with the fact that most models on the platform wouldn’t be suitable for our purposes.

I still believe the original idea behind the 3DMR is sound, i.e. upload models to a suitable platform and link them from OSM with a single tag that references an external URL or ID. This lets a 3D renderer replace the tagged OSM element with the model it retrieves from the external platform. This can happen on the client (this is likely what a renderer such as Streets GL would do), but it could also involve parsing the model and including its geometry seamlessly into the 3D models generated by the renderer.

Unfortunately, the 3DMR codebase is currently unmaintained, and it may not stay online for much longer unless I can find a volunteer willing to take up its maintenance (port it to modern Python and Django versions, and ideally also make the necessary code changes to move from OBJ to glTF).

2 Likes

Not exactly. But a gLTF/GLB may contain mutible named scenes. We could propose names like “lod3”.

Yes, these are the standard way to render oceans. OSMCoastline is a successor to coastcheck, which was the original way to generate these files in 2007.

If you’re only looking at an area with no coastline you can’t tell if it’s land or water. If you have a coastline you can use winding order but that’s not easy in any of the standard tool chains, and data errors can cause problems.

1 Like

This more specialized 3D renderer is designed for the workflow you describe:

3 Likes

Speed was not the only reason of why Streets GL “hit like a bomb” imho. Another factor was its ability to render complex 3D models.

This is the same building in Streets GL, F4Map and OSMBuilding:


image
image

Gundam Unicorn in Streets GL, F4Map and OSMBuilding:

It’s an interesting project but doesn’t seem much reliable for detailed mapping at the moment. F4 remains the best option for now imho.

6 Likes