It is finally time for a new maplibre-rs monthly! Or should I say yearly? The last update was 2022 and we already have 2023! The development of maplibre-rs did not come to a total standstill, even though it may look like it did.
Actually, we have great news about the project.
You may wonder what that means: The gist of it is that the project can now use donations to the MapLibre organization to incentivize development. As of today, it is not 100% clear how that will work out. One possibility is to use the existing bounty program to set a bounty for issues. But we are actively looking for ideas to put the donation to good use.
The maplibre-rs project is a research-and-development (R&D) undertaking. While there is the goal of reaching feature parity with MapLibre Native or Web, this is years away and certainly not something we can reach with the current development pace. Though, what we can achieve right now is to put new ideas to the test. New fundamental concepts are relatively easy to implement in maplibre-rs, whereas in MapLibre Native they would need a major refactoring. For instance, maplibre-rs has already proven, that WebGPU API is sufficient to implement a map renderer. Which means that MapLibre Native could actually target WebGPU in order to reach all platforms (including the Web).
As already mentioned, we first have to see which incentives bring maplibre-rs forward. It is very difficult to create concrete bounties that early in a project’s lifetime. This is due to the fact that we actually would need to create bounties for creating bounties.
I am planning on doing a weekly “office-hour”. During that time slot I will hang out in a public meeting room, and you are free to join, ask about the project or issues and nag me if I did not yet review your PR. More on that in a separate news article, though.
Back to the progress in maplibre-rs. A lot has happened in the past half year. I have been focusing on getting the plugin architecture in a working state. It is now possible to enable or disable features like raster or vector rendering at compile time and runtime. This means that features are now well separated.
Right now, I am focusing on getting the projection correct in this PR. Unfortunately, there is quite some maths involved and the maplibre-gl-js source code does not explain much. So in order to get this correct (and yes we absolutely have to get this 100% correct) I will have to do some math on paper and then create unit tests to validate my assumptions. This takes a lot of time, but is really fun! This will definitely also benefit the other MapLibre projects, as I am documenting the insights. I created a GeoGebra visualization of the current near and far plane calculations.
The following will summarizes what happened last week on GitHub.
maplibre-rs is an upcoming and cross-platform vector map renderer written in Rust. If you want to get in touch with the developers, visit the #maplibre:matrix.org chat or join the MapLibre (#maplibre and #maplibre-rs) community within the OpenStreetMap Slack. You can get an invitation here.