Profile avatar
billy-manning.bsky.social
Graphics programmer, classical pianist
72 posts 102 followers 591 following
Regular Contributor
Active Commenter

Modular Synths are the music equivalent of ShaderToy: take a ton of simple mathematical building blocks and mix them into something unique. Real modular setups are stupid expensive, but there's OSS simulators for them! Here's a playlist of synth tracks I made for fun. youtu.be/u0krjHwtP-8?...

Cursed c++ fact of the day: on some platforms (embedded devices), memory addresses starting at 0 are totally valid, often pointing to special things like interrupt tables. However dereferencing `nullptr` is still UB! So to safely access address 0, you need to use some assembly.

Stayed up all night making this, just for fun. www.shadertoy.com/view/M3Kczh

Cursed c++ fact of the day: if you have a C-style array a, and want to get element i, it's easy! Just do: i[a]

This is Moose!

Cursed c++ fact of the day: it's so hard to parse that you sometimes have to insert hints to help the poor compiler. Calling a template function`t.get<2>(3)` kinda looks like the boolean expression `(t.get < 2) > 3`! So in some circumstances you must say `t.template get<2>(3)`.

Cursed C++ fact of the day: the expression `((a || b) && c[~d])` can also be written as `((a or b) and c<:compl d:>)`. In fact, you can avoid ever touching the characters & , { }, [ ], #, \, ^, |, and ~ , using what are called "operator alternatives". This makes c++ ISO/IEC 646 compliant.

Having used CUDA a little bit, it makes me furious to go back to shader languages and see what we're missing out on. It's literally going from modern c++ back to 70's-era C! Did you know that CUDA compute has `assert()`, `printf()`, and nearly all modern c++ including templates and lambdas?

We got the luckiest pair of dogs ever.

Something that surprised me about #Unreal s renderer is the number of heap allocations it casually makes every frame. Is that just not a problem on modern hardware, even mobile?

I jump-scared myself with a Blueprint graph I had forgotten about

I've implemented mesh-slicing, which stretches the inside of the mesh but not its edges. 1/3 #unreal