DougLilliequist @douglilliequist.bsky.social · 28/06/2026That being said though, I tried on two occasions to port previously written WebGL sketches to WebGPU. Even with subagents, I have not managed to perform a successful port with only agents. Slight bummer, but this makes me relieved that there is still a need for human hands…for a while. 000
DougLilliequist @douglilliequist.bsky.social · 28/06/2026I’m barely typing code these days and starting to fully embrace agentic development. That said, it has taken a fair amount of research, trials and errors to get the reliable outputs I’m getting. 000
DougLilliequist @douglilliequist.bsky.social · 28/06/2026Lots of changes since last post. My framework Davine is now released under OFrame as OGPU. github.com/oframe/ogpugithub.comGitHub - oframe/ogpu: Minimal WebGPU LibraryMinimal WebGPU Library. Contribute to oframe/ogpu development by creating an account on GitHub. 042
DougLilliequist @douglilliequist.bsky.social · 19/10/2025PBR shader wrapped up. Diffuse and Specular maps are generated via cmgen CLI #webgpu 000
DougLilliequist @douglilliequist.bsky.social · 30/09/2025Sincerely #three.js, but if you don’t like to work with fixed pipelines and low level stuff, you are not an advanced user. 020
DougLilliequist @douglilliequist.bsky.social · 23/09/2025Finally found the cause: override doesn't seem to work with compute shaders in Safari. 110
DougLilliequist @douglilliequist.bsky.social · 20/09/2025This sucks. None of my prior WebGPU sketches work on the new Safari…but works perfectly fine on Chrome… 000
DougLilliequist @douglilliequist.bsky.social · 15/08/2025Also, I’ll sound very harsh: do yourselves a favour and drop any projects or ponder on solutions that are based on WebGL. It is outdated, performs horribly and requires tedious hacks to MAYBE get what you want. With WebGPU, you can think about and solve problems in a more reasonable fashion 000
DougLilliequist @douglilliequist.bsky.social · 15/08/2025Not that I would consider myself an expert at this point (yet), but PBR is surprisingly straightforward! The hassle is generating the assets needed for IBL. 000
DougLilliequist @douglilliequist.bsky.social · 10/08/2025All right: time to learn what is actually going on behind a PBR shader and make one myself. 010
DougLilliequist @douglilliequist.bsky.social · 03/08/2025Marching cubes experiment made with my own WebGPU framework 🗿🌊 Hope you'll find it fun and inspiring (and satisfyingly disgusting 🫠)! dougllab.netlify.app/marchingcubes #webgpu #creativecoding 030
DougLilliequist @douglilliequist.bsky.social · 08/07/2025Very nice. Removed an awkward copyBufferToTexture and now my 3D blurring is even faster! Guess I'm ready to start diving in to marching cubes... #webgpu 010
DougLilliequist @douglilliequist.bsky.social · 08/07/2025Have to try this, but after reading some fine print…storage textures can eventually be used with samplers depending on the bindings. This is awesome, but this means i have some hefty refactoring to do on my fluids and shadow volumes…media.tenor.coma man with glasses and a mustache is sitting in front of a signALT: a man with glasses and a mustache is sitting in front of a sign 000
DougLilliequist @douglilliequist.bsky.social · 06/07/2025Raymarching volumetric lighting is a bit slow… :((( 000
DougLilliequist @douglilliequist.bsky.social · 01/07/2025My voxelizer is working! 128^3 voxels < ~150us. 256^3 around < ~800us (on my M1Pro) Ironically, visualising the voxels is heavier than the voxelizer itself... *cackles manically* #webgpu 0120
DougLilliequist @douglilliequist.bsky.social · 24/06/2025Too much at work. Have some fun concepts I want to explore for a few days during my vacation. 000
DougLilliequist @douglilliequist.bsky.social · 17/05/2025Cool accident while updating a previously SD 1.5 based workflow to SDXL / HotshotXL. Not a fan of how all the motion models are aiming for "perfection" and in my workflow's case, I need AnimateDiff + frame interpolators still! #comfyui #aiart 020
DougLilliequist @douglilliequist.bsky.social · 13/05/2025If there is anything that worries me, it is not “AI taking our jobs”. In the end, an experienced dev will know what to prompt compared to one with less experience. I’m more concerned about project deadlines becoming more and more unrealistic due to the false belief that “AI can do everything” 3142
DougLilliequist @douglilliequist.bsky.social · 26/04/2025125k flocking boids particle volume shadows 3d fluids (32^3) using hand tracker as cursor 120 fps on M1 pro Learned a ton doing this project, but I'm bored of particles at this point 😅 Hopefully this will be fun and inspiring to whomever tries this out! dougllab.netlify.app/birds #webgpu 071
DougLilliequist @douglilliequist.bsky.social · 13/04/2025Kindoff getting there! Using pressure makes it more interesting... Maybe a habit thing, but interacting in a 3D space feels like you need to "master" the interaction which isn't too fun. More parameter tweaking! 🪛 #webgpu 151
DougLilliequist @douglilliequist.bsky.social · 13/04/2025Ah! You *can* use samplers in compute shaders! Just have to make sure you are using textureSampleLevel! #webgpu 000
DougLilliequist @douglilliequist.bsky.social · 13/04/2025After this practice project I'll be going back to soft-bodies. Particles are getting quite repetitive now... 000
DougLilliequist @douglilliequist.bsky.social · 13/04/2025Back at it! Integrating my 3D fluids into my original boid simulation. Lots of finetuning is needed and scaled up the particles to avoid compression 😅 Doing so reveals a fair bit of aliasing... Also learned that using samplers is not allowed in compute shaders :((((( #webgpu #creativecoding 110
DougLilliequist @douglilliequist.bsky.social · 09/03/2025Few subtle error fixes later and now it looks even better! 🌊 #webgpu #creativecoding 280
DougLilliequist @douglilliequist.bsky.social · 08/03/2025With gradient subtraction (familiar fluid look) 🌊 and with my setup it is easy to toggle between the two behaviors 💨 #webgpu 020
DougLilliequist @douglilliequist.bsky.social · 08/03/2025Just need some calibration, but the handtracking is doing wonders! For the Z, I compute a 2D bounding box and use the area as the Z position (far away == sm0l hand, big hand == close) #webgpu 000
DougLilliequist @douglilliequist.bsky.social · 01/03/2025A few months back I made an attempt to recreate the hiss warp effect from the game 'Control'. Curious to move this exploration to WebGPU... #webgl #creativecoding 010
DougLilliequist @douglilliequist.bsky.social · 01/03/2025My hunch was correct. What I thought was working was just seeing my density being diffused...but never advected. *Now* it is properly working 🌊 Time to set up hand tracking as using a regular trackpad is not too exciting...and conveying a higher dimension on a 2D surface makes no sense. #webgpu 010
DougLilliequist @douglilliequist.bsky.social · 26/02/2025Troubleshooting. Maybe it's my OCD, but had a feeling that my fluids never got properly advected... Believe this is how it should look like...will continue at a later point. #webgpu 040
DougLilliequist @douglilliequist.bsky.social · 26/02/2025Yeah it totally works 🔥 Will make an optional projection step as well 🌊 The idea is to use this as a driver for applying forces to stuff #webgpu 030
DougLilliequist @douglilliequist.bsky.social · 23/02/2025More debugging... Anyhow, 32x32x32 sim at 120 fps on m1 pro mac and no blasting fans...same sim in WebGL would be toasty... #webgpu 020
DougLilliequist @douglilliequist.bsky.social · 22/02/2025⚠️ strobes and flickers ⚠️ Well...something is happening hah A bit of unlearning to do as I have never done a fluidsim with compute shaders before... Following along Jos Stam's paper on fluid sims #webgpu 030
DougLilliequist @douglilliequist.bsky.social · 16/02/2025bleeeghh...sucks that atomics are not supported on storage textures.... 000
DougLilliequist @douglilliequist.bsky.social · 16/02/2025Think I have a new favorite Björk song... 000
DougLilliequist @douglilliequist.bsky.social · 16/02/2025All right. Fluid sims it is. Position based fluids is something I'll look at some other time...mainly because I don't have to think too much about working around WebGL's limitations. 010
DougLilliequist @douglilliequist.bsky.social · 15/02/2025All right...MSAA next and then time to decide if I want to port a prior experiment or try making 3D fluid simulations... #webgpu 000
DougLilliequist @douglilliequist.bsky.social · 15/02/2025Yay! Render targets and the ability to create render attachments (MRT's) are working! And yes, all buffers are destroyed and created anew when resizing. #webgpu 040
DougLilliequist @douglilliequist.bsky.social · 15/02/2025Building a framework is oddly satisfying... 000
DougLilliequist @douglilliequist.bsky.social · 05/02/2025🎉 proper (and manual) filtering + blurring did the trick! Time to make pretty things #webgpu 090
DougLilliequist @douglilliequist.bsky.social · 02/02/2025Before that...I'll have a look at temporal filtering. Or at least a decent implementation (ping-pong between previous and current state of particle shadow map based on particle velocity) 000
DougLilliequist @douglilliequist.bsky.social · 02/02/20253D fluids or see how much easier it will be to implement shape-matching while I'm still drunk on power now that compute shaders enables so much 100
DougLilliequist @douglilliequist.bsky.social · 29/01/2025Hmmm, guess it isn't enough to blur values in a storage buffer, followed by a transfer. Anyhow, got a bit more familiar with workgroupBarriers and workgroup storages...good stuff! #webgpu 160
DougLilliequist @douglilliequist.bsky.social · 26/01/2025Sped things up by packing light values along Z (per the paper) and a few subtle quirks later, I'm now *almost* finished! Currently now at a point where there is a clear staircase aliasing as opposed to a noisy aliasing. 210