select navigate esc close

Casey Muratori's Blog

npub1gh0s3zgt6n8vakpm76p2592u0hv34mmtdncgtg7egrvy238zzp2qwcwdp7@drss.io

Personal stuff.

Printing Presses Are Giant GPUs

28 Apr 2020

Printing Presses Are Giant GPUs

28 Apr 2020

The more I learn about printing presses, the more they seem like giant GPUs.

Jittering Fonts in Photoshop with Prime Pussify

18 Apr 2020

Jittering Fonts in Photoshop with Prime Pussify

18 Apr 2020

A Photoshop script for randomizing per-character font attributes on text layers.

Stable Filtering - Part 2

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 2

25 Mar 2019

Stable Filtering - Part 1

5 Mar 2019

Stable Filtering - Part 1

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

23 Jan 2019

How to get clang++ to find link.exe

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?

9 Jan 2019

How close is WinDBG Preview to an everyday debugger?

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)

11 Oct 2018

Killing the Walk Monster (2018)

11 Oct 2018

My BICFest 2018 lecture overview of the movement system I developed for The Witness.

The Thirty-Million-Line Problem (2015)

21 May 2018

A lecture from 2015 that argues for moving away from drivers and toward ISAs.

The Thirty-Million-Line Problem (2015)

21 May 2018

Papers I Have Loved (2016)

5 Feb 2018

A lecture from the 2016 Papers We Love conference about papers that proved inspirational to new work.

Papers I Have Loved (2016)

5 Feb 2018

How to Open a Black Box (2007)

5 Feb 2018

How to Open a Black Box (2007)

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?

18 Dec 2016

Why do CPUs still take instruction streams encoded with register names?

Are register names still useful?

18 Dec 2016

Why Software Patents are Bad, Period.

24 Aug 2016

Why Software Patents are Bad, Period.

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.

Immediate-Mode Graphical User Interfaces (2005)

12 May 2016

Quaternions, Double-cover, and the Rest Pose Neighborhood (2006)

12 May 2016

An old makeshift tech video I recorded about a special property of quaternions and how to use it to your advantage.

Quaternions, Double-cover, and the Rest Pose Neighborhood (2006)

12 May 2016

Immediate-Mode Graphical User Interfaces (2005)

12 May 2016

An old makeshift tech video I recorded introducing the concept of "IMGUI" - the Immediate-Mode Graphical User Interface.

Implementing GJK (2006)

12 May 2016

An old makeshift video I recorded about how to implement the GJK collision detection algorithm.

Implementing GJK (2006)

12 May 2016

Fixing Multi-monitor and Multi-window OpenGL on Windows

6 Feb 2016

A simple proposal for a wgl extension that makes multi-monitor and multi-window output on Windows clean and simple.

Fixing Multi-monitor and Multi-window OpenGL on Windows

6 Feb 2016

The Worst API Ever Made

6 Aug 2014

A call-by-call look at context switch logging with the Event Tracing for Windows API.

The Worst API Ever Made

6 Aug 2014

Designing and Evaluating Reusable Components (2004)

30 Jul 2014

Designing and Evaluating Reusable Components (2004)

30 Jul 2014

An in-depth look at the five core principles of API design.

Lister Panel Q&A

23 Jul 2014

Questions and answers from last week's post on The Witness's lister panel.

Lister Panel Q&A

23 Jul 2014

The Source Code

16 Jul 2014

The complete source code to The Witness's lister panel implementation.

The Source Code

16 Jul 2014

Lister Panel Demonstration

9 Jul 2014

Lister Panel Demonstration

9 Jul 2014

A brief video showing how the lister panel works in The Witness.

Displaying Groups Hierarchically

2 Jul 2014

Displaying Groups Hierarchically

2 Jul 2014

Making some simple changes to the lister panel code so that its display could show a hierarchy.

Special Filters

25 Jun 2014

Special Filters

25 Jun 2014

Implementing lister panel filtering for arbitrary entity characteristics.

Type Filtering

18 Jun 2014

Implementing lister panel filtering by primary entity type.

Type Filtering

18 Jun 2014

Defining a Single Enumerant

11 Jun 2014

An in-depth look at the decision-making process behind a small, simple piece of code.

Defining a Single Enumerant

11 Jun 2014