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

Re: Any serious survey of constructions in Margolus Critters?

Post by pcallahan » September 24th, 2019, 8:39 pm

rowett wrote: This was added in Build 409.
Thanks for all the enhancements to LifeViewer. It has gotten me a lot more interested in Critters again, after a hiatus of maybe 6 months.

I noticed that if I add a pattern through edit operations and back up (single step reverse), the added pattern is removed, like it's an undo, but there does not seem to be a corresponding redo. I don't want to add to your work, but this is kind of surprising behavior. I think I would expect it to forget when the pattern was added and just leave it permanently, at least when stepping backwards in Margolus. Alternatively, some kind of redo would be useful.

Repro steps: (1) Open in some Margolus window (may not have to be Margolus) (2) Step forward to generation 10 (3) Draw something in window (4) Step forward to generation 20. (5) Step backwards to generation 9 (edit disappears) (6) Step forward (edit never comes back).

I think this behavior makes sense for non-reversible CAs but is surprising for the reversible ones. I also noticed that if you actually run it backwards with 'u', this does not happen. However, just starting it running forwards is not enough to make the edit survive pass single-step reverses.

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 24th, 2019, 11:35 pm

Using a pattern from an earlier post with the PASTET feature, two streams of gliders (one with an out-of-phase pair) can be converted into a forward-moving wave.

Code: Select all

x=12, y=60, rule=critters
#C [[ ZOOM 2 ]]
#C [[ RLE input o$bo$bo$o! ]] this is the input
#C [[ PASTET EVERY 32 ]] set paste interval every 32 generations
#C [[ PASTE input 0 2 ]] paste the input at this location
#C [[ RLE input2 2bo10bo$o13bo$o13bo$2bo10bo! ]] this is input2
#C [[ PASTET EVERY 64 ]] set paste interval every 64 generations
#C [[ PASTE input2 -21 8 ]] paste the input2 at this location
$44bo$43bo$bo$2bo$2bo$bo$43bo$44bo
Here is not what I was really looking for, but it's kind of interesting. After it stabilizes, it splits a p28 stream into two streams that each send out bursts of 3 gliders for every 6 that enter. None of the gliders head back into the stream and none continue past the reflector.

Code: Select all

x = 149, y = 13, rule = critters
#C [[ RLE input o$bo$bo$o! ]] 
#C [[ PASTET EVERY 28 ]] 
#C [[ PASTE input 14 5 ]] 
4$144bo$144bo$144bo$144bo$144bo$144bo!
What am I looking for? Ideally a way to split any period-4n stream. Once split, it can be converted to a stream in which consecutive gliders are phase-shifted by 2, and this kind of stream is easy to turn 90 degrees.

Meanwhile, here's another interesting stream interaction.

Code: Select all

x = 99, y = 12, rule = critters
#C [[ RLE input 2bo$o$o$2bo! ]] 
#C [[ PASTET EVERY 28 ]] 
#C [[ PASTE input 1 5 ]] 
4$95bo$4bo13bo13bo13bo13bo13bo13bo5bo$2bo13bo13bo13bo13bo13bo13bo$2bo
13bo13bo13bo13bo13bo13bo$4bo13bo13bo13bo13bo13bo13bo5bo$95bo!

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

Re: Any serious survey of constructions in Margolus Critters?

Post by rowett » September 25th, 2019, 5:33 am

pcallahan wrote:I noticed that if I add a pattern through edit operations and back up (single step reverse), the added pattern is removed, like it's an undo, but there does not seem to be a corresponding redo.
I've changed how Step Back works for reversible Margolus rules in Build 411.

For reversible rules Step Back is now no different than switching the playback direction, doing a single step, then switching the playback direction back again.

In your scenario it now works as follows:
  1. Open in some Margolus window
  2. Step forward to generation 10
  3. Draw something in window
  4. Step forward to generation 20
  5. Step back to generation 9 (edit will not disappear)
  6. Step forward
Note in step 5 the edit doesn't disappear because Stepping Back is not the same as Undo. In fact you can Undo a Step Back.

If you want the edit to disappear then you'll need to replace step 5 with:
  • Undo back to generation 9 (edit disappears)

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 25th, 2019, 5:08 pm

Thanks! That was fast. Please don't do any work on this one, and maybe it is my system preferences, but I find that I zoom in and out inadvertently using a scroll gesture (which is a very light touch of one finger on my Apple mouse). It is driving me crazy, because I often zoom out to infinity by accident just as I'm trying to change one cell. Any way to disable this? (But if not, I'll live.)

BTW, these enhancements have renewed my interest in Critters. I still wonder how much has been done in the way of constructions, but being able to insert a stream opens up a lot of possibilities. It's also good to be able to display them in postings.

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

Re: Any serious survey of constructions in Margolus Critters?

Post by rowett » September 26th, 2019, 1:54 am

pcallahan wrote:I find that I zoom in and out inadvertently using a scroll gesture (which is a very light touch of one finger on my Apple mouse). It is driving me crazy, because I often zoom out to infinity by accident just as I'm trying to change one cell. Any way to disable this?
I made a fix in Build 412 that may help. Please let me know.

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 26th, 2019, 3:46 pm

Here's an improvement to the loop copier that requires only a uniform period-32 input stream. It feels less like "cheating" than the original, which pastes in two gliders staggered by a specific phase.

Some of the methods used here are from the my last post on splitting a stream in Critters. I have added a lot of revisions to it since first posting, so it is newer than it appears.

Code: Select all

x = 227, y = 119, rule = critters
#C [[ RLE input o$bo$bo$o! ]]
#C [[ PASTET EVERY 32 ]]
#C [[ PASTE input 9 46 ]]
21$171b2o36b2o$171b2o36b2o3$167b2o37b2o5b2o$167b2o36bo2bo4b2o$176bo8b
o$174bo11bo$69b2o103bo11bo$69b2o105bo8bo$205bo2bo$206b2o$71bo2bo$72b2o
9$105b2o$105b2o3$9bo15bo15bo15bo15bo9bo21bo6bo3bo$10bo15bo15bo15bo15b
o9bo21bo4bo$10bo15bo15bo15bo15bo9bo21bo4bo49b2o$9bo15bo15bo15bo15bo9b
o21bo6bo3bo44b2o3$101bo82bo$102bo80bo$115bo14bo16bo14bo$116bo11bo19bo
11bo$116bo11bo19bo11bo$115bo14bo16bo14bo$180bo8bo$179bo11bo$105b2o72b
o11bo$105b2o73bo8bo$213b2o$213b2o$63bo4bo$65bobo$63bo107b2o36b2o$63b2o
bo104b2o36b2o31$171b2o$171b2o3$167b2o$167b2o!

User avatar
Layz Boi
Posts: 265
Joined: October 25th, 2018, 3:57 pm

Re: Any serious survey of constructions in Margolus Critters?

Post by Layz Boi » September 30th, 2019, 10:34 am

Quick question, is it possible to have a constructor in a reversible rule such as Margolus Critters? Oscillators seem theoretically impossible to create, as it would require at least two different states that lead to the same state. Those being; one of the oscillator's repeating states, and any state prior to reaching one of those oscillating states.
Image

I could be wrong, I'm no rocket surgeon of the margolus variety.

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 30th, 2019, 11:31 am

Layz Boi wrote:Quick question, is it possible to have a constructor in a reversible rule such as Margolus Critters? Oscillators seem theoretically impossible to create, as it would require at least two different states that lead to the same state. Those being; one of the oscillator's repeating states, and any state prior to reaching one of those oscillating states.
This is what I've been working on, starting about a half a year ago and restarted after Chris Rowett's LifeViewer improvements.

What you cannot have in Critters is the creation of new cells, so this makes it unlike Life in that no finite pattern will grow in population. Oscillators definitely exist and are easy to find just by scribbling any clump of cells and waiting it to emit all its gliders. Here's a simple one.

Code: Select all

x = 2, y = 2, rule = critters
2o$2o!
If your question is can you construct them with a glider collision, then I think the argument you're getting at is: no, because the oscillator has a finite number of states, and when you run it in reverse it cannot "remember" when the collision occurred to construct it. This is true, so you cannot have collisions as in Life where two gliders collide to produce an eater or collide and vanish.

You can construct oscillators from glider collisions as long as the collision outputs at least one extra glider.

Code: Select all

x = 16, y = 5, rule = critters
$bo11bo$2bo12bo$2bo12bo$bo11bo!
Above, two gliders enter from left and right. The collision produces the oscillator above, but also another glider reflected back left. Run it in reverse and the left-going glider returns to convert the oscillator back into a collision. The memory of when the collision occurred is stored in the outgoing glider.

There is no way around the inability to create new cells, but so what? We don't get to create new matter and energy in the real universe either. So I assume that Critters constructions have a power source consisting of a periodic glider stream heading back into infinity.

The question is can you build a universal constructor that operates under the assumption of such an input stream. The input is regular and simple to describe, wheres the output consists of many generations of computation and replication of patterns using the input gliders as raw material. (I.e., I am using infinity as judiciously as I can; I don't think this is cheating.) I have shown it is possible to copy a bit-loop this way. viewtopic.php?f=11&t=4132 That is about the simplest form of replication I can think of, but there is no reason a universal constructor should not be possible.

I saw Margolus give a talk on Critters a little over 20 years ago. I didn't have a clear idea of how far his team had taken construction. His emphasis was on the reversible dynamics. I'd like to think what I'm working on is new, and if not, I'd like some references to similar work.
Last edited by pcallahan on September 30th, 2019, 11:42 am, edited 1 time in total.

User avatar
Layz Boi
Posts: 265
Joined: October 25th, 2018, 3:57 pm

Re: Any serious survey of constructions in Margolus Critters?

Post by Layz Boi » September 30th, 2019, 11:38 am

pcallahan wrote: If your question is can you construct them with a glider collision, then I think the argument you're getting at is: no, because the oscillator has a finite number of states, and when you run it in reverse it cannot "remember" when then collision occurred to construct it. This is true, so you cannot have collisions as in Life where two gliders collide to produce an eater or collide and vanish.

You can construct oscillators from glider collisions as long as the collision outputs at least one extra glider.
Ah, that answers my question. Thanks!

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

Re: Any serious survey of constructions in Margolus Critters?

Post by pcallahan » October 2nd, 2019, 1:42 am

This isn't a big deal, but I had become curious whether there was a way to construct the stable block I use a lot as a reflector. I still haven't answered that, though I imagine there is. I found an interesting reaction that makes a symmetric oscillator that creates and destroys blocks with each rebound.

Code: Select all

x = 21, y = 27, rule = critters
3$2bo$18bo3$3bo2bo$4b2o3$15bo$16bo$5b2o$5b2o$16bo$15bo3$4b2o$3bo2bo3$
18bo$2bo!
Most of my recent work is going in updates to the 3rd post on the bit-loop copier thread I opened. If I have a major advance I'll make a new post. I have solved the problem of copying from a bit loop that does not require a glider stream for stability, but I would like to improve some other things first.

There are a lot of ways to turn signals around corners as long as the signal consists of a glider pair that is not a multiple of 8 steps apart. However, 8n inputs streams can be converted. I am still working on better ways to do it. I may need to start automatically search collisions with small oscillators. I am unaware of anyone doing this before in Critters.

Update (10/5/19): Here is a more compact 90° turn but it still requires gliders out of phase because each time a glider is turned, it changes the phase of the reflector.

Code: Select all

x = 40, y = 46, rule = critters
7$18bo8bo6bo$4bo11bo11bo6bo$3bo12bo11bo$8bo9bo8bo2$33bo23$6bo2$31bo$36b
o$4bo30bo$5bo!
Update (10/6/19): Same idea, but a more symmetrical reflector:

Code: Select all

x = 44, y = 44, rule = critters
7$7bo10bo8bo8bo$6bo9bo11bo8bo$5bo10bo11bo9bo$18bo8bo28$5bo32bo$6bo30b
o$7bo28bo!
Breakthrough! This 90° reflector can turn any period-8n stream (with 32 spacing). No out-of-phase gliders are needed.

Code: Select all

x = 40, y = 40, rule = critters
5$10bo$29bo$5bo13bo8bo$7bo12bo9bo$20bo10bo$8bo10bo7$7bo2bo2$8b2o10$29b
o$6bo$7bo22bo$9bo22bo$8bo$27bo!
Though the reflector is small and symmetric, I did have to run a search to find it--really ad hoc, just put four random cells in front of 3 gliders in succession, use some rough measures of box size to filter down to 90° turns and then inspect the results visually in LifeViewer.

Update (10/7/19): This seems potentially useful. When both gliders are present, they are both reflected 180°. When one is present, it passes through. The reflector is unchanged with or without gliders present. (I was hoping to find one that turns just one of the gliders, but no luck so far).

Code: Select all

x = 17, y = 18, rule = critters
5$5bo6bo$6bo6bo$6bo7bo$5bo5bo3$4bo$2bo$2bo$4bo!

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

Re: Any serious survey of constructions in Margolus Critters?

Post by pcallahan » November 11th, 2019, 11:53 pm

I've been holding back on posting minor Critters results, but I think this is pretty interesting (any maybe known because it's so simple). There is a 2-cell period 8 oscillator that works as a reflector. Glider collisions with this oscillator always result in a new glider and the same oscillator rephased. There are four cases. In two of them, the glider is reflected back the same way (without changing phase). In one, the glider passes through, and in another, the glider is reflected with a phase change:

Code: Select all

# [[ GPS 4 ]]
x = 11, y = 29, rule = critters
$bo$2bo5bo$2bo5bo$bo5$bo8bo$2bo$2bo$bo8bo5$bo$2bo6bo$2bo6bo$bo5$bo5bo
$2bo$2bo$bo5bo!
The interesting part is that a single glider can move back and forth through a series of these, acting as the head of a Turing machine. I have no reason to think the result is a universal TM but I don't see an obvious analysis either. By terminating the ends of the "tape" with stable blocks, you can create an oscillator with some fixed period and period appears to grow exponentially with length.

This has the step set to 8 so the tape symbols (represented by phase) appear as unchanging.

Code: Select all

# [[ STEP 8 ]]
# [[ GPS 10 ]]
x = 93, y = 25, rule = critters
7$11bo4bo23bo15bo7bo7bo7bo$12bo10bo7bo15bo$12bo10bo7bo15bo$11bo4bo23b
o15bo7bo7bo7bo$5b2o80b2o$5b2o80b2o3!
Here's the same pattern with boxes to make it easier to read the state.

Code: Select all

# [[ STEP 8 ]]
# [[ GPS 10 ]]
# [[ POLYLINE 12 7 15 7 15 10 12 10 12 7 9 ]]
# [[ POLYLINE 20 7 23 7 23 10 20 10 20 7 9 ]]
# [[ POLYLINE 28 7 31 7 31 10 28 10 28 7 9 ]]
# [[ POLYLINE 36 7 39 7 39 10 36 10 36 7 9 ]]
# [[ POLYLINE 44 7 47 7 47 10 44 10 44 7 9 ]]
# [[ POLYLINE 52 7 55 7 55 10 52 10 52 7 9 ]]
# [[ POLYLINE 60 7 63 7 63 10 60 10 60 7 9 ]]
# [[ POLYLINE 68 7 71 7 71 10 68 10 68 7 9 ]]
# [[ POLYLINE 76 7 79 7 79 10 76 10 76 7 9 ]]

x = 93, y = 25, rule = critters
7$11bo4bo23bo15bo7bo7bo7bo$12bo10bo7bo15bo$12bo10bo7bo15bo$11bo4bo23b
o15bo7bo7bo7bo$5b2o80b2o$5b2o80b2o3!
The period of this combined oscillator is 196744. You can verify that in LifeViewer, but I also analyzed the transitions and timing of these patterns, assuming oscillators are placed 8 units apart and the blocks are placed as above. The following Python can run a pattern like this without simulating Critters and find its period. Note that the tables could be made 1-dimensional by using the phase difference between gliders and oscillators, but I think having the tables written out fully is a little simpler to follow.

Note that tape symbols 0-3 represent the even phases of the oscillator, while tape symbol 4 represents the stable block that terminates the tape on both sides.

Code: Select all

# tape symbol [0:4] X glider phase [0:3] -> next phase
next_phase = [
 [1, 1, 2, 2],
 [0, 1, 1, 0],
 [0, 0, 3, 3],
 [3, 2, 2, 3],
 [1, 2, 3, 0]]
 
# tape symbol [0:4] X glider phase [0:3] -> next symbol
next_symbol = [
 [2, 1, 3, 2],
 [2, 0, 3, 3],
 [1, 0, 0, 3],
 [1, 1, 0, 2],
 [4, 4, 4, 4]]
 
# tape symbol [0:4] X glider phase [0:3] -> direction sign
direction_sign = [
 [-1, -1, -1, 1],
 [-1, -1, 1, -1],
 [-1, 1, -1, -1],
 [1, -1, -1, -1],
 [-1, -1, -1, -1]]
 
# tape symbol [0:4] X glider phase [0:3] -> steps for transition
steps = [
 [6, 12, 12, 14],
 [12, 12, 14, 6],
 [12, 14, 6, 12],
 [14, 6, 12, 12],
 [14, 14, 14, 14]
]

def run(initial_tape, initial_state):
 # state consists of (position, phase, direction)
 state = initial_state
 tape = list(initial_tape)
 
 num_transitions = 0
 num_steps = 0
 while True:
   position, phase, direction = state
   print(tape, state, num_steps)
   position += direction
   symbol = tape[position]
   state = (
     position,
     next_phase[symbol][phase],
     direction * direction_sign[symbol][phase])
   tape[position] = next_symbol[symbol][phase]
   num_steps += steps[symbol][phase]
   num_transitions += 1
   if state == initial_state and tape == initial_tape:
     break
 return num_transitions, num_steps

num_transitions, num_steps = run([4, 0, 1, 1, 0, 1, 0, 0, 0, 0, 4], (0, 1, 1))
print(num_steps, num_transitions)
This starting state was chosen to maximize the period for a row of nine oscillators.

It illustrates one of the nice things about Critters, which is fairly complex dynamics coming from very small patterns. Because it's reversible, patterns don't just fizzle out, provided they're contained (Of course, they don't grow infinitely either).

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

Re: Any serious survey of constructions in Margolus Critters?

Post by pcallahan » November 28th, 2019, 2:32 pm

Just doodling, so I did not work out the period, but here's an oscillator like the above that can recirculate a glider through the sequence instead of just shuttling it back and forth.

Code: Select all

# [[ STEP 8 ]]
# [[ GPS 60 ]]
x = 121, y = 47, rule = critters
15$19bo10bo4bo18bo39bo9bo$18bo25bo16bo7bo6bo7bo20bo$17bo26bo16bo7bo6b
o7bo21bo$30bo4bo18bo39bo9$33bo31bo$17bo17bo70bo$18bo16bo69bo$19bo13bo
31bo38bo!
Also, here is a very simple stream splitter. However, I think it only works at periods that are 8 mod 12 (20, 32, 44, etc.) so it can't be cascaded.

Code: Select all

#C [[ RLE input o$bo$bo$o! ]]
#C [[ PASTET EVERY 32 ]]
#C [[ PASTE input 3 4 ]]
x = 34, y = 13, rule = critters
5$3bo15bo10bo$4bo15bo8bo$4bo15bo7bo$3bo15bo7bo!
Note that every odd power of 2 is 8 mod 12: 32, 128, 512, etc. With a little rephasing, we can get the splitter to work for 64 and then it works for 128 without any help.

Code: Select all

#C [[ RLE input o$bo$bo$o! ]]
#C [[ PASTET EVERY 32 ]]
#C [[ PASTE input 1 52 ]]
x = 103, y = 102, rule = critters
23$62bo25bo$60bo26bo$61bo28bo$59bo29bo7$48bo11b2o$46bo12bo2bo$46bo$48b
o$41b2o$41b2o15$bo15bo15bo15bo12bo$2bo15bo15bo15bo9bo$2bo15bo15bo15bo
10bo$bo15bo15bo15bo9bo3$59bo2bo$60b2o31$59bo2bo$60b2o!
This 5-cell oscillator came up in a search. It can turn a period-8n stream (such as period 32) but every other glider is staggered, making it possible to turn them using the older approach. This is a lot more compact than using a pair of glider relays to do the staggering.

Code: Select all

#C [[ RLE input o$bo$bo$o! ]]
#C [[ PASTET EVERY 32 ]]
#C [[ PASTE input 3 22 ]]
x = 39, y = 37, rule = critters
9$30b2o8$25b2o$25b2o5$3bo15bo$4bo15bo$4bo15bo10b2o$3bo15bo13bo$30b2o!
A search turned up this splitter that only works for period 64 streams.

Code: Select all

#C [[ RLE input o$bo$bo$o! ]]
#C [[ PASTET EVERY 64 ]]
#C [[ PASTE input 4 8 ]]
x = 84, y = 18, rule = critters
8$80bo$5bo31bo31bo6bo$6bo31bo31bo6bo$6bo31bo31bo$5bo31bo31bo5bo4bo!
Finally, it's a little inelegant, but the even powers of two can be made to work with the period-12 splitter using a period-64 glider shuttle. So the splitters can be cascaded indefinitely into the equivalent of a binary ripple counter.

Code: Select all

#C [[ RLE input o$bo$bo$o! ]]
#C [[ PASTET EVERY 32 ]]
#C [[ PASTE input 5 124 ]]
x = 124, y = 136, rule = critters
5$112bo$111bo$114bo$113bo7$108bo$99bo7bo$103bo$104bo$104bo$103bo$107b
o10bo$108bo8bo13$92bo21bo$91bo20bo$90bo22bo$89bo21bo7$86bo$77bo7bo$81b
o$82bo$82bo$81bo$85bo10bo$86bo8bo13$68bo20bo$67bo22bo$70bo20bo$69bo22b
o7$64bo$55bo7bo$59bo$60bo$60bo$59bo$63bo10bo$64bo8bo13$48bo20bo$46bo23b
o$47bo19bo$45bo22bo7$42bo$33bo7bo$37bo$38bo$38bo$37bo$41bo10bo$42bo8b
o13$5bo15bo15bo10bo$6bo15bo15bo8bo$6bo15bo15bo7bo$5bo15bo15bo7bo!
Here's a slightly improved splitter for even powers of two.

Code: Select all

#C [[ RLE input o$bo$bo$o! ]]
#C [[ PASTET EVERY 64 ]]
#C [[ PASTE input 5 24 ]]
x = 63, y = 34, rule = critters
9$52bo9$48b2o$39bo$47bo2bo3$47bo$48bo$5bo31bo20bo$6bo31bo18bo$6bo31bo
17bo$5bo31bo17bo!
Here it is cascaded.

Code: Select all

#C [[ RLE input o$bo$bo$o! ]]
#C [[ PASTET EVERY 32 ]]
#C [[ PASTE input 7 207 ]]
x = 189, y = 221, rule = critters
9$178bo$177bo$176bo$175bo3$159bo2$166bo$165bo$165bo8bo$166bo6bo8$169b
o3$164bo13bo$163bo13bo$162bo13bo$161bo13bo3$145bo2$158bo$157bo3$157bo
2bo$158b2o6$155bo3$150bo13bo$149bo13bo$148bo13bo$147bo13bo3$131bo2$138b
o$137bo$137bo8bo$138bo6bo8$141bo3$136bo13bo$135bo13bo$134bo13bo$133bo
13bo3$117bo2$130bo$129bo3$129bo2bo$130b2o6$127bo3$122bo13bo$121bo13bo
$120bo13bo$119bo13bo3$103bo2$110bo$109bo$109bo8bo$110bo6bo8$113bo3$108b
o13bo$107bo13bo$106bo13bo$105bo13bo3$89bo2$102bo$101bo3$101bo2bo$102b
2o6$99bo3$94bo13bo$93bo13bo$92bo13bo$91bo13bo3$75bo2$82bo$81bo$81bo8b
o$82bo6bo8$85bo3$80bo13bo$79bo13bo$78bo13bo$77bo13bo3$61bo2$74bo$73bo
3$73bo2bo$74b2o6$71bo3$66bo13bo$65bo13bo$64bo13bo$63bo13bo3$47bo2$54b
o$53bo$53bo8bo$54bo6bo8$57bo3$7bo15bo15bo15bo10bo$8bo15bo15bo15bo8bo$
8bo15bo15bo15bo7bo$7bo15bo15bo15bo7bo!
Here's a signal splitter that gets dragged in by the stream.

Code: Select all

#C [[ RLE input o$bo$bo$o! ]]
#C [[ PASTET EVERY 64 ]]
#C [[ PASTE input 3 4 ]]
x = 85, y = 15, rule = critters
5$3bo31bo31bo7bo$4bo31bo31bo$4bo31bo31bo8b2o$3bo31bo31bo9bo!
Here's a 90° turn that works for any period 8n+4 (I have 8n, 8n+2, 8n+6 already). It will also work for staggered output from a period 8n stream.

Code: Select all

#C [[ RLE input o$bo$bo$o! ]]
#C [[ PASTET EVERY 44 ]]
#C [[ PASTE input 0 0 ]]
x = 33, y = 5, rule = critters
$bo21bo3bo2bobo$2bo21bo$2bo21bo4bo$bo21bo8bo!
Even better, here's a 90° turn that works for any period 4n, provided there is enough spacing. The gliders can be spaced irregularly as long as they are 4n apart.

Code: Select all

# [[ STEP 4 ]]
# [[ GPS 10 ]]
#C [[ RLE input o$bo$bo$o! ]]
#C [[ PASTET EVERY 256 ]]
#C [[ PASTE input 5 7 ]]
#C [[ PASTE input 31 7 ]] 
#C [[ PASTE input -27 7 ]] 
x = 76, y = 17, rule = critters
6$66bo$5bo62bobo$6bo60b2o$6bo$5bo61bo2bo!
A cascaded signal splitter (or binary ripple counter) using only period-8 logic. This one uses a pair of gliders as the signal, which has the advantage that there are many ways to turn it 90° using a 180°reflector (of which there are many!). It does not require a constant input stream and can be used as a bit counter.

Code: Select all

#C [[ RLE input o$bo$bo$o! ]]
#C [[ PASTET EVERY 32 ]]
#C [[ PASTE input 5 28 ]]
x = 225, y = 47, rule = critters
13$30b2o22bo19bo19bo19bo19bo19bo19bo19bo19bo2$62bo39bo39bo39bo$61bo39b
o39bo39bo5$21bo31bo39bo39bo39bo39bo$22bo2$43bo9bo29bo9bo29bo9bo29bo9b
o29bo9bo$76bo39bo39bo39bo3$76bo39bo39bo39bo$5bo15bo$6bo15bo$6bo15bo8b
2o$5bo15bo8b2obo$41bo39bo39bo39bo39bo$42bo39bo39bo39bo39bo2$47bo15bo10b
o12bo15bo10bo12bo15bo10bo12bo15bo10bo12bo!
Another period 8n 90° turn. This one does not change the glider phase.

Code: Select all

x = 32, y = 32, rule = critters
$25bo$4b2o$3bobo21b2o$3b2o20bobobo$28b2o$bo2bo3$3bo2bo2$4b2o6$3bo2bo2$
4b2o6$27bo2bo$2b2o$2bobobo20b2o$3b2o21bobo$26b2o$6bo!
The output of the bit loop copier can be input into the binary ripple counter to count the number of bits as they are streamed.

Code: Select all

#C [[ RLE input o$bo$bo$o! ]]
#C [[ PASTET EVERY 32 ]]
#C [[ PASTE input 4 58 ]]
x = 193, y = 284, rule = critters
11$89bo43bo8bo13bo$92bo42bo5bo11bo$135bo5bo$90bo42bo8bo12bo7$153bo2bo
2$152bob2obo$151bo6bo7$154b2o$153bo2bo25$78bo$77bo$5bo15bo15bo8b2obo$
6bo15bo15bo8b2o$6bo15bo15bo48bo6bo$5bo15bo15bo50bo4bo3$42bo8bo20bo10b
o52bo10bo20bo10bo$41bo10bo17bo13bo49bo13bo17bo13bo$39bo12bo17bo13bo49b
o13bo17bo13bo$41bo9bo20bo10bo52bo10bo20bo10bo$40bo$42bo3$46b2o42bo12b
o8bo42bo$80b2o22bo5bo$92bo11bo5bo42bo$79bo2bo6bo13bo8bo43bo13$66bo$65b
o$75bo3bo2bo$80b2o3$63bo7$86bo2$75bo2bo5$83bo$84bo$63bo10$71bo2bo$63b
o22bo7$66bo$65bo$75bo4$63bo7$86bo2$75bo2bo5$83bo$84bo$63bo10$71bo2bo$
63bo22bo7$66bo$65bo$75bo4$63bo7$86bo2$75bo2bo5$83bo$84bo$63bo10$71bo2b
o$63bo22bo7$66bo$65bo$75bo4$63bo7$86bo2$75bo2bo5$83bo$84bo$63bo10$71b
o2bo$63bo22bo7$66bo$65bo$75bo4$63bo7$86bo2$75bo2bo!
All the 90° turns.

Code: Select all

# [[ GPS 20 ]]
x = 142, y = 91, rule = critters
5$7bo28bo$6bo30bo$5bo32bo3$76b2o$55bobo2bo17bo14bo2bo29bo$57b2o17bo47b
o7b2o$58b2o16bo18b2o27bo6b3o$57bo2bo32bobo30bo5bo$97bo$129bo$131bo2bo
$132b2o5$58b2o$57bo2bo3$98bo$130bo$75bo2bobo14bo36bobo$58bo35b3o34b2o
$58bo18bo16b2o$57b3o20bo50bo2bo$5bo2bo2$7bo9bo$19bo18bo$6b3o10bo17bo$
8bo8bo18bo15$53bo30bo$32b2o77bo$31bobo12bo6bob2o22bo30bo$31b2o11bo7bo
b2obo23bo30bo$44bo7bo3b2o55bo$29bo2bo13bo7bo27bo15$81bo2bo2$82b2o2$55b
o2bo29bo22bo$30b2o48bo6bo$30bobobo20b2o24bo5bo24bo$31b2o21bobo26bo4bo
25bo$54b2o26bo$34bo74bo!

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

Re: Any serious survey of constructions in Margolus Critters?

Post by pcallahan » December 7th, 2019, 2:09 pm

I've been adding results to my previous post, but I think it's good time for a new one. First here is my most ambitious Critters pattern, a binary ripple counter that can keep track of any sequence of pulses given as 2 phased gliders spaced by any multiple of 64 generations. This example is using the output of the loop-to-stream replicator to demonstrate that it does not have to be an evenly spaced stream.

Code: Select all

#C [[ RLE input o$bo$bo$o! ]]
#C [[ PASTET EVERY 32 ]]
#C [[ PASTE input 4 58 ]]
# [[ STEP 8 ]]
x = 193, y = 284, rule = critters
11$89bo43bo8bo13bo$92bo42bo5bo11bo$135bo5bo$90bo42bo8bo12bo7$153bo2bo
2$152bob2obo$151bo6bo7$154b2o$153bo2bo25$78bo$77bo$5bo15bo15bo8b2obo$
6bo15bo15bo8b2o$6bo15bo15bo48bo6bo$5bo15bo15bo50bo4bo3$42bo8bo20bo10b
o52bo10bo20bo10bo$41bo10bo17bo13bo49bo13bo17bo13bo$39bo12bo17bo13bo49b
o13bo17bo13bo$41bo9bo20bo10bo52bo10bo20bo10bo$40bo$42bo3$46b2o42bo12b
o8bo42bo$80b2o22bo5bo$92bo11bo5bo42bo$79bo2bo6bo13bo8bo43bo13$66bo$65b
o$75bo3bo2bo$80b2o3$63bo7$86bo2$75bo2bo5$83bo$84bo$63bo10$71bo2bo$63b
o22bo7$66bo$65bo$75bo4$63bo7$86bo2$75bo2bo5$83bo$84bo$63bo10$71bo2bo$
63bo22bo7$66bo$65bo$75bo4$63bo7$86bo2$75bo2bo5$83bo$84bo$63bo10$71bo2b
o$63bo22bo7$66bo$65bo$75bo4$63bo7$86bo2$75bo2bo5$83bo$84bo$63bo10$71b
o2bo$63bo22bo7$66bo$65bo$75bo4$63bo7$86bo2$75bo2bo!
Because Critters is reversible and conserves gliders, each counter stage needs to output a "non-carry" as well as a carry. This is simply a glider that heads off to the right in this pattern and does not affect subsequent generations.

The flip-flop that implements the counter stage is the 2-cell period-8 oscillator that is useful in some reflections (and the Turing machine from a previous posting). It receives phased glider pairs in one input stream and sends them off on parallel output streams. Here's the reaction by itself without all the redirection.

Code: Select all

x = 101, y = 21, rule = critters
7$6bo14bo16bo14bo16bo14bo$4bo17bo13bo17bo13bo17bo$4bo17bo13bo17bo13bo
17bo$6bo14bo16bo14bo16bo14bo$97bo3$97bo!
Another new component is the period-8 oscillator that accepts a period-8n stream and turns it 90° but delays every other glider by 12 steps. This is very useful for creating the initial streams of phased pairs. I had another way to do this using shuttles, but this is a clear improvement.

Code: Select all

#C [[ RLE input o$bo$bo$o! ]]
#C [[ PASTET EVERY 32 ]]
#C [[ PASTE input 0 2 ]]
x = 33, y = 9, rule = critters
3$bo15bo$2bo15bo$2bo15bo10b2o$bo15bo13bo$28b2o!
In the process of searching for these components (hitting random cell clusters with glider streams), I found some new 90° turns. These all have different requirements (e.g. some only work for period 8n or period 4n+2, etc.) Here are loops illustrating five different ones that cover all significant findings.

Code: Select all

# [[ GPS 20 ]]
x = 142, y = 91, rule = critters
5$7bo28bo$6bo30bo$5bo32bo3$76b2o$55bobo2bo17bo14bo2bo29bo$57b2o17bo47b
o7b2o$58b2o16bo18b2o27bo6b3o$57bo2bo32bobo30bo5bo$97bo$129bo$131bo2bo
$132b2o5$58b2o$57bo2bo3$98bo$130bo$75bo2bobo14bo36bobo$58bo35b3o34b2o
$58bo18bo16b2o$57b3o20bo50bo2bo$5bo2bo2$7bo9bo$19bo18bo$6b3o10bo17bo$
8bo8bo18bo15$53bo30bo$32b2o77bo$31bobo12bo6bob2o22bo30bo$31b2o11bo7bo
b2obo23bo30bo$44bo7bo3b2o55bo$29bo2bo13bo7bo27bo15$81bo2bo2$82b2o2$55b
o2bo29bo22bo$30b2o48bo6bo$30bobobo20b2o24bo5bo24bo$31b2o21bobo26bo4bo
25bo$54b2o26bo$34bo74bo!
A few curiosities came up that do not have general applications in logic circuits.
This is a period-12 oscillator that is rephased on collisions. As a result it can split a stream of gliders, but the spacing has to be 12n+8. So for instance, period-32 works as does any period 2^(2i+1). You can't use it to count intermittent streams (at least not in the obvious way, and you can't cascade it into a ripple counter). It is still a very elegant way to split an input stream when it fits and got me excited when it came up in a search.

Code: Select all

#C [[ RLE input o$bo$bo$o! ]]
#C [[ PASTET EVERY 32 ]]
#C [[ PASTE input 3 4 ]]
x = 34, y = 13, rule = critters
5$3bo15bo10bo$4bo15bo8bo$4bo15bo7bo$3bo15bo7bo!
With the assistance of a period-64 shuttle, it can be made to work for period 2^(2i) for 64 and up (256, 1024 ...). It loses its elegance though and still requires all gliders to be present (or later ones to enter at just the right phase).

Code: Select all

#C [[ RLE input o$bo$bo$o! ]]
#C [[ PASTET EVERY 64 ]]
#C [[ PASTE input 5 24 ]]
x = 63, y = 34, rule = critters
9$52bo9$48b2o$39bo$47bo2bo3$47bo$48bo$5bo31bo20bo$6bo31bo18bo$6bo31bo
17bo$5bo31bo17bo!
And finally, this one looked really good, sending every other glider either straight ahead or to the right. Unfortunately, it gets pulled into the stream. I'm sure there is something that can be done with this, but it doesn't work as a simple flip-flop.

Code: Select all

#C [[ RLE input o$bo$bo$o! ]]
#C [[ PASTET EVERY 64 ]]
#C [[ PASTE input 3 4 ]]
x = 85, y = 15, rule = critters
5$3bo31bo31bo7bo$4bo31bo31bo$4bo31bo31bo8b2o$3bo31bo31bo9bo!

User avatar
Layz Boi
Posts: 265
Joined: October 25th, 2018, 3:57 pm

Re: Any serious survey of constructions in Margolus Critters?

Post by Layz Boi » February 12th, 2020, 3:59 pm

This probably isn't worth posting but eh, whatever. I found this silly thing the other night while procrastinating. It's a clunky 90° reflector that gets its shape/phase changed every time a glider passes (a whole cycle is 8 gliders). Input must be of the form 8n + 24 where: n >= 0.

Code: Select all

x = 53, y = 35, rule = M15,14,13,3,11,5,6,1,7,9,10,2,12,4,8,0
$43bo2bo2$8b2o4$8bo14bo11bo10bo5bo$3bo3bo16bo11bo8bo$3bo20bo11bo$23bo
11bo16bo15$bo16bo$17bo32bo$8bo8bo28bo3bo$bo5bo10bo26bo4$44b2o2$7bo2bo
!
edit:
2-glider collisions

Code: Select all

x = 151, y = 113, rule = M15,14,13,3,11,5,6,1,7,9,10,2,12,4,8,0
$3bo26bo$4bo24bo$4bo24bo$3bo26bo7$147bo2bo$148b2o$91bo23bo$92bo24bo$92b
o24bo$91bo23bo7$139bo$140bo$140bo$139bo$28bo$27bo$27bo$28bo$bo$2bo$2b
o56bo2bo$bo58b2o7$115bo31bo2bo$117bo30b2o$91bo25bo$92bo22bo$47bo44bo$
48bo42bo$48bo$47bo5$138bo$136bo$136bo$138bo$25bo$27bo$27bo$25bo$bo$2b
o$2bo54bo2bo$bo56b2o11$50bo$48bo$48bo$50bo17$32bo$31bo$5bo25bo31bo2bo
$6bo25bo31b2o$6bo$5bo9$53bo$54bo$54bo$53bo!
collisions between 1-glider and oscillators formed via 2-glider collisions

Code: Select all

x = 533, y = 1499, rule = M15,14,13,3,11,5,6,1,7,9,10,2,12,4,8,0
$98bo$96bo$96bo$98bo2$112b2o$bo110b2o$2bo$2bo$bo2$18b2o$18b2o10$98bo$
96bo$96bo$98bo$112bo$111bo$bo$2bo$2bo110bo$bo112bo$18bo$17bo3$19bo$20b
o11$98bo$96bo$96bo$98bo$115bo$116bo$bo110bo$2bo108bo$2bo$bo$21bo$22bo
$18bo317bo$17bo316bo$334bo$336bo$347bo$348b2o$217bo$218bo128bo$218bo$
217bo$231bo$232b2o$98bo$96bo134bo$96bo$98bo$111bo$112b2o$bo$2bo108bo$
2bo$bo$17bo$18b2o2$17bo$336bo$334bo$334bo$336bo2$348bo$217bo130bo$218b
o128bo2bo$218bo$217bo2$232bo$98bo133bo$96bo134bo2bo$96bo$98bo2$112bo$
bo110bo$2bo108bo2bo$2bo$bo2$18bo$18bo$17bo2bo$336bo$334bo$334bo$336bo
$350bo2$217bo130b2o$218bo131bo$218bo$217bo$234bo2$98bo133b2o286bo$96b
o137bo283bo$96bo421bo$98bo421bo$114bo414bo$531bo$bo110b2o313bo103bo$2b
o111bo313bo$2bo425bo$bo425bo99bo$20bo418bo$441bo$18b2o316bo104bo$20bo
313bo$334bo$336bo100bo$347bo$349bo$217bo131bo$218bo$218bo$217bo127bo$
231bo$233bo$98bo134bo$96bo$96bo423bo$98bo130bo288bo$111bo406bo$113bo406b
o$bo111bo418bo$2bo$2bo424bo99bo$bo107bo318bo$17bo410bo99b2o$19bo407bo
$19bo422bo2$336bo100bo$15bo318bo$334bo103b2o$336bo$350bo2$217bo127bo$
218bo$218bo127b2o$217bo$234bo2$98bo130bo$96bo$96bo133b2o288bo$98bo419b
o$114bo403bo$520bo$bo107bo422bo$2bo$2bo107b2o315bo$bo426bo99bo$20bo407b
o99bo$427bo102bo$15bo426bo2$16b2o318bo$334bo103bo$334bo103bo$336bo103b
o$350bo2$217bo$218bo127bo$218bo127bo$217bo130bo$234bo2$98bo$96bo133bo
$96bo133bo287bo$98bo133bo283bo$114bo401bo$518bo$bo$2bo107bo419b2o$2bo
107bo316bo$bo110bo315bo103bo$20bo407bo$427bo99bo2$16bo423b2o$16bo319b
o$18bo315bo107bo$334bo$336bo100bo2$348b2o$217bo$218bo131bo$218bo$217b
o127bo2$232b2o$98bo$96bo137bo$96bo$98bo130bo2$112b2o$bo$2bo111bo$2bo$
bo107bo2$18b2o2$20bo2$15bo45$98bo$96bo$96bo$98bo13b2o$112b2o2$bo$2bo$
2bo$bo16b2o$18b2o12$98bo$96bo$96bo15bo$98bo12bo3$bo111bo$2bo111bo$2bo
15bo$bo15bo3$19bo$20bo13$98bo$96bo$96bo18bo$98bo17bo$112bo$111bo$bo$2b
o$2bo18bo$bo20bo$18bo$17bo$336bo$334bo$334bo12bo$336bo11b2o2$347bo$217b
o$218bo$218bo12bo$217bo14b2o2$231bo$98bo$96bo$96bo14bo$98bo13b2o2$111b
o$bo$2bo$2bo14bo$bo16b2o2$17bo3$336bo$334bo$334bo$336bo11bo$348bo$347b
o2bo$217bo$218bo$218bo$217bo14bo$232bo$231bo2bo$98bo$96bo$96bo$98bo13b
o$112bo$111bo2bo$bo$2bo$2bo$bo16bo$18bo$17bo2bo3$336bo$334bo$334bo15b
o$336bo$348b2o$350bo$217bo$218bo$218bo15bo$217bo$232b2o$234bo$98bo421b
o$96bo421bo$96bo17bo403bo10bo$98bo421bo10bo$112b2o417bo$114bo$bo425bo
$2bo425bo98bo$2bo17bo407bo10bo$bo425bo13bo$18b2o421bo$20bo$336bo$334b
o102bo$334bo12bo$336bo12bo$349bo2$217bo$218bo126bo$218bo12bo$217bo15b
o$233bo2$98bo$96bo132bo$96bo14bo408bo$98bo14bo404bo$113bo404bo13bo$520b
o$bo525bo$2bo106bo$2bo14bo409bo100b2o$bo17bo408bo$19bo408bo13bo$427bo
$437bo$15bo$336bo101b2o$334bo$334bo15bo$336bo$345bo2$217bo128b2o$218b
o$218bo15bo$217bo$229bo2$98bo131b2o$96bo$96bo17bo405bo$98bo419bo$109b
o408bo13bo$520bo$bo108b2o$2bo525bo$2bo17bo406bo100bo$bo426bo101bo$15b
o412bo13bo$427bo$16b2o$438bo$336bo101bo$334bo105bo$334bo15bo$336bo2$346b
o$217bo128bo$218bo129bo$218bo15bo$217bo2$230bo$98bo131bo$96bo135bo$96b
o17bo403bo$98bo417bo$516bo$110bo407bo11b2o$bo108bo$2bo109bo419bo$2bo17b
o406bo$bo426bo98bo$428bo$16bo410bo12b2o$16bo$18bo423bo$336bo$334bo102b
o$334bo$336bo11b2o2$350bo$217bo$218bo126bo$218bo$217bo14b2o2$234bo$98b
o$96bo132bo$96bo$98bo13b2o2$114bo$bo$2bo106bo$2bo$bo16b2o2$20bo2$15bo
39$98bo$96bo15b2o$96bo15b2o$98bo3$bo$2bo15b2o$2bo15b2o$bo13$98bo13bo$
96bo14bo$96bo$98bo$113bo$114bo$bo16bo$2bo14bo$2bo$bo$19bo$20bo15$98bo
16bo$96bo19bo$96bo15bo$98bo12bo3$bo19bo$2bo19bo$2bo15bo$bo15bo3$336bo
10bo$334bo13b2o$334bo$336bo10bo3$217bo13bo$218bo13b2o$218bo$217bo13bo
3$98bo12bo$96bo15b2o$96bo$98bo12bo3$bo15bo$2bo15b2o$2bo$bo15bo5$336bo
$334bo13bo$334bo13bo$336bo10bo2bo3$217bo$218bo13bo$218bo13bo$217bo13b
o2bo3$98bo$96bo15bo$96bo15bo$98bo12bo2bo3$bo$2bo15bo$2bo15bo$bo15bo2b
o5$336bo13bo$334bo$334bo13b2o$336bo13bo3$217bo16bo$218bo$218bo13b2o$217b
o16bo3$98bo15bo405bo8bo$96bo421bo12bo$96bo15b2o404bo12bo$98bo15bo405b
o2$527bo$bo18bo406bo11bo$2bo425bo12bo$2bo15b2o408bo12bo$bo18bo406bo2$
437bo$336bo10bo$334bo14bo$334bo14bo$336bo2$345bo$217bo13bo$218bo14bo$
218bo14bo$217bo2$229bo$98bo12bo$96bo16bo$96bo16bo406bo11bo$98bo419bo$
518bo8bo$109bo410bo$bo15bo510b2o$2bo16bo$2bo16bo407bo14bo$bo426bo$428b
o8bo$15bo411bo$438b2o2$336bo13bo$334bo$334bo10bo$336bo$346b2o2$217bo16b
o$218bo$218bo10bo$217bo$230b2o2$98bo15bo$96bo$96bo12bo410bo11bo$98bo419b
o$110b2o406bo$520bo7bo$bo18bo507bo$2bo527bo$2bo12bo411bo14bo$bo426bo$
16b2o410bo$427bo10bo$438bo$440bo$336bo13bo$334bo$334bo$336bo9bo$346bo
$348bo$217bo16bo$218bo$218bo$217bo12bo$230bo$232bo$98bo15bo$96bo$96bo
421bo$98bo11bo405bo13b2o$110bo405bo$112bo405bo13bo$bo18bo$2bo524bo$2b
o424bo$bo14bo411bo11b2o$16bo411bo$18bo408bo14bo2$437bo$336bo$334bo13b
2o$334bo$336bo13bo2$345bo$217bo$218bo13b2o$218bo$217bo16bo2$229bo$98b
o$96bo15b2o$96bo$98bo15bo2$109bo$bo$2bo15b2o$2bo$bo18bo2$15bo71$112bo
$111bo$98bo$96bo$96bo16bo$98bo15bo$18bo$17bo$bo$2bo$2bo16bo$bo18bo15$
115bo$116bo$98bo13bo$96bo14bo$96bo$98bo$21bo$22bo$bo16bo$2bo14bo$2bo$
bo$347bo$348b2o$336bo$334bo12bo$334bo$336bo$231bo$232b2o$217bo$218bo12b
o$218bo$217bo$111bo$112b2o$98bo$96bo14bo$96bo$98bo$17bo$18b2o$bo$2bo14b
o$2bo$bo4$348bo$336bo11bo$334bo12bo2bo$334bo$336bo2$232bo$217bo14bo$218b
o12bo2bo$218bo$217bo2$112bo$98bo13bo$96bo14bo2bo$96bo$98bo2$18bo$bo16b
o$2bo14bo2bo$2bo$bo3$350bo2$336bo11b2o$334bo15bo$334bo$336bo$234bo2$217b
o14b2o$218bo15bo$218bo$217bo$114bo414bo$531bo$98bo13b2o406bo10bo$96bo
17bo403bo$96bo421bo$98bo421bo6bo$20bo418bo$441bo$bo16b2o407bo13bo$2bo
17bo407bo$2bo425bo$bo425bo9bo$347bo$349bo$336bo12bo$334bo$334bo$336bo
8bo$231bo$233bo$217bo15bo$218bo$218bo$217bo11bo$111bo$113bo$98bo14bo418b
o$96bo$96bo423bo6bo$98bo10bo408bo$17bo500bo9b2o$19bo500bo$bo17bo422bo
$2bo$2bo424bo9bo$bo13bo412bo$428bo9b2o$427bo$350bo2$336bo8bo$334bo$334b
o11b2o$336bo$234bo2$217bo11bo$218bo$218bo11b2o$217bo$114bo2$98bo10bo422b
o$96bo$96bo13b2o408bo$98bo419bo9bo$20bo497bo9bo$520bo9bo$bo13bo426bo$
2bo$2bo13b2o409bo$bo426bo9bo$428bo9bo$427bo12bo$350bo2$336bo$334bo11b
o$334bo11bo$336bo11bo$234bo2$217bo$218bo11bo$218bo11bo$217bo14bo$114b
o2$98bo$96bo13bo419b2o$96bo13bo407bo$98bo13bo403bo15bo$20bo495bo$518b
o8bo$bo$2bo13bo423b2o$2bo13bo410bo$bo16bo409bo13bo$428bo$427bo9bo2$348b
2o$336bo$334bo15bo$334bo$336bo8bo2$232b2o$217bo$218bo15bo$218bo$217bo
11bo2$112b2o$98bo$96bo17bo$96bo$98bo10bo2$18b2o$bo$2bo17bo$2bo$bo13bo
29$112bo$111bo3$98bo14bo$96bo17bo$18bo77bo$17bo80bo3$bo17bo$2bo17bo$2b
o$bo13$115bo$116bo$112bo$111bo$98bo$96bo$21bo74bo$22bo75bo$18bo$17bo$
bo$2bo$2bo344bo$bo346b2o2$347bo$336bo$334bo$231bo102bo$232b2o102bo2$231b
o$217bo$218bo$111bo106bo$112b2o103bo2$111bo$98bo$96bo$17bo78bo$18b2o78b
o2$17bo$bo$2bo$2bo$bo2$348bo$348bo$347bo2bo$336bo$334bo$334bo$232bo103b
o$232bo$231bo2bo$217bo$218bo$218bo$112bo104bo$112bo$111bo2bo$98bo$96b
o$96bo$18bo79bo$18bo$17bo2bo$bo$2bo$2bo$bo$350bo2$348b2o$350bo$336bo$
334bo$234bo99bo$336bo$232b2o$234bo$217bo$218bo$114bo103bo310bo$217bo313b
o$112b2o417bo$114bo$98bo421bo$96bo421bo8bo$20bo75bo342bo78bo$98bo342b
o78bo$18b2o421bo$20bo$bo425bo$2bo425bo8bo$2bo344bo80bo$bo347bo77bo$349b
o2$336bo$334bo10bo$231bo102bo$233bo102bo$233bo2$217bo$218bo10bo$111bo
106bo$113bo103bo$113bo418bo2$98bo428bo$96bo12bo$17bo78bo423bo7b2o$19b
o78bo419bo$19bo422bo75bo$520bo$bo435bo$2bo12bo$2bo424bo10b2o$bo426bo$
350bo77bo$427bo$345bo2$336bo9b2o$334bo$234bo99bo$336bo$229bo2$217bo12b
2o$218bo$114bo103bo$217bo$109bo422bo2$98bo11b2o$96bo431bo$20bo75bo423b
o7bo$98bo419bo11bo$15bo426bo75bo$520bo$bo14b2o$2bo435bo$2bo424bo10bo$
bo426bo11bo$350bo77bo$427bo2$346bo$336bo9bo$334bo13bo$234bo99bo$336bo
2$230bo$217bo12bo$218bo13bo$114bo103bo$217bo2$110bo419b2o$98bo11bo$96b
o15bo419bo$20bo75bo421bo$98bo417bo10bo$516bo$16bo423b2o76bo$bo14bo$2b
o15bo423bo$2bo424bo$bo426bo8bo$428bo$348b2o77bo2$350bo$336bo$334bo10b
o$334bo$232b2o102bo2$234bo$217bo$218bo10bo$218bo$112b2o103bo2$114bo$98b
o$96bo12bo$96bo$18b2o78bo2$20bo$bo$2bo12bo$2bo$bo33$112bo$111bo3$113b
o$114bo$18bo79bo$17bo78bo$96bo$98bo$19bo$20bo$bo$2bo$2bo526bo$bo529bo
$531bo3$527bo$439bo80bo$441bo76bo$441bo76bo$520bo2$437bo$347bo79bo$349b
o78bo$349bo78bo$427bo2$345bo$231bo104bo$233bo100bo$233bo100bo$336bo2$
229bo$111bo105bo$113bo104bo$113bo104bo313bo$217bo$527bo$109bo$17bo80b
o429b2o$19bo76bo$19bo76bo345bo77bo$98bo419bo$437bo80bo$15bo504bo$bo436b
2o$2bo$2bo347bo76bo$bo426bo$345bo82bo$427bo$346b2o2$234bo101bo$334bo$
229bo104bo$336bo$230b2o2$114bo102bo$218bo$109bo108bo313bo$217bo$110b2o
$528bo$20bo77bo429bo$96bo433bo$15bo80bo345bo77bo$98bo419bo$16b2o500bo
$438bo81bo$bo436bo$2bo437bo$2bo347bo76bo$bo426bo$428bo$346bo80bo$346b
o$348bo$234bo101bo$334bo$334bo$230bo105bo$230bo$232bo$114bo102bo$218b
o$218bo$110bo106bo312b2o$110bo$112bo419bo$20bo77bo$96bo430bo$96bo421b
o$16bo81bo341b2o74bo$16bo499bo$18bo423bo75bo$bo$2bo434bo$2bo424bo$bo346b
2o78bo$428bo$350bo76bo2$345bo$336bo$232b2o100bo$334bo$234bo101bo2$229b
o$217bo$112b2o104bo$218bo$114bo102bo2$109bo$98bo$18b2o76bo$96bo$20bo77b
o2$15bo$bo$2bo$2bo$bo!
Last edited by Layz Boi on February 14th, 2020, 12:40 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 » February 14th, 2020, 11:27 am

Layz Boi wrote:
February 12th, 2020, 3:59 pm
This probably isn't worth posting but eh, whatever. I found this silly thing the other night while procrastinating. It's a clunky 90° reflector that gets its shape/phase changed every time a glider passes (a whole cycle is 8 gliders). Input must be of the form 8n + 24 where: n >= 0.

Code: Select all

x = 53, y = 35, rule = M15,14,13,3,11,5,6,1,7,9,10,2,12,4,8,0
$43bo2bo2$8b2o4$8bo14bo11bo10bo5bo$3bo3bo16bo11bo8bo$3bo20bo11bo$23bo
11bo16bo15$bo16bo$17bo32bo$8bo8bo28bo3bo$bo5bo10bo26bo4$44b2o2$7bo2bo
!
Well, I would have found it very interesting before I found some of the smaller 90° reflectors. Originally, the only way I could see to turn a glider was to send them in pairs and collide the lead glider with the one behind it. I never tried adding an oscillator in between like that (though I knew it could turn a glider). It could be useful for something.

Post Reply