Sign in

DougLilliequist

@douglilliequist.bsky.social
114 followers 126 following 77 posts

Creative Technologist. Currently at Immersive Garden. Previously at Active Theory.

PostsRepliesMedia
DougLilliequist @douglilliequist.bsky.social · 28/06/2026
That 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/2026
I’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/2026
Lots of changes since last post. My framework Davine is now released under OFrame as OGPU. github.com/oframe/ogpu
github.com
GitHub - oframe/ogpu: Minimal WebGPU Library
Minimal WebGPU Library. Contribute to oframe/ogpu development by creating an account on GitHub.
042
DougLilliequist @douglilliequist.bsky.social · 19/10/2025
PBR shader wrapped up. Diffuse and Specular maps are generated via cmgen CLI #webgpu
000
DougLilliequist @douglilliequist.bsky.social · 30/09/2025
Sincerely #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/2025
Finally found the cause: override doesn't seem to work with compute shaders in Safari.
110
DougLilliequist @douglilliequist.bsky.social · 20/09/2025
This 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/2025
Also, 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/2025
Not 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/2025
All right: time to learn what is actually going on behind a PBR shader and make one myself.
010
DougLilliequist @douglilliequist.bsky.social · 03/08/2025
Marching 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/2025
Very 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/2025
Have 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.com
a man with glasses and a mustache is sitting in front of a sign
ALT: a man with glasses and a mustache is sitting in front of a sign
000
DougLilliequist @douglilliequist.bsky.social · 06/07/2025
Raymarching volumetric lighting is a bit slow… :(((
000
DougLilliequist @douglilliequist.bsky.social · 01/07/2025
My 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/2025
Too 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/2025
Cool 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/2025
If 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/2025
125k 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/2025
Kindoff 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/2025
Ah! You *can* use samplers in compute shaders! Just have to make sure you are using textureSampleLevel! #webgpu
000
DougLilliequist @douglilliequist.bsky.social · 13/04/2025
After this practice project I'll be going back to soft-bodies. Particles are getting quite repetitive now...
000
DougLilliequist @douglilliequist.bsky.social · 13/04/2025
Back 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/2025
Few subtle error fixes later and now it looks even better! 🌊 #webgpu #creativecoding
280
DougLilliequist @douglilliequist.bsky.social · 08/03/2025
With 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/2025
Just to show I'm not bluffing 🤓 #webgpu
020
DougLilliequist @douglilliequist.bsky.social · 08/03/2025
Just 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/2025
A 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/2025
My 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/2025
Troubleshooting. 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/2025
Yeah 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 · 24/02/2025
Think I got it working! #webgpu
050
DougLilliequist @douglilliequist.bsky.social · 23/02/2025
More 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 · 23/02/2025
debugging #webgpu
020
DougLilliequist @douglilliequist.bsky.social · 22/02/2025
Believe me. This is 3D fluid. #webgpu
020
DougLilliequist @douglilliequist.bsky.social · 22/02/2025
getting there! #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/2025
bleeeghh...sucks that atomics are not supported on storage textures....
000
DougLilliequist @douglilliequist.bsky.social · 16/02/2025
Think I have a new favorite Björk song...
000
DougLilliequist @douglilliequist.bsky.social · 16/02/2025
All 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/2025
Cool. MSAA done.
010
DougLilliequist @douglilliequist.bsky.social · 15/02/2025
All 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/2025
Yay! 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/2025
Building 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/2025
Before 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/2025
3D 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 · 02/02/2025
I *think* the banding is fixed...
020
DougLilliequist @douglilliequist.bsky.social · 29/01/2025
Hmmm, 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/2025
Sped 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