# Accumulate Field Node

The *Accumulate Field* node counts a running total of its input values, in the order defined
by the geometry’s indices. The node’s essential
operation is just addition, but instead of only outputting the final total, it outputs the current
value at every element.

## Inputs

- Value
The values to be accumulated.

Warning

When accumulating integer values, be careful to make sure that there are not too many large values. The maximum integer that Blender stores internally is around 2 billion. After that, values may wrap around and become negative. See wikipedia for more information.

- Group Index
An index used to group values together for multiple separate accumulations. This can be thought of as a choice of the “bin” in which to place each value. This input has no effect when it is only a single value.

## Properties

- Data Type
- Float:
The node will accumulate a

*Float*field.- Integer:
The node will accumulate an

*Integer*field.- Vector:
The node will accumulate a

*Vector*field.

- Domain
The attribute domain used for accumulation and for evaluation of the

*Value*input.

## Output

- Leading
The running total of values in the corresponding group, starting at the first value.

- Trailing
The running total of values in the corresponding group, starting at zero.

- Total
The total of all of the values in the corresponding group

## Examples

### Table

Value |
Group Index |
Leading |
Trailing |
Total |
---|---|---|---|---|

1 |
7 |
1 |
0 |
6 |

3 |
7 |
4 |
1 |
6 |

2 |
7 |
6 |
4 |
6 |

1 |
3 |
1 |
0 |
3 |

0 |
3 |
1 |
1 |
3 |

2 |
3 |
3 |
1 |
3 |

A few examples of input values and the node’s results. One important take-away from this table
is that the specific values for the *Group Input* does not matter; it only matters that the
values are shared between elements.

### Stacking Boxes

Here, the node is used in combination with the Random Value Node
to create a stack of randomly scaled boxes. The *Group Index* input is not used, because all boxes
are meant to be in the same stack.

A slightly more complicated version of the previous example,
using the *Group Index* input to create three separate stacks.