Thread for basic questions

For general discussion about Conway's Game of Life.
User avatar
Macbi
Posts: 699
Joined: March 29th, 2009, 4:58 am

Re: Thread for basic questions

Post by Macbi » July 5th, 2019, 7:32 am

dvgrn wrote:The BLSE debris is a bit more complicated, though. A 35-glider recipe will do non-periodic damage to the leftover blocks, and toward the end of the recipe there will be gliders passing close by multi-million-cell lengths of this perforated debris chain on both sides, forward and then back on the other side. I think a standard HashLife implementation will get slowed down by this more and more as the debris chain gets longer, so that there will be much more than a logarithmic increase in simulation time each time the recipe doubles in length.
This might be a stupid idea, but we could make an algorithm which was just HashLife rotated by 45° so that it would see gliders and switchengines as going orthogonally. Would that help at all?
dvgrn wrote:
testitemqlstudop wrote:Then what about the original 385 [Cordership]/gun recipe? That should be easier to clean up, and we can generalize that to the 35 glider recipe.

Also, I'm the kind of skeptic that doesn't believe something before seeing it in action.
It might even make sense to allow up to say 999 gliders, and also build the self-destruct circuitry for the guns as part of the initial recipe.

Otherwise, even if you're building something simple like a pulsar, the great majority of the incoming bits would be needed to build the self-destruct circuitry that has to be included with every construction. That might still push the incoming Cordership out far enough that it would be very time-consuming to simulate the pattern to completion.
Maybe we could aim to synthesize a spider in 1 less than the current cost of 567? That seems doable since we would have 566-385 = 181 gliders in hand, and the 385-glider RCT doesn't get worse as the synthesis cost increases in the same way that the 35-glider RCT does.

User avatar
calcyman
Posts: 2098
Joined: June 1st, 2009, 4:32 pm

Re: Thread for basic questions

Post by calcyman » July 5th, 2019, 10:30 am

dvgrn wrote:The BLSE debris is a bit more complicated, though. A 35-glider recipe will do non-periodic damage to the leftover blocks, and toward the end of the recipe there will be gliders passing close by multi-million-cell lengths of this perforated debris chain on both sides, forward and then back on the other side. I think a standard HashLife implementation will get slowed down by this more and more as the debris chain gets longer, so that there will be much more than a logarithmic increase in simulation time each time the recipe doubles in length.

There isn't a way to re-work the design so that we get an elbow block back at the end of each cycle of crystal growth and decay... is there? It would be really nice to be able to leave out the BLSE entirely.
Good idea. I guess one could do a breadth-first search to see whether there's a universal set of these 'binary slow salvos', yes. In that case, we could probably reduce the cost of living to 33. The universal set would need to generate hand blocks as well, because we wouldn't be able to rely on the Benevolent Limitless Source of Effluvium.

Failing that, we can just bootstrap a block-keeper into existence using the 35-glider design, and then subsequently avoid dealing with the rest of the BLSE debris.
What do you do with ill crystallographers? Take them to the mono-clinic!

User avatar
dvgrn
Moderator
Posts: 5897
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Thread for basic questions

Post by dvgrn » July 5th, 2019, 10:49 am

calcyman wrote:Failing that, we can just bootstrap a block-keeper into existence using the 35-glider design, and then subsequently avoid dealing with the rest of the BLSE debris.
Technically that's true, but if my estimates are anywhere near right, we might need a ~100-million-bit recipe just to build a block-keeper.

So there will still be a painful and possibly hard-to-simulate stage,until the block-keeper comes online -- after which, yes, HashLife would suddenly start having a much easier time of it.
Macbi wrote:... we could make an algorithm which was just HashLife rotated by 45° so that it would see gliders and switchengines as going orthogonally. Would that help at all?
Not much, I think, if it's "just HashLife". The algorithm will still have to keep track of lots of different larger hashtiles that are basically just a glider flying past every possible combination of BLSE-blocks-with-intermittent-gaps. We can avoid that with a StreamLife-type algorithm, but there's some significant extra overhead there.

I'm thinking we'd be better off with a custom HashLife-based algorithm that simulates the Sakapuffer and the BLSE debris in a separate universe, and just adds gliders magically to the RCT simulation universe in the correct spacetime locations. We know perfectly well that those parallel gliders won't ever interact with the BLSE debris, after all. It's only general-purpose algorithms like HashLife and StreamLife that have to waste time figuring that out for each new situation.
Moosey wrote:If you can’t build a pulsar reasonably, could you do a proof of concept to just synthesize the first non-nothing object the RCT can make, with out worrying about all the junk to clean up?
Yeah, we should probably do that... maybe after we figure out whether a 33-glider Cost of Living is possible, or if we're stuck with 35. A pulsar is probably cheap enough, especially if we use simulated gliders coming in from the Sakapuffer (with the right [0|128] values mod 256, but not separated by huge distances).

User avatar
GUYTU6J
Posts: 702
Joined: August 5th, 2016, 10:27 am
Location: My Glimmering Garden

Re: Thread for basic questions

Post by GUYTU6J » July 5th, 2019, 12:28 pm

Can the slmake be modified so that it is compatible with synthesizing oscillators like queen-bee shuttles?
Current status: outside the continent of cellular automata. Specifically, not on the plain of life.
An awesome gun firing cool spaceships:

Code: Select all

x = 3, y = 5, rule = B2kn3-ekq4i/S23ijkqr4eikry
2bo$2o$o$obo$b2o!

User avatar
dvgrn
Moderator
Posts: 5897
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Thread for basic questions

Post by dvgrn » July 5th, 2019, 12:49 pm

GUYTU6J wrote:Can the slmake be modified so that it is compatible with synthesizing oscillators like queen-bee shuttles?
It's already capable of synthesizing anything that we have a glider synthesis for.

We don't have a script yet to build a 1G seed for arbitrarily large and complex glider recipes, but someone will probably write one sooner rather than later. It's a fairly simple problem as these things go. Meanwhile, you'd just have to build specific seeds by hand for whatever oscillators or other structures you want.

For example, this Gosper glider gun seed is trivially buildable by slmake, and it could very easily be modified to produce a queen-bee shuttle instead.

User avatar
Macbi
Posts: 699
Joined: March 29th, 2009, 4:58 am

Re: Thread for basic questions

Post by Macbi » July 5th, 2019, 2:05 pm

dvgrn wrote:
Macbi wrote:... we could make an algorithm which was just HashLife rotated by 45° so that it would see gliders and switchengines as going orthogonally. Would that help at all?
Not much, I think, if it's "just HashLife". The algorithm will still have to keep track of lots of different larger hashtiles that are basically just a glider flying past every possible combination of BLSE-blocks-with-intermittent-gaps. We can avoid that with a StreamLife-type algorithm, but there's some significant extra overhead there.
I was thinking of aligning the origin of the coordinate system with the gap between the glider stream and the debris, so that no hashtile contains both the gliders and the debris.
dvgrn wrote:I'm thinking we'd be better off with a custom HashLife-based algorithm that simulates the Sakapuffer and the BLSE debris in a separate universe, and just adds gliders magically to the RCT simulation universe in the correct spacetime locations. We know perfectly well that those parallel gliders won't ever interact with the BLSE debris, after all. It's only general-purpose algorithms like HashLife and StreamLife that have to waste time figuring that out for each new situation.
At some point we're no longer simulating the Life universe; we're just writing down what we know will happen. Why not just use the algorithm that immediately draws the synthesised pulsar in the location we know it ends up.

Maybe what we really want isn't a simulation algorithm but rather a computer-verified proof that the RCT does what we say it does.

User avatar
dvgrn
Moderator
Posts: 5897
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Thread for basic questions

Post by dvgrn » July 5th, 2019, 2:19 pm

Macbi wrote:I was thinking of aligning the origin of the coordinate system with the gap between the glider stream and the debris, so that no hashtile contains both the gliders and the debris.
Yeah, sorry, I wasn't quite clear. That idea doesn't work (I think) because with the current RCT design there are gliders from the Sakapuffer going in one direction on one side of the BLSE debris, and then gliders going in the opposite direction on the other side of the BLSE debris. No matter where you put the dividing line between hashtiles, the BLSE debris is going to get mixed up with one stream of gliders or the other.

Also, I'm fairly sure that this kind of alignment really doesn't make any difference, anyway. If a glider-turned-45-degrees is flying along right next to a horizontal hashtile boundary, HashLife is going to be looking at each neighbor hashtile in passing, and trying to find shortcuts by combining the glider's hashtile with the BLSE debris hashtiles and doing Big Steps to save time... and that won't work very well without StreamLife-type shortcuts, because the BLSE debris is somewhat chaotic and HashLife ends up keeping track of a huge number of hashtiles.

User avatar
gameoflifemaniac
Posts: 776
Joined: January 22nd, 2017, 11:17 am
Location: There too

Re: Thread for basic questions

Post by gameoflifemaniac » July 5th, 2019, 3:05 pm

What new "technological" patterns could be created (the phi calculator, for example)?
https://www.youtube.com/watch?v=q6EoRBvdVPQ
One big dirty Oro. Yeeeeeeeeee...

User avatar
calcyman
Posts: 2098
Joined: June 1st, 2009, 4:32 pm

Re: Thread for basic questions

Post by calcyman » July 5th, 2019, 4:21 pm

dvgrn wrote:
Macbi wrote:I was thinking of aligning the origin of the coordinate system with the gap between the glider stream and the debris, so that no hashtile contains both the gliders and the debris.
Yeah, sorry, I wasn't quite clear. That idea doesn't work (I think) because with the current RCT design there are gliders from the Sakapuffer going in one direction on one side of the BLSE debris, and then gliders going in the opposite direction on the other side of the BLSE debris.
Those gliders are very very sparse -- there's at most one of them in the universe at any given time -- so you don't get the pathological problems of antiparallel glider streams that necessitate StreamLife.

Anyway, I have a rough idea of how to implement a HashHashLife, and waiting to hear back from Tom Rokicki about whether it's feasible.
What do you do with ill crystallographers? Take them to the mono-clinic!

User avatar
dvgrn
Moderator
Posts: 5897
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Thread for basic questions

Post by dvgrn » July 5th, 2019, 4:29 pm

gameoflifemaniac wrote:What new "technological" patterns could be created (the phi calculator, for example)?
Here's a list from the end of last year of open half-finished projects on the self-construction side of things, don't know if those are interesting.

Re: the phi and pi calculators and O(sqrt(log(t))), I'd love to see the N-state computers that calcyman used for those projects documented a little better and updated with modern technology, which is much more compact (Snarks and syringes). I have the "machine code" for the phi calculator (177 lines) but not for the pi calculator. Not sure it's available anywhere so I'll put it here:

Code: Select all

# Phi calculation program

# This is designed to calculate the decimal digits of Phi, or 1.618033...

# State    Input   Next state    Actions
# ---------------------------------------

INITIAL;    Z;     I1;           INC R0, NOP
INITIAL;    NZ;    I1;           INC R0, NOP



# Start with 18-bit precision

I1;         Z;     I2;           INC R0, NOP
I1;         NZ;    I2;           INC R0, NOP
I2;         Z;     I3;           INC R0, NOP
I2;         NZ;    I3;           INC R0, NOP
I3;         Z;     I4;           INC R0, NOP
I3;         NZ;    I4;           INC R0, NOP
I4;         Z;     I5;           INC R0, NOP
I4;         NZ;    I5;           INC R0, NOP
I5;         Z;     I6;           INC R0, NOP
I5;         NZ;    I6;           INC R0, NOP
I6;         Z;     I7;           INC R0, NOP
I6;         NZ;    I7;           INC R0, NOP
I7;         Z;     I8;           INC R0, NOP
I7;         NZ;    I8;           INC R0, NOP
I8;         Z;     I9;           INC R0, NOP
I8;         NZ;    I9;           INC R0, NOP
I9;         Z;     I10;          INC R0, NOP
I9;         NZ;    I10;          INC R0, NOP
I10;        Z;     I11;          INC R0, NOP
I10;        NZ;    I11;          INC R0, NOP
I11;        Z;     I12;          INC R0, NOP
I11;        NZ;    I12;          INC R0, NOP
I12;        Z;     I13;          INC R0, NOP
I12;        NZ;    I13;          INC R0, NOP
I13;        Z;     I14;          INC R0, NOP
I13;        NZ;    I14;          INC R0, NOP
I14;        Z;     I15;          INC R0, NOP
I14;        NZ;    I15;          INC R0, NOP
I15;        Z;     I16;          INC R0, NOP
I15;        NZ;    I16;          INC R0, NOP
I16;        Z;     I17;          INC R0, NOP
I16;        NZ;    I17;          INC R0, NOP
I17;        Z;     I18;          INC R0, NOP
I17;        NZ;    I18;          INC R0, NOP



# Initialise T0 with the number '22'.

I18;        Z;     I19;          INC T0
I18;        NZ;    I19;          INC T0
I19;        Z;     I20;          READ T0
I19;        NZ;    I20;          READ T0
I20;        Z;     I21;          SET T0, INC T0
I20;        NZ;    I21;          SET T0, INC T0
I21;        Z;     I22;          READ T0
I21;        NZ;    I22;          READ T0
I22;        Z;     I23;          SET T0, INC T0
I22;        NZ;    I23;          SET T0, INC T0
I23;        Z;     I24;          INC T0
I23;        NZ;    I24;          INC T0
I24;        Z;     I25;          READ T0
I24;        NZ;    I25;          READ T0
I25;        Z;     I26;          SET T0, DEC T0
I25;        NZ;    I26;          SET T0, DEC T0
I26;        Z;     I27;          NOP
I26;        NZ;    I26;          DEC T0



# Initialise T1 with the number '400'.

I27;        Z;     I28;          INC T1
I27;        NZ;    I28;          INC T1
I28;        Z;     I29;          INC T1
I28;        NZ;    I29;          INC T1
I29;        Z;     I30;          INC T1
I29;        NZ;    I30;          INC T1
I30;        Z;     I31;          INC T1
I30;        NZ;    I31;          INC T1
I31;        Z;     I32;          READ T1
I31;        NZ;    I32;          READ T1
I32;        Z;     I33;          SET T1, INC T1
I32;        NZ;    I33;          SET T1, INC T1
I33;        Z;     I34;          INC T1
I33;        NZ;    I34;          INC T1
I34;        Z;     I35;          INC T1
I34;        NZ;    I35;          INC T1
I35;        Z;     I36;          READ T1
I35;        NZ;    I36;          READ T1
I36;        Z;     I37;          SET T1, INC T1
I36;        NZ;    I37;          SET T1, INC T1
I37;        Z;     I38;          READ T1
I37;        NZ;    I38;          READ T1
I38;        Z;     I39;          SET T1, DEC T1
I38;        NZ;    I39;          SET T1, DEC T1
I39;        Z;     I40;          NOP
I39;        NZ;    I39;          DEC T1



# Print the value "1.6", and leave the algorithm to do the rest.

I40;        Z;     I41;          OUTPUT 1, NOP
I40;        NZ;    I41;          OUTPUT 1, NOP
I41;        Z;     I42;          OUTPUT ., NOP
I41;        NZ;    I42;          OUTPUT ., NOP
I42;        Z;     NXD;          OUTPUT 6, NOP
I42;        NZ;    NXD;          OUTPUT 6, NOP



# Calculate next digit



# Multiply T0 by 10 and store in T2

NXD;        Z;     A1;           TDEC R0
NXD;        NZ;    A1;           TDEC R0
A1;         Z;     A2;           TDEC R1
A1;         NZ;    A1;           INC R1, TDEC R0
A2;         Z;     A3;           TDEC R2
A2;         NZ;    A2;           INC R0, INC R2, TDEC R1
A3;         Z;     A9;           DEC T0
A3;         NZ;    A4;           READ T2
A4;         Z;     A5;           READ T0
A4;         NZ;    A5;           READ T0
A5;         Z;     A6;           RESET T0, MUL 0
A5;         NZ;    A6;           SET T0, MUL 1
A6;         Z;     A7;           RESET T2, INC T0
A6;         NZ;    A7;           SET T2, INC T0
A7;         Z;     A8;           INC T2
A7;         NZ;    A8;           INC T2
A8;         Z;     A3;           TDEC R2
A8;         NZ;    A3;           TDEC R2
A9;         Z;     A10;          DEC T2
A9;         NZ;    A9;           DEC T0
A10;        Z;     A11;          INC R3, NOP
A10;        NZ;    A10;          DEC T2



# Set the value of R3 equal to 9 (the largest decimal digit)

A11;        Z;     A12;          INC R3, NOP
A11;        NZ;    A12;          INC R3, NOP
A12;        Z;     A13;          INC R3, NOP
A12;        NZ;    A13;          INC R3, NOP
A13;        Z;     A14;          INC R3, NOP
A13;        NZ;    A14;          INC R3, NOP
A14;        Z;     A15;          INC R3, NOP
A14;        NZ;    A15;          INC R3, NOP
A15;        Z;     A16;          INC R3, NOP
A15;        NZ;    A16;          INC R3, NOP
A16;        Z;     A17;          INC R3, NOP
A16;        NZ;    A17;          INC R3, NOP
A17;        Z;     A18;          INC R3, NOP
A17;        NZ;    A18;          INC R3, NOP
A18;        Z;     EVL;          INC R3, NOP
A18;        NZ;    EVL;          INC R3, NOP



# Clear T4

EVL;        Z;     B1;           TDEC R0
EVL;        NZ;    B1;           TDEC R0
B1;         Z;     B2;           TDEC R1
B1;         NZ;    B1;           INC R1, TDEC R0
B2;         Z;     B3;           TDEC R2
B2;         NZ;    B2;           INC R0, INC R2, TDEC R1
B3;         Z;     B4B;          DEC T4
B3;         NZ;    B4;           READ T4
B4;         Z;     B4A;          RESET T4, INC T4
B4;         NZ;    B4A;          RESET T4, INC T4
B4A;        Z;     B3;           TDEC R2
B4A;        NZ;    B3;           TDEC R2
B4B;        Z;     B5;           NOP
B4B;        NZ;    B4B;          DEC T4



# Copy R3 to R4 via R1

B5;         Z;     B6;           TDEC R3
B5;         NZ;    B6;           TDEC R3
B6;         Z;     B7;           TDEC R1
B6;         NZ;    B6;           INC R1, TDEC R3
B7;         Z;     B8;           NOP
B7;         NZ;    B7;           INC R3, INC R4, TDEC R1



# Copy T3 to T2

B8;         Z;     B9;           TDEC R0
B8;         NZ;    B9;           TDEC R0
B9;         Z;     B10;          TDEC R1
B9;         NZ;    B9;           INC R1, TDEC R0
B10;        Z;     B11;          TDEC R2
B10;        NZ;    B10;          INC R0, INC R2, TDEC R1

B11;        Z;     B16;          DEC T2
B11;        NZ;    B12;          READ T3
B12;        Z;     B13;          READ T2
B12;        NZ;    B13;          READ T2
B13;        Z;     B14;          RESET T2, RESET T3, INC T2
B13;        NZ;    B14;          SET T2, SET T3, INC T2
B14;        Z;     B15;          INC T3
B14;        NZ;    B15;          INC T3
B15;        Z;     B11;          TDEC R2
B15;        NZ;    B11;          TDEC R2
B16;        Z;     B17;          DEC T3
B16;        NZ;    B16;          DEC T2
B17;        Z;     ADD;          NOP
B17;        NZ;    B17;          DEC T3



# Add R4 to T3

ADD;        Z;     C1;           TDEC R4
ADD;        NZ;    C1;           TDEC R4
C1;         Z;     C5;           NOP
C1;         NZ;    C2;           READ T3
C2;         Z;     C4;           SET T3, DEC T3
C2;         NZ;    C3;           RESET T3, INC T3
C3;         Z;     C2;           READ T3
C3;         NZ;    C2;           READ T3
C4;         Z;     C1;           TDEC R4
C4;         NZ;    C4;           DEC T3



# Copy R3 to R4 via R1

C5;         Z;     C6;           TDEC R3
C5;         NZ;    C6;           TDEC R3
C6;         Z;     C7;           TDEC R1
C6;         NZ;    C6;           INC R1, TDEC R3
C7;         Z;     MUL;          NOP
C7;         NZ;    C7;           INC R3, INC R4, TDEC R1



# Multiply T3 by R4 and store in T4

MUL;        Z;     D1;           TDEC R4
MUL;        NZ;    D1;           TDEC R4
D1;         Z;     D11;          TDEC R0
D1;         NZ;    D2;           TDEC R0
D2;         Z;     D3;           TDEC R1
D2;         NZ;    D2;           INC R1, TDEC R0
D3;         Z;     D4;           TDEC R2
D3;         NZ;    D3;           INC R0, INC R2, TDEC R1
D4;         Z;     D9;           DEC T3
D4;         NZ;    D5;           READ T3
D5;         Z;     D6;           RESET T3, READ T4
D5;         NZ;    D6;           SET T3, ADD A1, READ T4
D6;         Z;     D7;           ADD B0
D6;         NZ;    D7;           ADD B1
D7;         Z;     D8;           RESET T4, INC T4
D7;         NZ;    D8;           SET T4, INC T4
D8;         Z;     D8A;          INC T3
D8;         NZ;    D8A;          INC T3
D8A;        Z;     D4;           TDEC R2
D8A;        NZ;    D4;           TDEC R2
D9;         Z;     D10;          DEC T4
D9;         NZ;    D9;           DEC T3
D10;        Z;     D1;           TDEC R4
D10;        NZ;    D10;          DEC T4
D11;        Z;     D12;          TDEC R1
D11;        NZ;    D11;          INC R1, TDEC R0
D12;        Z;     COMP;         NOP
D12;        NZ;    D12;          INC R0, INC R2, TDEC R1



# Compare T4 with T1

COMP;       Z;     E1;           TDEC R2
COMP;       NZ;    E1;           TDEC R2
E1;         Z;     E4;           READ T1
E1;         NZ;    E2;           INC T1
E2;         Z;     E3;           INC T4
E2;         NZ;    E3;           INC T4
E3;         Z;     E1;           TDEC R2
E3;         NZ;    E1;           TDEC R2
E4;         Z;     E5;           RESET T1, READ T4
E4;         NZ;    E8;           SET T1, READ T4
E5;         Z;     E6;           RESET T4, DEC T4
E5;         NZ;    E9;           SET T4, DEC T1
E6;         Z;     E7;           DEC T1
E6;         NZ;    E7;           DEC T1
E7;         Z;     E13;          DEC T4
E7;         NZ;    E4;           READ T1
E8;         Z;     E12;          RESET T4, DEC T1
E8;         NZ;    E6;           SET T4, DEC T4
E9;         Z;     E10;          DEC T4
E9;         NZ;    E9;           DEC T1
E10;        Z;     E11;          TDEC R3
E10;        NZ;    E10;          DEC T4
E11;        Z;     EVL;          NOP
E11;        NZ;    EVL;          NOP
E12;        Z;     E13;          DEC T4
E12;        NZ;    E12;          DEC T1
E13;        Z;     SUB;          NOP
E13;        NZ;    E13;          DEC T4



# Subtract T4 from T1

SUB;        Z;     F1;           TDEC R0
SUB;        NZ;    F1;           TDEC R0
F1;         Z;     F2;           TDEC R1
F1;         NZ;    F1;           INC R1, TDEC R0
F2;         Z;     F3;           TDEC R2
F2;         NZ;    F2;           INC R0, INC R2, TDEC R1
F3;         Z;     F9;           DEC T1
F3;         NZ;    F4;           READ T1
F4;         Z;     F5;           READ T4
F4;         NZ;    F5;           SUB A1, READ T4
F5;         Z;     F6;           RESET T4, SUB B0
F5;         NZ;    F6;           SET T4, SUB B1
F6;         Z;     F7;           RESET T1, INC T1
F6;         NZ;    F7;           SET T1, INC T1
F7;         Z;     F8;           INC T4
F7;         NZ;    F8;           INC T4
F8;         Z;     F3;           TDEC R2
F8;         NZ;    F3;           TDEC R2
F9;         Z;     F10;          DEC T4
F9;         NZ;    F9;           DEC T1
F10;        Z;     CENT;         NOP
F10;        NZ;    F10;          DEC T4



# Centuple T1

CENT;       Z;     G1;           TDEC R0
CENT;       NZ;    G1;           TDEC R0
G1;         Z;     G2;           TDEC R1
G1;         NZ;    G1;           INC R1, TDEC R0
G2;         Z;     G3;           TDEC R2
G2;         NZ;    G2;           INC R0, INC R2, TDEC R1
G3;         Z;     G6;           DEC T1
G3;         NZ;    G3A;          READ T1
G3A;        Z;     G4;           MUL 0
G3A;        NZ;    G4;           MUL 1
G4;         Z;     G5;           RESET T1, INC T1
G4;         NZ;    G5;           SET T1, INC T1
G5;         Z;     G3;           TDEC R2
G5;         NZ;    G3;           TDEC R2
G6;         Z;     G7;           TDEC R0
G6;         NZ;    G6;           DEC T1
G7;         Z;     G8;           TDEC R1
G7;         NZ;    G7;           INC R1, TDEC R0
G8;         Z;     G9;           TDEC R2
G8;         NZ;    G8;           INC R0, INC R2, TDEC R1
G9;         Z;     G12;          DEC T1
G9;         NZ;    G9A;          READ T1
G9A;        Z;     G10;          MUL 0
G9A;        NZ;    G10;          MUL 1
G10;        Z;     G11;          RESET T1, INC T1
G10;        NZ;    G11;          SET T1, INC T1
G11;        Z;     G9;           TDEC R2
G11;        NZ;    G9;           TDEC R2
G12;        Z;     DEC;          NOP
G12;        NZ;    G12;          DEC T1



# 10-tuple T0

DEC;        Z;     H1;           TDEC R0
DEC;        NZ;    H1;           TDEC R0
H1;         Z;     H2;           TDEC R1
H1;         NZ;    H1;           INC R1, TDEC R0
H2;         Z;     H3;           TDEC R2
H2;         NZ;    H2;           INC R0, INC R2, TDEC R1
H3;         Z;     H6;           DEC T0
H3;         NZ;    H3A;          READ T0
H3A;        Z;     H4;           MUL 0
H3A;        NZ;    H4;           MUL 1
H4;         Z;     H5;           RESET T0, INC T0
H4;         NZ;    H5;           SET T0, INC T0
H5;         Z;     H3;           TDEC R2
H5;         NZ;    H3;           TDEC R2
H6;         Z;     H7;           TDEC R3
H6;         NZ;    H6;           DEC T0



# Add R4 to T0

H7;         Z;     H8;           TDEC R1
H7;         NZ;    H7;           INC R1, TDEC R3
H8;         Z;     H9;           TDEC R4
H8;         NZ;    H8;           INC R3, INC R4, TDEC R1
H9;         Z;     H13;          TDEC R3
H9;         NZ;    H10;          READ T0
H10;        Z;     H12;          SET T0, DEC T0
H10;        NZ;    H9;           RESET T0, INC T0
H11;        Z;     H10;          READ T0
H11;        NZ;    H10;          READ T0
H12;        Z;     H9;           TDEC R4
H12;        NZ;    H12;          DEC T0

H13;        Z;     H14;          TDEC R1
H13;        NZ;    H13;          INC R1, TDEC R3
H14;        Z;     H15;          TDEC R4
H14;        NZ;    H14;          INC R3, INC R4, TDEC R1
H15;        Z;     H19;          TDEC R3
H15;        NZ;    H16;          READ T0
H16;        Z;     H18;          SET T0, DEC T0
H16;        NZ;    H15;          RESET T0, INC T0
H17;        Z;     H16;          READ T0
H17;        NZ;    H16;          READ T0
H18;        Z;     H15;          TDEC R4
H18;        NZ;    H18;          DEC T0

H19;        Z;     H28;          OUTPUT 0, NOP
H19;        NZ;    H20;          TDEC R3
H20;        Z;     H28;          OUTPUT 1, NOP
H20;        NZ;    H21;          TDEC R3
H21;        Z;     H28;          OUTPUT 2, NOP
H21;        NZ;    H22;          TDEC R3
H22;        Z;     H28;          OUTPUT 3, NOP
H22;        NZ;    H23;          TDEC R3
H23;        Z;     H28;          OUTPUT 4, NOP
H23;        NZ;    H24;          TDEC R3
H24;        Z;     H28;          OUTPUT 5, NOP
H24;        NZ;    H25;          TDEC R3
H25;        Z;     H28;          OUTPUT 6, NOP
H25;        NZ;    H26;          TDEC R3
H26;        Z;     H28;          OUTPUT 7, NOP
H26;        NZ;    H27;          TDEC R3
H27;        Z;     H28;          OUTPUT 8, NOP
H27;        NZ;    H28;          OUTPUT 9, NOP

H28;        Z;     H29;          INC R0, NOP
H28;        NZ;    H29;          INC R0, NOP
H29;        Z;     H30;          INC R0, NOP
H29;        NZ;    H30;          INC R0, NOP
H30;        Z;     H31;          INC R0, NOP
H30;        NZ;    H31;          INC R0, NOP
H31;        Z;     NXD;          INC R0, NOP
H31;        NZ;    NXD;          INC R0, NOP
With the help of this listing it should be possible to reverse-engineer the phi calculator and see how the machine instructions correspond with Life structures. Notice there are 177 sets of reflectors lining the edges of the computer area to the southwest; these are what change the computer's state, which is represented by a single glider that executes the above 177-line program.

Anyway... a lot of this isn't really "new", it's more like a rebuild of what we have already. So is the HashLife-friendly metacell that I'm kind of supposed to finish sometime for the Quest for Tetris project. So is simsim314's Remini, which it would be nice to get completed -- right now it's just a self-constructing puffer, not an actual spaceship.

Solving all the cleanup issues in the reverse caber tosser would take some new technology -- basically a bunch of nicely synchronized Cordership and Corderrake seeds, once we figure out what Cordertech will work without producing uncatchable output gliders when they crash into the ends of the debris chains. We don't have really good tools for making seeds for arbitrary glider constructions yet.

I'm probably limiting my answer to the big ugly stuff that I tend to specialize in, so hopefully someone else has different answers.

User avatar
gameoflifemaniac
Posts: 776
Joined: January 22nd, 2017, 11:17 am
Location: There too

Re: Thread for basic questions

Post by gameoflifemaniac » July 6th, 2019, 2:42 am

dvgrn wrote:
gameoflifemaniac wrote:What new "technological" patterns could be created (the phi calculator, for example)?
Here's a list from the end of last year of open half-finished projects on the self-construction side of things, don't know if those are interesting.

Re: the phi and pi calculators and O(sqrt(log(t))), I'd love to see the N-state computers that calcyman used for those projects documented a little better and updated with modern technology, which is much more compact (Snarks and syringes). I have the "machine code" for the phi calculator (177 lines) but not for the pi calculator. Not sure it's available anywhere so I'll put it here:

Code: Select all

# Phi calculation program

# This is designed to calculate the decimal digits of Phi, or 1.618033...

# State    Input   Next state    Actions
# ---------------------------------------

INITIAL;    Z;     I1;           INC R0, NOP
INITIAL;    NZ;    I1;           INC R0, NOP



# Start with 18-bit precision

I1;         Z;     I2;           INC R0, NOP
I1;         NZ;    I2;           INC R0, NOP
I2;         Z;     I3;           INC R0, NOP
I2;         NZ;    I3;           INC R0, NOP
I3;         Z;     I4;           INC R0, NOP
I3;         NZ;    I4;           INC R0, NOP
I4;         Z;     I5;           INC R0, NOP
I4;         NZ;    I5;           INC R0, NOP
I5;         Z;     I6;           INC R0, NOP
I5;         NZ;    I6;           INC R0, NOP
I6;         Z;     I7;           INC R0, NOP
I6;         NZ;    I7;           INC R0, NOP
I7;         Z;     I8;           INC R0, NOP
I7;         NZ;    I8;           INC R0, NOP
I8;         Z;     I9;           INC R0, NOP
I8;         NZ;    I9;           INC R0, NOP
I9;         Z;     I10;          INC R0, NOP
I9;         NZ;    I10;          INC R0, NOP
I10;        Z;     I11;          INC R0, NOP
I10;        NZ;    I11;          INC R0, NOP
I11;        Z;     I12;          INC R0, NOP
I11;        NZ;    I12;          INC R0, NOP
I12;        Z;     I13;          INC R0, NOP
I12;        NZ;    I13;          INC R0, NOP
I13;        Z;     I14;          INC R0, NOP
I13;        NZ;    I14;          INC R0, NOP
I14;        Z;     I15;          INC R0, NOP
I14;        NZ;    I15;          INC R0, NOP
I15;        Z;     I16;          INC R0, NOP
I15;        NZ;    I16;          INC R0, NOP
I16;        Z;     I17;          INC R0, NOP
I16;        NZ;    I17;          INC R0, NOP
I17;        Z;     I18;          INC R0, NOP
I17;        NZ;    I18;          INC R0, NOP



# Initialise T0 with the number '22'.

I18;        Z;     I19;          INC T0
I18;        NZ;    I19;          INC T0
I19;        Z;     I20;          READ T0
I19;        NZ;    I20;          READ T0
I20;        Z;     I21;          SET T0, INC T0
I20;        NZ;    I21;          SET T0, INC T0
I21;        Z;     I22;          READ T0
I21;        NZ;    I22;          READ T0
I22;        Z;     I23;          SET T0, INC T0
I22;        NZ;    I23;          SET T0, INC T0
I23;        Z;     I24;          INC T0
I23;        NZ;    I24;          INC T0
I24;        Z;     I25;          READ T0
I24;        NZ;    I25;          READ T0
I25;        Z;     I26;          SET T0, DEC T0
I25;        NZ;    I26;          SET T0, DEC T0
I26;        Z;     I27;          NOP
I26;        NZ;    I26;          DEC T0



# Initialise T1 with the number '400'.

I27;        Z;     I28;          INC T1
I27;        NZ;    I28;          INC T1
I28;        Z;     I29;          INC T1
I28;        NZ;    I29;          INC T1
I29;        Z;     I30;          INC T1
I29;        NZ;    I30;          INC T1
I30;        Z;     I31;          INC T1
I30;        NZ;    I31;          INC T1
I31;        Z;     I32;          READ T1
I31;        NZ;    I32;          READ T1
I32;        Z;     I33;          SET T1, INC T1
I32;        NZ;    I33;          SET T1, INC T1
I33;        Z;     I34;          INC T1
I33;        NZ;    I34;          INC T1
I34;        Z;     I35;          INC T1
I34;        NZ;    I35;          INC T1
I35;        Z;     I36;          READ T1
I35;        NZ;    I36;          READ T1
I36;        Z;     I37;          SET T1, INC T1
I36;        NZ;    I37;          SET T1, INC T1
I37;        Z;     I38;          READ T1
I37;        NZ;    I38;          READ T1
I38;        Z;     I39;          SET T1, DEC T1
I38;        NZ;    I39;          SET T1, DEC T1
I39;        Z;     I40;          NOP
I39;        NZ;    I39;          DEC T1



# Print the value "1.6", and leave the algorithm to do the rest.

I40;        Z;     I41;          OUTPUT 1, NOP
I40;        NZ;    I41;          OUTPUT 1, NOP
I41;        Z;     I42;          OUTPUT ., NOP
I41;        NZ;    I42;          OUTPUT ., NOP
I42;        Z;     NXD;          OUTPUT 6, NOP
I42;        NZ;    NXD;          OUTPUT 6, NOP



# Calculate next digit



# Multiply T0 by 10 and store in T2

NXD;        Z;     A1;           TDEC R0
NXD;        NZ;    A1;           TDEC R0
A1;         Z;     A2;           TDEC R1
A1;         NZ;    A1;           INC R1, TDEC R0
A2;         Z;     A3;           TDEC R2
A2;         NZ;    A2;           INC R0, INC R2, TDEC R1
A3;         Z;     A9;           DEC T0
A3;         NZ;    A4;           READ T2
A4;         Z;     A5;           READ T0
A4;         NZ;    A5;           READ T0
A5;         Z;     A6;           RESET T0, MUL 0
A5;         NZ;    A6;           SET T0, MUL 1
A6;         Z;     A7;           RESET T2, INC T0
A6;         NZ;    A7;           SET T2, INC T0
A7;         Z;     A8;           INC T2
A7;         NZ;    A8;           INC T2
A8;         Z;     A3;           TDEC R2
A8;         NZ;    A3;           TDEC R2
A9;         Z;     A10;          DEC T2
A9;         NZ;    A9;           DEC T0
A10;        Z;     A11;          INC R3, NOP
A10;        NZ;    A10;          DEC T2



# Set the value of R3 equal to 9 (the largest decimal digit)

A11;        Z;     A12;          INC R3, NOP
A11;        NZ;    A12;          INC R3, NOP
A12;        Z;     A13;          INC R3, NOP
A12;        NZ;    A13;          INC R3, NOP
A13;        Z;     A14;          INC R3, NOP
A13;        NZ;    A14;          INC R3, NOP
A14;        Z;     A15;          INC R3, NOP
A14;        NZ;    A15;          INC R3, NOP
A15;        Z;     A16;          INC R3, NOP
A15;        NZ;    A16;          INC R3, NOP
A16;        Z;     A17;          INC R3, NOP
A16;        NZ;    A17;          INC R3, NOP
A17;        Z;     A18;          INC R3, NOP
A17;        NZ;    A18;          INC R3, NOP
A18;        Z;     EVL;          INC R3, NOP
A18;        NZ;    EVL;          INC R3, NOP



# Clear T4

EVL;        Z;     B1;           TDEC R0
EVL;        NZ;    B1;           TDEC R0
B1;         Z;     B2;           TDEC R1
B1;         NZ;    B1;           INC R1, TDEC R0
B2;         Z;     B3;           TDEC R2
B2;         NZ;    B2;           INC R0, INC R2, TDEC R1
B3;         Z;     B4B;          DEC T4
B3;         NZ;    B4;           READ T4
B4;         Z;     B4A;          RESET T4, INC T4
B4;         NZ;    B4A;          RESET T4, INC T4
B4A;        Z;     B3;           TDEC R2
B4A;        NZ;    B3;           TDEC R2
B4B;        Z;     B5;           NOP
B4B;        NZ;    B4B;          DEC T4



# Copy R3 to R4 via R1

B5;         Z;     B6;           TDEC R3
B5;         NZ;    B6;           TDEC R3
B6;         Z;     B7;           TDEC R1
B6;         NZ;    B6;           INC R1, TDEC R3
B7;         Z;     B8;           NOP
B7;         NZ;    B7;           INC R3, INC R4, TDEC R1



# Copy T3 to T2

B8;         Z;     B9;           TDEC R0
B8;         NZ;    B9;           TDEC R0
B9;         Z;     B10;          TDEC R1
B9;         NZ;    B9;           INC R1, TDEC R0
B10;        Z;     B11;          TDEC R2
B10;        NZ;    B10;          INC R0, INC R2, TDEC R1

B11;        Z;     B16;          DEC T2
B11;        NZ;    B12;          READ T3
B12;        Z;     B13;          READ T2
B12;        NZ;    B13;          READ T2
B13;        Z;     B14;          RESET T2, RESET T3, INC T2
B13;        NZ;    B14;          SET T2, SET T3, INC T2
B14;        Z;     B15;          INC T3
B14;        NZ;    B15;          INC T3
B15;        Z;     B11;          TDEC R2
B15;        NZ;    B11;          TDEC R2
B16;        Z;     B17;          DEC T3
B16;        NZ;    B16;          DEC T2
B17;        Z;     ADD;          NOP
B17;        NZ;    B17;          DEC T3



# Add R4 to T3

ADD;        Z;     C1;           TDEC R4
ADD;        NZ;    C1;           TDEC R4
C1;         Z;     C5;           NOP
C1;         NZ;    C2;           READ T3
C2;         Z;     C4;           SET T3, DEC T3
C2;         NZ;    C3;           RESET T3, INC T3
C3;         Z;     C2;           READ T3
C3;         NZ;    C2;           READ T3
C4;         Z;     C1;           TDEC R4
C4;         NZ;    C4;           DEC T3



# Copy R3 to R4 via R1

C5;         Z;     C6;           TDEC R3
C5;         NZ;    C6;           TDEC R3
C6;         Z;     C7;           TDEC R1
C6;         NZ;    C6;           INC R1, TDEC R3
C7;         Z;     MUL;          NOP
C7;         NZ;    C7;           INC R3, INC R4, TDEC R1



# Multiply T3 by R4 and store in T4

MUL;        Z;     D1;           TDEC R4
MUL;        NZ;    D1;           TDEC R4
D1;         Z;     D11;          TDEC R0
D1;         NZ;    D2;           TDEC R0
D2;         Z;     D3;           TDEC R1
D2;         NZ;    D2;           INC R1, TDEC R0
D3;         Z;     D4;           TDEC R2
D3;         NZ;    D3;           INC R0, INC R2, TDEC R1
D4;         Z;     D9;           DEC T3
D4;         NZ;    D5;           READ T3
D5;         Z;     D6;           RESET T3, READ T4
D5;         NZ;    D6;           SET T3, ADD A1, READ T4
D6;         Z;     D7;           ADD B0
D6;         NZ;    D7;           ADD B1
D7;         Z;     D8;           RESET T4, INC T4
D7;         NZ;    D8;           SET T4, INC T4
D8;         Z;     D8A;          INC T3
D8;         NZ;    D8A;          INC T3
D8A;        Z;     D4;           TDEC R2
D8A;        NZ;    D4;           TDEC R2
D9;         Z;     D10;          DEC T4
D9;         NZ;    D9;           DEC T3
D10;        Z;     D1;           TDEC R4
D10;        NZ;    D10;          DEC T4
D11;        Z;     D12;          TDEC R1
D11;        NZ;    D11;          INC R1, TDEC R0
D12;        Z;     COMP;         NOP
D12;        NZ;    D12;          INC R0, INC R2, TDEC R1



# Compare T4 with T1

COMP;       Z;     E1;           TDEC R2
COMP;       NZ;    E1;           TDEC R2
E1;         Z;     E4;           READ T1
E1;         NZ;    E2;           INC T1
E2;         Z;     E3;           INC T4
E2;         NZ;    E3;           INC T4
E3;         Z;     E1;           TDEC R2
E3;         NZ;    E1;           TDEC R2
E4;         Z;     E5;           RESET T1, READ T4
E4;         NZ;    E8;           SET T1, READ T4
E5;         Z;     E6;           RESET T4, DEC T4
E5;         NZ;    E9;           SET T4, DEC T1
E6;         Z;     E7;           DEC T1
E6;         NZ;    E7;           DEC T1
E7;         Z;     E13;          DEC T4
E7;         NZ;    E4;           READ T1
E8;         Z;     E12;          RESET T4, DEC T1
E8;         NZ;    E6;           SET T4, DEC T4
E9;         Z;     E10;          DEC T4
E9;         NZ;    E9;           DEC T1
E10;        Z;     E11;          TDEC R3
E10;        NZ;    E10;          DEC T4
E11;        Z;     EVL;          NOP
E11;        NZ;    EVL;          NOP
E12;        Z;     E13;          DEC T4
E12;        NZ;    E12;          DEC T1
E13;        Z;     SUB;          NOP
E13;        NZ;    E13;          DEC T4



# Subtract T4 from T1

SUB;        Z;     F1;           TDEC R0
SUB;        NZ;    F1;           TDEC R0
F1;         Z;     F2;           TDEC R1
F1;         NZ;    F1;           INC R1, TDEC R0
F2;         Z;     F3;           TDEC R2
F2;         NZ;    F2;           INC R0, INC R2, TDEC R1
F3;         Z;     F9;           DEC T1
F3;         NZ;    F4;           READ T1
F4;         Z;     F5;           READ T4
F4;         NZ;    F5;           SUB A1, READ T4
F5;         Z;     F6;           RESET T4, SUB B0
F5;         NZ;    F6;           SET T4, SUB B1
F6;         Z;     F7;           RESET T1, INC T1
F6;         NZ;    F7;           SET T1, INC T1
F7;         Z;     F8;           INC T4
F7;         NZ;    F8;           INC T4
F8;         Z;     F3;           TDEC R2
F8;         NZ;    F3;           TDEC R2
F9;         Z;     F10;          DEC T4
F9;         NZ;    F9;           DEC T1
F10;        Z;     CENT;         NOP
F10;        NZ;    F10;          DEC T4



# Centuple T1

CENT;       Z;     G1;           TDEC R0
CENT;       NZ;    G1;           TDEC R0
G1;         Z;     G2;           TDEC R1
G1;         NZ;    G1;           INC R1, TDEC R0
G2;         Z;     G3;           TDEC R2
G2;         NZ;    G2;           INC R0, INC R2, TDEC R1
G3;         Z;     G6;           DEC T1
G3;         NZ;    G3A;          READ T1
G3A;        Z;     G4;           MUL 0
G3A;        NZ;    G4;           MUL 1
G4;         Z;     G5;           RESET T1, INC T1
G4;         NZ;    G5;           SET T1, INC T1
G5;         Z;     G3;           TDEC R2
G5;         NZ;    G3;           TDEC R2
G6;         Z;     G7;           TDEC R0
G6;         NZ;    G6;           DEC T1
G7;         Z;     G8;           TDEC R1
G7;         NZ;    G7;           INC R1, TDEC R0
G8;         Z;     G9;           TDEC R2
G8;         NZ;    G8;           INC R0, INC R2, TDEC R1
G9;         Z;     G12;          DEC T1
G9;         NZ;    G9A;          READ T1
G9A;        Z;     G10;          MUL 0
G9A;        NZ;    G10;          MUL 1
G10;        Z;     G11;          RESET T1, INC T1
G10;        NZ;    G11;          SET T1, INC T1
G11;        Z;     G9;           TDEC R2
G11;        NZ;    G9;           TDEC R2
G12;        Z;     DEC;          NOP
G12;        NZ;    G12;          DEC T1



# 10-tuple T0

DEC;        Z;     H1;           TDEC R0
DEC;        NZ;    H1;           TDEC R0
H1;         Z;     H2;           TDEC R1
H1;         NZ;    H1;           INC R1, TDEC R0
H2;         Z;     H3;           TDEC R2
H2;         NZ;    H2;           INC R0, INC R2, TDEC R1
H3;         Z;     H6;           DEC T0
H3;         NZ;    H3A;          READ T0
H3A;        Z;     H4;           MUL 0
H3A;        NZ;    H4;           MUL 1
H4;         Z;     H5;           RESET T0, INC T0
H4;         NZ;    H5;           SET T0, INC T0
H5;         Z;     H3;           TDEC R2
H5;         NZ;    H3;           TDEC R2
H6;         Z;     H7;           TDEC R3
H6;         NZ;    H6;           DEC T0



# Add R4 to T0

H7;         Z;     H8;           TDEC R1
H7;         NZ;    H7;           INC R1, TDEC R3
H8;         Z;     H9;           TDEC R4
H8;         NZ;    H8;           INC R3, INC R4, TDEC R1
H9;         Z;     H13;          TDEC R3
H9;         NZ;    H10;          READ T0
H10;        Z;     H12;          SET T0, DEC T0
H10;        NZ;    H9;           RESET T0, INC T0
H11;        Z;     H10;          READ T0
H11;        NZ;    H10;          READ T0
H12;        Z;     H9;           TDEC R4
H12;        NZ;    H12;          DEC T0

H13;        Z;     H14;          TDEC R1
H13;        NZ;    H13;          INC R1, TDEC R3
H14;        Z;     H15;          TDEC R4
H14;        NZ;    H14;          INC R3, INC R4, TDEC R1
H15;        Z;     H19;          TDEC R3
H15;        NZ;    H16;          READ T0
H16;        Z;     H18;          SET T0, DEC T0
H16;        NZ;    H15;          RESET T0, INC T0
H17;        Z;     H16;          READ T0
H17;        NZ;    H16;          READ T0
H18;        Z;     H15;          TDEC R4
H18;        NZ;    H18;          DEC T0

H19;        Z;     H28;          OUTPUT 0, NOP
H19;        NZ;    H20;          TDEC R3
H20;        Z;     H28;          OUTPUT 1, NOP
H20;        NZ;    H21;          TDEC R3
H21;        Z;     H28;          OUTPUT 2, NOP
H21;        NZ;    H22;          TDEC R3
H22;        Z;     H28;          OUTPUT 3, NOP
H22;        NZ;    H23;          TDEC R3
H23;        Z;     H28;          OUTPUT 4, NOP
H23;        NZ;    H24;          TDEC R3
H24;        Z;     H28;          OUTPUT 5, NOP
H24;        NZ;    H25;          TDEC R3
H25;        Z;     H28;          OUTPUT 6, NOP
H25;        NZ;    H26;          TDEC R3
H26;        Z;     H28;          OUTPUT 7, NOP
H26;        NZ;    H27;          TDEC R3
H27;        Z;     H28;          OUTPUT 8, NOP
H27;        NZ;    H28;          OUTPUT 9, NOP

H28;        Z;     H29;          INC R0, NOP
H28;        NZ;    H29;          INC R0, NOP
H29;        Z;     H30;          INC R0, NOP
H29;        NZ;    H30;          INC R0, NOP
H30;        Z;     H31;          INC R0, NOP
H30;        NZ;    H31;          INC R0, NOP
H31;        Z;     NXD;          INC R0, NOP
H31;        NZ;    NXD;          INC R0, NOP
With the help of this listing it should be possible to reverse-engineer the phi calculator and see how the machine instructions correspond with Life structures. Notice there are 177 sets of reflectors lining the edges of the computer area to the southwest; these are what change the computer's state, which is represented by a single glider that executes the above 177-line program.

Anyway... a lot of this isn't really "new", it's more like a rebuild of what we have already. So is the HashLife-friendly metacell that I'm kind of supposed to finish sometime for the Quest for Tetris project. So is simsim314's Remini, which it would be nice to get completed -- right now it's just a self-constructing puffer, not an actual spaceship.

Solving all the cleanup issues in the reverse caber tosser would take some new technology -- basically a bunch of nicely synchronized Cordership and Corderrake seeds, once we figure out what Cordertech will work without producing uncatchable output gliders when they crash into the ends of the debris chains. We don't have really good tools for making seeds for arbitrary glider constructions yet.

I'm probably limiting my answer to the big ugly stuff that I tend to specialize in, so hopefully someone else has different answers.
Thanks, but I don't necessarily mean the phi-calculator-type calculators, but other too (the 8-bit computer or collatz generator or bounded unknown fate). I have a full collection of various computers and calculators and nothing new was emerging.
https://www.youtube.com/watch?v=q6EoRBvdVPQ
One big dirty Oro. Yeeeeeeeeee...

User avatar
dvgrn
Moderator
Posts: 5897
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Thread for basic questions

Post by dvgrn » July 6th, 2019, 8:40 am

gameoflifemaniac wrote:Thanks, but I don't necessarily mean the phi-calculator-type calculators, but other too (the 8-bit computer or collatz generator or bounded unknown fate). I have a full collection of various computers and calculators and nothing new was emerging.
We don't actually have a "bounded unknown fate" pattern, do we? ... Oh, bounded population, right. I suppose we could build a fixed-bounding-box unknown fate pattern, just by making it big enough. Do an N-bit PRNG with a cycle bigger than we can simulate, let's say, and then test for k consecutive 1's for some value of k that we're not sure will ever show up, but it might. Not sure that's very interesting, really.

The next higher Mersenne prime calculator, period 2^86243-1, would be fun to have. That would be fairly easy to do with quadri-Snarks plus our standard adjustment toolkits. Would that count? People seem to have been unnecessarily scared of building it, but it's really very simple. Could even re-use the base gun and tricky adjustable reset mechanism from the 2^44477-1 oscillator, but of course we have much more compact alternatives these days.

So what else might we want to calculate? We already went over a lot of the optimization details a couple years ago, in the discussion of fine structure constant calculator.

Do you have a handy list of everything in your current collection? Maybe that would help remind people of any gaps. Have you included Dean Hickerson's various mathematical constructions from his Web pages, mostly the "Unusual growth rates" ones?

User avatar
testitemqlstudop
Posts: 1208
Joined: July 21st, 2016, 11:45 am
Location: in catagolue
Contact:

Re: Thread for basic questions

Post by testitemqlstudop » July 6th, 2019, 8:53 am

If a pattern always fits in a x by y bounding box then it will have to stabilise in under 2^(x*y) generations into a period under 2^(x*y), so you can't really call it "unknown fate".

User avatar
Moosey
Posts: 2520
Joined: January 27th, 2019, 5:54 pm
Location: A house, or perhaps the OCA board.
Contact:

Re: Thread for basic questions

Post by Moosey » July 6th, 2019, 9:18 am

testitemqlstudop wrote:If a pattern always fits in a x by y bounding box then it will have to stabilise in under 2^(x*y) generations into a period under 2^(x*y), so you can't really call it "unknown fate".
only if it fits into an x by y bounding box for all that time.
There are many explosions you could call unknown fate with super small bounding boxes at the start.
I am a prolific creator of many rather pathetic googological functions

My CA rules can be found here

Also, the tree game
Bill Watterson once wrote: "How do soldiers killing each other solve the world's problems?"

User avatar
dvgrn
Moderator
Posts: 5897
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Thread for basic questions

Post by dvgrn » July 6th, 2019, 9:52 am

testitemqlstudop wrote:If a pattern always fits in a x by y bounding box then it will have to stabilise in under 2^(x*y) generations into a period under 2^(x*y), so you can't really call it "unknown fate".
Well, but if the two options are that it will completely self-destruct (let's say) if the string of k 1's shows up, or it will become a high-period oscillator at the period of the PRNG otherwise, then you don't actually know the fate.

You do know exactly how many ticks you'll have to run the pattern to find out which outcome will happen, unlike the unbounded-bounding-box unknown fates. But what if the expected run time is longer than the Sun's remaining lifespan? That still seems pretty seriously "unknown fate" to me.

User avatar
Gustone
Posts: 474
Joined: March 6th, 2019, 2:26 am

Re: Thread for basic questions

Post by Gustone » July 6th, 2019, 1:08 pm

Is there an actual rle of an UC building a spider with 35 gliders?
I like making color palettes for rules

User avatar
Moosey
Posts: 2520
Joined: January 27th, 2019, 5:54 pm
Location: A house, or perhaps the OCA board.
Contact:

Re: Thread for basic questions

Post by Moosey » July 6th, 2019, 1:27 pm

Gustone wrote:Is there an actual rle of an UC building a spider with 35 gliders?
Nope
It would be far too big.
I am a prolific creator of many rather pathetic googological functions

My CA rules can be found here

Also, the tree game
Bill Watterson once wrote: "How do soldiers killing each other solve the world's problems?"

User avatar
dvgrn
Moderator
Posts: 5897
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Thread for basic questions

Post by dvgrn » July 6th, 2019, 2:30 pm

Gustone wrote:Is there an actual rle of an UC building a spider with 35 gliders?
What is within reach is a stable constellation that turns into a spider when you hit it with a single glider.

This would be needed as a first step for an RCT 35-glider recipe for a spider, anyway, but we don't have it yet.

User avatar
testitemqlstudop
Posts: 1208
Joined: July 21st, 2016, 11:45 am
Location: in catagolue
Contact:

Re: Thread for basic questions

Post by testitemqlstudop » July 6th, 2019, 7:35 pm

Gustone wrote:Is there an actual rle of an UC building a spider with 35 gliders?
Read my post above; no - the slow-salvo construction and seed itself would already be way too challenging to construct, let alone clean the debris from the puffers.


Also, on the problem of aperiodic debris in the RCT puffers: The method for cleaning this debris up has to be encoded in the 35-glider recipe itself, making more aperiodic debris.

User avatar
calcyman
Posts: 2098
Joined: June 1st, 2009, 4:32 pm

Re: Thread for basic questions

Post by calcyman » July 6th, 2019, 8:31 pm

testitemqlstudop wrote:
Gustone wrote:Is there an actual rle of an UC building a spider with 35 gliders?
Read my post above; no - the slow-salvo construction and seed itself would already be way too challenging to construct, let alone clean the debris from the puffers.


Also, on the problem of aperiodic debris in the RCT puffers: The method for cleaning this debris up has to be encoded in the 35-glider recipe itself, making more aperiodic debris.
Aperiodic debris? The debris of the GPSEs is periodic, and the plan is to have some massive Corderfleet which cleans it up.
What do you do with ill crystallographers? Take them to the mono-clinic!

User avatar
testitemqlstudop
Posts: 1208
Joined: July 21st, 2016, 11:45 am
Location: in catagolue
Contact:

Re: Thread for basic questions

Post by testitemqlstudop » July 6th, 2019, 9:41 pm

Wouldn't gliders that bounce off of the switch engines/caber tosser create extra debris, and in aperiodic places?

User avatar
dvgrn
Moderator
Posts: 5897
Joined: May 17th, 2009, 11:00 pm
Location: Madison, WI
Contact:

Re: Thread for basic questions

Post by dvgrn » July 6th, 2019, 11:33 pm

testitemqlstudop wrote:Wouldn't gliders that bounce off of the switch engines/caber tosser create extra debris, and in aperiodic places?
Yup. I guess "aperiodic debris" is a confusing way to describe the leftovers from the BLSE blocks. It's basically standard block-laying switch engine debris, but with one diagonal row of blocks used up for a very long distance (to make temporary elbows) and holes knocked through the rest of the blocks sideways every so often (to let slow gliders through to the other side of the BLSE blocks).

Those slow gliders make slow^2 gliders antiparallel to the incoming gliders from the Sakapuffer... the slow^2 gliders make perpendicular slow^3 gliders when they get back to the beginning of the BLSE debris... and the slow^3 gliders finally actually do the construction of everything that needs constructing -- cleanup structures included.

It's a completely ridiculous design, in case that wasn't clear. But it only needs 35 gliders.

I suppose it could probably be arranged that the holes through the BLSE debris would be made at completely regular intervals. But as calcyman has pointed out, HashLife might not have too much trouble with very sparse single gliders flying back and forth along the BLSE debris, even if the holes are at somewhat irregular intervals.

User avatar
calcyman
Posts: 2098
Joined: June 1st, 2009, 4:32 pm

Re: Thread for basic questions

Post by calcyman » July 7th, 2019, 1:56 am

testitemqlstudop wrote:Wouldn't gliders that bounce off of the switch engines/caber tosser create extra debris, and in aperiodic places?
The reflection from the Sakapuffer doesn't create any extra debris:

Code: Select all

x = 114, y = 167, rule = B3/S23
bo$2bo$3o22$22bo$20bobo$21b2o$25bo$24bo$24b3o6$28bo$27b2o$27bobo4$12bo
$10bobo$11b2o5$14b3o$16bo$15bo10bo$25b2o$25bobo112$112b2o$111b2o$113bo
!
If you're talking about the BLSE that forms part of the construction arm, then that's not a problem either:
dvgrn wrote:Yup. I guess "aperiodic debris" is a confusing way to describe the leftovers from the BLSE blocks. It's basically standard block-laying switch engine debris, but with one diagonal row of blocks used up for a very long distance (to make temporary elbows) and holes knocked through the rest of the blocks sideways every so often (to let slow gliders through to the other side of the BLSE blocks).
In particular, a fleet of six 2-engine Corderships can clean up an arbitrary unknown subset of the BLSE debris:

Code: Select all

x = 503, y = 506, rule = B3/S23
55bo$54bo2bo$54bo2bo$54bo3bo$57b2o$54b2obo$55b2o2$69b2o$69b2o7$71b2o$
70b3o$70bobob3o2$74bobo$74b2o2$74bo$73bobo$74bo2$59b3o$50bobo5bo$46bob
o9bobob2o$46bo10b2o3b2o8bo$46bobo3bo5b3ob2o6b2ob2o$49b2obo5b4o11b3o$
36b2o22b2o$36b2o35b3o$74bo$22b3o$21bo2bo$21b3obo$21b2o2$22b2o20b2o$23b
o20b2o10bo$23bo33b5o$19bo13b2o21bobo2bob3o$18bo14b2o24bo6bo$18bo3bo33b
o3b2o4bo$23bo31bobo3bo4bo$19bo36bo6b3o$16b2o5bo$15b2ob2ob2o13b3o$16bo
4bo5bobo5bo$17bo2bo2bobo9bobob2o$17b2o4bo10b2o3b2o$23bobo3bo5b3ob2o$
12b3o11b2obo5b4o$12bo2bo21b2o$12bo2bo102bo$11b4o102bo2bo$10bo106bo2bo$
12bo104bo3bo$10b2o108b2o$7bobo107b2obo$6bo2bo108b2o$6bo$6b2o25bo98b2o$
6b2o26b5o93b2o$9bo23bobo2bob3o$8bo27bo6bo$2o31bo3b2o4bo$2o30bobo3bo4bo
$33bo6b3o2$134b2o$133b3o$133bobob3o2$8b2o127bobo$8b2o127b2o$23bo$21b2o
b2o111bo$24b3o109bobo$137bo$24b3o$25bo96b3o$113bobo5bo$109bobo9bobob2o
$109bo10b2o3b2o8bo$109bobo3bo5b3ob2o6b2ob2o$112b2obo5b4o11b3o$99b2o22b
2o$99b2o35b3o$137bo6$107b2o$79b3o25b2o10bo$78bo2bo38b5o$78b3obo36bobo
2bob3o$78b2o42bo6bo42bo$119bo3b2o4bo41bo2bo$79b2o37bobo3bo4bo41bo2bo$
80bo38bo6b3o42bo3bo$80bo93b2o$76bo13b2o79b2obo$75bo14b2o80b2o$75bo3bo$
80bo105b2o$76bo109b2o$73b2o5bo$72b2ob2ob2o13b3o$73bo4bo5bobo5bo$74bo2b
o2bobo9bobob2o$74b2o4bo10b2o3b2o$80bobo3bo5b3ob2o$69b3o11b2obo5b4o92b
2o$69bo2bo21b2o91b3o$69bo2bo114bobob3o$68b4o$67bo123bobo$69bo121b2o$
67b2o$64bobo124bo$63bo2bo123bobo$63bo127bo$63b2o25bo$63b2o26b5o80b3o$
66bo23bobo2bob3o67bobo5bo$65bo27bo6bo62bobo9bobob2o$57b2o31bo3b2o4bo
62bo10b2o3b2o8bo$57b2o30bobo3bo4bo62bobo3bo5b3ob2o6b2ob2o$90bo6b3o66b
2obo5b4o11b3o$153b2o22b2o$153b2o35b3o$191bo3$65b2o$65b2o$80bo$78b2ob2o
78b2o$81b3o77b2o10bo$174b5o$81b3o89bobo2bob3o$82bo93bo6bo$173bo3b2o4bo
$172bobo3bo4bo$173bo6b3o3$124b3o$123bo2bo$123b3obo$123b2o2$124b2o$125b
o$125bo$121bo13b2o$120bo14b2o$120bo3bo$125bo$121bo$118b2o5bo$117b2ob2o
b2o13b3o$118bo4bo5bobo5bo$119bo2bo2bobo9bobob2o$119b2o4bo10b2o3b2o$
125bobo3bo5b3ob2o$114b3o11b2obo5b4o$114bo2bo21b2o$114bo2bo$113b4o$112b
o$114bo$112b2o$109bobo$108bo2bo$108bo$108b2o25bo$108b2o26b5o$111bo23bo
bo2bob3o$110bo27bo6bo$102b2o31bo3b2o4bo$102b2o30bobo3bo4bo$135bo6b3o6$
110b2o$110b2o$125bo$123b2ob2o$126b3o2$126b3o$127bo81$294b2o$294b2o2$
288b2o$288b2o3$284b2o$284b2o16b2o$302b2o9$297b2o$297b2o5$318b2o$318b2o
2$312b2o$290b2o20b2o$290b2o7$298b2o$298b2o9$317b2o$317b2o4$336b2o$314b
2o20b2o$314b2o2$332b2o$332b2o16b2o$350b2o3$322b2o$322b2o5$345b2o$345b
2o3$341b2o$341b2o$366b2o$366b2o3$338b2o$338b2o3$374b2o$374b2o3$346b2o$
346b2o5$369b2o$369b2o5$390b2o$390b2o2$384b2o$362b2o20b2o$362b2o2$380b
2o$380b2o4$370b2o$370b2o11$414b2o$414b2o2$408b2o$386b2o20b2o$386b2o2$
404b2o$404b2o16b2o$422b2o9$417b2o$417b2o3$413b2o$413b2o$438b2o$438b2o
2$432b2o$410b2o20b2o$410b2o2$428b2o$428b2o16b2o$446b2o9$441b2o$441b2o
3$437b2o$437b2o$462b2o$462b2o2$456b2o$456b2o3$452b2o$452b2o16b2o$470b
2o3$442b2o$442b2o5$465b2o$465b2o3$461b2o$461b2o$486b2o$486b2o2$477b4o$
458b2o16bo3bo$458b2o15bo3bobo$476b3o2b3o$480bo3bo$480bo4bo8b2o$480bo4b
o8b2o$481bo3bo$481bo4bo$466b2o14b2ob2o$466b2o15bo3bo$485b3o$485b3o4$
500bo$474b2o23bobo$474b2o6bo12bobob2o$481b2o11bo4bo$479b2obo11bo4bo$
479b3o18bo$480bob2o17bo$481b2o13bo3bo$481b2o17bo$483bo12b7o$496bo5bo2$
498b3o!
After the glider that stops the BLSE in its tracks, we can fire a long slow salvo of subsequent gliders to arrange that the front of the BLSE debris is converted exactly into six one-time Cordership stoppers; that way, the cleanup fleet will annihilate with the stoppers to leave zero debris whatsoever.
What do you do with ill crystallographers? Take them to the mono-clinic!

User avatar
testitemqlstudop
Posts: 1208
Joined: July 21st, 2016, 11:45 am
Location: in catagolue
Contact:

Re: Thread for basic questions

Post by testitemqlstudop » July 7th, 2019, 2:15 am

So literally at the end of the RCT construction, the RCT will make 6 2-engine corderships just to clean up the BLSE?

And what about the mess made by switch engines colliding?

User avatar
Gustone
Posts: 474
Joined: March 6th, 2019, 2:26 am

Re: Thread for basic questions

Post by Gustone » July 7th, 2019, 2:17 am

testitemqlstudop wrote:
Gustone wrote:Is there an actual rle of an UC building a spider with 35 gliders?
Read my post above; no - the slow-salvo construction and seed itself would already be way too challenging to construct, let alone clean the debris from the puffers.


Also, on the problem of aperiodic debris in the RCT puffers: The method for cleaning this debris up has to be encoded in the 35-glider recipe itself, making more aperiodic debris.
then your rct uc is bull*%#^
if it cant build anything
I like making color palettes for rules

Post Reply