Focusing particles through square holes and widen again

I’ve had trouble “focusing” particles in general. Like if I have particles filling a room, then I want to show a flow of the particles going into a vent what I did was add a vortex in the space with falloff and I put a cone shaped falloff to force that sucked the particles into the rectangle. I couldn’t figure out how to get them into a rectangular shape, but the camera was far enough away that it was ok that it wasn’t perfect. Maybe i could have switched to boids and make them afraid of a rectangular funnel going into that?

I have a similar problem now. I have an air duct that changes shape. The vent is a rectangle, then the vent suddenly becomes a larger rectangle and goes through a filter. Something like this:


The particles from the bottom need to get wider, then stop on the filter.

I don’t want it to be an actual simulation. I just need control of the particles to do that. Because sure, I could do a liquid/gas simulation, then have the particles follow that, but I have had Very little luck with controlling those and I am finding they are taking Very long if I want them to go through something like vents because I have to make the domain so big that the resolution has to be insanely high just to get things to go through the vents at all.

So back to the main question then. Is there a way to “guide” particles, but inside rectangles? I’ve tried 2 different curve methods but neither gave the look I wanted because I couldn’t get the particles to keep flowing in a direction, or they didn’t collect enough, or they collected Too much, which also kept them from flowing in the direction I wanted. And then I still have the issue of getting them to widen again when the chamber widens.

Any tips on how to accomplish this? Every time something like this comes up I dread doing it because I know I won’t get the result that I’m looking for. I’m not even sure I’m getting better at it at this point, so is very frustrating. So I’m finally turning to you folks for advice.

I have something that could help.

1-Make a long rectangle mesh that’s made entirely of floating vertices. I did it by setting a particle system to render as a mesh that was made of just one vertex and then make the particles real.

2-Add a lattice that covers the entire vent area. From my tests, I can only make a single lattice work correctly on an object and it has to stay cube shaped, so just make it as big as needed to cover every area that needs deforming and give it the divisions you need.


Then, put a lattice modifier on the mesh from step 1 and choose the lattice that was just created.

3-Deform the lattice so the mesh expands and contracts in the correct areas. If you don’t have enough divisions in the lattice, you can always add more, in every axis. You can then move the mesh through the lattice and it will deform as it moves.

4-Use geometry nodes to instance the particle object on the points.

Here is the exemple file
lattice_fake_particles.blend (1002.6 KB)