Simulating smoke with particles