Identify isn't recognising spaceship mods anymore:
Code: Select all
x = 5, y = 4, rule = B3/S23
bo2bo$o$o3bo$4o!
[[ GRID THEME Generations TRACK -1/2 0 ]]
Code: Select all
x = 34, y = 23, rule = B3/S23
4b2o10b2o10b2o$4b2o10b2o10b2o$3bo2bo8bo2bo8bo2bo$3b4o8b4o8b4o$2bob2obo
6bob2obo6bob2obo$3bo2bo8bo2bo8bo2bo2$2b2o2b2o6b2o2b2o6b2o2b2o$bo6bo4bo
6bo4bo6bo2$2bo4bo6bo4bo6bo4bo$3bo2bo8bo2bo8bo2bo$4b2o10b2o10b2o2$b2o4b
2o4b2o4b2o4b2o4b2o$o2bo2bo2bo2bo2bo2bo2bo2bo2bo2bo2bo$b2o4b2o4b2o4b2o
4b2o4b2o$2bo4bo6bo4bo6bo4bo2$14bo2$17b3o$17bo!
[[ GRID THEME Generations TRACK 0 -1/10 ]]
Code: Select all
x = 3, y = 3, rule = B3/S23
o$obo$2o!
[[ GRID THEME Generations TRACK -1/4 1/4 ]]
----
There's also a weird case for PCA I've found: Identify calculates that the period of this oscillator is 24. Moreover, the mirror image of the initial phase appears exactly halfway through its evolution, so it concludes that the mod of this oscillator must also be 12.
Code: Select all
x = 2, y = 2, rule = 2PCA4,0,2,4,12,8,5,9,7,1,6,10,11,3,13,14,15
.C$HD!
However, this Mod result is not entirely accurate. If we compare how it looks at T=2 and T=14, the positions of the cells in the oscillator are completely different. The pattern becoming its mirror image at exactly halfway through its evolution cycle is far more coincidental than anything, so saying it has a mod of 12 isn't entirely right.
This ultimately comes down to the fact that the rule PCA_4, while invariant under rotation, is not invariant under reflection. So while FlipXY (which is equivalent to an 180-degree rotation), RotCW, RotCCW and RotCWorCCW are all perfectly valid transformations for an oscillator in PCA_4, FlipX is not. This isn't to say that FlipX isn't valid for the entirety of PCA - for example, it's a perfectly normal sight in PCA_1:
Code: Select all
x = 10, y = 2, rule = 2PCA4,0,4,8,3,1,10,6,7,2,9,5,11,12,13,14,15
IC3.B2.IC$LF6.LF!
Ultimately, for Identify, LifeViewer should either compare more phases of patterns to conclude whether an output of Mod is valid, or check how symmetric the rule itself is and block certain transformation types from being produced if incompatible with the rule.
----
Are there any plans to fix false pattern classifications by Identify for Margolus rules? There are still a handful of oscillators which Identify classifies as spaceships, particularly the small oscillators consisting of a single cell. Here's a typical p4:
Code: Select all
x = 5, y = 4, rule = M0,4,1,10,8,3,9,11,2,6,12,14,5,7,13,15
2$3bo!
A single-cell figure-eight p8:
Code: Select all
x = 4, y = 4, rule = M15,11,7,5,13,3,6,8,14,9,10,4,12,2,1,0
2$2bo!
A p8 with a wider cycle:
Code: Select all
x = 1, y = 1, rule = M15,13,7,12,14,10,9,1,11,6,5,2,3,4,8,0
o!
And a larger example, a period-28 oscillator:
Code: Select all
x = 3, y = 3, rule = MargSingRot
bo$b2o$b2o!
From what I can see, Identify's classification of these as spaceships is entirely due to it jumping to conclusions far too early. When identified from T=0, the value of T after identification is complete is always less than or equal to the oscillator's actual period. While I'm not too sure about how to fix these cases, it seems like having Identify actually test the spaceship period and displacement it calculates first, by evolving the pattern for that number of generations and checking if the phases match and that the pattern has actually displaced itself by that distance and direction, would get rid of these false positives.
For actual spaceships such as the following, it wouldn't change anything, since these would pass such a test.
Code: Select all
x = 3, y = 3, rule = M0,2,8,3,1,5,6,7,4,9,10,11,12,13,14,15
bo$2bo$2o!
Code: Select all
x = 4, y = 5, rule = M0,2,8,3,1,5,6,7,4,9,10,11,12,13,14,15
2b2o2$2bo2$o!
----
Identify doesn't recognise spaceships in [R]Super if they have a trail:
Code: Select all
x = 3, y = 3, rule = B3/S23History
A$A.A$2A!
Code: Select all
x = 3, y = 3, rule = B3/S23Super
A$A.A$2A!
Code: Select all
x = 3, y = 3, rule = B3/S23Super
I$I.I$2I!
Code: Select all
x = 3, y = 3, rule = B3/S23Super
K$K.K$2K!
Code: Select all
x = 3, y = 3, rule = B3/S23Super
M$M.M$2M!
It can, however, if a spaceship with a trail has its trail overwritten with a spaceship without a trail:
Code: Select all
x = 12, y = 12, rule = B3/S23Super
9.M$9.M.M$9.2M7$K$K.K$2K!