Using Smoke To Create Exportable Particles

Hello,

I’m attempting to get point data of a smoke simulation for 3D laser etching (something like this http://i.imgur.com/98LUeJn.jpg).

I’ve created a smoke simulation I like, but still need to get a point cloud representing the smoke.


As you can see, my solution is to add another particle emitter to add particles which are then tied to the Smoke Domain using a Smoke Force object (better explanation below). It isn’t perfect, aside from technical issues, but it isn’t terrible.


But what I really want is something that looks like this:


I’d like a result that was more billow-y that wisp-y. My process to get where I am has been to:

  1. create a moving emitter that emits particles
  2. add smoke domain to the particles, so the particle themselves are the smoke generators
  3. duplicate the original emitter
  4. add a Particle Instance modifier to an icosphere and link it to the duplicate in step 3
  5. make the icosphere an emitter
  6. make the particles from the icospheres affected by a smoke force which links back to the original smoke domain.

then I would find some clever way of getting the point data of those last step particles.

It works OK, but I’m hoping to get something better.

I know there is also a way to get point data from the *.bphys files, but it is beyond my capability and the premade python scripts I’ve found don’t seem to work.

I’m hoping there is either a simpler way to convert that smoke simulation to a point cloud, or a better way to make my process produce billows.

Here is my blender file: https://www.dropbox.com/s/3hhl5cvu1euv2uv/smoke_trails%20(9).blend?dl=0
But beware, I also am having technical issues with this file that is posted here: https://blender.stackexchange.com/questions/87624/particles-pop-in-delay-during-animation

If anyone has insight to that issue as well, that’d be swell.

Thanks

EDIT:

Well, I learned a few things and thought I should share in case anyone else has issues like this.

First of all, smoke domains want to be cubes. My domain was an elongated rectangle and the particles did not want to move side to side, they only moved along the length of the rectangle. Making the domain a cube fixed the billowing issue.

Secondly, I found a way to export the point data without dealing with the *.bphys stuff. I make a new object that contained only one vert. Then I applied that vert to Particles>Render>Dupli Objects. Then I converted the particle modifier, joined all the points into one object, then used this script to export the xyz coordinates of the points (http://pasteall.org/51127/python). My final goal was to create a rhino file with the points, so I wrote a simple parser in grasshopper.

hope that helps someone.