# Learning WebGL with Elm!

**URL:** <https://discourse.elm-lang.org/t/learning-webgl-with-elm/10493>\
**Category:** Learn\
**Created:** [November 28, 2025, 3:26am UTC](https://discourse.elm-lang.org/t/learning-webgl-with-elm/10493 "2025-11-28T03:26:17Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![SabeDoesThings](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/sabedoesthings/32/5525_2.png) [@SabeDoesThings](https://discourse.elm-lang.org/u/SabeDoesThings)\
**Post date:** [November 28, 2025, 3:26am UTC](https://discourse.elm-lang.org/t/learning-webgl-with-elm/10493/1 "2025-11-28T03:26:17Z")

</div>

Hello! I’ve started learning Elm a few days ago and I’m wanting to use it with WebGL but I’m not really sure how to use WebGL. I’ve looked at a few examples and have been looking through them and slowly learning but does anyone have any other resources they could suggest me?

---

<div class="post-metadata">

**Author:** ![unsoundscapes](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/unsoundscapes/32/410_2.png) [@unsoundscapes](https://discourse.elm-lang.org/u/unsoundscapes)\
**Post date:** [November 28, 2025, 7:13am UTC](https://discourse.elm-lang.org/t/learning-webgl-with-elm/10493/2 "2025-11-28T07:13:34Z")

</div>

Hi @SabeDoesThings,

I guess you’ve already read through the [webgl 1.1.3](https://package.elm-lang.org/packages/elm-explorations/webgl/latest/) package documentation and checked the examples. The main thing to understand is the rendering pipeline: how vertex and fragment shader relate to each other, what are attributes, uniforms and varyings. Elm ensures that the types of these fit together. You can additionally check [https://webglfundamentals.org](https://webglfundamentals.org) that also explains these concepts but in JavaScript.

Having understood this, you can work through some basic lessons. [The Lessons – Learning WebGL](https://learningwebgl.com/blog/?page_id=1217) comes to my mind. Nacho Martín did this in Elm [GitHub - nacmartin/elm-webgl-lessons: A series of lessons in elm-webgl](https://github.com/nacmartin/elm-webgl-lessons)

If the goal is to not learn WebGL, but rather to render 3D on the screen, then you can use a higher level rendering package [elm-3d-scene 1.0.2](https://package.elm-lang.org/packages/ianmackenzie/elm-3d-scene/latest/)

To get a sense of what’s possible you can check this collection of examples [3D Graphics in the Browser with Elm - DEV Community](https://dev.to/lucamug/3d-graphics-in-the-browser-with-elm-4oh3) that @lucamug put together

---

<div class="post-metadata">

**Author:** ![SabeDoesThings](https://yyz1.discourse-cdn.com/flex035/user_avatar/discourse.elm-lang.org/sabedoesthings/32/5525_2.png) [@SabeDoesThings](https://discourse.elm-lang.org/u/SabeDoesThings)\
**Post date:** [November 28, 2025, 2:09pm UTC](https://discourse.elm-lang.org/t/learning-webgl-with-elm/10493/3 "2025-11-28T14:09:07Z")

</div>

Hello @unsoundscapes,

Thank you so much for the advise! I’m really wanting to do game dev in elm and this will help me out a lot! I recognize your profile picture of the Mogee so I think it’s awesome that you replied so you have experience with game dev in Elm and WebGL lol.

But again thank you this helps a lot.

---

<div class="post-metadata">

**Author:** ![system](https://canada1.discourse-cdn.com/flex035/uploads/elm_lang/original/1X/50a05e53677a2c3b47776d7abd0f113eb50193a1.png) [@system](https://discourse.elm-lang.org/u/system)\
**Post date:** [December 8, 2025, 2:09pm UTC](https://discourse.elm-lang.org/t/learning-webgl-with-elm/10493/4 "2025-12-08T14:09:35Z")

</div>

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.
