Blender is a fantastic open source mesh modeling software often used in game development. The tool is full of rich features and may even give Maya a run for its money. You also can't beat its price tag (did I mention it is free?). For an API, it boasts an extensive Python scripting environment.
In addition to its mesh modeling tools, Blender also features some great physical effects including particle systems for simulating fluids and wind.
This blog post demonstrates creating a workflow for exporting particle information into a text file which can be accessed by Grasshopper for different purposes.