💦 CREATE AND FUCK YOUR OWN AI CUMSLUT 🔥 TRY NOW ♥
Create AI Cumsluts 💦
gridFLUID3D.tox 28.1 KB
ExampleProject gridFLUID3D.toe 90.6 KB
renderPOPVolume.tox 6.7 KB
May 19, 2026

gridFLUID3D.tox (work in progress)

I’ve been working on this 3D fluid sim for quite a while now, and I’ve used different versions of it in several live shows.

Originally, it was built entirely with 3D textures in TOPs. That approach made a lot of sense since fluid sims naturally operate on a 3D grid, and 3D textures make that structure very straightforward to work with.

But it always felt pretty sluggish — especially on my Mac Mini — so I decided to try moving the whole system over to POPs instead.

The sim now uses a Grid POP to construct what is essentially a “3D texture.” POPs have a built-in `Dimension` attribute along with a bunch of GLSL helper functions, which makes it surprisingly easy to sample and work with a Grid POP as if it were a volumetric texture.

Setting up and managing dimensions can still feel a bit awkward sometimes, in my opinion, but once they’re declared in the Grid POP they become very convenient to work with.

I’ve considered releasing this for a while, but a lot of great tools have already come out — things like MiniUV and SARV — that solve similar kinds of problems, so I never really pushed it further.

Still, I think this project is different enough to be worth sharing.

Because it’s fully POPs-based, it gets the workflow and performance benefits that come with that approach. You can use it directly for particles, and it runs significantly faster than my previous TOPs version.

At the same time, because the structure behaves so much like a 3D texture, it can also be used as a volume for volumetrics, polygonization, or easily converted back into actual 3D textures for more traditional texture-based workflows.

It’s also completely free and open source.


The biggest resource and inspiration for this project is still THREE DASHES’ tutorial:

https://www.youtube.com/watch?v=2k6H5Qa_fCE

When I originally converted the sim to 3D textures, I basically followed that architecture and adapted it for textures. Moving from there into POPs was then mostly a process of translating that same architecture again — this time into a POPs-based workflow.


LLM Disclosure:

I don’t use agents or inline autocomplete tools.

I did use Claude to help write a few functions — especially the trilinear interpolation functions used for advection. That ended up being one of the major differences between the TOPs and POPs versions. In TOPs you can rely on `texture()` calls for interpolation automatically, while in POPs I needed to implement that behavior manually.

I also sometimes use Claude to double-check my work once i'm done or to help debug issues when I get stuck.

For example, in `createSplats` I loop over input points, sample attributes for each point, and accumulate them in different ways:

```glsl

for(int i = 0; i < NUM_POINTS; i++){

vec3 vel = TDIn_Vel(1, i);

}

```

At one point I sampled `vel` using `id` instead of `i` — but only for velocity. It created some really strange behavior that I somehow couldn’t visually spot myself. Claude immediately saw it. That bug could easily have caused me to shelve the project for another few months.

It also helped with the Volumetric renderer in particular how to integrate the phaseHG. Vokumetric raytracers is one of those things that i've built a few times to experiment with, but I haven't really dived in to the topic. And would like to make an actually good component at some point.

I’m including the AI disclosure mainly because I want to be transparent about how I work.


It's shared in my slightly messy yet public repo:

GitHub link:
https://github.com/supermarket-sallad/TD-components-shared/tree/4b8d628c7c26055d1a607adffd72d44f134b7e82/Sims/3DGridPOP

Comments (4)

A
Aiden W · May 26, 2026

Absolutely sick dude

S
Sinth Node · May 20, 2026

Thanks for your transparency on the Claude use. Project looks incredible!

t
tYk · May 19, 2026

amazing!!!

z
zanshin kuge · May 19, 2026

thank you!