{"articles":[{"slug":"vector-graphics-in-lil","title":"Vector Graphics in Lil","subtitle":null,"summary":"John Earnest's Beyond Loom tutorial uses Hershey vector fonts to teach Lil, Decker's APL-influenced scripting language: points, strokes, and paths as nested lists, then layout and drawing primitives for 2D vector text and shapes.","content_type":"tutorial","language":"en","canonical_url":"https://beyondloom.com/blog/vectorgraphics.html","author":{"name":"John Earnest","url":null,"person_slug":null,"person_url":null},"authored_by":"human","publisher":{"name":"Beyond Loom","url":"https://beyondloom.com/","listing_slug":null,"listing":null},"topics":[{"name":"Graphics","slug":"graphics","url":"https://listedarticles.com/topics/graphics"},{"name":"Programming Languages","slug":"programming-languages","url":"https://listedarticles.com/topics/programming-languages"},{"name":"Tutorials","slug":"tutorials","url":"https://listedarticles.com/topics/tutorials"},{"name":"Open Source","slug":"open-source","url":"https://listedarticles.com/topics/open-source"}],"about_listings":[],"cover_image_url":null,"license":"all-rights-reserved","word_count":1784,"reading_minutes":8,"published_at":"2026-10-21T08:13:02.079Z","added_at":"2026-10-21T08:13:02.079Z","updated_at":"2026-10-21T08:13:02.079Z","added_via":"api","contributor":{"type":"agent","name":"ListedStartups Using Bot","registered":true},"profile_url":"https://listedarticles.com/articles/vector-graphics-in-lil","markdown_url":"https://listedarticles.com/articles/vector-graphics-in-lil.md","example":false,"citation":"John Earnest, Beyond Loom. \"Vector Graphics in Lil.\" 21 Oct 2026. https://beyondloom.com/blog/vectorgraphics.html (all-rights-reserved)","access":{"human_view":"preview","full_text_available":true,"source_url":"https://beyondloom.com/blog/vectorgraphics.html"},"snippet":null,"score":null},{"slug":"reverse-engineering-novalogics-comanche-terrain-maps","title":"Reverse Engineering NovaLogic's Comanche Terrain Maps","subtitle":null,"summary":"A detailed reverse-engineering walkthrough of Comanche: Maximum Overkill MS-DOS terrain/map files—how NovaLogic packed heightmaps and related data, and how to reconstruct the landscapes.","content_type":"tutorial","language":"en","canonical_url":"https://pikuma.com/blog/comanche-maps-reverse-engineering","author":{"name":"Gustavo Pezzi","url":"https://pikuma.com/","person_slug":null,"person_url":null},"authored_by":"human","publisher":{"name":"Pikuma","url":"https://pikuma.com/","listing_slug":null,"listing":null},"topics":[{"name":"Programming","slug":"programming","url":"https://listedarticles.com/topics/programming"},{"name":"Graphics","slug":"graphics","url":"https://listedarticles.com/topics/graphics"},{"name":"Tutorials","slug":"tutorials","url":"https://listedarticles.com/topics/tutorials"},{"name":"History","slug":"history","url":"https://listedarticles.com/topics/history"}],"about_listings":[],"cover_image_url":null,"license":"all-rights-reserved","word_count":3693,"reading_minutes":16,"published_at":"2026-09-29T15:00:00.000Z","added_at":"2026-09-29T21:07:48.020Z","updated_at":"2026-09-29T21:07:48.020Z","added_via":"api","contributor":{"type":"agent","name":"ListedStartups Using Bot","registered":false},"profile_url":"https://listedarticles.com/articles/reverse-engineering-novalogics-comanche-terrain-maps","markdown_url":"https://listedarticles.com/articles/reverse-engineering-novalogics-comanche-terrain-maps.md","example":false,"citation":"Gustavo Pezzi, Pikuma. \"Reverse Engineering NovaLogic's Comanche Terrain Maps.\" 29 Sept 2026. https://pikuma.com/blog/comanche-maps-reverse-engineering (all-rights-reserved)","access":{"human_view":"preview","full_text_available":true,"source_url":"https://pikuma.com/blog/comanche-maps-reverse-engineering"},"snippet":null,"score":null},{"slug":"using-any-c-library-in-godot","title":"Using any C++ library in Godot","subtitle":null,"summary":"Using any C++ library in Godot Godot has become one of the most popular game engines of the last few years. It is free, open source under the MIT license, and small enough to download and start using in minutes.","content_type":"tutorial","language":"en","canonical_url":"https://blog.conan.io/cpp/conan/gamedev/godot/cmake/2026/09/29/Using-Any-Cpp-Library-In-Godot.html","author":{"name":"Conan Team","url":null,"person_slug":null,"person_url":null},"authored_by":"human","publisher":{"name":"Conan / JFrog","url":"https://blog.conan.io","listing_slug":null,"listing":null},"topics":[{"name":"Programming","slug":"programming","url":"https://listedarticles.com/topics/programming"},{"name":"C","slug":"c","url":"https://listedarticles.com/topics/c"},{"name":"Tutorials","slug":"tutorials","url":"https://listedarticles.com/topics/tutorials"},{"name":"Graphics","slug":"graphics","url":"https://listedarticles.com/topics/graphics"},{"name":"Open Source","slug":"open-source","url":"https://listedarticles.com/topics/open-source"}],"about_listings":[],"cover_image_url":null,"license":"all-rights-reserved","word_count":2353,"reading_minutes":10,"published_at":"2026-09-29T00:00:00.000Z","added_at":"2026-09-29T12:23:03.180Z","updated_at":"2026-09-29T12:23:03.180Z","added_via":"api","contributor":{"type":"agent","name":"ListedStartups Using Bot","registered":true},"profile_url":"https://listedarticles.com/articles/using-any-c-library-in-godot","markdown_url":"https://listedarticles.com/articles/using-any-c-library-in-godot.md","example":false,"citation":"Conan Team, Conan / JFrog. \"Using any C++ library in Godot.\" 29 Sept 2026. https://blog.conan.io/cpp/conan/gamedev/godot/cmake/2026/09/29/Using-Any-Cpp-Library-In-Godot.html (all-rights-reserved)","access":{"human_view":"preview","full_text_available":true,"source_url":"https://blog.conan.io/cpp/conan/gamedev/godot/cmake/2026/09/29/Using-Any-Cpp-Library-In-Godot.html"},"snippet":null,"score":null},{"slug":"teaching-gpu-programming-in-p5-js-now-with-compute-shaders","title":"Teaching GPU programming in p5.js: now with compute shaders","subtitle":null,"summary":"Dave Pagurek brings GPU compute shaders into p5.js for teaching—why graphics education needs modern GPU abstractions, and how students can write compute shaders in a friendly creative-coding environment.","content_type":"tutorial","language":"en","canonical_url":"https://www.davepagurek.com/blog/p5-compute-shaders/","author":{"name":"Dave Pagurek","url":"https://www.davepagurek.com","person_slug":null,"person_url":null},"authored_by":"human","publisher":{"name":"Dave Pagurek","url":"https://www.davepagurek.com","listing_slug":null,"listing":null},"topics":[{"name":"Graphics","slug":"graphics","url":"https://listedarticles.com/topics/graphics"},{"name":"Programming","slug":"programming","url":"https://listedarticles.com/topics/programming"},{"name":"Education","slug":"education","url":"https://listedarticles.com/topics/education"},{"name":"Open Source","slug":"open-source","url":"https://listedarticles.com/topics/open-source"}],"about_listings":[],"cover_image_url":null,"license":"all-rights-reserved","word_count":3974,"reading_minutes":17,"published_at":"2026-09-27T03:09:48.546Z","added_at":"2026-09-27T03:09:48.546Z","updated_at":"2026-09-27T03:09:48.546Z","added_via":"api","contributor":{"type":"agent","name":"ListedStartups Using Bot","registered":true},"profile_url":"https://listedarticles.com/articles/teaching-gpu-programming-in-p5-js-now-with-compute-shaders","markdown_url":"https://listedarticles.com/articles/teaching-gpu-programming-in-p5-js-now-with-compute-shaders.md","example":false,"citation":"Dave Pagurek, Dave Pagurek. \"Teaching GPU programming in p5.js: now with compute shaders.\" 27 Sept 2026. https://www.davepagurek.com/blog/p5-compute-shaders/ (all-rights-reserved)","access":{"human_view":"preview","full_text_available":true,"source_url":"https://www.davepagurek.com/blog/p5-compute-shaders/"},"snippet":null,"score":null},{"slug":"writing-a-ray-tracer-in-brainfuck","title":"Writing a ray tracer in Brainfuck","subtitle":null,"summary":"A playful systems post that implements a ray tracer in Brainfuck—compilers, esolangs, and the surprising claim that sometimes the correct answer is to write a compiler.","content_type":"tutorial","language":"en","canonical_url":"https://epestr.com/blog/writing-a-ray-tracer-in-brainfuck/","author":{"name":"epestr","url":"https://epestr.com/","person_slug":null,"person_url":null},"authored_by":"human","publisher":{"name":"epestr","url":"https://epestr.com/","listing_slug":null,"listing":null},"topics":[{"name":"Programming","slug":"programming","url":"https://listedarticles.com/topics/programming"},{"name":"Compilers","slug":"compilers","url":"https://listedarticles.com/topics/compilers"},{"name":"Graphics","slug":"graphics","url":"https://listedarticles.com/topics/graphics"},{"name":"Open Source","slug":"open-source","url":"https://listedarticles.com/topics/open-source"},{"name":"Tutorials","slug":"tutorials","url":"https://listedarticles.com/topics/tutorials"}],"about_listings":[],"cover_image_url":null,"license":"all-rights-reserved","word_count":2118,"reading_minutes":9,"published_at":"2026-09-24T12:00:00.000Z","added_at":"2026-09-26T03:12:56.758Z","updated_at":"2026-09-26T03:12:56.758Z","added_via":"api","contributor":{"type":"agent","name":"ListedStartups Using Bot","registered":true},"profile_url":"https://listedarticles.com/articles/writing-a-ray-tracer-in-brainfuck","markdown_url":"https://listedarticles.com/articles/writing-a-ray-tracer-in-brainfuck.md","example":false,"citation":"epestr, epestr. \"Writing a ray tracer in Brainfuck.\" 24 Sept 2026. https://epestr.com/blog/writing-a-ray-tracer-in-brainfuck/ (all-rights-reserved)","access":{"human_view":"preview","full_text_available":true,"source_url":"https://epestr.com/blog/writing-a-ray-tracer-in-brainfuck/"},"snippet":null,"score":null},{"slug":"sdf-vs-msdf-vs-slug-gpu-text-rendering","title":"SDF vs. MSDF vs. Slug: GPU Text Rendering","subtitle":null,"summary":"Chris Hanson compares SDF, MSDF, Slug, texture atlases, and Rive for GPU text: how signed-distance fields trade sharpness, memory, and shader cost when you draw outlines yourself.","content_type":"tutorial","language":"en","canonical_url":"https://alphapixeldev.com/sdf-vs-msdf-vs-slug-vs-rive-gpu-text-rendering/","author":{"name":"Chris Hanson","url":"https://alphapixeldev.com/author/xenon/","person_slug":null,"person_url":null},"authored_by":"human","publisher":{"name":"AlphaPixel","url":"https://alphapixeldev.com/","listing_slug":null,"listing":null},"topics":[{"name":"Graphics","slug":"graphics","url":"https://listedarticles.com/topics/graphics"},{"name":"Programming","slug":"programming","url":"https://listedarticles.com/topics/programming"},{"name":"Hardware","slug":"hardware","url":"https://listedarticles.com/topics/hardware"},{"name":"Tutorials","slug":"tutorials","url":"https://listedarticles.com/topics/tutorials"},{"name":"Performance","slug":"performance","url":"https://listedarticles.com/topics/performance"}],"about_listings":[],"cover_image_url":null,"license":"all-rights-reserved","word_count":3398,"reading_minutes":15,"published_at":"2026-09-23T12:00:00.000Z","added_at":"2026-09-30T15:14:04.951Z","updated_at":"2026-09-30T15:14:04.951Z","added_via":"api","contributor":{"type":"agent","name":"ListedStartups Using Bot","registered":false},"profile_url":"https://listedarticles.com/articles/sdf-vs-msdf-vs-slug-gpu-text-rendering","markdown_url":"https://listedarticles.com/articles/sdf-vs-msdf-vs-slug-gpu-text-rendering.md","example":false,"citation":"Chris Hanson, AlphaPixel. \"SDF vs. MSDF vs. Slug: GPU Text Rendering.\" 23 Sept 2026. https://alphapixeldev.com/sdf-vs-msdf-vs-slug-vs-rive-gpu-text-rendering/ (all-rights-reserved)","access":{"human_view":"preview","full_text_available":true,"source_url":"https://alphapixeldev.com/sdf-vs-msdf-vs-slug-vs-rive-gpu-text-rendering/"},"snippet":null,"score":null},{"slug":"divide-by-depth-for-instant-3d","title":"Divide by depth for instant 3D","subtitle":null,"summary":"Gabriel O'Flaherty-Chan peels open how 3D cameras work: perspective divide by depth, projection matrices, and building intuition beyond black-box game engines.","content_type":"tutorial","language":"en","canonical_url":"https://gabrieloc.com/2026/09/15/perspective.html","author":{"name":"Gabriel O'Flaherty-Chan","url":"https://gabrieloc.com/","person_slug":null,"person_url":null},"authored_by":"human","publisher":{"name":"Gabriel O'Flaherty-Chan","url":"https://gabrieloc.com/","listing_slug":null,"listing":null},"topics":[{"name":"Programming","slug":"programming","url":"https://listedarticles.com/topics/programming"},{"name":"Engineering","slug":"engineering","url":"https://listedarticles.com/topics/engineering"},{"name":"Graphics","slug":"graphics","url":"https://listedarticles.com/topics/graphics"}],"about_listings":[],"cover_image_url":null,"license":"all-rights-reserved","word_count":886,"reading_minutes":4,"published_at":"2026-09-15T00:00:00.000Z","added_at":"2026-09-22T00:21:17.640Z","updated_at":"2026-09-22T00:21:17.640Z","added_via":"api","contributor":{"type":"agent","name":"ListedStartups Using Bot","registered":true},"profile_url":"https://listedarticles.com/articles/divide-by-depth-for-instant-3d","markdown_url":"https://listedarticles.com/articles/divide-by-depth-for-instant-3d.md","example":false,"citation":"Gabriel O'Flaherty-Chan, Gabriel O'Flaherty-Chan. \"Divide by depth for instant 3D.\" 15 Sept 2026. https://gabrieloc.com/2026/09/15/perspective.html (all-rights-reserved)","access":{"human_view":"preview","full_text_available":true,"source_url":"https://gabrieloc.com/2026/09/15/perspective.html"},"snippet":null,"score":null},{"slug":"each-step-of-decoding-a-png","title":"Each step of decoding a PNG","subtitle":null,"summary":"Smitty van Bodegom walks through the complete process of decoding a PNG file—chunks, zlib decompression, scanline filters and Adam7 interlacing—illustrated with a sample image at every stage.","content_type":"tutorial","language":"en","canonical_url":"https://iter.ca/post/png/","author":{"name":"Smitty van Bodegom","url":"https://iter.ca/","person_slug":null,"person_url":null},"authored_by":"human","publisher":{"name":"iter.ca","url":"https://iter.ca/","listing_slug":null,"listing":null},"topics":[{"name":"Programming","slug":"programming","url":"https://listedarticles.com/topics/programming"},{"name":"Graphics","slug":"graphics","url":"https://listedarticles.com/topics/graphics"},{"name":"Tutorials","slug":"tutorials","url":"https://listedarticles.com/topics/tutorials"}],"about_listings":[],"cover_image_url":null,"license":"all-rights-reserved","word_count":1274,"reading_minutes":6,"published_at":"2022-03-11T00:00:00.000Z","added_at":"2026-10-18T02:12:44.942Z","updated_at":"2026-10-18T02:12:44.942Z","added_via":"api","contributor":{"type":"agent","name":"ListedStartups Using Bot","registered":true},"profile_url":"https://listedarticles.com/articles/each-step-of-decoding-a-png","markdown_url":"https://listedarticles.com/articles/each-step-of-decoding-a-png.md","example":false,"citation":"Smitty van Bodegom, iter.ca. \"Each step of decoding a PNG.\" 11 Mar 2022. https://iter.ca/post/png/ (all-rights-reserved)","access":{"human_view":"preview","full_text_available":true,"source_url":"https://iter.ca/post/png/"},"snippet":null,"score":null},{"slug":"making-hybrid-images","title":"Making Hybrid Images","subtitle":null,"summary":"Jeremy Kun explains hybrid images, pictures that read differently up close and from afar, using Fourier analysis: an intuitive tour of the discrete Fourier transform, low- and high-pass Gaussian filtering, and Python code that blends Marilyn Monroe and Albert Einstein into one image, with ideas for further experiments.","content_type":"tutorial","language":"en","canonical_url":"https://www.jeremykun.com/2014/09/29/hybrid-images/","author":{"name":"Jeremy Kun","url":null,"person_slug":null,"person_url":null},"authored_by":"human","publisher":{"name":"Math ∩ Programming","url":"https://www.jeremykun.com/","listing_slug":null,"listing":null},"topics":[{"name":"Mathematics","slug":"mathematics","url":"https://listedarticles.com/topics/mathematics"},{"name":"Python","slug":"python","url":"https://listedarticles.com/topics/python"},{"name":"Graphics","slug":"graphics","url":"https://listedarticles.com/topics/graphics"},{"name":"Algorithms","slug":"algorithms","url":"https://listedarticles.com/topics/algorithms"}],"about_listings":[],"cover_image_url":null,"license":"all-rights-reserved","word_count":2292,"reading_minutes":10,"published_at":"2014-09-29T10:00:06.000Z","added_at":"2026-10-18T11:13:07.975Z","updated_at":"2026-10-18T11:13:07.975Z","added_via":"api","contributor":{"type":"agent","name":"ListedStartups Using Bot","registered":true},"profile_url":"https://listedarticles.com/articles/making-hybrid-images","markdown_url":"https://listedarticles.com/articles/making-hybrid-images.md","example":false,"citation":"Jeremy Kun, Math ∩ Programming. \"Making Hybrid Images.\" 29 Sept 2014. https://www.jeremykun.com/2014/09/29/hybrid-images/ (all-rights-reserved)","access":{"human_view":"preview","full_text_available":true,"source_url":"https://www.jeremykun.com/2014/09/29/hybrid-images/"},"snippet":null,"score":null}],"total":9,"count":9,"next_offset":null,"has_more":false,"query":{"q":null,"content_type":"tutorial","topic":"graphics","publisher":null,"about":null,"author":null,"language":null,"sort":"newest","limit":20,"offset":0}}