Work in progress: 181,232 of 181,233 sites checked so far, more every week · updated 2 Nov 2026Missing a blog? Tell us

Top all-time · #6486

D

David Lettier

Personal blog · lettier.github.io/postsprogrammingaigames

David Lettier writes Lettier, a personal blog at lettier.github.io about programming, ai and games. Since 2016, 12 different Hacker News readers have linked it 30 times, most often “Making a GTK Video Player with Haskell”. The last post was in 2017, but the archive is still widely read.

Visit the blog
30mentions?
12HN people?
2016–2025first – last linked?
Links on Hacker News per year · peak 13 in 2016

Too few sampled comments (5) to say how often HN recommends it.?

Why HN links it

HN readers link David Lettier's shader and graphics tutorials, which commenters call a good place to start for shader programming. Also cited for a Haskell walkthrough on building a movie player.

Summarised by Claude from a sample of 5 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.

Software project how-tos, machine learning concept explanations, and data-driven quests.

Most-linked posts?

  1. Making a GTK Video Player with Haskell
    3 people · 3 mentions · first linked 2017-09-01
  2. Making Movie Monad–a Tutorial Desktop App with Haskell and Electron
    2 people · 3 mentions · first linked 2016-08-21
  3. You Need to Know about the Matthews Correlation Coefficient
    2 people · 2 mentions · first linked 2017-11-04
  4. K-Nearest Neighbors from Scratch
    2 people · 2 mentions · first linked 2016-06-12
  5. /3d-game-shaders-for-beginners/index.html
    2 people · 2 mentions · first linked 2024-01-09

What Hacker News says?

  1. canyp · 2025-12-17Recommends
    This page is a good place to start for shader programming: https://lettier.github.io/3d-game-shaders-for-beginners/inde... I agree on the other points. GPU graphics programming is hard in large part because of terrible or lack of documentation.

    Comment linking /3d-game-shaders-for-beginners/index.html

    on “No Graphics API”
  2. Submitted Making a GTK Video Player with Haskell as a story · 183 points

    HN discussion
  3. https://lettier.github.io/posts/2016-08-15-making-movie-mona... walks you through making a movie player in Haskell.

    Comment linking /posts/2016-08-15-making-movie-monad.html

    on “Let's build an MP3-decoder (2008)”
  4. Submitted Data Mining Hacker News: Front vs. Back as a story · 183 points

    HN discussion
  5. reactordev · 2024-01-09Recommends
    This is a great series if you’re looking for a tutorial. https://lettier.github.io/3d-game-shaders-for-beginners/inde...

    Comment linking /3d-game-shaders-for-beginners/index.html

    on “The Book of Shaders (2015)”
  6. Submitted K-Nearest Neighbors from Scratch as a story · 171 points

    HN discussion
  7. >”it generally also swaps textures and models based on distance from camera.” What?!? No it doesn’t. It uses the depth buffer to progressively box blur or gaussian blur the frame post-render. https://lettier.github.io/3d-game-shaders-for-beginners/dept... Nowhere are they replacing models, replacing textures, or anything of the sort. I suspect the issue here is that box blur with a sampling of 3x3 is exponential per…

    Comment linking /3d-game-shaders-for-beginners/depth-of-field.html

    on “Cities Skylines 2 runs with 20fps on an Nvidia RTX4090”
  8. Submitted Screen Space Reflection as a story · 25 points

    HN discussion
  9. Yeah, we can do it in the shader by taking the UV texcoord, sampling the texture rgb, then using a collector , add the r, g, b values to the collector with the offsets in uv's to return the pixel color. It's extremely easy to do in HLSL/GLSL/WGSL/SPIRV/Metal. It can even be controlled using a vector map for the offsets so you can tune it and vignette the chromatic aberration around the edges of the screen. Giving it…

    Comment linking /3d-game-shaders-for-beginners/chromatic-aberration.html

    on “Cathode-Retro: A collection of shaders to emulate the display of an NTSC signal”
  10. Submitted Show HN: Gifcurry – Your open source video to GIF maker built with Haskell as a story · 14 points

    HN discussion
  11. Submitted You Need to Know about the Matthews Correlation Coefficient as a story · 9 points

    HN discussion
  12. Submitted K-Nearest Neighbors from Scratch as a story · 7 points

    HN discussion
  13. Submitted Let's Make a GTK Video Player with Haskell as a story · 6 points

    HN discussion
  14. Submitted Learn how to make a Network Time Protocol client in C as a story · 3 points

    HN discussion
  15. Submitted Learn K-Means from Scratch using VanillaJS as a story · 3 points

    HN discussion
  16. Submitted 3D Game Shaders for Beginners as a story · 2 points

    HN discussion
  17. Submitted Leverage C++ to Build Awesome Apps with PureScript as a story · 2 points

    HN discussion
  18. Submitted You need to know about the Matthews Correlation Coefficient as a story · 2 points

    HN discussion
  19. Submitted Let's make an Animation with PureScript and C++ as a story · 2 points

    HN discussion
  20. Submitted Let's Make a GTK Video Player with Haskell as a story · 2 points

    HN discussion
  21. Submitted Making Movie Monad–a Tutorial Desktop App with Haskell and Electron as a story · 2 points

    HN discussion
  22. Submitted How to make a HTML5 canvas game with Physics, Functional, Easel and PubSubJS as a story · 2 points

    HN discussion
  23. Submitted Learn Breadth-First Search Using Haskell as a story · 2 points

    HN discussion
  24. Submitted Classifying birthday wishes using Python and scikit-learn as a story · 2 points

    HN discussion
  25. Submitted Screen Space Refraction (SSR) as a story · 1 points

    HN discussion
  26. Submitted Movie Monad: Make a Video Player in Haskell as a story · 1 points

    HN discussion
  27. Submitted 5 files to a straightforward Haskell web API as a story · 1 points

    HN discussion
  28. Submitted Using Haskell for Front-end Web Development as a story · 1 points

    HN discussion
  29. Submitted Reelin' and ROCin', Receiver Operating Characteristic as a story · 1 points

    HN discussion
  30. Submitted Triforce Overload, Sierpinski Pyramids as a story · 1 points

    HN discussion

Search all of HN for lettier.github.io

Linked by the same people?