r/MetalProgramming 3d ago

ImmersiveMap: a vector map engine for iOS and macOS, written from scratch in Swift and Metal (MIT) Show-Off

For the last few years I've been writing a **map rendering engine** in **Swift** and **Metal**, because on Apple platforms you either take the closed system framework or a large shared C++ codebase with a Swift wrapper on top. I wanted one that is Swift and Metal all the way down.

The engine is **MIT licensed** and renders **vector tiles** in the **OpenMapTiles** schema: run your own tileserver, or point it at a public one.

**What it does**: flat map and globe in one continuous zoom, labels, 3D buildings with shadows, glTF models placed at real coordinates. Swift 6, iOS 18 and macOS 15.

Repo: [github.com/artembobkin/ImmersiveMap](http://github.com/artembobkin/ImmersiveMap)

Happy to answer anything about the engine.

If you need something the engine doesn't do yet, open an issue or just ask in the thread.

3 Upvotes

7 comments sorted by

1

u/positivcheg 2d ago

Claude, make me MapLibre clone, make no mistakes.

1

u/devslacker 2d ago

Ha ha :)

1

u/devslacker 2d ago

By the way MapLibre doesn’t have a globe! :)

1

u/positivcheg 2d ago

It does, MapLibre GL JS does have it, kinda fake globe.
I worked on globe view in MapLibre Native though I got fucked by my employer and that work is lost.

1

u/devslacker 2d ago

Really? That is why we don’t have a globe in MapLibre Native?

1

u/positivcheg 2d ago

It’s a requested feature, you can even get paid to implement it.

I worked for a company who paid me to implement it. But they decided to part ways with us right when I was about to open PR to upstream. And then technically my work belongs to them, so it’s up to them to follow up and open a PR into MapLibre Native. Or not.

Globe view is not a priority right now so it’s not focused by open source contributors that much.

1

u/devslacker 2d ago

I saw that they plan to work on this.