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.