Flex limitations


I’m implementing Flex in my application, and found some limitations:

  • I can only create a solver with a maximum of 1048576 particles (or 1024 X 1024)
  • I can only add 65535 liquid particles to a solver
  • Viscosity, Cohesion, etc are global solver settings, so it’s not possible to set different liquids with different settings
  • I didn’t find a “smart” way to add particles to an existing simulation. In the demo application (using an emitter) it seems the existing particles are copied from the device to the host, the emitter adds particles to the host buffer and then copies the whole thing over to the device again. I didn’t compile the demo, so I could be wrong about this.

I am aware that FLEX is mainly aimed at game development, but it has great potential for “offline” simulation too, so I would like to know the following:

  • Am I correct in my assumptions about these limitations, or am I doing something wrong?
  • If they are correct, Will these limitations stay that way, or are they there because Flex is still a bit in the early stages?



I’m currently in the process of integrating flex into a simulation and ran into some of these limitations as well. I specifically need multiple fluids colliding with one another, and the global fluid settings prevent that. Interestingly they showed off this feature in a flex demo last year https://youtu.be/1o0Nuq71gI4?t=93

I don’t know about previous flex versions, but flex 0.9 definitely supports more than 65535 fluid particles, some of the demo scenes have more than that (Lighthouse scene has 300k fluid particles).