From 9be52bdaa4cf997f51ab2bf4c5fbbb84b1237fd1 Mon Sep 17 00:00:00 2001 From: Brian Picciano Date: Wed, 23 Jun 2021 18:08:29 -0600 Subject: [PATCH] viz6 --- src/_posts/2021-06-23-viz-6.md | 402 +++++++++++++++++++++++++++++++++ 1 file changed, 402 insertions(+) create mode 100644 src/_posts/2021-06-23-viz-6.md diff --git a/src/_posts/2021-06-23-viz-6.md b/src/_posts/2021-06-23-viz-6.md new file mode 100644 index 0000000..8262c2b --- /dev/null +++ b/src/_posts/2021-06-23-viz-6.md @@ -0,0 +1,402 @@ +--- +title: >- + Visualization 6 +description: >- + Eat your heart out, Conway! +series: viz +tags: tech art +--- + + + + + +
+ + +
+ +
+ +
+

Bottom Layer

+
+
+ + + +
+
+ +
+

Top Layer

+
+
+ + + + +
+
+ +
+ +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. + +