Here's a test I did to get the particles to float on a fluid's surface and to get it to move with the same velocity as the fluid.

Basic set up
- sim your fluid
- cache the fluid
- break the fluid up into three constituent parts
i. the surface
ii. a SDF of the surface and
iii. the velocity vectors of the fluid
- create a particle system
- create a vopnet inside the particle system
- add the fluid surface position to the particle's position
- plug the velocity vectors into the output velocity (the tumbnail shows the vopnet to do this)

for the instancing
- take a circle
- set up scale, extrude, isolate and offset parameters
- set them to take their values from a stamp procedure which we'll define in the next steps
- plug into a copy sop (the particles plugged into the other entry)
- set random functions for each of the attributes based of the particle Id

When I get a chance I'll write this up with diagrams showing these in more details, I'll post the link here when I do.

sim time: about 3 mins
render time: approx 15 hours for 240 frames with a simple surface shader on the fluid, I did have the basic water shader on initially but that took 11 hours to render out 51 frames and then I couldn't get frame 52 to render at all.

Loading more stuff…

Hmm…it looks like things are taking a while to load. Try again?

Loading videos…