Krakatoa and Thinking Particles 3.0 Compatibility

Please note that Krakatoa v1.0.1.29090 (in both evaluation and licensed mode) is NOT compatible with the newly released Cebas Thinking Particles 3.0 plug-in.



Frantic Films Software is preparing to release an updated version of Krakatoa which will provide enhanced support for Thinking Particles 3.0 including enabling/disabling Groups rendering via the Group’s Renderable property, support for the Group Color property and support for custom Color and Density data per particle using the TP Data Channels.



Thank you for your patience!



Borislav “Bobo” Petrov

Technical Director VFX

Frantic Films Winnipeg

I cant wait. Just purchased krakatoa today and was a little disapointed when it didnt work. Back to pflow for now sad

The promised 1.1.0 update was posted on April 1st, 2008.



http://www.franticfilms.com/software/products/krakatoa/download/

i can’t partitioning my particles . i use thinking particle v4
increment random seeds dosn’t work correctly
some body can help me?

Some more info would be useful, for example what kind of Ops you have in your TP flows, what you expect to be affected but isn’t and so on.
There are some known issues like MatterWaves’ random seed cannot be accessed directly, but you can expose it via a Helper whose name matches the pattern “RandomSeed” - its value will be incremented, indirectly changing the seed of MatterWaves.
Also note that the Krakatoa Log Window will print information about what operators it is finding and how it is affecting them - you might want to look at its output and see if what you expected to be affected is actually being found.

Hi everybody.

Don’t know if this issue has been addressed in 2.0, but over here, the problem is that apparently cebas has changed the maxscript interface for Thinking Particles. The problem is in function incrementdsops in KrakatoaGUI.ms (and in KrakatoaPartitionTasksOnDeadline.ms), call to isProperty theOp “RandomSeed” doesn’t return true for any operator except for position born (as far as I have checked). Other operators (Born, Volume Position,…) return false, even though random seed is listed when you call showproperties on those operators.

I have made a modified version of this script that works (at least for my setup):

fn incrementdsops g ds incrementvalue =
	(
		try(FranticParticles.LogProgress (" >Scanning TP [" + g.name + "], Dynamic Set "+ ds as string +" for Operators..."))catch()
		or op = 1 to ds.Operators.count do
		(
			local theOp = ds.Operators[op]
			local theOpName = try(theOp.name)catch(undefined)
			if theOpName == undefined do theOpName = try(theOp.getName())catch(undefined)
			if theOpName == undefined do theOpName = ""
				
			randomSeedIndex = -1
			for i = 1 to theOp.numsubs where theOp[i].name == "Random Seed" do randomSeedIndex = i
			
			if (randomSeedIndex > 0 or matchpattern theOpName pattern:"*RandomSeed*" == true) and (matchpattern theOpName pattern:"*NOSEED*" == false) then
			(
				FranticParticles.LogProgress (" >Adjusting Random Seed in TP [" + g.name + "], Dynamic Set "+ ds as string +", Operator "+ op as string+"...")
				if (matchpattern theOpName pattern:"*RandomSeed*" == true) then
				(
					try 
                    (
                        theOp.value += incrementValue
						FranticParticles.LogProgress (" +Value in TP Input containing '*Randomseed*' in the name adjusted by ["+ incrementValue as string +"] to [" + theOp.value as string + "].")
                    ) catch()
				)
				if randomSeedIndex > 0 then
				(
					theOp[randomSeedIndex].value += incrementValue
    				FranticParticles.LogProgress ("  +Random Seed in TP Operator adjusted by ["+ incrementValue as string +"] to [" + theOp[randomSeedIndex].value as string + "].")
				)
			)
		)--end op loop
		for dssub = 1 to ds.numsubs do
		(
			if (try((not matchPattern ds[dssub].comment pattern:"*NOSEED*") and (matchpattern ds[dssub].name pattern:"DS*"))catch(false)) do
			(
				incrementdsops g ds[dssub] incrementvalue
			)
		)
	)

My specs are: KRAKATOA 1.6.1.44739, 3ds MAX 2012 x64 Thinking Particles 4.0

P.S. is there a reason why you don’t call krakatoa’s increment seed functions from the deadline script, but rather have a copy of all the seed increment functions in that script? Just asking out of curiosity

Cheers

I don’t think we have addressed this - if a TP op says it has no Random Seed, we don’t try to see if it actually has one. We added a workaround to allow Integer Helpers connected to inputs (like the MatterWaves random seed) to be changed instead. I will look at your changes and see if it is safe to roll out in a 2.0.x update.

Regarding the question above, it is a fair question.
In the current version, the seed incrementation functionality is hosted by the Deadline rollout, so the functions are not visible to the Deadline slaves. We would have to move them to a global struct that gets loaded on Krakatoa startup even if the UI is not needed.
We felt safer to keep everything encapsulated in the partitioning script, because it means you could tweak that script in the Repository without having to modify the Krakatoa install itself.