41554 blogs · [ { "id": "01a0877e-610e-7286-af84-41a0c2953e7d", "title": "Introduction to Spherical Harmonics for Graphics Programmers", "url": "http://gpfault.net/posts/sph.html", "published_at": "2026-04-12T08:00:00+00:00" }, { "id": "01a0877e-610e-7286-af84-41a0c35f967a", "title": "Go Home, Windows EXE, You're Drunk", "url": "http://gpfault.net/posts/drunk-exe.html", "published_at": "2026-01-15T08:00:00+00:00" }, { "id": "01a0877e-610e-7286-af84-41a0c43f747e", "title": "Representing Hierarchies", "url": "http://gpfault.net/posts/first-child-next-sibling.html", "published_at": "2026-01-01T08:00:00+00:00" }, { "id": "01a0877e-610e-7286-af84-41a0c4a0125c", "title": "Easily Dealing With Any-Dimensional Planes", "url": "http://gpfault.net/posts/hyperplanes.html", "published_at": "2025-12-24T08:00:00+00:00" }, { "id": "01a0877e-610e-7286-af84-41a0c598b423", "title": "A Couple 3D AABB Tricks", "url": "http://gpfault.net/posts/aabb-tricks.html", "published_at": "2025-12-23T08:00:00+00:00" }, { "id": "01a0877e-610e-7286-af84-41a0c66e2891", "title": "Let's Learn x86-64 Assembly! Part 4 - More About Jumps Than You Wanted To Know", "url": "http://gpfault.net/posts/asm-tut-4.html", "published_at": "2025-07-20T08:00:00+00:00" }, { "id": "01a0877e-610e-7286-af84-41a0c7509190", "title": "Celebrating Ten Years of gpfault.net", "url": "http://gpfault.net/posts/celebrating-ten-years.html", "published_at": "2024-12-13T08:00:00+00:00" }, { "id": "01a0877e-610e-7286-af84-41a0c7da0755", "title": "My Gripes With Tech Talks", "url": "http://gpfault.net/posts/gripes-with-presos.txt.html", "published_at": "2024-12-08T08:00:00+00:00" }, { "id": "01a0877e-610e-7286-af84-41a0c843bcd1", "title": "Let's Learn x86-64 Assembly! Part 3 - Arithmetic and Logic", "url": "http://gpfault.net/posts/asm-tut-3.txt.html", "published_at": "2020-12-30T08:00:00+00:00" }, { "id": "01a0877e-610e-7286-af84-41a0c85953c4", "title": "Let's Learn x86-64 Assembly! Part 2 - We're Writing a Virtual Machine", "url": "http://gpfault.net/posts/asm-tut-2.txt.html", "published_at": "2020-05-17T08:00:00+00:00" }, { "id": "01a0877e-610e-7286-af84-41a0c85c41a4", "title": "Let's Learn x86-64 Assembly! Part 1 - Metaprogramming in Flat Assembler", "url": "http://gpfault.net/posts/asm-tut-1.txt.html", "published_at": "2020-04-22T08:00:00+00:00" }, { "id": "01a0877e-610e-7286-af84-41a0c865dce5", "title": "Let's Learn x86-64 Assembly! Part 0 - Setup and First Steps", "url": "http://gpfault.net/posts/asm-tut-0.txt.html", "published_at": "2020-04-18T08:00:00+00:00" }, { "id": "01a0877e-610e-7286-af84-41a0c8dae4d2", "title": "Emulating Command Buffers in OpenGL - Part 2", "url": "http://gpfault.net/posts/opengl-command-buffers-2.txt.html", "published_at": "2019-02-10T08:00:00+00:00" }, { "id": "01a0877e-610e-7286-af84-41a0c90db0b5", "title": "Thoughts on Emulating Command Buffers for OpenGL", "url": "http://gpfault.net/posts/opengl-command-buffers.txt.html", "published_at": "2018-11-10T08:00:00+00:00" }, { "id": "01a0877e-610e-7286-af84-41a0c9f9b044", "title": "Dissecting a Shader Quine", "url": "http://gpfault.net/posts/shader-quine.txt.html", "published_at": "2018-08-13T08:00:00+00:00" }, { "id": "01a0877e-610e-7286-af84-41a0cae2dc25", "title": "Superformula", "url": "http://gpfault.net/posts/superformula.txt.html", "published_at": "2018-06-20T08:00:00+00:00" }, { "id": "01a0877e-610e-7286-af84-41a0cb6c1f68", "title": "Type-safe Bitmasks in C++", "url": "http://gpfault.net/posts/typesafe-bitmasks.txt.html", "published_at": "2018-06-12T08:00:00+00:00" }, { "id": "01a0877e-610e-7286-af84-41a0cc297a98", "title": "Generating Trees and Other Interesting Shapes With L-Systems", "url": "http://gpfault.net/posts/generating-trees.txt.html", "published_at": "2018-05-25T08:00:00+00:00" }, { "id": "01a0877e-610e-7286-af84-41a0cc30487f", "title": "My Gripes With WebGL", "url": "http://gpfault.net/posts/gripes-with-webgl.txt.html", "published_at": "2017-07-14T08:00:00+00:00" }, { "id": "01a0877e-610e-7286-af84-41a0cd1a5476", "title": "GPU-Accelerated Particles with WebGL 2", "url": "http://gpfault.net/posts/webgl2-particles.txt.html", "published_at": "2017-06-24T08:00:00+00:00" }, { "id": "01a0877e-610e-7286-af84-41a0cdbc7fa8", "title": "What Does Perlin Noise Sound Like?", "url": "http://gpfault.net/posts/perlin-sound.txt.html", "published_at": "2017-05-12T08:00:00+00:00" }, { "id": "01a0877e-610e-7286-af84-41a0cdfb8c55", "title": "In Praise of Drop-In Libraries", "url": "http://gpfault.net/posts/drop-in-libraries.txt.html", "published_at": "2017-04-19T08:00:00+00:00" }, { "id": "01a0877e-610e-7286-af84-41a0ce31c8b9", "title": "Using Perlin Noise to Generate 2D Terrain and Water", "url": "http://gpfault.net/posts/perlin-noise.txt.html", "published_at": "2016-12-31T08:00:00+00:00" }, { "id": "01a0877e-610e-7286-af84-41a0ce729374", "title": "Rendering the Mandelbrot Set With WebGL", "url": "http://gpfault.net/posts/mandelbrot-webgl.txt.html", "published_at": "2016-09-27T08:00:00+00:00" }, { "id": "01a0877e-610e-7286-af84-41a0ceb88895", "title": "My Most Important Project Was a Bytecode Interpreter", "url": "http://gpfault.net/posts/most-important-project.txt.html", "published_at": "2016-09-17T08:00:00+00:00" }, { "id": "01a0877e-610e-7286-af84-41a0cec34d1b", "title": "Dependency Injection in C++ Using Variadic Templates", "url": "http://gpfault.net/posts/dependency-injection-cpp.txt.html", "published_at": "2015-09-10T08:00:00+00:00" }, { "id": "01a0877e-610e-7286-af84-41a0cede624d", "title": "Mapping Types to Values (in C++)", "url": "http://gpfault.net/posts/mapping-types-to-values.txt.html", "published_at": "2015-08-24T08:00:00+00:00" }, { "id": "01a0877e-610e-7286-af84-41a0cef6d2d9", "title": "You Can Stop Writing Comments About Pointer Ownership", "url": "http://gpfault.net/posts/pointer-ownership-comments.txt.html", "published_at": "2015-08-09T08:00:00+00:00" }, { "id": "01a0877e-610e-7286-af84-41a0cf84deef", "title": "Intrusive Lists in Doom 3", "url": "http://gpfault.net/posts/intrusive-lists-doom3.txt.html", "published_at": "2014-12-20T08:00:00+00:00" }, { "id": "01a0877e-610e-7286-af84-41a0d03c1315", "title": "Ripping Sprites From Super Cyborg", "url": "http://gpfault.net/posts/ripping-sprites-from-super-cyborg.txt.html", "published_at": "2014-12-13T08:00:00+00:00" } ] posts Claim your blog
Back to gpfault.net
Blog · corpus.blog/blogs/gpfault.net/posts

gpfault.net

gpfault.net

2026

2025

2024

2020

2019

2018

2017

2016

2015

2014