Streets GL — a new 3D renderer for OSM

Maybe we can discuss this here with a wider audience and not only in issue #5

Where and how to map a bus stop.

Currently: a bus stop shelter is rendered where the highway=bus_stop is mapped - even when on the street.

Suggestion: a generic bus stop icon, also where the highway=bus_stop is mapped, but which does not harm/bother anyone even when rendered on the street.

Thank you for the suggestion. I should certainly do that at some point to have some sort of a formal description of how different tags affect rendering.


@StrandedKitty this is so amazing. keep up the great work! :+1:

1 Like

This is awesome! My neighborhood looks pretty good actually! If I can wish for something, it would be nice if sheds were rendered without windows. Keep up the great work!


There was mention somewhere above of windows=yes/no so experimented with a just added building. The front 1 floor section and the power substation left over got the windows=no tag, but windows there are. Hope this is on the ToDo list.


Oh, and I tagged roof:material is photovoltaic main building centre square. There’s actually a pattern visible there.

Edit: Just noticed the 3 wire powerlines connect to the ground of the substation, they actually connect at the top. Maybe a height tag needs adding to the terminal nodes.(?)

I’m not sure “photovoltaic” is a “roof material”. Usually the panels are on the roof which is made of another material, I think you should tag them as the wiki suggests: Tag:generator:source=solar - OpenStreetMap Wiki


both is possible!

source: Solardachziegel: Eine echte Alternative zu Photovoltaik? -

1 Like

:sunglasses:I know, they’re hard at work towards photovoltaic off the roll as well, apply like tar paper.

Interesting, but the majority of buildings tagged right now with roof:material=photovoltaic don’t seem like the one in the image:

For the case in your image I would still choose another word for the value that describes the material (isn’t “photovoltaic” more the technology/physical phenomenon more than the material?), and add those tags I linked in addiction in top of the roof. Sorry for the OT btw

1 Like

Thanks for mentioning this. I’ve added building=shed, among other building types, to the exceptions.

And I’ve also added support for window=yes/no which overrides default behaviour. For example here’s a church that uses this tag for some parts (link):


And so within no time, windows gone on the two building parts as tagged

This image better visualizes the power lines going to the foot of the substation instead of the top. Had added height=7.5 to the terminal points but that was to be expected. Still need to learn how to size lattice construction power masts as this looks like a default type max.

As for the pattern on the flat roof, that’s general artistic work learned from glossing over at where the church image link above went, nothing to do with photovoltaic roof material.

Typical Church windows:


I got this working on a somewhat newer and more powerful computer. Disappointingly, the golf ball on top of Mica Peak is absent.

Wow, great work!!! Since people are giving suggestions, I would like to see turn lanes and more road surfaces used, such as paving stones for example.

Also, it seems buildings are floating when above highway=pedestrian, like here.


Holy moly, awesome! And open source, to boot! So far, I found F4Map to be the best 3D rendering of OSM data, but this one easily takes the crown. And being open source, I hope a lot of incremental improvements will be made through contributions and feedback. At least this thread is full with feedback and feature requests already :wink:

I’d love to include StreetsGL in the StreetComplete “OpenStreetMap showcase link collection” (mappers can unlock links to interesting OSM-based projects by contributing), too bad it does currently not work on mobile devices. How come though, what is missing?

I’ll post any further suggestions etc. in the issue tracker where they belong.


Well, controls and UI for touchscreen are missing. I’ve abandoned them a long time ago because it became obvious that you can’t really run this on most mobile devices. And even on high-end ones it runs poorly, mainly because of the complex rendering pipeline and computationally expensive tile generation.

1 Like

Very good work! Good interpretation of Simple 3D buildings too. I added a few unique buildings in downtown Baltimore and they look good.

  1. Way: ‪Baltimore City Hall‬ (‪453652415‬) | OpenStreetMap
  2. Way: ‪Courthouse East‬ (‪336359315‬) | OpenStreetMap
  3. Way: ‪One South Street‬ (‪337517741‬) | OpenStreetMap
  4. Way: ‪Transamerica‬ (‪337088572‬) | OpenStreetMap
  5. Way: ‪10 Light‬ (‪337906760‬) | OpenStreetMap
  6. Way: ‪William Donald Schaefer Tower‬ (‪337906789‬) | OpenStreetMap

Looks great, but I noticed that several buildings looks too low. For example Relation: 11900864 | OpenStreetMap has building:levels=4, but is rendered weirdly:

When no height or building:levels is found, I’d maybe guess the building height based on some heuristics, like in my area most ordinary buildings have 2 or 3 stories.

nice :slight_smile:

roof:edge and roof:ridge not supported?

Because Streets GL follows the Simple 3D Buildings schema, that says:

When a building has any building:part=* areas, the building outline is not considered for 3D rendering.

So it doesn’t matter that the outline has building:levels=4 since is not considered by the renderer. And since building:level=* is missing in most parts, that’s the result.