Architecture

Various notes about the Max and TP architecture...

PIDs

Recycling PIDs in TP is a well-known and challenging problem.

TP particles have an internal "Unique ID" which PSelection shows as the second integer.

Selective killing of particles from multiple parallel caches is difficult, but it is not easy to find a efficient particle access system with a unique id. In any case, the Unique ID must be a 64bit integer value to have enough range.


"NaN" Results

"NaN" is a Windows term for "Not a Number".

For example: sqrt(-1.0) and log(-1.0) would return a NaN, the generic term for a number that is "not a number".

Windows displays a NaN as -1.#IND ("IND" for "indeterminate")


TP activity icon

The new "TP activity icon" is of great debate since its introduction - some people like it, some people hate it.

For a while it seemed to interfere with everyday operations, especially cancelling Max's "Play" function, but it seems to be better lately.

Supposedly it's just a simple icon switch when TP is calculating - the same as normal Max-TP operation before the icon.

Most of the time Max does its thing until it asks for something from TP, in which case Max waits for TP to finish and then carries onward. If Max defers to TP and TP begins calculating, and then Max also starts calculating again for whatever reason, this can sometimes lead to instabilities.

Most problems come with "Edit on the Fly" disabled (meaning "update in real-time").

For example, if an object is selected in Obj2Particle and you move the object in Max's viewport, TP will update from frame 0 every step you move.

Even if the Master Dynamic is off TP will be called from Max to update the "Time" value.