Streets GL — a new 3D renderer for OSM

Is it still possible to switch of the server cashe and generate the tiles in the browser client?
Could the client upload an actual tile to the server?

1 Like

What is the limiting factor regarding tile updates? I’m also eagerly waiting for an update. F4Map seems to have them approx. daily, which I think is a good baseline.

Can it be quantified in terms of money/financial support what would be needed that streets.gl could run daily, automatic updates?

2 Likes

(related: Add Button to retrieve and render current data · Issue #143 · StrandedKitty/streets-gl · GitHub)

3 Likes

Have effectively abandoned visiting SGL and returned reviewing new complex building renders on F4 simply because last SGL update interval was like 5-6 weeks and the present has again not updated since Sept.24, a far cry from the 1-2 weeks which was indicated after the tile updating process change.

3 Likes

Such a magic button which “manually” (client-side) reloads data from Overpass would be the silver bullet though, especially for isolated edit/view cycles. I don’t have a first clue about Typescript, but hopefully it will make for a beginner-friendly PR!

5 Likes

When it comes to vector tiles, I don’t think there’s a cheap solution to generating them. It’s either paying $5-10 per update or investing into a powerfull machine which most likely won’t happen.

The old code that handled Overpass API data needs to be ported to the most recent app version so that some feature can be pulled directly from OSM while problematic large features like water bodies, fields, etc. are pulled from vector tiles. I’m not sure when I’ll be able to implement this.

Plus, there are a couple of GPU-related problems that are quite high priority:

  • On some devices elevation doesn’t get applied to the terrain near the camera.
  • Bad performance on Apple silicon, for me this is a blocker and I’m not even sure if there’s a straightforward solution to this…
3 Likes

I don’t wish to seem I am being negative towards @StrandedKitty, as it’s awesome what we see as fruits of your efforts.

I do, however, believe there IS a solution to “this” (currently bad performance on Apple Silicon). It would be a real analysis of your code stack and some optimizations and/or rewrites for Apple Silicon. That’s a tall order, I know, and many wouldn’t consider it “straightforward” (I’m a former Apple software engineer and it doesn’t seem so, though I don’t know details of your stack). There is a solution, it’s a deep, deep one, given what you are doing now to implement what we see.

So, not insurmountable, though a tall mountain to climb, or a deep chasm to look into and shout an echo.

GPU coding of the sort that is happening here can be tricky stuff, but it is possible to craft code to exploit specific hardware. Possible? Yes. Difficult? Yes.

Fact check:

I generate planet-scale vector tiles twice a day for pennies using an old laptop.

5 Likes

That sound very good! And just as a reference, stronger hardware is able to keep up with minutely updates of vector tiles: Minutely updated map — Jochen Topf

I understand it might be problematic for @StrandedKitty themselves, but if the hardware is the issue, if they issue a call for help, I think there is a high chance that some people might offer some high-bandwidth connected hardware to be used for that purpose.

Implementing this however would solve most problems for people wanting to use streets.gl as QA to check their work and provide fast feedback. I understand that there are other important rendering issues; but I think fixing this regression would make many people very happy.

9 Likes

70 days since. What’s off the boil in the tile cooker?

I agree that having very lightweight vector tiles that contain the data that is difficult to get via Overpass (water bodies, …) + Overpass for the rest could be the best solution. These vector tiles then don’t even have to be current at all, as these things don’t usually change that often and what makes streets.gl interesting is arguably not the rendering of water bodies. When these tiles are mostly static and are re-generated only every so often, it should lower hosting costs for these somewhat.

The reason why streets.gl hit like a bomb when you announced it early this year has been very much the fact that you could see your 3D-changes almost right away. I.e. that has been its killer feature, without it, I am afraid, it is just another 3D renderer amongst others, hence the partly disenchanted messages on this thread recently.

12 Likes

Absolutely agree. :100:

2 Likes

As an aside (or perhaps directly related, but expanding to the wider topic of renderers) ANY “good, fast-cycle / quick-turnaround-time renderer” is going to encourage and result in good-to-better development of the underlying data which are rendered in that renderer. This is true for any 3D renderer (they are a “hot topic” right now), but in my direct experience, this is true for OpenCycleMap and cyclosm (bicycle route display renderers) and OpenRailwayMap (rail infrastructure and related tagging, but not passenger rail route renderers, which live in other overlays / renderers, like OpenTransportMap and Transport layer).

In short, when OSM has “the full stack” (of data, which get rendered), “people can see” their data (mapped), so “more people further develop” said data. More comprehensively, and to a great extent, related to the speed / cycle-time of the renderer. This is a basic tenet of digital mapping, even if it isn’t explicitly stated very often (so I state it here).

And yes, I know OSM says “don’t tag for a specific renderer,” and that’s good for us to say, but that doesn’t change this underlying truth of digital mapping, especially when it is crowdsourced as OSM is.

9 Likes

It doesn’t actually say that, it is a common misconception due to unfortunate easily misinterpretable wording that stuck in people heads.

In “Don’t (mis)tag for the renderer” it explains that it is:

bad practice of using incorrect tags (or otherwise skewing the data) for the map features, so that they show up in the mapper’s renderer of choice.

key words being emphasized. There is absolutely no problem adding extra detailed information which is only shown in some renderers and ignored by others – to the contrary that is very welcome (and one might argue actually the whole purpose of the OSM!)

What is however not acceptable is intentionally lying to get rendering results that you like. An example also listed on that page:

For example, if landuse=industrial shows up as a pink area on one of maps, and you have a flowerbed full of pink roses, then tagging your flowerbed as landuse=industrial would be incorrect and must be avoided. Instead, you should accurately tag the flowerbed with the type of plants and improve the renderers so they understand how to show it.

15 Likes

We agree. Thank you for the sharpening of definitions, links and clarifications. Not only I appreciate that you took the time to post this, but I believe others appreciate your post as well.

2 Likes

Where is it discussed? I feel that the current tagging system should be expanded but I feel that only few people are interrested in the topic.

One measure of the popularity of 3D rendering is this topic’s rather high traffic: hundreds of Replies and thousands and thousands of Views.

Not to mention the clearly visually beautiful renderings that we have seen posted earlier here: it is truly eye candy. And for people passionate about OSM (myself, I suspect many others here), it is exciting to see how our often-humble map data can be readily crafted into such beautiful renderings.

20 years from now, Streets GL might look crude. Today, I find it very visually exciting!

1 Like

Please note that I was not being critical. I concur on every point about the how good streetsGL is and am very thankful and admirative for it.

As stated earlier, a few shapes seem to be missing from simple 3D:

The same goes for the half domes or side hipped building for instance. I understand that we don’t want to turn OSM into a CAD software, but there should be a middle way.

Thanks for sharing this post, using PMTiles + Lambda for forwarding + CDN makes sense, I’ll look into it.
I don’t have a laptop with 64GB (!) RAM just lying around, so I don’t think setting up a physical server is an option for me, at least right now.

1 Like