Comment

Comment by sgentle

As far as I can tell, this isn't adding any meaningful topology. The various notions of graph-connectedness basically amount to a standard finite-state CA with a slightly complex update rule.

The per-cell update mechanism, using "amazing dragons" as an example:

1. Calculate a metric for every cell based on its neighbours

   eg: metric = sum(1/degree if degree > 0)
2. Calculate whether each cell is eligible based on its metric

   eg: eligible = (state > 0) ? (0.9 <= metric <= 2.6) : (1.4 <= metric <= 7.0)
3. Calculate new state based on degree (degree = eligible ? number of eligible neighbours : 0)

   eg: state = (degree == 1 || degree == 7) ? 0 : degree
Since the "edges" just represent eligibility of neighbours, which depends on their neighbours, you can replace them with a larger neighbourhood (ie 5x5 instead of 3x3). And since state is just degree or 0, you effectively have 1 more state than degrees.

Here's an example of that approach: https://www.shadertoy.com/view/wXSyRw

I think for this to live up to the name it would need one or both of the following:

1. edges that mask or gate cells in some way (ie a dynamic neighbourhood) 2. rules that turn edges into other edges without going via cell states

parent sgentle 1 year ago

Discussion

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton