Mass Flow Conveyor

Overview and Key Concepts

A mass flow conveyor can simulate the flow of high volumes of mass flow units. The conveyor uses fluid-like logic, as opposed to simulating each discrete unit. Instead of simulating thousands of bottles, cartons, or other small pieces individually, it deals with densities of product. For example, if an individual carton takes up an area footprint of 0.05m x 0.05m (0.0025 m2), then the maximum possible carton density for such a carton can be calculated as 1 carton per 0.0025 m2, or 400 cartons / m2. A conveyor can then use its width and speed to calculate a maximum possible flow rate in cartons per time unit. Given these calculations, the conveyor can simulate the flow of these cartons, not by tracking individual cartons, but by merely tracking the density changes that result from other changes like speed, upstream and downstream availability, etc.

In the above animation, while many "units" are being drawn, in reality this is merely a graphics trick. The rendering engine just draws bottles based on the density at a given point on the conveyor. It is not actually simulating each bottle. Rather, the movement of the orange lines, which represent density/rate changes on the conveyor, are the only elements that are actually simulated. This enables an incredible speed improvement over simulating individual bottles.

The mass flow conveyor is especially useful in bottling, food production, and other high speed/high volume manufacturing settings, where the sheer volume of product makes it infeasible to simulate each piece individually.


Generating Flow

There are two ways to generate the flow of mass flow units on a conveyor. The easiest way is to define the conveyor's Generative Rate property. When this value is non-zero, the conveyor will act as a source for flow units. When the simulation starts, flow units will immediately start to travel down the conveyor.

The second way to generate flow on the conveyor is to use a mass flow entry transfer. You can create this object by 'A' connecting from any fixed resource to the conveyor. Once created, you can define properties for how to translate from discrete flow items to flow units.

Distributing Flow Downstream

When a conveyor has multiple downstream conveyors, it must choose how to distribute flow that moves from it to those downstream conveyors. This is similar to the Send To Port logic that is fired when items are released from fixed resources. However, here there are no discrete items being simulated. Mass flow conveyors must instead use an algorithm that involves flow rate balancing calculations instead of discrete routing decisions.

The mass flow conveyor uses the following algorithm to distribute flow to downstream conveyors.

  1. Sort Downstream Conveyors: The conveyor sorts the set of downstream conveyors by their Upstream Output Order property in ascending order. For example, an Upstream Output Order value of 1 will be sorted before an Upstream Output Order of 2.
  2. Distribute Flow Among Tied Downstream Conveyors: Starting with the lowest Upstream Output Order value, for each group of downstream conveyors with the same Upstream Output Order, the conveyor will evenly distribute its output flow among that group of conveyors. This distribution will be weighted by the width of the downstream conveyor. For example, let's say a conveyor has two downstream conveyors with an Upstream Output Order value of 1. One of those conveyors has a width of 0.5m, and the other conveyor has a width of 1m. Here the conveyor will attempt to send one third of its flow rate to the 0.5m conveyor, and two thirds of its flow rate to the 1m conveyor. If one or more of those conveyors cannot receive that amount, because of a slower speed for example, then the blocked amount will again be redistributed among conveyors in the group that can receive that amount, again weighted by their width.
  3. Proceed to the Next Upstream Output Order: If there is remaining flow that is not captured by the current group of downstream conveyors, then the conveyor will proceed to the group of conveyors with the next-higher Upstream Output Order value, again using the distribution calculation of step 2. This will proceed until all the conveyor's output flow rate is assigned to downstream conveyors, or until all downstream conveyors are receiving their maximum flow rate.
  4. Accumulate/Lose Excess: If there is remaining flow that is not assigned to downstream conveyors, the conveyor will either accumulate this extra amount, or track it as a loss (as if the product falls off the end of the conveyor), depending on the conveyor's Excess property setting.


The mass flow conveyor does not have any events beyond the standard set of events. You can instead use photo eyes to define conveyor logic.

For information on events, see the Event Listening page.


For statistical purposes, the conveyor will be in one of the following states at various points during a simulation run. The current state can be viewed by clicking on the object and then viewing the Statistics panel in Properties.


There are no items on the conveyor.


There is at least one item on the conveyor.


There is at least one item on the conveyor, but the conveyor's speed has is set to zero. The conveyor will go into this state immediately when its speed is set to zero (i.e. at the time it STARTS to decelerate to zero).


The conveyor tracks the following statistics. These can be viewed by clicking on the object and then viewing the Statistics panel in Properties.


The number of flow units in the conveyor.


The total number of flow units that have entered the conveyor.


The total number of flow units that have exited the conveyor.


If you have set the Excess property to Track as Loss, then this statistic will track the amount of flow units that have run off the end of the conveyor without proceeding to a downstream conveyor.

Properties Panels

The mass flow conveyors use the following properties panels:


The mass flow conveyors use the following properties:

AlignToSide Options
EndLocation Array(3)
Speed Unit
StartLocation Array(3)
UseVirtualLength Boolean
VirtualLength Unit
Visualization Node Options
Width Unit
ExcessMode Options
GenerativeFlowRate Number
GenerativeFlowUnit Options
UpstreamOutputOrder Number
  • AlignToSide
  • ConveyorEndLocation (alias EndLocation)
  • ConveyorSpeed (alias Speed)
  • ConveyorStartLocation (alias StartLocation)
  • ConveyorUseVirtualLength (alias UseVirtualLength)
  • ConveyorVirtualLength (alias VirtualLength)
  • ConveyorVisualization (alias Visualization)
  • ConveyorWidth (alias Width)
  • ExcessMode
  • GenerativeFlowRate
  • GenerativeFlowUnit
  • UpstreamOutputOrder

Straight mass flow conveyors use the following properties:

  • ConveyorHorizontalLength

Curved mass flow conveyors use the following properties:

  • ConveyorRadius
  • ConveyorStartAngle
  • ConveyorSweepAngle