←ALL OPERATORS
> simulations

Physarum

simulations/physarum·v1.5.1
IN:1  OUT:2

The Physarum operator moves agents that sense a trail field ahead of them, turn toward the strongest reading, step forward and deposit into the field, which diffuses and decays every frame. The population organizes itself into veins, meshes and maze-solving networks, and the operator outputs the agents as points with their heading and the trail as a field carrying Weight.

Sensor distance and angle, move distance and rotation angle each scale with the trail under the agent, so agents on a strong trail can sense farther, turn sharper or move faster. The simulation runs in 3D or in the XY plane inside a simulation box, a mesh or field collider keeps the agents out of or inside a shape, and Target Feedback Loop POPs for the particles and the field re-inject both loops (Initialize, Start, Play) from downstream.

PAGEPhysarum
Target Particle Feedback Loop POPTargetpareticlepopA reference to a POP node downstream in the network. This reference will cause a feedback loop and re-injects the particles next frame.
Target Field Feedback Loop POPTargetfieldpopA reference to a POP node downstream in the network that is re-injected as the field state next frame.
Max Axis ResolutionMaxaxisresSets the number of voxels along the longest axis. The other axes follow the box proportions.
Display BoundsDisplayboundsDisplay the simulation box.
InitializeInitializepulseInitializes the POP from its input and parameters. The agents come from the input and the trail starts empty.
StartStartpulseStart the simulation from the initialized state.
PlayPlayPause or play the feedback loop.
StepSteppulseAdvance the simulation by one frame while paused.
PAGESense
Sense ScaleSensescaleScales the trail value the agents read before it is clamped to 1. Higher values are more binary, lower values more graded.
Sensor Distance BaseSensordistancebaseSets the base reach of the sensors ahead of the agent in world units, before the trail response.
Sensor Distance PowerSensordistancepowerSets the exponent of the trail value under the agent that modulates the sensor distance. 0 keeps it constant.
Sensor Distance ScaleSensordistancescaleSets the sensor distance in world units added at a sensed value of 1, scaled by the sensed value raised to Sensor Distance Power.
Sensor Angle BaseSensoranglebaseSets the angle of the side sensors from the heading. Angles are given in degrees.
Sensor Angle PowerSensoranglepowerSets the exponent of the trail value under the agent that modulates the sensor angle. 0 keeps it constant.
Sensor Angle ScaleSensoranglescaleSets the sensor angle added at a sensed value of 1, scaled by the sensed value raised to Sensor Angle Power. Angles are given in degrees.
PAGEMove
Move Distance BaseMovedistancebaseSets the base move per second in world units, before the trail response.
Move Distance PowerMovedistancepowerSets the exponent of the trail value under the agent that modulates the move distance. 0 keeps it constant.
Move Distance ScaleMovedistancescaleSets the move per second in world units added at a sensed value of 1, scaled by the sensed value raised to Move Distance Power.
Rotation Angle BaseRotationanglebaseSets the turn per 1/60 second toward the stronger side, more per frame below 60 FPS. Angles are given in degrees.
Rotation Angle PowerRotationanglepowerSets the exponent of the trail value under the agent that modulates the rotation angle. 0 keeps it constant.
Rotation Angle ScaleRotationanglescaleSets the turn added at a sensed value of 1, scaled by the sensed value raised to Rotation Angle Power. Angles are given in degrees.
PAGEField
Trail LevelTraillevelSets the average trail value at rest, independent of the agent count and the resolution. Lanes read 5 to 20 times this.
DecayDecaySets the fraction of the trail lost per 1/60 second, the same per second at any frame rate. Low values smear the network, high values keep it crisp.
Smooth DepositDepositsplatSpread each deposit over the 8 surrounding cells, for a smoother trail at low agent density.
Diffuse StrengthDiffusestrengthSets the strength of each diffusion pass, from 0 for no blur to 1 for a full Gaussian blur.
Diffuse RadiusDiffuseradiusSets the diffusion radius per 1/60 second as a fraction of the box's longest axis, up to 16 cells.
Diffuse PassesDiffusepassesSets the number of diffusion passes per frame.
PAGECollisions
Collision POPCollisionpopThe collider, either a mesh POP or an SDF field volume.
SolidSolidWhen on, agents inside the collider are pushed out. When off, the collider is hollow.
Keep InsideKeepinsideWhen on, the collider is hollow and every outside agent is pulled back in. When off, only escaping agents are caught.
ProjectProjectPlace every agent on the collider surface instead of colliding.
Collision OffsetCollisionoffsetDistance the agents keep from the collider surface.
Collision DampingCollisiondampingVelocity lost on contact. 0 bounces and 1 stops.
Uniform ScaleScaleSpecifies a uniform scale factor for the collider.
Display GeometryDisplaygeoEnable drawing the collider, as the mesh or the field's zero surface.
PAGECommon
Free Extra GPU MemoryFreeextragpumemFree memory that has accumulated when output memory has grown and shrunk.
Input 0 POP - Particles In
Output 0 POP - Particles Out
Output 1 POP - Field