• PhD, Computer Science
• Creator of @SlugLibrary, @C4Engine
• Math/gamedev author
• #GeometricAlgebra researcher
• Former Naughty Dog, Apple, Sierra
Oct 26, 2022 • 9 tweets • 2 min read
So why intrusive containers in C4? To look at one example out of many, consider that a single node in the scene can range in size from a few hundred bytes to roughly a kilobyte in size. (The largest levels I've worked with have more than a million nodes in them.) 1/9
Every node is part of a big transform tree. Instanced objects are attached to the main world somewhere, and they may contain other instanced objects. Character models typically have a node hierarchy (like a skeleton for skinning) that can be ~dozen nodes deep. 2/9
Oct 26, 2022 • 12 tweets • 3 min read
The largest task remaining before I can release C4 Engine version 7.0 is an upgrade to the GI solution. For many years, the engine has been using a volumetric "illuminance space" that contains precomputed ambient light for 6 directions at every point inside a 3D grid. 1/12
To fit the data into 8 channels over two 3D textures (in RGBA8 format), 6 intensities are stored for each sample point, but only one two-component color value is stored. This has the undesirable effect of making the sky color or ground color bleed into other directions. 2/12
Jan 19, 2022 • 4 tweets • 2 min read
The 8 basis elements for the 3D geometric algebra correspond to the 8 ways that three dimensions x, y, and z can be partitioned into two groups, shown as red and blue here. The symmetries of duality arise from an operation that simply swaps the two colors.
Quaternions are multivectors only with components having an even number of red dimensions, and they look like this. Quaternions perform rotations, and they correspond to all possible proper isometries in 3D space that leave the origin fixed.
May 3, 2021 • 9 tweets • 2 min read
Back in 1993, I was taking a number theory class, and there was a semester-long factorization contest that we could participate in. I implemented a distributed multiple polynomial quadratic sieve (MPQS) for the Mac, and I needed a cluster of computers to run it on.
The computer lab in the math building had a bunch of Mac Centris 650s on an AppleTalk network. But they were running some kind of secure software that didn't give you access to the Finder, only specific software, so I couldn't pop in a disk and run my own programs.