Any serious survey of constructions in Margolus Critters?

For discussion of other cellular automata.
User avatar
pcallahan
Posts: 854
Joined: April 26th, 2013, 1:04 pm

Any serious survey of constructions in Margolus Critters?

Post by pcallahan » March 24th, 2019, 1:33 pm

I'm actually following up on a suggestion by someone who attended the CA 98 Workshop in Santa Fe that I take a closer look at reversible automata. I think I had done an impromptu show-and-tell of a hex grid rule with Life-like patterns, and that Rudy Rucker made the suggestion (it may have been David Griffeath). 21 years isn't too bad, right?

The question is what interesting things can you build in Critters? We do know we can build a digital computer with logic gates using a billiard-ball-like model. That is kind of the whole point. But can you get some of the more interesting Life results, like universal construction and syntheses, etc?

The obvious problem is that (1) Critters has conservation of live cells in alternate generations, so you will not get an infinite growth pattern. (2) A more subtle issue is that a Life-like synthesis is impossible with reversible rules because a fixed size oscillator has a finite number of states and cannot be reversed back into gliders receding to infinity.

To dispense with (2) as a fatal objection, just work with collisions that also emit an extra glider. That glider can hold the infinite state for reversibility, and as it recedes into infinity, you exclude it from considera . tion, much like heat dissipation in physical machines.*

For (1), you need some source of new cells. I suggest that you begin with a single fixed-period glider stream entering from infinity. No gun can exist in Critters, so this stream is there by fiat. Is this "cheating"? Well, is it cheating for a plant to require sunlight to grow? If we have physics-like rules, we will never have perpetual motion machines (or more precisely, devices that produce energy out of nothing), so we do need some source of energy.

With the above in mind, I envision a universal constructor that could take (1) an infinite fixed-period glider stream (2) a finite initial pattern and (3) manipulate the stream to direct it as needed (4) replicate the finite component (5) produce reversible "heat" in the form of a pseudorandom cloud of gliders receding to infinity.

First question as always: has anyone done this? Second: is there some obvious reason it would not work?

Unfortunately, I have not had as much luck as I would like redirecting a stream. What I imagined was an oscillating reflector as in Life that would send every other glider off at 90 degrees. In fact, it is trivial to make reflectors in Critters, but most are 180 degrees. Also, they seem either to phase shift the glider or the reflector. Is this a necessary result of a conservation law? Watching Critters on a toroidal grid is certainly fascinating. The gliders do a kind of square dance, often reflecting each other, sometimes leaving a stationary oscillator behind that can be activated later. But my hope of splitting up a periodic stream is either impossible or requires more work.

(12/2/19: updating some patterns to work in LifeViewer)
I noticed some trivial reactions that appeared useful but I can't do much with them. (Critters rule, so it won't work in viewer) The eastward glider is rotated 90 degrees after hitting the 2x2 checkerboard. It exits northward and shifts the checkerboard diagonally.

Code: Select all

x = 7, y = 5, rule = critters
$bo4bo$2bo2bo$2bo$bo!
Here is another promising collision using a period 20 stream.

Code: Select all

x = 36, y = 5, rule = critters
$bo9bo9bo9bo$2bo9bo9bo9bo2bo$2bo9bo9bo9bo2bo$bo9bo9bo9bo!
In this case, the first eastward glider is reflected back to collide with the second. This produces a pair of northward and southward gliders and does the same for each succeeding pair. The problem is that this cannot be repeated on the period 40 streams that result. It looks like the period needs to be 8n+4.

There are much more chaotic looking reflections that distort a fixed oscillator in a way that is harder to characterize and send off a glider. Could we find one that is repeatable over a succession of collisions? The risk is the very high probability of sending a glider directly back into the stream. Unlike Life, the result often continues to propagate back into the stream. Of course, it's all reversible, but hard to see how to recover the stream at all once this happens.

Has anyone looked into this kind of question in more detail and/or actually tried to catalog the many collisions between gliders/gliders and gliders/small oscillators?

ADDED: an alternative way to get around conservation would be to seed the universe with small oscillators that result from a collision of two gliders an output a single glider. By reversibility, these will duplicate gliders if hit the right way. I think this is more artificial than the glider stream approach, but it may be worth exploring.

* Another way to see this is in terms of entropy "From the point of view of creatures 'living' inside an RCA, their inability to make use of complicated correlations between large numbers of cells means that for all practical purposes, the entropy of the automaton increases. To use a thermodynamic analogy, if I want to compress a gas, it doesn't help me to know that the gas was all in one corner of the room just a few minutes ago. I have no ability to make use of the complicated correlations that this statement implies, and so I say that entropy increased when the gas expanded to its current volume." (Physics-like models of computation, Margolus 1984)

ADDED 3/25: I was thinking about the abundant higher period reflectors in Life and why Critters poses some difficulties with this despite having high period oscillators and lots of reflection.

In Life, high-period oscillators often produce sparks that do not affect the future state of the oscillator because they vanish. But when they don't vanish, they can modify gliders and spaceships in collisions. By contrast, a stray cell in a Critters oscillator will always be pulled back in (or else it would not be reversible). So we can't have sparky oscillators at all.

If we didn't have live-cell conservation, we could have some kind of reversible oscillator that propagated gliders (a gun, essentially) that could work instead of sparks and not affect the oscillator. One question is what happens when the gun reverses back to empty, but in some reversible rule, maybe it could start firing in reverse (anyway not in Critters). So despite the abundance of reflectors in Critters, they are a lot less versatile than in Life.

ADDED: Here is a pair of gliders set to restore the reflector to the original position. The effect is that two gliders on a collision path are each turned 90 degrees. They need enough separation to work and need to have the same phase since the reflector is a period-4 oscillator.

Code: Select all

x = 14, y = 5, rule = critters
$bo4bo7bo$2bo2bo7bo$2bo10bo$bo12bo!
This could work to divert any two opposing glider streams, but I still don't have a way to split a single period 8n stream.
Last edited by pcallahan on December 2nd, 2019, 2:37 pm, edited 2 times in total.

User avatar
pcallahan
Posts: 854
Joined: April 26th, 2013, 1:04 pm

Re: Any serious survey of constructions in Margolus Critters?

Post by pcallahan » March 25th, 2019, 2:14 pm

This seems worth a new post, because I can give links to live examples thanks to Dmitry Shintyakov's app.

Here is the period 8n+4 stream splitter.

And here is 90° glider reflection with reset by opposing glider.

I am not claiming either of these are new. I imagine anyone would find them spending a small amount of time with Critters. I would like to see a general-purpose stream splitter with the goal of building a universal machine (at least Turing complete, ideally with universal constructor) that only required an infinite periodic stream of gliders and a finite starting pattern.

ADDED: This paper is referenced through Wikipedia and seems worth a look for the detailed observations.

ADDED: Some other interesting Critters dynamics. You can't stop the glider, but you can slow it down. I think this kind of delay would be potentially useful for spatially compressing high period streams.

User avatar
simsim314
Posts: 1823
Joined: February 10th, 2014, 1:27 pm

Re: Any serious survey of constructions in Margolus Critters?

Post by simsim314 » March 25th, 2019, 4:55 pm

As part of CA Studio I'm trying to develop a language which can be universal for all CAs. I mean that people come to CA Studio with some request. Like if there is Gemini in my CA? Or is is possible to create caterloopillar or quadratic growth etc. and CA Studio gives you a set of axioms you should fill. For example lets suppose you ask can my rule support Geminioids? So CA studio asks you to generate:

1. Signal. 2. Reflector 3. Duplicator (for the signal)

The duplicator can also become Reflector+some other signal. So if you can create something which reflects two gliders but generates another one then there is a point to talk about grey goo properties of your CA.

Now that you have a signal that you can reflect+signal - the remaining questions are only regarding construction arms i.e. grey goo statistical properties of your CA. You will need to run something similar to Glue but for your CA, and discover weather you can construct everything you need with your construction signal.

Now when you know that you can do this some limitation could still be applied to some specific CA in his implementations. For example critters might need a constant flux of gliders from infinity or something, very much similar to the star on which our life depend on. So some sort of infinite fresh energy available might solve most of conservation problems (you will actually might need to invest effort to reduce some gliders because you get them too much). So CA Studio might well be adapted to designs which are attached to energy source, because in other CAs we don't think this way at all - there is no conservation laws and the major fight is against chaos. So general energy source designs for group of CAs might be interesting on more global scale. Something like general concept of batteries.

EDIT Making a promise after 21 years is quite respectful. I think in a sense CA reality is like that - very slow but moving in the right direction, as time has no meaning (I hope you're familiar with Greg Igan works).

EDIT2 What I like about reversible CAs is that they will close the loop if they're finite. This has some mystical meaning for me - that everything lives inside some circle, at least anything finite. Although this is not true for most CAs the reversible rules are very nice example or reminder about the circular perspective (obviously in closed spaces only - in infinite grid there might be infinite forward movement of a collection of gliders and this is what cool about gemini).

User avatar
pcallahan
Posts: 854
Joined: April 26th, 2013, 1:04 pm

Re: Any serious survey of constructions in Margolus Critters?

Post by pcallahan » March 25th, 2019, 11:25 pm

Mostly to simsim314:

It's not so much I'm keeping a promise, but this is something that has been simmering in my mind and it's the first chance I've had to take a focused look. Critters is pretty cool, but hard to adjust to from a Life perspective. Here is a stream splitter that works at period 8n and can be chained along, but the splitter gets pulled backwards into the stream. How do you use something like that?

BTW, thanks for pointing out Dmitry Shintyakov's reversible CA app. It is easier to work with than Golly for this purpose.

ADDED: This is also very interesting and I have never seen anything like it in another CA: quadratric delay component

As the length n of this "tunnel" increases, the time for the glider to pass through apparently increases at a rate O(n^2). Visually, it's as if the back half of the glider gets stuck at the entrance while the front half continues on. Front can't leave the tunnel without back, so when it reaches the end, it goes back to the beginning and advances the back half by a constant amount and continues the process. It doesn't end until both halves are at the end of the tunnel. Then it exits.

Because of reversibility, the glider has to exit one way or another (otherwise the tunnel would have a finite number of states and not be reversible). I wonder if there is a way to get O(n^3), O(n^4), etc. with a similar approach.

I also feel that there may be a universal 1D CA that can be embedded in a tunnel like this, with gliders going back and forth.

ADDED (one more thing): The shifted glider stream that comes out of the splitter can be fed directly into the 2-cell 90 degree reflector, and outputs another shifted stream that also works: example. Of course, it moves the reflector along, but it repeats as long as there is space. This is making me think that these shifted streams may be more natural than straight glider streams in Critters, and I need to take the CA on its own terms instead of trying to make it look like CGOL. I definitely believe a universal constructor is possible as long as there is a way to feed in cells as a resource.
Last edited by pcallahan on March 26th, 2019, 10:52 am, edited 2 times in total.

User avatar
simsim314
Posts: 1823
Joined: February 10th, 2014, 1:27 pm

Re: Any serious survey of constructions in Margolus Critters?

Post by simsim314 » March 26th, 2019, 9:32 am

pcallahan wrote:How do you use something like that?
Well you don't, unless you either have a tool that shifts the stream back into a regular same lane stream or you use from the first place the shifted stream. This is what called a signal - a reusable stream of spaceships. We get this kind of problems all the time, for example in the search of fuses - up until you don't find a reusable fuse which can emit signal, you will not have a spaceship from the fuse. My main concern is to 1. Make clear rules what accepted as "official device" and what is kinda nice but needs more work 2. Given useful devices automate the proccess from having a fuse to having a spaceship in one click.

I would suggest to start from simpler problem - lets assume we have a constant stream of gliders by demand. This stream of gliders is uniformly spaced. Think about battery which shoots single glider every N ticks. This is problem #1 which for now lets assume it's solved. Now we want to have a signal (problem #2) - differently spaced gliders, such that glider + constant stream of gliders -> two gliders in two different directions, while when there is no additional glider, the battery emitted glider will simply circulate back into the battery. Solving the battery issue is less crucial because at first we can just assume an infinite stream of gliders just flowing around from infinity to infinity and we can use this stream to generate programmable signal.

I'm also aiming toward universal construction, and think about the limitation presented by the current rule. But we need a signal that passes information. Then we will need to run glue and hope for the CA to be nice enough to generate all "static" components (including arm movements) using spaces between signals. In order to have that we need some amount of control over the signal (i.e. it present or not).

User avatar
pcallahan
Posts: 854
Joined: April 26th, 2013, 1:04 pm

Re: Any serious survey of constructions in Margolus Critters?

Post by pcallahan » March 26th, 2019, 1:55 pm

simsim314 wrote:
pcallahan wrote:How do you use something like that?
Well you don't, unless you either have a tool that shifts the stream back into a regular same lane stream or you use from the first place the shifted stream.
It was a rhetorical question, but a third possibility would be to develop a computational framework based on components that always shift like this and just change the frame of reference. Essentially everything is a spaceship (an idea used in CGOL as well). In short, there are a lot of things about Critters that seem both promising and frustrating. It'd be nice to see more people working on it because there are some interesting but not insurmountable challenges, and I don't think we have brought a CGOL-like understanding of engineering to reversible CA.

Another thing I noticed is that sending a glider back into a stream does not have to be fatal. Depending on the phase, the backward glider can pass transparently through forward gliders. So there is a little more flexibility than I thought for adding an adapter to the infinite input stream. It's more problematic for fixed reflectors if gliders back up into them. Wasting some fixed percentage of gliders is also not a problem.

A challenging problem before even trying to build a constructor would be to start with an oscillator that recirculates a finite stream of gliders carrying bit sequence like 010011 (that part is easy) but copies its output into an infinite periodic stream that carries the same signal repeatedly. 010011010011010011010011... I think this could work by sending some gliders back into the stream so you have the signal and its inverse propagating in opposite directions.

A more fundamental problem is that of erasure. If we have a stationary object (maybe one of those 2x2 checkerboards) can we predictably remove it if it's there and leave things the same if it's absent. This is irreversible relative to the finite pattern box, since it destroys information, but the actual information still exists. It is just moving off to infinity. The big question is how do we simulate irreversible operations in our finite working memory given that we have infinite garbage space for disposing of history.

In fact, you can already get the 2x2 to recede into a glider stream.

ADDED: Alternatively, you can detect the object at a different position and output a glider 90 degrees before carrying it off to infinity. I am not completely happy with a Critters model that required multiple streams of entering gliders, but it's not a major issue in theory. The key requirement of the infinite component is that it is completely regular so the structure-copying ability of the universal constructors is non-trivial.

EDIT: Mainly for my own notes, here are some oscillators based on gliders. They illustrate the way gliders can pass through each other.

User avatar
simsim314
Posts: 1823
Joined: February 10th, 2014, 1:27 pm

Re: Any serious survey of constructions in Margolus Critters?

Post by simsim314 » March 26th, 2019, 4:50 pm

As far as I can envision the construction mechanism it could be working like that:

1. Some container of gliders will send us infinite amount of glider as much as we like. At the moment you have a 90 degree reflector you can have a snake container which takes O(n) space and stores O(n^2) gliders.
2. We use two such containers, inside both of them we hold a copy of a construction tape.
3. We create a new copy and we destroy one of the tapes, as the tape becomes the physical copy.
4. Then we copy our first tape into a new constructed copy.
5. We then use a special mechanism that destroys the previous copy and generate a bunch of random stuff which converts back into a stream of gliders using the existing copy.

I think everything here is reversible - and this will demonstrate clearly how signal becomes somewhat physical thing (as there is a conservation law - unlike in other automatons) and back to a signal.

User avatar
pcallahan
Posts: 854
Joined: April 26th, 2013, 1:04 pm

Re: Any serious survey of constructions in Margolus Critters?

Post by pcallahan » March 26th, 2019, 10:33 pm

Another stream splitter, consisting of a single cell, this time without producing shifts: pattern.

This came up earlier but I did not analyze it. Gliders need to be in a period 8n stream, but it can have gaps. For every 5 gliders in, two continue out in the same direction (one is phase-shifted), one heads up, one heads down, and one heads backwards into the stream. The backwards glider does not interact with forward gliders and can be ignored.

ADDED: So what happens in this splitter? (1) The first glider passes through the cell unchanged, but moves the cell to a reflector position. (2) The second glider is reflected back from the cell. (3) The second glider collides with the third glider, creating fixed debris A and a reflected glider B. (4) B passes through the cell phase-shifted and escapes. (5) The fourth glider collides with the fixed debris, producing a backward glider C and a forward glider D. C continues backward through the period-8n stream without interacting. D is reflected back from the cell and collides with the fifth glider, producing E and F heading up and down relative to the stream.

The up and down streams have the right periodicity to be split again. (The forward stream has gliders out of phase) I believe they can be split because they originate from a collision point that is normally empty space. So the backward gliders will not hit the splitter cell. In fact, I think it should be possible to get them to collide with each other to produce forward and backward gliders. This has to be staggered to avoid the original stream (i.e. the next splitters cannot be placed symmetrically).

At this point, the web app won't help me because I have to expand the grid a lot larger. I do have a sparse Python implementation of Critters that I can try, but I need to work on it. I hope to be able to show that a single period 8n stream may be split into multiple streams with thinning. (At which point I may open up a new thread to see if there is additional interest.)

ADDED: You can collide the out of phase gliders with each other by placing a second reflector to produce a collision resulting in upward and downward gliders. So only "waste" 1 out of 5 of the gliders coming out of the stream. I have another idea for why the paired out of phase gliders may be useful, but it's more complicated.

The other idea is to use a glider reflection to collide the out of phase gliders. Now it should be possible to control the output with a recirculating glider stream and copy a periodic bit sequence onto the output with gaps (corresponding to gliders that leave the stream going up and down). I have to see if the timing actually works (that's enough for tonight).

User avatar
simsim314
Posts: 1823
Joined: February 10th, 2014, 1:27 pm

Re: Any serious survey of constructions in Margolus Critters?

Post by simsim314 » March 28th, 2019, 10:23 am

pcallahan wrote:At this point, the web app won't help me because I have to expand the grid a lot larger. I do have a sparse Python implementation of Critters that I can try, but I need to work on it.
There is a way to implement any Margolus rule in sparse way inside golly. We will need to have a run-stop script that converts a state with 1-0 to state in golly and back, but this is only a rule in golly - a hash table, no need in new code nor a non sparse representation, and the conversion is very simple script which might be a rule as well (at least to one direction). The points is to have custom state for 0-1 in a grid of:

00 01 02 03 00 01 02 03
04 05 06 07 04 05 06 07
08 09 10 11 08 09 10 11
12 13 14 15 12 13 14 15
00 01 02 03 00 01 02 03
04 05 06 07 04 05 06 07
08 09 10 11 08 09 10 11
12 13 14 15 12 13 14 15

And we can have custom 0-1 and even odd per each cell. We also need to convert to 0 cells that everything is 0 around them, and convert to 1 anything which has a neighbor with value 1. Golly knows also to convert 0 state into relevant state as well, but we for sure need to manage all the 1 state correctly in all periods and parity of locations. Then we can custom for critters.

User avatar
pcallahan
Posts: 854
Joined: April 26th, 2013, 1:04 pm

Re: Any serious survey of constructions in Margolus Critters?

Post by pcallahan » March 29th, 2019, 2:22 pm

simsim314 wrote: There is a way to implement any Margolus rule in sparse way inside golly.
I don't know enough about Golly right now to try to implement that. Another thing that might be even more useful would be Margolus rules in LifeViewer. I think that Critters (and maybe some other reversible rules) should get a lot more attention but the main stumbling block is the lack of usable simulators with a user following. Critters has some disadvantages with respect to Life, but it has the advantage that the kinds of interactions are often much more reasonable--gliders deflecting instead of exploding like dynamite. It is a lot easier to engineer interesting things by hand on a small scale even if the question of universal constructors is harder.

ADDED: Mostly for my own notes, here is a 90 degree reflector, but it gets damaged after the first glider. Of course, it works in reverse by definition, but I don't know how to restore the forward starting state other than sending a reverse glider.

User avatar
pcallahan
Posts: 854
Joined: April 26th, 2013, 1:04 pm

Re: Any serious survey of constructions in Margolus Critters?

Post by pcallahan » April 1st, 2019, 1:10 am

I wrote:A challenging problem before even trying to build a constructor would be to start with an oscillator that recirculates a finite stream of gliders carrying bit sequence like 010011 (that part is easy) but copies its output into an infinite periodic stream that carries the same signal repeatedly. 010011010011010011010011... I think this could work by sending some gliders back into the stream so you have the signal and its inverse propagating in opposite directions.
It's not that challenging now that I see I can reflect pairs of out of phase gliders 90 degrees. And these pairs can be produced from a period-8n stream as shown earlier. In this pattern, the original stream copies a recirculating stream of bits 10110 at period-64 encoded as pairs of out-phase-gliders. The looping gliders depend on the presence of the stream to make one of the 90 degrees turns. When that happens, it emits output gliders. When there is no looping glider to reflect, another reflector disperses the input gliders (they cannot merely vanish because of reversibility).

The app shows Critters copying loop bits into a periodic output stream

In viewer:

Code: Select all

x = 589, y = 110, rule = critters
17$535b2o36b2o$535b2o35bobo$569bo3bo$570b2o$531b2o44b2o$531b2o44b2o$541b
o12bo$542bo9bo$542bo9bo$541bo12bo4$570b2o2$569bo2bo7$11b2o$11b2o3$7b2o
$7b2o$24bo8bo22bo8bo22bo8bo22bo8bo22bo8bo22bo8bo22bo8bo22bo8bo22bo8bo
22bo8bo22bo8bo171b2o$23bo11bo19bo11bo19bo11bo19bo11bo19bo11bo19bo11bo
19bo11bo19bo11bo19bo11bo19bo11bo19bo11bo169b2o$23bo11bo19bo11bo19bo11b
o19bo11bo19bo11bo19bo11bo19bo11bo19bo11bo19bo11bo19bo11bo19bo11bo$24b
o8bo22bo8bo22bo8bo22bo8bo22bo8bo22bo8bo22bo8bo22bo8bo22bo8bo22bo8bo22b
o8bo$547bo$14b2o532bo$36bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10b
o20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo
10bo20bo10bo$13bo2bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17b
o13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo
17bo13bo$13bo2bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13b
o17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo
13bo$36bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo
20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo$7bo6b
2o523bo12bo$8bo532bo9bo$541bo9bo$539bo12bo$11b2o564b2o$11b2o564b2o3$535b
2o36b2o$535b2o36b2o31$535b2o$535b2o3$531b2o$531b2o!
To fit a long stream in a small space, I reflected the input stream. Reflectors can be used repeatedly in snaking fashion, creating "batteries" to power finite patterns.
Last edited by pcallahan on December 2nd, 2019, 2:45 pm, edited 1 time in total.

User avatar
pcallahan
Posts: 854
Joined: April 26th, 2013, 1:04 pm

Re: Any serious survey of constructions in Margolus Critters?

Post by pcallahan » April 3rd, 2019, 12:51 am

I realized yesterday that one crucial piece of a universal constructor is a constructor arm, by which I mean any method by which a compact pattern can manipulate patterns at a distance. Merely sending gliders off into infinity is insufficient.

Fortunately, Critters provides at least one mechanism for pushing a fixed reflector away through repeated glider collisions. Here's a simple example to illustrate.

Or Viewer (as always, won't work):

Code: Select all

x = 90, y = 15, rule = critters
61$86bo$85bo$13bo5bo5bo5bo5bo5bo5bo$14bo5bo5bo5bo5bo5bo5bo$14bo5bo5bo5bo5bo5bo5bo$13bo5bo5bo5bo5bo5bo5bo$85bo$86bo$2bo6bo54bo6bo$o9bo51bo9bo$o9bo51bo9bo$2bo6bo54bo6bo
The lower stream consists of out-of-phase pairs. When the front glider hits the 2-cell reflector, it reverses and hits the rear glider, causing 90 degree reflections of both. The upper stream pushes the reflector (along with a copy) away with each passing glider. Then when the next out-of-phase pair hits, the collision occurs at a different place. So once this reflector has been placed far enough away, it can be used as an elbow. It can actually be pulled back by sending gliders 2 steps out of phase of those shown.

One drawback is that we waste a lot of gliders just moving this and we don't have guns that produce as many as we want. Ideally, we'd like a way to get the gliders back. I can't think of any reversibility argument to say it won't work, but I haven't seen such a reaction.
Last edited by pcallahan on December 2nd, 2019, 2:47 pm, edited 1 time in total.

User avatar
rowett
Moderator
Posts: 3817
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Any serious survey of constructions in Margolus Critters?

Post by rowett » August 31st, 2019, 11:35 am

LifeViewer now has experimental support for Margolus rules.

Code: Select all

x = 87, y = 83 ,rule = critters
61$86bo$85bo$13bo5bo5bo5bo5bo5bo5bo$14bo5bo5bo5bo5bo5bo5bo$14bo5bo5bo5bo5bo5bo5bo$13bo5bo5bo5bo5bo5bo5bo$85bo$86bo$2bo6bo54bo6bo$o9bo51bo9bo$o9bo51bo9bo$2bo6bo54bo6bo!

Code: Select all

x = 573, y = 135, rule = critters
51$529b2o36b2o$529b2o35bobo$563bo3bo$564b2o$525b2o44b2o$525b2o44b2o$535bo12bo$536bo9bo$536bo9bo$535bo12bo4$564b2o2$563bo2bo7$5b2o$5b2o3$b2o$b2o$18bo8bo22bo8bo22bo8bo22bo8bo22bo8bo22bo8bo22bo8bo22bo8bo22bo8bo22bo8bo22bo8bo171b2o$17bo11bo19bo11bo19bo11bo19bo11bo19bo11bo19bo11bo19bo11bo19bo11bo19bo11bo19bo11bo19bo11bo169b2o$17bo11bo19bo11bo19bo11bo19bo11bo19bo11bo19bo11bo19bo11bo19bo11bo19bo11bo19bo11bo19bo11bo$18bo8bo22bo8bo22bo8bo22bo8bo22bo8bo22bo8bo22bo8bo22bo8bo22bo8bo22bo8bo22bo8bo$541bo$8b2o532bo$30bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo$7bo2bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo$7bo2bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo$30bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo$bo6b2o523bo12bo$2bo532bo9bo$535bo9bo$533bo12bo$5b2o564b2o$5b2o564b2o3$529b2o36b2o$529b2o36b2o31$529b2o$529b2o3$525b2o$525b2o!

User avatar
pcallahan
Posts: 854
Joined: April 26th, 2013, 1:04 pm

Re: Any serious survey of constructions in Margolus Critters?

Post by pcallahan » September 8th, 2019, 1:36 pm

Thanks for adding Margolus to LifeViewer! I will definitely need to play around with this more when I get a chance. Here's the example of copying loop bits into a periodic stream without the extra bend element. That was only there to fit it into a small bitmap.

Code: Select all

x = 573, y = 135, rule = critters
$1109b2o36b2o$1109b2o35bobo$1143bo3bo$1144b2o$1105b2o44b2o$1105b2o44b2o$1115bo12bo$1116bo9bo$1116bo9bo$1115bo12bo4$1144b2o2$1143bo2bo13$1099b2o$1099b2o3$1121bo$1122bo$2bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo$o13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo$o13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo17bo13bo$2bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo20bo10bo$1113bo12bo$1115bo9bo$1115bo9bo$1113bo12bo$1151b2o$1151b2o3$1109b2o36b2o$1109b2o36b2o31$1109b2o$1109b2o3$1105b2o$1105b2o

User avatar
rowett
Moderator
Posts: 3817
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Any serious survey of constructions in Margolus Critters?

Post by rowett » September 10th, 2019, 11:50 pm

pcallahan wrote:Thanks for adding Margolus to LifeViewer!
LifeViewer now supports reverse playback for reversible Margolus rules. Hotkey "U" toggles the playback direction.

User avatar
pcallahan
Posts: 854
Joined: April 26th, 2013, 1:04 pm

Re: Any serious survey of constructions in Margolus Critters?

Post by pcallahan » September 12th, 2019, 4:48 pm

rowett wrote:
pcallahan wrote:Thanks for adding Margolus to LifeViewer!
LifeViewer now supports reverse playback for reversible Margolus rules. Hotkey "U" toggles the playback direction.
Thanks again! This is really cool. I found it interesting to watch the loop copier reversing back before the initial pattern. It was not exactly what I expected. I think I want to work on a cleaner example of this idea when I have time. It would be nice to have a loop that could persist without the stream feeding it.

User avatar
rowett
Moderator
Posts: 3817
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Any serious survey of constructions in Margolus Critters?

Post by rowett » September 12th, 2019, 5:12 pm

pcallahan wrote:It would be nice to have a loop that could persist without the stream feeding it.
Agreed.

In the mean time it is possible to get LifeViewer to generate input streams for you:

Code: Select all

x = 121, y = 120, rule = M15,14,13,3,11,5,6,1,7,9,10,2,12,4,8,0
13$63b2o36b2o$63b2o35bobo$97bo3bo$98b2o$59b2o44b2o$59b2o44b2o$69bo12b
o$70bo9bo$70bo9bo$69bo12bo4$98b2o2$97bo2bo13$53b2o$53b2o3$75bo$76bo$12b
o10bo20bo10bo$10bo13bo17bo13bo$10bo13bo17bo13bo$12bo10bo20bo10bo$67bo
12bo$69bo9bo$69bo9bo$67bo12bo$105b2o$105b2o3$63b2o36b2o$63b2o36b2o31$
63b2o$63b2o3$59b2o$59b2o!
#C LifeViewer will automatically paste cells to create the input stream
#C [[ RLE input_pair 2bo10bo$o13bo$o13bo$2bo10bo! ]] this is the input pair
#C [[ PASTET EVERY 64 ]] set paste interval every 64 generations
#C [[ PASTE input_pair 10 46 ]] paste the input_pair at this location
#C [[ LABELSIZE 21 ]]
#C [[ LABEL 18 28 6 "Critters will appear here" ]]
#C [[ LABEL 18 32 6 "every 64 generations" ]]
#C [[ ARROW 18 35 13 44 6 ARROW 18 35 22 44 6 ]]
#C [[ POLYLINE 9 45 13 45 13 50 9 50 9 45 6 ]]
#C [[ POLYLINE 22 45 25 45 25 50 22 50 22 45 6 ]]
The commands at the bottom create an RLE snippet which is then pasted every 64 generations.

User avatar
pcallahan
Posts: 854
Joined: April 26th, 2013, 1:04 pm

Re: Any serious survey of constructions in Margolus Critters?

Post by pcallahan » September 12th, 2019, 5:26 pm

The stream injector is very cool. Though I see it has some weird interactions when switching to a reverse run. Maybe the simplest thing would be to disable it as soon as U is pressed.

User avatar
PHPBB12345
Posts: 1096
Joined: August 5th, 2015, 11:55 pm
Contact:

Re: Any serious survey of constructions in Margolus Critters?

Post by PHPBB12345 » September 12th, 2019, 10:06 pm

Many spaceships those other than 4-cell glider:

Code: Select all

#C 8-cell c/4
x = 3, y = 9, rule = M15,14,13,3,11,5,6,1,7,9,10,2,12,4,8,0
$bo$2bo$2bo$bo$bo$2bo$2bo$bo

Code: Select all

#C 12-cell c/6
x = 7, y = 5, rule = M15,14,13,3,11,5,6,1,7,9,10,2,12,4,8,0
$2b2o2bo$bo2b2o$bo2b2o$2b2o2bo!

Code: Select all

#C 20-cell 3c/31
x = 25, y = 9, rule = M15,14,13,3,11,5,6,1,7,9,10,2,12,4,8,0
$bo21bo$2bo21bo$2bo14bo6bo$bo16bo4bo$bo16bo4bo$2bo14bo6bo$2bo21bo$bo21b
o!
Last edited by PHPBB12345 on April 24th, 2020, 10:16 pm, edited 2 times in total.

wildmyron
Posts: 1544
Joined: August 9th, 2013, 12:45 am
Location: Western Australia

Re: Any serious survey of constructions in Margolus Critters?

Post by wildmyron » September 12th, 2019, 11:52 pm

PHPBB12345 wrote:<snip>

Code: Select all

x = 25, y = 9, rule = M15,14,13,3,11,5,6,1,7,9,10,2,12,4,8,0
$bo21bo$2bo21bo$2bo14bo6bo$bo16bo4bo$bo16bo4bo$2bo14bo6bo$2bo21bo$bo21b
o!
Wow, I did not expect to see that in Critters

Edit: And similarly for the extraordinary oscillator posted below by pcallahan

(Seemed excessive to post again just to express admiration)
Last edited by wildmyron on September 13th, 2019, 1:06 am, edited 1 time in total.
The 5S project (Smallest Spaceships Supporting Specific Speeds) is now maintained by AforAmpere. The latest collection is hosted on GitHub and contains well over 1,000,000 spaceships.

Semi-active here - recovering from a severe case of LWTDS.

User avatar
pcallahan
Posts: 854
Joined: April 26th, 2013, 1:04 pm

Re: Any serious survey of constructions in Margolus Critters?

Post by pcallahan » September 13th, 2019, 12:29 am

Here's an oscillator based on the quadratic delay component I posted a few months back. It was one of the more surprising things I found playing around with critters.

Code: Select all

x = 68, y = 8, rule = critters
11bobobobobobobobobobobobobobobobobobobobobobobobo$6bo$5bo$5bo$6bo$b2o8bobobobobobobobobobobobobobobobobobobobobobobobo9b2o$b2o64b2o
Added: here's an extension. I was able to construct it using the copy-paste and save features of LifeViewer.

Code: Select all

x = 347, y = 23, rule = critters
6$11bobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobob obobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobo bobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobob obobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobo bobobobobobobobobobobobobobobobobobobobobobobobobo$6bo$5bo$5bo$6bo$b2o 8bobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobo bobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobob obobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobo bobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobobob obobobobobobobobobobobobobobobobobobobobobobobo9b2o$b2o338b2o!
Last edited by pcallahan on September 13th, 2019, 2:07 pm, edited 1 time in total.

User avatar
rowett
Moderator
Posts: 3817
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Any serious survey of constructions in Margolus Critters?

Post by rowett » September 13th, 2019, 1:27 am

pcallahan wrote:The stream injector is very cool. Though I see it has some weird interactions when switching to a reverse run. Maybe the simplest thing would be to disable it as soon as U is pressed.
This has just been fixed. The injection will now work even in reverse playback while the Margolus generation (which can be seen in Help->Info->Grid) is >= 0.

User avatar
pcallahan
Posts: 854
Joined: April 26th, 2013, 1:04 pm

Re: Any serious survey of constructions in Margolus Critters?

Post by pcallahan » September 16th, 2019, 10:39 pm

One other quibble. I see that even after pressing "u" the generation count continues to increase. Wouldn't it be more consistent for it to decrease. It seems to know whether it is in forward or reverse mode? Is there something I'm missing?

wildmyron
Posts: 1544
Joined: August 9th, 2013, 12:45 am
Location: Western Australia

Re: Any serious survey of constructions in Margolus Critters?

Post by wildmyron » September 16th, 2019, 11:42 pm

pcallahan wrote:One other quibble. I see that even after pressing "u" the generation count continues to increase. Wouldn't it be more consistent for it to decrease. It seems to know whether it is in forward or reverse mode? Is there something I'm missing?
This was also mentioned on the thread for LifeViewer, and Chris responded with his thoughts on the matter.

As per Chris' post above, LifeViewer is already aware of the Margolus generation, so I suppose what you are expecting is that the generation count shows the Margolus generation rather than the pattern generation.
The 5S project (Smallest Spaceships Supporting Specific Speeds) is now maintained by AforAmpere. The latest collection is hosted on GitHub and contains well over 1,000,000 spaceships.

Semi-active here - recovering from a severe case of LWTDS.

User avatar
rowett
Moderator
Posts: 3817
Joined: January 31st, 2013, 2:34 am
Location: UK
Contact:

Re: Any serious survey of constructions in Margolus Critters?

Post by rowett » September 22nd, 2019, 5:36 pm

pcallahan wrote:One other quibble. I see that even after pressing "u" the generation count continues to increase. Wouldn't it be more consistent for it to decrease. It seems to know whether it is in forward or reverse mode? Is there something I'm missing?
This was added in Build 409.

Post Reply