There are many generalizations of Conway's Game of Life. One of them is the isotropic non-totalistic rulespace, in which the state of a cell in the next generation depends not just on its state and the amount of alive cells around it, but also the relative positions of the cells around it.
Given an rulestring corresponding to an isotropic non-totalistic cellular automaton, an integer \$T\$, and an initial pattern \$P\$, simulate the initial pattern \$P\$ for \$T\$ generations under the given rulestring.
- The given rulestring is valid and does not contain the B0 transition.
- \$0 < T \le 10^3\$
- Area of bounding box of \$P \le 10^3\$
The rulestring, \$T\$ and \$P\$ will all be given in any necessary (specified) format.
Output the resulting pattern after \$P\$ is run \$T\$ generations.
Pattern (in canonical RLE format):
x = 15, y = 13, rule = B2c3aei4ajnr5acn/S2-ci3-ck4in5jkq6c7c 3b2o$2ob2o$2o4$13b2o$13b2o$3bo$2b3o$2bob2o$2bobo$2b2o!
x = 15, y = 13, rule = B2c3aei4ajnr5acn/S2-ci3-ck4in5jkq6c7c 3b2o$2ob2o$2o4$13b2o$13b2o$3b2o$b5o$bo3bo$bo2bo$2b3o!
This is extended code-golf, which means that the program with smallest (length in bytes - bonuses) wins.
Standard loopholes are not allowed. Your program is not allowed to use any external libraries that deal with cellular automata. Your program is expected to finish relatively quickly (in at most 10 minutes).
- 10 for finishing in under 10 seconds under max tests
- 20 for accepting the rulestring in canonical form (e.g.