This website is under development - please keep in mind that the information contained here could (and probably will) change often, so don’t refer to it with absolute certainty that the content will still be here.
Welcome to Learn Metal — an open-source tutorial site focused on learning and mastering Apple’s Metal graphics API.
Whether you’re diving in for academic learning or personal passion projects, this site is built to help you learn Metal from the ground up, from the most basic concepts all the way up to advanced topics.
I’m developing this purely out of love for graphics programming and the desire to share what I discover along the way, so in case you find something wrong, any kind of mistake, code not compiling or anything else for that matter, i would greatly appreciate it if you could let me know by raising an issue on the main github repo - Thanks a lot and happy learning! :)
Aside from this project I’m also working on a custom game engine, where i put all of the concepts covered on this website in pratice - in case you are curious, you can check it out here:
A Quick Thank You First
This website is built on top of Jekyll using a modified version of the Just the Docs Jekyll theme, adapted to best fit the purposes of this project - I’m not a great web developer myself, so a big thanks goes to them! :)
I would also like to state that this website probably wouldn’t even exist if it wasn’t for the amazing work of Joey De Vries and his legendary LearnOpenGL tutorial series - I owe a lot to other brilliant resources, which i’ll state down here for practicality:
These projects/youtube channels were my go-to study materials for years and they’re a huge reason why I’m creating this in the first place — to pay it forward.
Massive thanks to all the authors and fellow devs! You all rock! (I’m probably forgetting someone, so i’ll make sure to add them here as i remember haha!)
“Okay, but why should I follow this tutorial?”
As of July 18, 2025, high-quality, beginner-friendly resources on Metal are still hard to come by and when you do eventually stumble upon them, it’s very difficult to piece everything together and try and make sense out of everything; Partly because of the complexity of the Metal api, partly because having bits and pieces here, then some over there, then some more on another website doesn’t really make things super-easy to understand.
So naturally, since I wanted to learn Metal myself, I noticed this “gap” in the ecosystem and decided to take it upon myself to try and fill it - this site is essentially both a personal learning journey and an open source learning resource for everyone who’s interested in learning more (or everything from the ground up) about Metal.
If through this I will have helped at least one person other than myself, then mission accomplished :)
Support This Project
Learn Metal is - and always will be — completely free.
I believe in not gatekeeping things and making educational content as available as possible, so I will never ask for money to keep this website up and running.
That said, if you really want to support me and help me dedicate more of my time on this (this isn’t my job unfortunately, just a hobby), consider buying me a coffee:
Thank You!
Reddit Community
I’ve also made a Reddit Community, in case you want to share your work, ask questions, or even help others with random bugs they may be experiencing - It’s called “r/LearnMetal”.
The goal is to ideally build a friendly, focused community around Metal and Metal development — feel free to join in!
Youtube Channel
Learn Metal now also has an official YouTube channel! I’ll mostly be using it to store demonstration videos of the different topics, but i’m not excluding other possibilities.