Here's a feature suggestion I've been considering for a while now: could an option be added to stop Identify from detecting spaceships, forcing it to only output results for oscillators?
I have at least three important use cases for such a feature:
----
Firstly, for [R]History and [R]Super, state 6 cells are not counted as part of the pattern. As such, Identify will not consider these if they notice that the live cells in an pattern have repeated, and will incorrectly conclude that the entire configuration has moved and assume the pattern is a spaceship, which it is not. This has caught out at least two other users in the past (
1,
2) who have pointed this out, but since graycells can't be counted as part of the pattern, Identify alone can't be fixed to accommodate them. However, if there existed some way to block Identify from concluding something is a spaceship, Identify would have to check the pattern's whole evolution sequence, eventually correctly find out it's actually an oscillator, and provide the expected statistics for the pattern.
Code: Select all
x = 11, y = 3, rule = B2n3/S23-qHistory
4.A$F2.2A5.F$4.A!
Code: Select all
x = 8, y = 9, rule = LifeHistory
3.2F$2.4B$.6B$.6B$.B3A2B$FBABA2BF$.B3A2B$2.4B$2.B2F!
----
Another use case would be trying to find the overall period of a spaceship, wick or wave on a certain bounded grid. Here's a single glider on a 29-by-31 torus:
Code: Select all
x = 3, y = 3, rule = B3/S23:T29,31
o$obo$2o!
The overall period of this is 3596, but I had to check this manually, since using Identify on this reports it as a spaceship. In some cases it's possible to increase the amount of spaceships on a bounded grid to get it to come to a correct conclusion, but this isn't always possible, and it can also produce unexpected, irrelevant results such as this "2c/124 spaceship":
Code: Select all
x = 28, y = 31, rule = B3/S23:T29,31
11bo$11bobo$5bo5b2o11bo$5bobo16bobo$5b2o17b2o$bo$bobo$b2o$6bo$6bobo$b
o4b2o$bobo$b2o$6bo$6bobo$bo4b2o$bobo$b2o$6bo18bo$6bobo16bobo$6b2o12bo
4b2o$20bobo$15bo4b2o$15bobo$10bo4b2o$10bobo$5bo4b2o$5bobo16bo$o4b2o17b
obo$obo21b2o$2o!
If we had an option to stop Identify from recognising spaceships in these situations, it'd be a trivial task to place a single spaceship inside of a bounded grid, then use Identify to check the period of the overall configuration in seconds.
----
Thirdly, we have Margolus patterns. This rulespace is notorious for not working well with Identify, especially for tiny single-cell oscillators which are always misreported as spaceships. Larger, high-period oscillators aren't off the hook either, such as this p28:
Code: Select all
x = 3, y = 3, rule = MargSingRot
bo$b2o$b2o!
If we end up in an situation where a pattern we know for a fact is an oscillator is misidentified as a spaceship, we can simply toggle this new option to get Identify to ignore spaceship results and force it to recognise it as an oscillator and provide correct results accordingly.
----
A fourth potential application of this option could be for patterns which use PASTE commands. In the following example, we have a configuration that oscillators with a period of 8, however Identify falsely concludes that it must be a period-4, mod-1 knightship, something which is typically impossible. If we disabled spaceship outputs for Identify, we'd be able to force it to correctly recognise that this behaves much more akin to an oscillator with period 8 and provide results accordingly. I'm personally not too sure about this last justification since paste commands aren't "vanilla CA", even less so than [R]History/[R]Super gray cells, but it's still a situation in which oscillators are incorrectly assumed to be spaceships.
Code: Select all
x = 1, y = 1, rule = B3-jr4n/S2-k3
!
[[
PASTET EVERY 8 0 PASTE bo2$o! 2 -2
PASTET EVERY 8 1 PASTE o2$bo! 1 -2
PASTET EVERY 8 2 PASTE o$2bo! 0 -1
PASTET EVERY 8 3 PASTE 2bo$o! 0 0
PASTET EVERY 8 4 PASTE bo2$o! 1 0
PASTET EVERY 8 5 PASTE o2$bo! 2 0
PASTET EVERY 8 6 PASTE o$2bo! 2 0
PASTET EVERY 8 7 PASTE 2bo$o! 2 -1
]]