Page 2 of 6

Re: Caterloopillar WIP (all speeds < c/4)

PostPosted: April 10th, 2016, 5:18 pm
by muzik
new page

I feel like this discovery might demotivate anyone who is looking for a c/8 elementary ship, that's my main problem but not a major one

Re: Caterloopillar WIP (all speeds < c/4)

PostPosted: April 10th, 2016, 5:47 pm
by dvgrn
Apple Bottom wrote:I've started an entry in the LifeWiki for this, too. Since it's missing a picture, I was wondering - would it be OK to use the one from your initial post above? I think it's a great illustration of how the ship works.

I think I was the one that put that illustration together, and it's fine by me if it ends up in the LifeWiki somehow.

Have been watching the Caterloopillar in action, and it's really impressive how many interlocking problems have been solved and wrapped up in a nice neat package. @simsim314, congratulations on getting past all the construction headaches, and I look forward to the Pick A Speed, Any Speed caterloopillar-building script...! The two-halves-building-each-other design is really a work of art, though somewhat mind-bending to think about. Egbert B. Gebstadter will be very pleased.

I found I could get a good sense of how the top part worked -- the gradual creation of the downward-traveling *WSSes -- by running the pattern in LifeHistory for a few thousand generations, and then scrolling down from the top. It gives a nice overview of how the initial block is pushed far to the right by slow salvos, and then gradually converted into each of the downward *WSSes in turn.

After the halfway point the LifeHistory view gets a little tougher to understand -- the target gets pulled leftward, and then starts getting hit by gliders from the now-complete downward-traveling *WSS groups. So in the lower half, it seems as if the interesting action has always happened just above where you're looking.

Re: Caterloopillar WIP (all speeds < c/4)

PostPosted: April 10th, 2016, 6:18 pm
by Kazyan
Oh, so this is what you've been doing, Simkin! I was beginning to think you'd found a different hobby to master. :D Excellent work here--we're increasingly able to build things with less and less low-level justification these days. Previous caterpillars have used an obvious "track" reaction, but this one kind of just...works.

Re: Caterloopillar WIP (all speeds < c/4)

PostPosted: April 10th, 2016, 6:26 pm
by muzik
Can we name the first caterloopillar "Caterloopillar 1"?

Re: Caterloopillar WIP (all speeds < c/4)

PostPosted: April 10th, 2016, 6:45 pm
by calcyman
muzik wrote:Can we name the first caterloopillar "Caterloopillar 1"?


...or c8rloopillar.

Re: Caterloopillar WIP (all speeds < c/4)

PostPosted: April 10th, 2016, 6:51 pm
by muzik
calcyman wrote:
muzik wrote:Can we name the first caterloopillar "Caterloopillar 1"?


...or c8rloopillar.

gr8 b8 m8 I r8 c/8

But in all seriousness, naming it Caterloopillar 1 would probably help distinguish it from other potential ships with this technology (see how Gemini ships are numbered?)

Re: Caterloopillar WIP (all speeds < c/4)

PostPosted: April 10th, 2016, 6:56 pm
by simsim314
dvgrn wrote: @simsim314, congratulations on getting past all the construction headaches, and I look forward to the Pick A Speed, Any Speed caterloopillar-building script...!


Thanks, me too! Still much work ahead. And thanks for the help of course, and the clarification efforts.

dvgrn wrote: So in the lower half, it seems as if the interesting action has always happened just above where you're looking.


I find it pretty intuitive in both directions, yet admittedly it's somewhat confusing.

To gain some intuition I would suggest to do the following exercise:

look at the recipes in action from the first block in the middle, ignoring the passing forward *WSSs which are just confusing. Focus on single "target", and let the caterloopillar pass, and just observe the slow salvo construction being applied. There is no magic trick - it's just recipes applied one after another, and you don't miss any action if you were watching from the beginning. I find it simpler to just run without LifeHistory, following the target visually.

The single not intuitive thing I can relate to is the presence of *WSS coming from below, which are obviously the result of the recipes applied. I know it looks a bit like back in time, but on the other hand - this is why we use edge shooters in the first place. This kind of design pattern is not new for slow salvo applied in spaceships, I'm sure I saw this before.

Re: Caterloopillar WIP (all speeds < c/4)

PostPosted: April 10th, 2016, 7:07 pm
by muzik
Can someone put this discovery on the front page as well?

Re: Caterloopillar WIP (all speeds < c/4)

PostPosted: April 10th, 2016, 7:07 pm
by gameoflifeboy
muzik wrote:Can we name the first caterloopillar "Caterloopillar 1"?


I'd prefer something more descriptive, like "C/8 caterloopillar". Like how the p43 Snark glider loop was called "P43 glider loop".

But I don't think separate pages should be made for the C/8 and the spaceship family. Caterloopillar could be a definition page instead of a pattern page, but give a download link to the C/8 spaceship. Or we could take the Gemini route, giving the name "caterloopillar" to the C/8 ship specifically, and mentioning it being part of an infinite family on the same page.

Re: Caterloopillar WIP (all speeds < c/4)

PostPosted: April 10th, 2016, 7:23 pm
by Sokwe
Congratulations on this stunning accomplishment!

muzik wrote:I feel like this discovery might demotivate anyone who is looking for a c/8 elementary ship.

I, for one, won't be demotivated. Low-period spaceships are my favorite area of study in Life.

I'm wondering how we should present these results on the status page. Obviously, this gives versatile puffers for (1,0)c/6 and (1,0)c/7, but should we add any new speeds to the list? If so, how many?

Re: Caterloopillar WIP (all speeds < c/4)

PostPosted: April 10th, 2016, 7:24 pm
by simsim314
Kazyan wrote:Oh, so this is what you've been doing, Simkin! I was beginning to think you'd found a different hobby to master. Excellent work here


Actually I took some break from CGOL, following only the "big news".

Kazyan wrote:we're increasingly able to build things with less and less low-level justification these days. Previous caterpillars have used an obvious "track" reaction, but this one kind of just...works.


Yes the basic idea is pretty old - attributed to David Bell, who realized that *WSS salvo applied to gliders can action as "core". He thought using gliders bouncing between *WSS salvos to adjust the speed.

Yet the low level thing was the slow salvo *WSS edge shooters, which took about a week of CPU time on 8 cores server. Also Alexey Nigin brought up the strange loop design in the discussions, which cut significantly the design size.

All in all I think it was a combination of simple realizations, low level mining, and design ingenuity.

Re: Caterloopillar WIP (all speeds < c/4)

PostPosted: April 10th, 2016, 7:37 pm
by simsim314
Sokwe wrote:Congratulations on this stunning accomplishment!


Thanks!

Sokwe wrote:I'm wondering how we should present these results on the status page.


I would limit for now the result to c/8. We don't have any finished c/6 or c/7 caterloopillars yet. We only have proof of concept, not a "final product".

Re: Caterloopillar WIP (all speeds < c/4)

PostPosted: April 10th, 2016, 7:48 pm
by simsim314
I find the C/8 Caterloopillar as most descriptive.

I also don't think we should have Caterloopillar family page just yet - lets wait for multiple designs to justify them as family. For now at least we should name them with speed prefix/postfix to distinguish ships.

Re: Caterloopillar WIP (all speeds < c/4)

PostPosted: April 10th, 2016, 8:00 pm
by simsim314
I've measured the heat to be 236,252.77 using this script:

import golly as g

period = 2000
cells = g.getcells(g.getrect())

totalPop = 0.0

for i in xrange(period):
   
   g.run(1)
   new_cells = g.getcells(g.getrect())
   g.putcells(cells, 0, 0, 0, 0, 0, 0, "xor")
   totalPop += int(g.getpop())
   g.new("")
   g.putcells(new_cells)
   cells = new_cells
   g.show(str(i) + "," + str(totalPop / (i + 1)))
   
g.show(str(totalPop / period))

Re: Caterloopillar WIP (all speeds < c/4)

PostPosted: April 11th, 2016, 12:55 am
by codeholic
Sokwe wrote:I'm wondering how we should present these results on the status page. Obviously, this gives versatile puffers for (1,0)c/6 and (1,0)c/7, but should we add any new speeds to the list? If so, how many?

I think time has come to differentiate between elementary and macro-spaceships and puffers on the status page, on the pages for certain speeds and in the spaceship article. Since status for versatile puffers repeats the column for puffers, I suggest to differentiate between them with color (yellow means no versatile puffer).

Re: Caterloopillar WIP (all speeds < c/4)

PostPosted: April 11th, 2016, 3:42 am
by simsim314
Bringing back the topic of c/2. HartmutHolzwart has found a way to destroy puffer with its own fuse a while back.

This allows the following flow which is only limited by c/2:

1. SL->Glider.
2. Glider->c/2 puffer using *WSS salvos fanouts and timing adjustments.
3. On the back side of the reading head will be two rakes that ignite the fuse, which destroys the puffer.
4. Cleaning the mess and shooting output glider.
5. Converting the output glider back to SL.

EDIT While off topic - talking about oblique direction we could have slow salvo constructor to generate *WSS and glider salvo seeds and shoot them in correct timing, to fit know recipes. Slow salvo is not limited to firing single *WSS at a time, it could build pretty complex seeds, the only problem it has, is that the longer the recipe is - the more far away from the "core" the other direction "core" can be constructed.

EDIT2 More thoughts about oblique direction - I think in our case, it's better not to use the standard recipes, as the "pyramid" created using them will explode exponentially by number of *WSS. Instead we can use dried slow salvo seeds to activate the whole reading head by single glider. This approach will allow us to have linear or quadratic construction time (but not exponential). Having ~100-200 dried seeds is definitely something doable, it's maybe 10-20 times larger than the orthogonal case, but having 5M cells instead of 250K is still well in reasonable range.

Anyone wants to try and generate dried salvo for the reading heads?

Re: Caterloopillar WIP (all speeds < c/4)

PostPosted: April 11th, 2016, 10:09 am
by muzik
So a catterloopilar can simulate any orthogonal speed? Nice!



In that case, could a CLP-based 17c/45 ship smaller than the original caterpillar exist?

Re: Caterloopillar WIP (all speeds < c/4)

PostPosted: April 11th, 2016, 11:12 am
by dvgrn
muzik wrote:So a catterloopilar can simulate any orthogonal speed? Nice!

In that case, could a CLP-based 17c/45 ship smaller than the original caterpillar exist?

Any rational orthogonal speed less than c/4, yes.

17c/45 is greater than c/4, so the fastest Caterloopillar can't keep up with the original Caterpillar.

Re: Caterloopillar WIP (all speeds < c/4)

PostPosted: April 11th, 2016, 11:22 am
by HartmutHolzwart
Bringing back the topic of c/2. HartmutHolzwart has found a way to destroy puffer with its own fuse a while back.

This allows the following flow which is only limited by c/2:

1. SL->Glider.
2. Glider->c/2 puffer using *WSS salvos fanouts and timing adjustments.
3. On the back side of the reading head will be two rakes that ignite the fuse, which destroys the puffer.
4. Cleaning the mess and shooting output glider.
5. Converting the output glider back to SL.


Currently, this is more a basic idea than a concrete implementation. The first step would be to optimize the blinker puffer eating reaction, searching for a version that is less messy than my proof of concept (just the first thing that happened to work). Then we would need a seed for the blinker puffer + convoy that can be built by the downstream helix.

Still some way to go...

Whether the result will really be smaller than the original caterpillar is still to be proved. At least this method would be much more generic and applicable for a variety of speeds.

Re: Caterloopillar WIP (all speeds < c/4)

PostPosted: April 11th, 2016, 11:25 am
by simsim314
muzik wrote:So a catterloopilar can simulate any orthogonal speed? Nice!

Not "any" speed, but it's not limited by c/4.

muzik wrote:In that case, could a CLP-based 17c/45 ship smaller than the original caterpillar exist?

It's not necessary valid speed for the design. But due to the fact that 17 and 45 are odd, my guess is that caterloopillar can be built for this speed.

A rough estimation of the size should be around 200 *WSS which is ~10 times larger than the current c/8 - i.e. 2.5M active cells, still well below the original Caterpillar.

Notice the design is also capable of creating "universal helix", using the same basic flow.

dvgrn wrote:Any rational orthogonal speed less than c/4, yes.

muzik probably refers to my previous post regarding higher speed designs.

Re: Caterloopillar WIP (all speeds < c/4)

PostPosted: April 11th, 2016, 11:37 am
by simsim314
HartmutHolzwart wrote: The first step would be to optimize the blinker puffer eating reaction, searching for a version that is less messy than my proof of concept (just the first thing that happened to work).


It's true that maybe another placement of *WSS is valid - but notice the search space there is pretty limited. I might run two *WSS search later on.

The reaction is not that messy - if you acknowledge we can add *WSS sparks to clean and modify it. The most complex part in the design, is the construction of G->puffer using *WSS salvos.

HartmutHolzwart wrote:Whether the result will really be smaller than the original caterpillar is still to be proved.


My estimation of 100-200 *WSS might be optimistic, but in order to get to Caterpillar size we will need ~800 *WSS (and noticing that the main problems is only in forward case we can use as much as ~1600 *WSS).

EDIT Have found that with single *WSS this puffer can be destroyed only in three ways, all of them use the same puffer but vary in ignition delay:

x = 1072, y = 69, rule = B3/S23
37bo4b3o492bo4b3o492bo4b3o$36b3o3bo2bo490b3o3bo2bo490b3o3bo2bo$29b3o3b
2obo3bo486b3o3b2obo3bo486b3o3b2obo3bo$29bo2bo2b3o4bo3bo482bo2bo2b3o4bo
3bo482bo2bo2b3o4bo3bo$29bo5b3o4bo486bo5b3o4bo486bo5b3o4bo$29bo3bob3o5b
obo483bo3bob3o5bobo483bo3bob3o5bobo$29bo3bob2o492bo3bob2o492bo3bob2o$
29bo6b2o491bo6b2o491bo6b2o$30bobo8b3o486bobo8b3o486bobo8b3o$41bo2bo
496bo2bo496bo2bo$36bo4bo494bo4bo494bo4bo$36bo4bo3bo490bo4bo3bo490bo4bo
3bo$36bo4bo3bo490bo4bo3bo490bo4bo3bo$41bo499bo499bo$36bo5bobo491bo5bob
o491bo5bobo$36bo499bo499bo$36bo499bo499bo2$36bo499bo499bo$36bo499bo
499bo$36bo499bo499bo2$36bo499bo499bo$36bo499bo499bo$36bo499bo499bo2$
36bo499bo499bo$36bo499bo499bo$36bo499bo499bo2$36bo499bo499bo$36bo499bo
499bo$36bo499bo499bo2$36bo499bo499bo$o35bo35bo463bo499bo$b2o33bo33b2o
428bobo33bo33bobo428bo34bo34bo$2o69b2o428b2o67b2o430b2o65b2o$36bo464bo
34bo34bo429b2o33bo33b2o$36bo499bo499bo$36bo499bo499bo2$36bo499bo499bo$
36bo499bo499bo$36bo499bo499bo2$36bo499bo499bo$36bo499bo499bo$36bo499bo
499bo2$36bo499bo499bo$36bo499bo499bo$36bo499bo499bo2$36bo499bo499bo$
36bo499bo499bo$36bo499bo499bo2$36bo499bo499bo$36bo499bo499bo$36bo499bo
499bo2$36bo499bo499bo$36bo499bo499bo$36bo499bo499bo2$36bo499bo499bo$
36bo499bo499bo$36bo499bo499bo!


As the cleaning is much simpler then conversion of G->puffer, I think searching 2 *WSS is waste of effort - we just need now find a cheap way to clean the mess in one of the 3 ignition timings.

Re: Caterloopillar WIP (all speeds < c/4)

PostPosted: April 11th, 2016, 5:56 pm
by simsim314
I've pushed to GitHub all relevant code and data for caterloopillar generation.

I didn't changed the paths, which still point to my local dir names, so you can't use the code out of the box.
But at least all the data and the code is now somewhat centralized in single place.

To run it all together, you'll need to go through the code and change the paths to point to the Data folder. Also I placed the python scripts into golly python folder to allow "import".

I would start from making the forward c/8 caterloopilllar code to run. I think that replacing this line with Caterloopillar/Data folder should be enough, but I might be missing something.

All in all the code is generally well divided and logically named, so except the local env. mess the code is in good shape.

Re: Caterloopillar WIP (all speeds < c/4)

PostPosted: April 12th, 2016, 5:32 am
by simsim314
I've an oblique ship design idea for an adjustable speed, that requires only one direction.

As I said before - for oblique design it's probably most efficient to dry the reading heads and activate all the *WSS armada by single glider.

So the idea is to build an upward reading head, that will shoot a slow salvo - that in the final stage creates just another upwards reading head. See attached image.

Re: Caterloopillar WIP (all speeds < c/4)

PostPosted: April 12th, 2016, 6:08 am
by muzik
Could that also work with diagonal ships?

Re: Caterloopillar WIP (all speeds < c/4)

PostPosted: April 12th, 2016, 7:39 am
by simsim314
muzik wrote:Could that also work with diagonal ships?


The slope of the design is between 0 and 180, horizontal, diagonal, or knight direction is straightforward. But the speed limitation might be dependent on the slope i.e. very steep slopes might not work for high speeds, yet I'm not really sure if there is some major limitation for extreme slopes, as we can limit our angle to be inside [0, 45] degrees interval.