Yes, it works perfectly, but boy is it slow!!
Admittedly, i do have up to 16 million particles at peak frames…
Result is great, but i’m not sure if it’s worth the long evaluation time…

Anyway, thanks again for the help, Boris…
Really appreciated…


hi bobo , i have a simulated fluid in fumefx which emitted from an object source , after simulation done i want to color that fluid at frame 0 by object source texture, then color moves with fluid , can u tell me how can i do that in magma flow

thank u


Sorry for the late answer, you posted while I was on vacation. Next time please post on the Thinkbox Support Forums if you want someone to deal with your problem in a timely manner!

Unfortunately, you cannot do what you described using Magma since it is History-Independent and calculates its data on each frame independently.
You can do it using Stoke assuming you want to emit new particles driven by the FumeFX simulation, or using Particle Flow, just a lot slower.


Hello again, Boris…
Will you be so kind and share the workflow on how to use Magma to texture map the first frame of a particle sequence using camera projection mapping and have that texture map stick and deform along the whole particle sequence?

Thanks in advance…

Edit 1: I do use Frost to mesh that particle sequence, if this helps…
Edit 2: I REALLY do hope there’s an easier path now days, than this one found here:
Edit 3: The PRT sequence came from RealFlow, so it’s a predefined sequence regarding the motion of the particles, if this helps clarify my situation.


Okay, using a carefully placed TexMap input onto the particles i can get the projection map to stick onto the particles throughout the sequence. I can see it working fine using the PRTViewportColor option.
But, as soon as i change the PRTViewportColor to Mapping2, in order to transfer the mapping onto Frost, everything getting weird, like the pics below:

I’m absolutely it’s user error and i’m doing it all wrong, so some help here would be much appreciated…



What do you get if you change PRTViewportColor to Color instead of Mapping2? The Color channel is automatically transferred as VertexColor channel to Frost.


Thanks for replying!

Maybe i should mention that the left image shows the PRTViewportColor as seen onto the particles directly, where the right image shows the result onto the Frost mesh.
Using either PRTViewportColor or Color on the particles the image shows correctly.
But, i can’t get the Frost to show that Vertex Color; shows instead red/blue gradient values.
It should be the 0 Vertex Color slot, right?

Edit1: Hold on a sec! I may be on to something!
Edit2: Okay! If i use Mapping 2 in the Magma output and then use Map Channel 2 for the Vertex Color of the Frost mesh, THEN i can get it to show the image correctly!
Let’s see how that works…
Edit3: Yes, image is locked onto the Frost mesh and gets altered along with the fluid’s changes. Not the most efficient workflow, but it works… :slight_smile:


Just to reiterate to avoid any future confusion - the PRTViewportColor channel is meant to visualize data on the PRT object’s particles ONLY, and in the Viewport only (hence the name). It does not propagate beyond the object. It cannot be used for passing data to other systems like the renderer, the material/mapping system, or Frost.

This means that you can have one Output node setting the Color channel to some value, and another Output node setting the PRTViewportColor channel to another value. The viewports will show the latter, the renderer (and other sub-systems) will see the Color channel.

This is useful when you want to preview some data (e.g. “What does my Normal channel look like as color”) without rendering that display data in the final output…

Glad it worked with Mapping2. It should have worked with Color (Map Channel 0) too, but it is possible that it was being overwritten somewhere.


Thank you, Boris…
Always appreciate your input and help!

Thanks again!


Is it possible to render a fumeFX grid with for example 2 object sources shooting out smoke that uses the color channel so I get green and red smoke that mixes together in Krakatoa?

I don´t see any option in Krakatoa to use the color channel from FumeFX…

Thanks in advance!


I was wondering if we could get such an information from krakatoa to use in compositing software for relighting etc, since it has krakatoa recognizes the 3dsmax world as a volume with the center being at the 0,0,0 of the grid, and the 4 colors indicating where the particles are.
I hope you understood what I mean, because I’m a newbie both in krakatoa and deep compositing even more, so I may not express the point very well.


Accessing the Color channel of FumeFX required an updated FumeFX SDK. With FumeFX 3.5.x and the upcoming Krakatoa v2.3 and Stoke 2.0, you will be able to access that. Both products are currently in Beta, but we haven’t posted even the Beta builds with Color support yet. Stay tuned…

Of course, you could assign your own colors to the two simulations using Magma or materials…


First of all, Krakatoa can output floating point data to OpenEXR, so even though the pixels might appear the wrong color, the RGB values would contain actual world positions.

Second, you can create any custom Render Element using a simple (or not so simple) Magma flow. The main limitation is that these Render Elements will only contain information about the closest particle to the camera, not deep information. Also, you have to disable filtering in order to get unaltered values. Depending on the filtering mode, this would cause 1 pixel (Nearest), 3x3 pixels (Bicubic), or NxN (Bilinear) pixels to be covered with the same value.

We are looking into adding OpenEXR 2.0 support which allows deep data to be stored and loaded in Nuke etc. So right now you could create a single depth pass with whatever data you want, but you wouldn’t be able to ask about values behind the closest particle occupying a pixel. In future versions with OpenEXR 2.0 support, you might be able to do that…

Hope this helps.


Thank you.
Looking forward for exr 2.0 implementation…


Thanks for your reply and I´m really looking forward to 2.3. I can see that Krakatoa MY is now 2.3… Can I render PRT FumeFX using FumeFX color channel with My 2.3?

Any release date for MX 2.3?

I´m creating smoke from a logo that disperse in a circular way.

I can´t just do 2 sims in FumeFX since I need the smoke to interact… So I have 3 different colors I get from maps (Logo with some shading in it…) and the best for me would be to render them with PRT FumeFX to get a little bit more dusty look and not the FumeFX smoke look…

Maybe I can sim 3 times with 1 logo color (red for example) and the other 2 logo colors I make black do that three times one for each color and do a Magma modifier and delete all the black colored particles…

Any smarter idea… Can I use the FumeFX Fluid mapping to later in magma map the logo colors and render in PRT fumeFX?


Hey Bobo,

I am using krakatoa for maya. I am having issue with they particles flickering pattern. i have filter of 3 in density and shawow pass. Paricles are in a shape of a human body and the body is animated. so the particles are goal to the body and they move along with the body. I cannot use prt volume as i have design on the body.

Scene details

i am using three omni light in the scene, about half million particles in prt.
self shadow filter:bilinear ==self shadow filter size 3==lightning pas density 5=exponent -4
draw point filter Bilinear=== final pass filter size 3=== final pass density 8== exponent -2



Could you please post this on the thinkbox support forums, with pictures if possible?


Hello guys, I would like to cull particles by velocity and I’m a little bit stuck in the magma modifier.

I know how to cull particle by velocity or position along an axis with this documentation : but when I remove ToScalar and Integer to cull particles in every axis, my output selection doesn’t work. Could you help me on KCM or Magma Modifier ?

Thank you very much. :slight_smile:

Edit : I think I have found a solution with this graph :

Input :Velocity > Magnitude > Divide > Less > ToFloat > Output Selection
Input Float > (into second Divide input)


This also works, not sure if its right

Velocity>Magnitude>LessOrEqual>Selection. And put a float in the second input of the LessorEqual to set the threshold.


It works perfectly, and it’s a little bit more easier to setup, thank’s a lot zoubein !