It should work the same as loading any sequence in any other plugin or sofware, you pick the first file of the sequence.

Although I do remember a fileName issue from quite some time ago. What version of Krakatoa are you using 1.6 or less?

Is it a realflow .bin sequence?

Can you list the first fileName?


am using krakatoa 2 the last version
the file name is “” Particle-Liquid.0001.prt “”
its sequence coming from naiad
really its big noising i took tow hours just to load 300 frame
sure there’s something wrong but i can’t figure it out


Sorry I haven’t used naiad sequences yet :sad:

That naming convention looks ok to me though and it is a .prt sequence too that is odd. Are the files sizes 1-10gb+ per frame or similar?

I am afraid you will have to wait for Bobo or maybe Hristo might know, he too has used naiad and Krakatoa.


Are you saying you have ONE 1000 frames sequence (.0000.prt to .0999.prt)?
In that case, you simply pick ANY frame from the sequence and the frame number will appear as .####.prt in the list. If you move the time slider, the #### will be replaced automatically with the current frame, and you have full control over what frame will be loaded via Playback Graph controller and/or Offset.

You are NOT supposed to pick every frame from the sequence into the list. The reason you CAN pick multiple files is that A) we support the merging of multiple sequences and B) you can load single files (by checking “Load Single Frame Only”). So if you pick frame .0000.prt and frame .0042.prt and check “Load Single Frame Only”, BOTH will be loaded on EVERY frame at the same time, and their frame counters in the file names will NOT be shows as #### but as the actual frames you picked.

The PRT Loader even provides a >> menu with access to the File Sequence Manager. In that dialog, you can even pick a folder and add every UNIQUE sequence found in it. Another option lets you pick a root folder and add all sequences from all sub-folders recursively. But only one frame will be added from every uniquely named sequence, so you won’t get 1000 entries for the 1000 frames of your single sequence.

Hope this helps. Not sure where this misunderstanding comes from, since this is all documented pretty clearly.


a little making of 3d Sponge Bob, hope you like it)))
Used krakatoa for rendering his sponge body


I like it
very nice
and cool comp


i was rendering a sequence of 400 frame
am using magma flow modifier with the particles container
after i done 200 my render stopped and gives me error message saying “” Magma Error “”
with no clear reason what ever i tried to do that error still showing
Until after removing the modifier still there ???
but when i merged into new file its working ok !!!
is this bug or i did something wrong ???
I can’t figure the reason


I have never seen this, but from the description sounds like a glitch/memory corruption issue. Please let us know if it is consistent and can be reproduced reliably.


I am receiving the following error when I render out my final frames…

zlibreader::read() Unexpected EOF

What is this? I have had already two frames give me this error and they won’t render… Does it mean I have a corrupt prt sequence, as I had to resave a couple of prt’s already…



Hi all. How can i make analogue of Load Percentage in Main Controll in MagmaFlow, but with more random threshold?
Also maybe somebody have interesting Magma Presets???


The Load Percentage simply skips every Nth particle. For example, if you set it to 10%, it will load one and skip the next 9 particles, so if your particle system is highly ordered (for example a PRT Volume), you might see an obvious pattern.

I tried a Magma modifier that sets the Selection channel to 0.9 and then a Krakatoa Delete modifier on top of the stack set to delete by Soft-Selection + ID channel. While the result appeared slightly more random, I would not claim it fixed the issue of my PRT Volume.

Can you explain what your exact problem is (with images and possibly a scene file)? I generally don’t recommend using Load Percentage anyway, it still processes all particles and just skips at the memory loading phase. So if you have 100 million particles, they will be fully processed including material evaluation etc. and then discarded. Using a PRT Loader’s Every Nth by ID option is the best approach, assuming your particles are pre-saved to disk.


Hi Bobo. I have Fume simulation. I use PRTFume loader to fill it with krakatoa particles, but my fume simulation have small spacing, and smooth (no sand effect) on render. I need to make less dense of particles, almost to the type of sand.
As i understand right now particles dont have any ID, I make this magma rig and its gave me more random decrease of particles (not such obvious pattern effect, but its generate a bit pattern selection also). its pure luck, cause i new to magma. And i`m sure fo 99% that there is more correct and interesting solution for doing that.

Without any reducing

Some pattern is visible

My MagmaFlow rig (0, 31 frame of animation)


Hello All,

I am trying to scatter a PRT sequence over a piece of geometry(sphere) using the PRT cloner. Everything is working fine, except I would like the orientation of the prt sequences to be based on the normals of the object (sphere) that its scattered on. I am guessing that I need to add a get average normal to the property query. But I am not sure how to go about it or if its even the right way.



What are you using as the distribution system for the PRT Cloner? PRT Volume? PRT Loader from the geometry vertices or from PFlow?

If you are using a PRT Volume from Sphere for your distribution system, then it is simple, since each particle already has a Normal. All you have to do is calculate the VectorCross product of the Normal with [0,0,1], Normalize the result and calculate the VectorCross of that result with the Normal and Normalize that. Then feed the first result into X, the second into Y, and the Normal into the Z input socket of a Convert>VectorsToQuat operator and feed that into the Orientation output channel. And voila, your distributed PRTs will be oriented to point with their Z axis along the sphere’s normals.

If you are using a PRT Loader as the distribution system, you will need to use an InputGeometry node and a NearestPoint node to find the normal of the Sphere at the closest point to the particle, the rest is the same…


Hey thanks for that Bobo. Unfortunately my math sucks so I wasn’t able to fully understand what you meant. I gave it a go but I am getting an error in the nearest point node.

I am distributing PRT loaders on a PRT Volume. But in the magma flow that I attempted I used the geosphere that I used to create the volume to get the normals. Because that seemed simpler.



As I mentioned, the PRT Volume already has a Normal channel that contains the normals of the Geosphere. But in your case, all you need is drag from Lookup Point (WS) to create a Position input defining where you are sampling (at each particle!), converted to world space (it happens automatically if you just drag). And then you need a Normalize after the second VectorCross operator. Then it should work…


Thank you! :thumbsup: got it working now, I also had to flip the connections in the vector cross to get it right. Cant wait to use this on monday at work.



I had two other questions regarding the PRT cloner. Once you have aligned a PRT Loader object to another particle system or object and oriented it to the normal is there a way to also add a random local rotation to the PRT Loaders?

And the second question is I have a PRT sequence A which has 10 particles floating up and on each particle I want to clone another much heavier PRT sequence B. which works fine except all the particles in “sequence A” when they are born instead of playing Sequence B from the beginning frame 0, they play it from the current time. hope that made sense.



Yes, you can rotate the normal randomly inside the Magma modifier, but it is not exactly obvious. A Noise operator with the Position as input can generate a “random” value. Using the Random value, you could produce a random Quat from AngleAxis or EulerAngles (operator is found under Convert category), and then using the TransformByQuat rotate the original normal. I have attached an example (Max 2010+).

As for the animation playback, this is a current limitation of the system. I guess the reason behind it was that we didn’t want each clone to be read on a different frame - it would be very slow to process. But we support animation control via a dedicated GeomTime channel in Frost, so the same approach could be applied to the PRT Cloner I guess. I will log it as a Wish.


Thanks Bobo. :thumbsup:

When I open the file I am getting a

“Magma This node failed to load from disk. Please fix it.: | ID: 26 |” this is the rotate randomly node. Anyone else have this problem.

Looking forward to the presentation tonight in London.