Tutorial
Max2010+ Hack Your Toolbar
Hack you toolbar so you can get back your Undo/Redo AND in its own toolbar in under 2 minutes (if your quick) best of all it maintains your current UI
Read the whole thing HERE

Quick Tutorial on assign Controllers to Pflow
Just a super quick tutorial on how to assign a Waveform (or any controller for that matter) to the Emission Rate of a PFlow Birth Operator.
Waveform2EmissionRate AVI 6mb – Techsmith Codec TSCC (Here)
For some reason the quicktime has some crappy artifacting and it is twice the size. If anyone is interested: Waveform2EmissionRate QT 13mb
You can stack multiple Waveforms in the same controller to achieve varied rates of birth, for example a large burst of particles the tapers down in steps.
Of course you can keyframe all this by hand with a bezier float controller too if you want 
Tutorial – Box#2 Soft Bodies & Deformations
A written tutorial on how to create simple soft bodies with PFtools Box#2.
The second part shows you how to maintain a deformation.
You can find it HERE
Geek Out with your iPhone/Touch accelerometer!
Some point3 data and PFTools Box#2
I added a quick little explanation of how to get the data into Max HERE

added some iCamera shake too, not so noticeable without any reference.
Couple More Fume Tests
First one planetary impacts. This use pflow to set the fume containers at the particle impact points on the planet. Messy, messy, messy maxscript way to get it to work will have to find a better approach. EDIT: And I found one
…
This version runs the final update script and another script operator for impact timing.
Final Update script: Clone your grids with a more unique name easy trackability…
global theGrids pf_node_current = particleFlow.scriptRunner() if (pf_node_current != undefined) then ( count = pf_node_current.NumParticles() theGrids = $CL_FumeFX* as array--the name of your copied fume containers theGrids.pos = [0,0,-10000] --set the positions so they are off screen when not in use minCount = amin #(count, theGrids.count) for i in 1 to minCount do ( pf_node_current.particleID = i theGrids[i].transform = pf_node_current.particleTM ) )
Then the script operator for impact timing: this should go in the event that the collision occurs. ie the next event wired to say a collision op. or find target.
on ChannelsUsed pCont do() on Init pCont do ( global rlTime global curTime ) on Proceed pCont do ( p = pCont.particleID count = pCont.NumParticles() for i = 1 to count do ( --print p theGrids[p].playFrom = 0 rlTime = slidertime as integer curTime = rlTime/ticksperframe theGrids[p].playFrom = curTime - (curtime*2) -- Impact time start playback --print theGrids[p].playFrom ) ) on Release pCont do()
Be sure to use a cache op. set to View/Render Intgration step, this will ensure that the grid impact times are correct. I noticed if I didn’t use a cache the impact times were off, which makes sense since the playFrom time isn’t initialized correctly until playback has run through the timeline at least once.

Not sure if you can write to the Final step update script through maxscript, you can turn it on/off but that’s about it AFAIK. You can create the script op through maxscript. Another note you cannot use a scale operator in the flow this will jack the grid transforms and the grids will not render properly.

An attemtp to get fumeFX to look like white water. Waiting to see what the krakatoa renders look like

FumeFX Pflow & Krakatoa Tutorial
My very first ever video tut. so please bear with me (it could be my last
)
All the basic info you need to know to use FumeFX to run particles through pflow, save out to particle partitions, color and render… all in ten minutes.
SCENE File Max 2008 FumeFX 1.1 Krakatoa 1.1.2 FumeFXPflowKrakatoa_Final.max


