Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    L

    Lode Vandevenne

    lodev.org · Personal blog · on HN since 2014

    Lode Vandevenne writes graphics programming tutorials and personal projects, including raycasting, demoscene effects, LodePNG, and a logic simulator.

    Visit blogHN submissions
    ProgrammingGamesRetro Computing
    What HN says

    Commenters call his old-school tutorials great, and HN links them for the raycasting and fire effect pages, which they find simple and rewarding to build.

    Stats for nerds
    36HN people shared it
    14linked in comments
    624story points
    Apr 2026last shared
    2014people per year2026

    Top posts on HN

    1. 1
      The XOR Texture (2004)
      2 people · 227 points · first shared 2016 · 49 comments on HN
    2. 2
      Show HN: LogicEmu – Online Logic Simulator
      1 person · 210 points · first shared 2018 · 20 comments on HN
    3. 3
      Jmat.js: A new mathematics library in JavaScript
      1 person · 84 points · first shared 2014 · 13 comments on HN
    4. 4
      LodePNG: All-in-one PNG image decoder and encoder for C and C++
      2 people · 56 points · first shared 2014 · 18 comments on HN
    5. 5
      Gammaplex Programming Language (2007)
      1 person · 24 points · first shared 2015 · Discussion on HN
    6. 6
      Lode's Computer Graphics Tutorial
      8 people · 11 points · first shared 2016 · Discussion on HN
    7. 7
      Raycasting
      19 people · 8 points · first shared 2014 · Discussion on HN
    8. 8
      Lode's Color Converter
      1 person · 3 points · first shared 2018 · Discussion on HN
    9. 9
      Turing Tumble Emulator in JavaScript
      1 person · 1 points · first shared 2017 · Discussion on HN
    10. 10
      Fire
      2 people · first shared 2018

    What HN people wrote when they linked it

    • simiasMar 2018

      I wrote a similar code a few years ago, although it also supported textures (including ground and skybox, unlike the original Wolfenstein). I don't know if it'll be more to your taste but there are afew comments: https://bitbucket.org/simias/wolf/src/873cad46f3c8281e7d94293b21af3c72e831d860/wolf.c?at=default&fileviewer=file-view-default the magic happens in wolf_horizontal_intersect. Note that I use fixed point which obfuscates the arithmetic a bit (I was targeting an embedded platform without hard float at the time).

      It looks like this while running: https://svkt.org/~simias/misc/wolf-floor.png

      That being said if you're interested in writing something like that I recommend that you use any basic tutorial on raycasting and try implementing it "from scratch" yourself, it's pretty simple and quite fun IMO. IIRC I used this one: http://lodev.org/cgtutor/raycasting.html

    • swyxApr 2018

      this is a pretty faithful reproduction. I like it! a lot of solid pointers to great algorithms in here.

      - perlin noise: https://en.wikipedia.org/wiki/Perlin_noise for generating terrain bumps

      - flood fill for painting terrain on top of noise : http://lodev.org/cgtutor/floodfill.html#Scanline_Floodfill_Algorithm_With_Stack

      - convolutions with webgl shaders https://github.com/phoboslab/WebGLImageFilter

      - dilation filter

      - "closing" in image processing https://en.wikipedia.org/wiki/Closing_(morphology)

      - deciding in the hqx algorithm for anti aliasing https://en.wikipedia.org/wiki/Hqx

      - texturing

      - halton sequences for even distribution of worms https://en.wikipedia.org/wiki/Halton_sequence

      - sine wave for water

      all done in the browser.

      github repo at https://github.com/juliango202/TerrainVer

    • arcastroeDec 2024

      When I was in middle school, I had dabbled in coding but only knew how to make simple CLI applications that ran on the terminal. Then one day I stumbled on Lode's Computer Graphics Tutorial and I finally had easy to understand examples of how to open a window and draw some graphics on the screen. That led me to recreating a bunch of retro games (Pacman, Snake, Space Invaders, etc) that would not have been possible on the terminal.

      I credit this site for really kickstarting my career in software development from a somewhat early age. Big shout out and thank you to Lode. Back then, I practically memorized all the pages and examples in https://lodev.org/cgtutor/, even if some of the math went right over my head at the time

    • robterrellFeb 2019

      It's a neat trick of projection, and really easy to hack on and extend yourself once you know the trick. Using your map of the space, cast a ray from the camera position through every column of the display rectangle; using the distance the ray travelled before intersecting the wall, you can calculate the apparent height of the wall seen in that column of the display; so, in that column, draw the wall that high. You can get fancier with textures for the walls, varying the floor height, walls that can appear and disappear (i.e. "doors"), and so on.

      Better than my 10-second explanation: https://lodev.org/cgtutor/raycasting.html

    • gh123manFeb 2023

      Nice writeup! Building raycasting engines is fun and rewarding. You can get a lot of visual impact with very small and easy to understand code. I took a stab at it and ended up adding portals which I thought was really fun (https://github.com/gh123man/Portal-Raycaster).

      I've been thinking about re-writing my raycasting engine in Rust but never really found the time - glad to see someone has done it and documented it so well!

      If anyone else is interested in raycasting this page is also worth a read: https://lodev.org/cgtutor/raycasting.html

    • gadgetoidDec 2019

      As someone currently embroiled in a project to motivate people to explore classic videogame development techniques- this is super interesting.

      I'm not sure how I feel about Pygame/Pygame Zero, though. It feels a little detached from classic C techniques and doesn't present the technical challenges of original hardware. On the up side, it's far more accessible to beginners.

      I really enjoyed working through, for example, this Wolfenstein 3D-style raycasting tutorial- https://lodev.org/cgtutor/raycasting.html

    Related

    Inigo Quileziquilezles.org210 people

    Articles on fractals, computer graphics, mathematics, demoscene and more

    Inigo Quilez
    Personal · last shared 2026
    Fabian Giesenfgiesen.wordpress.com200 people

    Why do CPUs have multiple cache levels?

    Fabian Giesen
    Personal · last shared 2026
    Wouter van Oortmerssenstrlen.com113 people

    The Lobster Programming Language

    Wouter van Oortmerssen
    Personal · last shared 2026
    The Orange Ducktheorangeduck.com74 people

    Machine Learning, Kolmogorov Complexity, and Squishy Bunnies (2019)

    The Orange Duck
    Personal · last shared 2026
    Imran Nazarimrannazar.com41 people

    De-Googling TOTP Authenticator Codes

    Imran Nazar
    Personal · last shared 2026
    David Givencowlark.com94 people

    Live coding a vi for CP/M from scratch

    David Given
    Personal · last shared 2026
    patorjkpatorjk.com72 people

    Code theft: Asciimo: Where have I seen this before?

    patorjk
    Personal · last shared 2026
    Inconvergentinconvergent.net42 people

    On generative algorithms

    Inconvergent
    Personal · last shared 2025