Unlocking New Horizons: MapLibre Native’s Metal Rendering Roadmap

Written by Steve Gifford

February 14, 2023

Here’s the short version. Amazon paid us for an architectural plan to update MapLibre Native’s Metal rendering. We produced that plan with community support and delivered a couple of shiny new design Pull Requests. Now for the details.

The Imperative for Metal Rendering

MapLibre is the inheritor of the MapboxGL open-source SDK. It’s an open consortium and an active community that is finding its direction.

We’ll probably use MapLibre JS on the web ourselves at some point, but that’s not really what this is about.

Architectural Blueprint for Modularization

We produced a few engineering designs for MapLibre Native focused on modularization and, specifically, a Metal implementation for iOS/MacOS.

The first design focuses on modularizing the renderer to simultaneously allow for more than one implementation. The toolkit must continue to support OpenGL and Metal on various platforms using the same code base.

While the hood is open, so to speak, we also proposed modernizing the rendering pipeline and at least removing the things a renderer written in the 2020s should have. The goal is to make it easier to implement those things later on.

Embracing Modern Rendering Principles

The forcing function here is Apple’s deprecation of OpenGL a few years ago. They want you to move to Metal on iOS and MacOS.

Maybe Apple will continue to support OpenGL for a while. Maybe. But imagine you’re an engineering manager at a big company on a $20M project. Do you want to make that bet? Are you sure?

Thus, Metal support. The second design PR was focused on the actual Metal implementation, and there’s not much else to say about it. Nice figures! Shout out to Damon@Stamen.

Securing MapLibre Native's Future

Unsurprisingly, the implementation money appeals to Wet Dog Weather. It’s a big job, we have the expertise and it’ll extend our runway…. long enough for the VCs to come down off that crypto bender and get back to investing in actual business plans.

We’re negotiating and leaning toward a positive outcome. We’ll let the community know when it’s nailed down.

As to why we’re the best people for the job (and we very much are) that is a funny story. But not for today.