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 invite here .
If you haven’t read the initial news then check it out here . In the past week we continued to work on our collaboration with the University of Applied Sciences and Arts (HES-SO/HEIG-VD), Switzerland. The main focus of the past week was on documentation and redesigning the renderer and the structure of the maplibre-rs library.
In the past week, I extracted the render from Bevy . After some discussions #75 , Slack and Matrix we concluded that writing a renderer specific to maps is the best option. In general, specialized renderers can be optimized better. By implementing a renderer ourselves, we also stay independent of other projects. For example, Bevy is a render engine (renderer + a lot more) for games. That means that features which are important for bevy are most likely not important for maplibre-rs and vice versa. For example, the Bevy renderer does not support a stencil.
Because I’m quite unexperienced in the world of 3D graphics, I dediced to base the renderer on some existing one. The best renderers in the Rust world are currently Bevy and rend3. After evaluating both renderers I decided to go with the Bevy one, because rend3 had usages of `unsafe. Both renderers are based around the idea of a render graph .
The following will summarizes what happened last week on GitHub.
Send
or not.winit
dependency from main crate..unwrap()
from code.Some architectural discussions: