Don Williamson @donw.bsky.social · 30/09/2026"Gentlemen, you can't have a personality in here, this is learning material!" 010
Don Williamson @donw.bsky.social · 30/09/2026That's amazing. I think it was £200 here, which was an insane amount of money for me at the time. I was paid £17 weekly on a paper route and spent the next 20 weeks paying it back. 110
Don Williamson @donw.bsky.social · 30/09/2026And to be clear: my position on all this is way more nuanced than LLM=bad, I just vent about what explodes to the top of my "what annoys the old man this morning" pile. But nuance doesn't win friends or alliances, so nobody's interested in that, either. I should go back to shit-posting on twitter! 120
Don Williamson @donw.bsky.social · 30/09/2026On the other hand here's me twiddling my thumbs and refusing to write blog posts because nobody reads them anymore. They just get consumed by the sponge and shat out in somebody's LLM terminal, uncredited, all personality stripped. 230
Don Williamson @donw.bsky.social · 30/09/2026Is it wrong that I'm considering unfollowing/muting people who can't recognise when a re-post or re-tweet or whatever is written by Claude? 110
Reposted by Don WilliamsonMatt Keeter @mattkeeter.com · 28/09/2026hi friends I'm very excited to announce Halfspace, my experimental cross-platform IDE for solid modeling with distance fields! This has been in progress since midway through last year, and it's finally "done enough" to make it more public.mattkeeter.comHalfspaceAn IDE for solid modelling with distance fields 520748
Reposted by Don WilliamsonTom Forsyth @tomforsyth.bsky.social · 28/09/2026DASHR - Dynamically Animated Skinned Heightfield Rendering Short video for now - I might do a longer one later? youtu.be/-Su9YrcazRk But there's ALL the details in the paper, and you can always Use The Source, Luke for the really deep info. github.com/tomforsyth10...youtu.beDASHR - Dynamically Animated Skinned Heightfield Rendering - six minutes versionYouTube video by Tom Forsyth 1423276
Don Williamson @donw.bsky.social · 29/09/2026Haha, Story Time! Aged 17 I went to Lionhead for a job interview and showed them I wrote my own build system and visual IDE with dependency evaluation because Watcom's compiler was awesome, but Borland's IDE was better. They look confused and asked me if I knew what makefiles were. "Uhh, no?" 170
Don Williamson @donw.bsky.social · 29/09/2026Look what I found! My original compiler in the 90s back in school, bought for me by a friend's parents. Dad threw it away along with all my other stuff when I left home and it's taken me 20 years to track a copy down. 2140
Don Williamson @donw.bsky.social · 26/09/2026300 animated/skinned characters on PS2 using tricks like this. Those were some good times. 0130
Don Williamson @donw.bsky.social · 25/09/2026Would that be to the beat of the cha-cha or something else? 😂 000
Don Williamson @donw.bsky.social · 25/09/2026Lord Save Me from the Old Dudes in my LI feed suddenly trying to become "AI Influencers," now that LLMs can temporarily prop up their washed out relevance refusing to step aside and let the younger generations thrive and grow. “LLMs have granted me a second career as a thought leader” 251
Don Williamson @donw.bsky.social · 24/09/2026I got this backwards. Wow. We used Pluto, with coroutine serialisation in our save games. Which made patches/updates the most painful thing you can imagine. Enter watch dogs: media.gdcvault.com/gdc10/slides... It was my suggestion to retire threads to a suspend/save state for subsequent games.media.gdcvault.com 120
Don Williamson @donw.bsky.social · 24/09/2026Lua works too, but the problem is that you generally don't want to serialise coroutine state for long-lived games: it ties saves to the code that created them and makes later patches or new features much harder. On the Fables I believe we forced coroutines into a safe suspended state around saves. 140
Don Williamson @donw.bsky.social · 19/09/2026hah, or fold their int->float conversions into a matrix multiply! 020
Don Williamson @donw.bsky.social · 19/09/2026"my texture switches are kicking in 3 triangles too early" is SO Playstation 2. And exactly why that beast was so enjoyable to extract performance from. 020
Don Williamson @donw.bsky.social · 16/09/2026There's loads of positive here that the graphs can't show because they're relative to population sizes and energy requirements. UK back on the rise for Solar after several years of Tory Destitution. However, wind is much better: #2 in Europe with massive offshore wind capacity. 120
Don Williamson @donw.bsky.social · 10/09/2026Probe update was over many frames based on: developer.nvidia.com/gpugems/gpug... On Xbox 360 a memexport VS pass blends each vertex's 4 nearest probes into FP16 SH stream (27 coeffs), mesh VS vfetches it by index. Double-buffered, many-frame updated like the probes.developer.nvidia.comChapter 10. Real-Time Computation of Dynamic Irradiance Environment Maps 030
Don Williamson @donw.bsky.social · 09/09/2026Some promotional images went out that showed the system working on dynamic objects, but nothing of the dynamic SH updates. The cute thing about the Voronoi approach was that you could fit all possible neighour probe transitions in a single cache line, which was perfect for the PPU at the time. 0161
Don Williamson @donw.bsky.social · 09/09/2026In ~2007 when coding the ambient lighting of Splinter Cell, I had the idea of storing dynamic SH probes in Voronoi cells, where a) dynamic objects could walk/lerp the face graph, and b) static meshes "palettised" probes per vertex and lerped to give Realtime GI. It never shipped but look how pretty! 410515
Don Williamson @donw.bsky.social · 08/09/2026But then Fable 2 looked better than Fable 3, despite having a slower, lower-fidelity renderer. I'm a sucker for colour. 000
Don Williamson @donw.bsky.social · 08/09/2026We did have a demo back in... 2007? I think. where the AO channels were used to create volumetric light sources instead. You could pick up fluorescent tube lights and beat people over the head with them! IMNSHO it looked better back then than what was released, but the final look ended up bland. 210
Don Williamson @donw.bsky.social · 08/09/2026That was Stephen Hill's Ambient Occlusion Fields. Could be both faster and better looking than Screenspace AO. It lost out because the machinery required to bake occlusion fields was not something most people could take on. As a result we had to live with AO Halos for a couple decades. 130
Don Williamson @donw.bsky.social · 08/09/2026Haha, matches an old screenshot of Splinter Cell I took when I was iterating on the lighting model! But this one is more "Life in Montreal" 120
Don Williamson @donw.bsky.social · 08/09/202615 years ago I built a DCPU-16 assembler/debugger/emulator/editor in JS. I asked an LLM for a tiny Zelda-ish adventure. It wrote the code and encoded it in a URL format I designed for sharing. I clicked it and the 15-year-old emulator ran it. dwilliamson.github.io/dcpu-zelda.h... Strange times? 050
Don Williamson @donw.bsky.social · 25/08/2026I use Bazel for all my projects now and this specific pattern works really well to build on any CI without provisioning: github.com/dwilliamson/... Blog post upcoming when I get over the ennui of it being scraped by AI.github.comGitHub - dwilliamson/bazel-starter: Easily build small C++ projects with BazelEasily build small C++ projects with Bazel. Contribute to dwilliamson/bazel-starter development by creating an account on GitHub. 010
Don Williamson @donw.bsky.social · 25/08/2026I was noodling over API design philosophy during breakfast and made a link I should have made long ago about white-board/test interviews. Recently somebody claimed "we have the best engineering team in Europe" and it grated on me specifically because this is how they hired (they weren't very good). 020
Don Williamson @donw.bsky.social · 22/08/2026What genuinely liking that model felt like...static.klipy.comMilhouse Van Houten Playing Frisbee AloneALT: Milhouse Van Houten Playing Frisbee Alone 120
Don Williamson @donw.bsky.social · 18/08/2026lol: "Compile time is one of the bottlenecks HFT engineers notice every day." I mean, have you SEEN the code these guys write? It's like they looked at Boost and thought it didn't have enough code in its header files and templates in its templates. 2170
Don Williamson @donw.bsky.social · 13/08/2026I'm getting really tired of reading Claude-generated readmes. The voice and drama is so obvious and it immediately turns me off whatever well-thought-through library I'm evaluating. 0100
Don Williamson @donw.bsky.social · 11/08/2026The dependency on clang/llvm is what ended my interest in maintaining clReflect. Try QBE. 020
Don Williamson @donw.bsky.social · 07/08/2026I can count the number of tech directors who I worked for that considered this important with two fingers. Which, ironically, was the same two fingers... 020
Don Williamson @donw.bsky.social · 07/08/2026Can you imagine how good Irish Rugby would be if the AIL was as competitive as the NPC? David Nucifora proposed it once but failed. Each year I get a little down because all the seasons end and then forget NPC is only few weeks away. Glorious Rugby, almost enough to make you want to move over! 010
Don Williamson @donw.bsky.social · 31/07/2026What a feast for the eyes www.kay-bruns.de/mod4win/mod4... 020
Don Williamson @donw.bsky.social · 30/07/2026But it's all like that, isn't it? If I have to read yet another NeRF to Gaussian splat paper or blog post that conveniently forgets Levoy, Whitted, Heckbert, Westover, Rusinkiewicz, Pfister or Zwicker, well... there's not much I can do about it, is there? 😂 140
Don Williamson @donw.bsky.social · 24/07/2026Poutine for dinner! You can take the immigrant out of Montreal but Montreal never leaves the immigrant. 020
Don Williamson @donw.bsky.social · 21/07/2026Rode Voltron at Europa Park at the weekend. Nothing in the UK could prepare me for such an amazing experience, totally out of this world. My 10 year old subsequently labelled Blue Fire as "relaxing"! Back home and already rueing the lack of options here. 110
Don Williamson @donw.bsky.social · 13/07/2026I've always loved how people will remember "See it, say it, sorted" for eternity. Yet nobody can remember the number to call. Like, you had ONE FREAKING JOB, guys! 110
Don Williamson @donw.bsky.social · 13/07/2026I used to enjoy writing Go but I just can't look at it any more. It's really distressing seeing nothing but if/return blocks everywhere, obfuscating control flow in a way that could have been solved. So the server is being written in C# because Go is just not enjoyable anymore. 010
Don Williamson @donw.bsky.social · 13/07/2026TOML 1.1 is not a draft. The spec was switched to release mode December last year: toml.io/en/v1.1.0 I use Tomlyn for C# which supports it: github.com/xoofx/Tomlyngithub.comGitHub - xoofx/Tomlyn: Tomlyn is a TOML parser, validator and authoring library for .NET Framework and .NET CoreTomlyn is a TOML parser, validator and authoring library for .NET Framework and .NET Core - xoofx/Tomlyn 010
Don Williamson @donw.bsky.social · 13/07/2026I added Rust-style error propagation to TypeScript by placing an AST rewriter in front of the compile step. Normally a bonkers idea but using Bazel to apply a build step for this was trivial and a huge win! (Try early-returns any error to the caller, propagating up the call stack) 110
Don Williamson @donw.bsky.social · 12/07/2026The source to this WM/Control system is still in a very old branch of Remotery here: github.com/Celtoys/Remo... I also made a video overview. Oh my god it's 9 years not 8. www.youtube.com/watch?v=rX13...github.comRemotery/typescript at typescript · Celtoys/RemoterySingle C file, Realtime CPU/GPU Profiler with Remote Web Viewer - Celtoys/Remotery 130
Don Williamson @donw.bsky.social · 12/07/20268 years ago I ported Remotery's UI from JavaScript to TypeScript and added a pretty awesome docking and control layout system. It's massively simpler than the standard dance you have to do, and uses auto snapping/anchoring. Quickly copied over just the window management and it feels great! 160
Don Williamson @donw.bsky.social · 09/07/2026The Danger Coder: just enough knowledge to write lock free code, not enough insight to know the difference between lock free and wait free, not enough wisdom to know that the mutex was better. 1100
Don Williamson @donw.bsky.social · 08/07/2026The rest of the UI will take a while longer but I can apparently get a whole bunch of browser accessibility reuse by using a "hidden input control" used to drive my own rendered text edit box. For another day... 010
Don Williamson @donw.bsky.social · 08/07/2026Star had its own imgui built with NanoVG. One of the funnest bits of the engine I wrote. TypeScript has the DOM canvas so porting the UI window basics from C++ was trivial! Including that lovely "throw that window out of your way" feature 😄 (sim moves faster because it's a fixed-dt multi-stepper) 290