---
title: >-
Visualization 6
description: >-
Eat your heart out, Conway!
series: viz
tags: tech art
---
This visualization is essentially the same as the previous, except that each
layer now operates with different parameters than the other, allowing each to
exhibit different behavior.
Additionally, the top layer has been made to be responsive to the bottom, via a
new mechanism where the age of an element on the top layer can be extended based
on the number of bottom layer elements it neighbors.
Finally, the UI now exposes the actual parameters which are used to tweak the
behavior of each layer. Modifying any parameter will change the behavior of the
associated layer in real-time. The default parameters have been chosen such that
the top layer is now rather dependent on the bottom for sustenance, although it
can venture away to some extent. However, by playing the parameters yourself you
can find other behaviors and interesting cause-and-effects that aren't
immediately obvious. Try it!
An explanation of the parameters is as follows:
On each tick, up to `maxNewElements` are created in each layer, where each new
element neighbors an existing one.
Additionally, on each tick, _all_ elements in a layer are iterated through. Each
one's age is determined as follows:
```
age = (currentTick - birthTick)
age -= (numNeighbors * neighborBonusScalar)
age -= (numBottomLayerNeighbors * layerBonusScalar) // only for top layer
```
If an element's age is greater than or equal to the `ageOfDeath` for that layer,
then the element is removed.