
Casey Muratori's Blog
npub1gh0s3zgt6n8vakpm76p2592u0hv34mmtdncgtg7egrvy238zzp2qwcwdp7@drss.io
Personal stuff.
Follow into
Printing Presses Are Giant GPUs
Save into
28 Apr 2020
The more I learn about printing presses, the more they seem like giant GPUs.
Jittering Fonts in Photoshop with Prime Pussify
Save into
18 Apr 2020
A Photoshop script for randomizing per-character font attributes on text layers.
Stable Filtering - Part 2
Save into
25 Mar 2019
How to make a filter than can be implied an infinite number of times without producing artifacts and remain nearly indistinguishable from the original image.
Stable Filtering - Part 1
Save into
5 Mar 2019
How to make a filter that can be applied millions of times without producing artifacts.
How to get clang++ to find link.exe
Save into
23 Jan 2019
As of version 8.0.0, clang on Windows requires some gyrations if you want to tell it where link.exe is located.
How close is WinDBG Preview to an everyday debugger?
Save into
9 Jan 2019
A look at what Microsoft has been doing to improve the usability of WinDBG, and what's still missing.
Killing the Walk Monster (2018)
Save into
11 Oct 2018
My BICFest 2018 lecture overview of the movement system I developed for The Witness.
The Thirty-Million-Line Problem (2015)
Save into
21 May 2018
A lecture from 2015 that argues for moving away from drivers and toward ISAs.
Papers I Have Loved (2016)
Save into
5 Feb 2018
A lecture from the 2016 Papers We Love conference about papers that proved inspirational to new work.
How to Open a Black Box (2007)
Save into
5 Feb 2018
A look back at the development of normal mapping technology as a motivating example of why understanding concepts at a deep level is important for game engine programming.
Are register names still useful?
Save into
18 Dec 2016
Why do CPUs still take instruction streams encoded with register names?
Why Software Patents are Bad, Period.
Save into
24 Aug 2016
An e-mail I wrote to a Stanford Law student a long time ago who asked me why programmers thought software patents were bad.
Quaternions, Double-cover, and the Rest Pose Neighborhood (2006)
Save into
12 May 2016
An old makeshift tech video I recorded about a special property of quaternions and how to use it to your advantage.
Immediate-Mode Graphical User Interfaces (2005)
Save into
12 May 2016
An old makeshift tech video I recorded introducing the concept of "IMGUI" - the Immediate-Mode Graphical User Interface.
Implementing GJK (2006)
Save into
12 May 2016
An old makeshift video I recorded about how to implement the GJK collision detection algorithm.
Fixing Multi-monitor and Multi-window OpenGL on Windows
Save into
6 Feb 2016
A simple proposal for a wgl extension that makes multi-monitor and multi-window output on Windows clean and simple.
The Worst API Ever Made
Save into
6 Aug 2014
A call-by-call look at context switch logging with the Event Tracing for Windows API.
Designing and Evaluating Reusable Components (2004)
Save into
30 Jul 2014
An in-depth look at the five core principles of API design.
Lister Panel Q&A
Save into
23 Jul 2014
Questions and answers from last week's post on The Witness's lister panel.
The Source Code
Save into
16 Jul 2014
The complete source code to The Witness's lister panel implementation.
Lister Panel Demonstration
Save into
9 Jul 2014
A brief video showing how the lister panel works in The Witness.
Displaying Groups Hierarchically
Save into
2 Jul 2014
Making some simple changes to the lister panel code so that its display could show a hierarchy.
Special Filters
Save into
25 Jun 2014
Implementing lister panel filtering for arbitrary entity characteristics.