From f1998c321a4eec6d75b58d84aa8610971bf21979 Mon Sep 17 00:00:00 2001 From: Brian Picciano Date: Sat, 31 Jul 2021 11:35:39 -0600 Subject: move static files into static sub-dir, refactor nix a bit --- static/src/_posts/2021-06-23-viz-6.md | 402 ++++++++++++++++++++++++++++++++++ 1 file changed, 402 insertions(+) create mode 100644 static/src/_posts/2021-06-23-viz-6.md (limited to 'static/src/_posts/2021-06-23-viz-6.md') diff --git a/static/src/_posts/2021-06-23-viz-6.md b/static/src/_posts/2021-06-23-viz-6.md new file mode 100644 index 0000000..8262c2b --- /dev/null +++ b/static/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. + + -- cgit v1.2.3