The particle node implements a particle object (a collection of
particles). It uses the position, velocity, acceleration (and mass,
if the user adds it) attributes to compute dynamics for the
particles. It also has attributes to define goal forces for the
particles and to write per-particle expressions for the particles.
To save memory, many attributes are added dynamically as the user
needs them: these include lifespan, color, goals, and most
rendering attributes. The particle node also maintains the
collection of collision events which has been defined for this
object, and resolves the effect of those events as collisions
occur. 
| Long name (short name) | Type | Default | Flags | 
|  | 
| position(pos) | vectorArray | empty |    | 
|  | 
| rampPosition(rps) | vectorArray | empty |     | 
|  | 
| centroid(ctd) | double3 |  |   | 
| 
|  |  
| centroidX(ctdx) | double | 0.0 |   |  
 | 
| 
|  |  
| centroidY(ctdy) | double | 0.0 |   |  
 | 
| 
|  |  
| centroidZ(ctdz) | double | 0.0 |   |  
 | 
|  | 
| lastPosition(lpos) | vectorArray | empty |    | 
|  | 
| velocity(vel) | vectorArray | empty |    | 
|  | 
| rampVelocity(rvl) | vectorArray | empty |     | 
|  | 
| lastVelocity(lvel) | vectorArray | empty |    | 
|  | 
| acceleration(acc) | vectorArray | empty |    | 
|  | 
| rampAcceleration(rac) | vectorArray | empty |     | 
|  | 
| force(frc) | vectorArray | empty |   | 
|  | 
| inputForce(ifc) | vectorArray | empty |     | 
|  | 
| worldPosition(wps) | vectorArray | empty |   | 
|  | 
| worldCentroid(wctn) | double3 |  |   | 
| 
|  |  
| worldCentroidX(wctx) | double | 0.0 |   |  
 | 
| 
|  |  
| worldCentroidY(wcty) | double | 0.0 |   |  
 | 
| 
|  |  
| worldCentroidZ(wctz) | double | 0.0 |   |  
 | 
|  | 
| lastWorldPosition(lwps) | vectorArray | empty |    | 
|  | 
| worldVelocity(wvl) | vectorArray | empty |   | 
|  | 
| worldVelocityInObjectSpace(wvo) | vectorArray | empty |    | 
|  | 
| lastWorldVelocity(lwvl) | vectorArray | empty |    | 
|  | 
| lastWorldMatrix(lwm) | matrix | identity |    | 
|  | 
| position0(pos0) | vectorArray | empty |      | 
|  | 
| velocity0(vel0) | vectorArray | empty |      | 
|  | 
| acceleration0(acc0) | vectorArray | empty |      | 
|  | 
| emitterId0(eid0) | doubleArray | empty |   | 
|  | 
| useStartupCache(usc) | bool | false |     | 
|  | 
| startupCachePath(scp) | string | NULL |     | 
|  | 
| startupCacheFrame(scf) | integer | 0 |     | 
|  | 
| cachedPosition(cpos) | vectorArray | empty |    | 
|  | 
| lastCachedPosition(lcps) | vectorArray | empty |    | 
|  | 
| cachedWorldPosition(cwps) | vectorArray | empty |    | 
|  | 
| cachedWorldCentroid(cwcn) | double3 |  |    | 
| 
|  |  
| cachedWorldCentroidX(cwcx) | double | 0.0 |    |  
 | 
| 
|  |  
| cachedWorldCentroidY(cwcy) | double | 0.0 |    |  
 | 
| 
|  |  
| cachedWorldCentroidZ(cwcz) | double | 0.0 |    |  
 | 
|  | 
| cachedVelocity(cvel) | vectorArray | empty |    | 
|  | 
| cachedWorldVelocity(cwvl) | vectorArray | empty |    | 
|  | 
| count(cnt) | integer | 0 |   | 
|  | 
| computingCount(cmp) | bool | false |    | 
|  | 
| mass(mas) | doubleArray | empty |    | 
|  | 
| mass0(mas0) | doubleArray | empty |      | 
|  | 
| massCache(masc) | doubleArray | empty |    | 
|  | 
| particleId(id) | doubleArray | empty |    | 
|  | 
| particleId0(id0) | doubleArray | empty |      | 
|  | 
| idCache(idc) | doubleArray | empty |    | 
|  | 
| idMapping(idm) | compound | n/a |    | 
| 
|  |  
| sortedId(sid) | intArray | empty |    |  
 | 
| 
|  |  
| idIndex(idix) | intArray | empty |    |  
 | 
|  | 
| nextId(nid) | integer | 0 |     | 
|  | 
| nextId0(nid0) | integer | 0 |     | 
|  | 
| birthTime(bt) | doubleArray | empty |   | 
|  | 
| birthTime0(bt0) | doubleArray | empty |      | 
|  | 
| birthTimeCache(btc) | doubleArray | empty |     | 
|  | 
| age(ag) | doubleArray | empty |   | 
|  | 
| age0(ag0) | doubleArray | empty |     | 
|  | 
| ageCache(agc) | doubleArray | empty |   | 
|  | 
| emission(emt) | genericArray | empty |    | 
|  | 
| emitterId(eid) | doubleArray | empty |   | 
|  | 
| dieOnEmissionVolumeExit(dve) | bool | false |      | 
|  | 
| isFull(ifl) | bool | false |   | 
|  | 
| newParticles(npt) | genericArray | empty |     | 
|  | 
| collisionEvents(cev) | bool | false |  | 
|  | 
| death(dth) | bool | false |  | 
|  | 
| lifespanMode(lfm) | enum | 0 |      | 
|  | 
| lifespanRandom(lfr) | double | 0.0 |      | 
|  | 
| finalLifespanPP(flp) | doubleArray | empty |    | 
|  | 
| generalSeed(gsd) | integer | 0 |    | 
|  | 
| randState(rnst) | long3 |  |    | 
| 
|  |  
| randStateX(rstx) | integer | 0 |    |  
 | 
| 
|  |  
| randStateY(rsty) | integer | 0 |    |  
 | 
| 
|  |  
| randStateZ(rstz) | integer | 0 |    |  
 | 
|  | 
| expressionsAfterDynamics(ead) | bool | false |      | 
|  | 
| executeCreationExpression(ece) | bool | false |  | 
|  | 
| executeRuntimeBeforeDynamicsExpression(erbe) | bool | false |  | 
|  | 
| executeRuntimeAfterDynamicsExpression(erae) | bool | false |  | 
|  | 
| input(xi) | Generic | NULL |      | 
|  | 
| output(xo) | Generic | NULL |     | 
|  | 
| time(tim) | time | 0film |    | 
|  | 
| frame(frm) | time | 0film |    | 
|  | 
| internalRuntimeExpression(irx) | string | NULL |    | 
|  | 
| internalRuntimeBeforeDynamicsExpression(irbx) | string | NULL |     | 
|  | 
| internalRuntimeAfterDynamicsExpression(irax) | string | NULL |     | 
|  | 
| internalCreationExpression(icx) | string | NULL |     | 
|  | 
| currentParticle(xcp) | integer | 0 |  | 
|  | 
| diedLastTime(dlt) | integer | 0 |     | 
|  | 
| netEmittedLastTime(nlt) | integer | 0 |     | 
|  | 
| startEmittedIndex(sei) | integer | -1 |     | 
|  | 
| isDynamic(isd) | bool | true |      | 
|  | 
| dynamicsWeight(dw) | double | 1.0 |      | 
|  | 
| forcesInWorld(fiw) | bool | true |      | 
|  | 
| conserve(con) | double | 1.0 |      | 
|  | 
| emissionInWorld(eiw) | bool | true |      | 
|  | 
| maxCount(mxc) | integer | -1 |      | 
|  | 
| levelOfDetail(lod) | double | 1 |      | 
|  | 
| inheritFactor(inh) | double | 0.0 |      | 
|  | 
| seed(sd) | integer | 1 |      | 
|  | 
| fieldData(fd) | compound | n/a |    | 
| 
|  |  
| fieldDataPosition(fdp) | vectorArray | empty |    |  
 | 
| 
|  |  
| fieldDataVelocity(fdv) | vectorArray | empty |    |  
 | 
| 
|  |  
| fieldDataMass(fdm) | doubleArray | empty |    |  
 | 
| 
|  |  
| fieldDataDeltaTime(fdt) | time | 0film |    |  
 | 
|  | 
| emitterData(ed) | compound | n/a |    | 
| 
|  |  
| emitterDataPosition(edp) | vectorArray | empty |    |  
 | 
| 
|  |  
| emitterDataVelocity(edv) | vectorArray | empty |    |  
 | 
| 
|  |  
| emitterDataDeltaTime(edt) | time | 0film |    |  
 | 
|  | 
| forceDynamics(fdn) | bool | false |  | 
|  | 
| currentTime(cti) | time | 0film |     | 
|  | 
| currentTimeSave(cts) | time | 0film |     | 
|  | 
| evaluationTime(eti) | time | 0.0film |     | 
|  | 
| currentSceneTime(cst) | time | 1.0film |    | 
|  | 
| lastTimeEvaluated(lti) | time | 0film |    | 
|  | 
| lastSceneTime(lst) | time | 0film |    | 
|  | 
| cachedTime(chti) | time | 0film |    | 
|  | 
| timeStepSize(tss) | time | 0film |   | 
|  | 
| sceneTimeStepSize(sts) | time | 0film |    | 
|  | 
| startFrame(stf) | double | 1.0 |      | 
|  | 
| startTime(stt) | time | 0.0film |    | 
|  | 
| inputGeometry(igeo) | Generic | n/a |     | 
|  | 
| inputGeometryPoints(igpt) | vectorArray | empty |   | 
|  | 
| inputGeometrySpace(igs) | enum | 0 |      | 
|  | 
| enforceCountFromHistory(ecfh) | bool | true |      | 
|  | 
| targetGeometry(tgeo) | Generic | n/a |   | 
|  | 
| targetGeometryWorldMatrix(tgm) | matrix | identity |    | 
|  | 
| targetGeometrySpace(tgs) | enum | 2 |      | 
|  | 
| goalSmoothness(gsm) | double | 3 |      | 
|  | 
| goalGeometry(ggeo) | Generic | n/a |     | 
|  | 
| goalWeight(gw) | double | 0.0 |       | 
|  | 
| goalActive(ga) | bool | true |       | 
|  | 
| goalUvSetName(guv) | string | NULL |      | 
|  | 
| cacheData(chd) | bool | 0 |      | 
|  | 
| cacheWidth(chw) | integer | 1 |     | 
|  | 
| collisions(col) | bool | false |  | 
|  | 
| traceDepth(trd) | integer | 10 |      | 
|  | 
| collisionData(cda) | compound | n/a |    | 
| 
|  |  
| collisionGeometry(cge) | sweptGeometry | NULL |      |  
 | 
| 
|  |  
| collisionResilience(crs) | double | 0.0 |     |  
 | 
| 
|  |  
| collisionFriction(cfr) | double | 0.0 |     |  
 | 
| 
|  |  
| collisionOffset(cof) | double | 0.01 |     |  
 | 
|  | 
| collisionRecords(crc) | genericArray | empty |    | 
|  | 
| totalEventCount(tec) | integer | 0 |   | 
|  | 
| eventTest(evt) | bool | false |   | 
|  | 
| lastTotalEventCount(ltec) | integer | 0 |     | 
|  | 
| eventSeed(esd) | integer | 0 |    | 
|  | 
| eventRandState(erst) | long3 |  |    | 
| 
|  |  
| eventRandStateX(ersx) | integer | 0 |    |  
 | 
| 
|  |  
| eventRandStateY(ersy) | integer | 0 |    |  
 | 
| 
|  |  
| eventRandStateZ(ersz) | integer | 0 |    |  
 | 
|  | 
| eventTarget(etg) | Message | n/a |     | 
|  | 
| eventName(evn) | string | NULL |      | 
|  | 
| eventValid(evv) | integer | -1 |       | 
|  | 
| eventCount(ecp) | short | -1 |       | 
|  | 
| eventEmit(eve) | short | -1 |       | 
|  | 
| eventSplit(evs) | short | -1 |       | 
|  | 
| eventDie(evd) | short | -1 |       | 
|  | 
| eventRandom(evr) | short | -1 |       | 
|  | 
| eventSpread(esp) | double | -1.0 |       | 
|  | 
| eventProc(epr) | string | NULL |       | 
|  | 
| instanceData(idt) | compound | n/a |      | 
| 
|  |  
| instanceAttributeMapping(iam) | stringArray | NULL |    |  
 | 
| 
|  |  
| instancePointData(ipd) | genericArray | empty |    |  
 | 
|  | 
| debugDraw(dbd) | short | 0 |    | 
|  | 
| numberOfEvents(nev) | short | 0 |     | 
|  | 
| eventNameCount(enc) | short | 0 |     | 
|  | 
| fieldConnections(fc) | Message | n/a |      | 
|  | 
| collisionConnections(cc) | Message | n/a |      | 
|  | 
| connectionsToMe(ct) | Message | n/a |      | 
|  | 
| auxiliariesOwned(ao) | Message | n/a |     | 
|  | 
| emitterConnections(ec) | Message | n/a |      | 
|  | 
| inheritColor(inc) | bool | false |     | 
|  | 
| shapeNameMsg(snmg) | Message | n/a |    | 
|  | 
| doDynamics(ddy) | bool | false |     | 
|  | 
| doEmission(dem) | bool | false |     | 
|  | 
| forceEmission(fem) | bool | false |     | 
|  | 
| doAge(dag) | bool | false |     | 
|  | 
| agesLastDone(agld) | double | 0.0 |     | 
|  | 
| timeLastComputed(tlc) | double | 0.0 |     | 
|  | 
| parentMatrixDirty(pmd) | bool | false |     | 
|  | 
| newFileFormat(nff) | short | 0 |      | 
|  | 
| depthSort(ds) | bool | false |     | 
|  | 
| particleRenderType(prt) | enum | 3 |      | 
|  | 
| disableCloudAxis(dca) | bool | false |      | 
|  | 
| normalizeVelocity(nvl) | bool | false |     | 
|  | 
| samplerPerParticleData(spd) | genericArray | empty |   | 
|  | 
| ppFieldData(ppfd) | genericArray | empty |     | 
|  | 
| ownerPPFieldData(opfd) | genericArray | empty |     | 
|  | 
| deformedPosition(dpos) | Generic | n/a |     | 
|  | 
| useCustomCache(ucc) | bool | false |      |