Demonoid (diagonal Geminoid) completed!

For discussion of specific patterns or specific families of patterns, both newly-discovered and well-known.
Post Reply
chris_c
Posts: 966
Joined: June 28th, 2014, 7:15 am

Re: Demonoid (diagonal Geminoid) working notes

Post by chris_c » November 16th, 2015, 12:39 pm

dvgrn wrote: The part of Tile D that's equivalent to Tile A seems to work fine also -- there are just two blocks to be built instead of the one boat.
Yes, both look good. The only problem I see is that the hand that is donated to the next construction is too near by (5,5). I think you can fix by moving the starting block closer by (5,5) and making the first block move (1, -27) instead of (6, -22).

Meanwhile here is a script that produces TileC. 128 glider pairs although all the first operation is just to change the elbow color. Pretty sure this is compatible with TileB but not checked TileA. (EDIT: Checked it. Think it looks good)

I need to find a darkened corner to sit in for a while.

Code: Select all

# build-10hd-gp-recipe-TileC.py
import golly as g

from glife.text import make_text
from string import maketrans
phaselist=["3o$o$bo!","b2o$2o$2bo!","b2o$bobo$bo!","2bo$b2o$bobo!","$b3o$bo$2bo!"]

recipes="TileC: e-9999 e-32 e-8 o-11 e-32 e-8 o-11 e-32 e-8 o-11 e-32 e-8 o-11 e6 e9999 e9999 e9999 o5 e-9999 e-9999 e2 e1 e-34 e-26 e26 o-15 e-9999 o-43 e18 o-56 o-12 o16 e-9999 e-12 e13 e13 e13 e13 o-15 e18 e-7 o-19 e-29 o-14 e1 e45 o-55 e3 o-5 e68 e9999 e-20 o38 o-5 e53 o34 e-2 o-13 e5 e-62 o-22 e-34 o-57 e1 e38 e26 e8 o-29 e8 o-58 e-9999 e-32 e-8 o-11 o9999 e35 o-4 e-31 o-9999 e13 e6 e-9999 o-15 e18 e-7 o-1 e-38 e-26 e-8 e1 e31 e-23 e9999 e5 e-28 e58 o32 o8 o7 e17 e-34 o9999 o32 o8 o7 e17 e-34 e-1 e-23 e-1 e-12 o24 o24 e-6 o1 o31 o-23 o9999 o5 o-28 o58 e-9999 e-32 o-15 o17 o23 o5 e-40"

g.setrule("LifeHistory")
recipelist=recipes.split("\n")
locx,locy,locxstep=0,0,1000
firstrecipe=recipelist[0].split(":")
name="recipe"
if len(firstrecipe)==2: name=firstrecipe[0]
g.new(name)
for item in recipelist:
    rparts=item.split(":")

    # The target pattern is customized and will probably need to change with each new recipe
    g.putcells(g.parse("84.2E$84.2E72$3.4B$4.4B$5.4B$6.4B$B6.4B$2B6.4B$3B2.2E2.4B$4B.2E3.3B$.4B6.2B$2.4B6.B$3.4B$4.4B$5.4B!",locx-5,locy-78))

    recipestr = rparts[1].replace('\n',' ').replace('\r',' ').replace(' ','').replace('E','e').replace('O','o')
    recipestr=recipestr.replace(',','e').replace(';','o').replace(' ','e').replace("ee",'e').replace("eo",'o')
    rlist = recipestr.replace('o','e').split("e")[1:]
    parities = recipestr.translate(maketrans("",""),"0123456789-")+"~"
    if parities.replace('e','').replace('o','')!="~":
      g.exit("Bad format -- parity check failed for " + recipestr)
    parity=0
    if parities[0]!="e":
      g.note("Recipe not normalized -- should start with 'e'.")
      parity=1
    else:
      parity=0 
    loc=10
    count=0
    for delta in rlist:
      count+=1
      if count==3:
        g.fit()
        g.update()
      try:
        d=int(delta)
      except:
        continue
      if abs(d)<999:
        offset, phase = d//4, d%4
        g.putcells(g.parse(phaselist[parity]),loc-3+locx,loc+3+locy) #-6 lane
        g.putcells(g.parse(phaselist[parity+phase]),loc+2+offset+locx,loc-2+offset+locy) #+4 lane
      else: # singleton glider
        if d<0:
          g.putcells(g.parse(phaselist[parity]),loc+2+locx,loc-2+locy) #+4 lane
        else:
          g.putcells(g.parse(phaselist[parity]),loc-3+locx,loc+3+locy) #-6 lane
      loc+=180
      parities=parities[1:]
      parity=1 if parities[0]=="o" else 0
    locx+=locxstep
g.setstep(8)

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

Re: Demonoid (diagonal Geminoid) working notes

Post by dvgrn » November 17th, 2015, 1:24 am

chris_c wrote:The only problem I see is that the hand that is donated to the next construction is too near by (5,5). I think you can fix by moving the starting block closer by (5,5) and making the first block move (1, -27) instead of (6, -22).
Yup, you're right. Very strange -- I'm not sure yet exactly what bug in my thought processes caused that, but I'd like to figure it out. The original recipe actually dropped a block 5 cells further away, but then I "fixed" it -- possibly thanks to another imperfect template pattern.

Anyway, I think I can just swap out a seven-glider section at the very beginning of the recipe, and replace it with the original seven gliders. Not tonight, though. Might break the whole thing permanently if I tried anything like that at this point.
chris_c wrote:Meanwhile here is a script that produces TileC. 128 glider pairs although all the first operation is just to change the elbow color. Pretty sure this is compatible with TileB but not checked TileA. (EDIT: Checked it. Think it looks good)
Impressive! The Demonoid is continuing to make good progress -- if all this can really be called "progress".
chris_c wrote:I need to find a darkened corner to sit in for a while.
That sounds like a very very good idea. I'm thinking I might not come out of my corner again until next weekend at least, and maybe not until December.

Code: Select all

TileD_part1_part2:E9 E3 E3 E7 E11 E33 E65 E47 E69 E21 E23 E25 E7 E-7 E19 E19 E5 E11 E-9 E-9 E9 E27 E9 E-5 O25 E-25 E-19 E-25 E-27 E63 E69 E29 E39 E25 E27 E7 E53 E51 E47 E47 E83 E85 E85 E99 E103 E81 E103 O107 E83 E121 E127 E111 E113 E121 E101 E135 E149 E125 O133 E127 E137 E137 E143 E127 E129 E101 E137 E153 E155 E137 E131 O129 O111 O133 E127 E143 E123 E191 E185 E185 O179 E199 O209 E187 E195 E179 E181 E175 E203 E207 E223 E201 E221 E175 E167 E183 O183 E189 E147 E145 O169 O165 E153 E183 E163 E177 E197 E143 E21 E39 E31 E5 E25 E29 E29 O1 O23 E15 O27 O27 E19 E17 E9 E15 E-1 O15 O19 E7 E-13 E-27 E-15 E-23 O-27 E5 E-7 E-13 E-17 E-23 E-23 O-13 O-7 E-9 E-25 E-25 O-1 O-25 E-19 E-21 E-3 E-3 O21 O5 E-27 E37 E41 E41 O31 E31 O37 E55 E27 O33 E41 E19 E15 E19 O45 E31 E31 O55 E71 E65 E65 O81 E43 E71 E37 E11 O59 E25 E33 O43 E69 E75 E75 O85 E81 O71 O67 E63 E69 E73 E63 O79 O59 E61 E61 E57 E61 E21 E25 E39 E33 E43 E21 E43 E51 O65 E45 E77 O63 E57 E119 E69 E63 O93 O113 E101 O97 E73 E77 E93 E107 E123 E107 O95 E63 E105 E99 E99 E53 E55 E47 E123 E129 E129 O105 O115 O105 O125 E127 E51 E51 E55 E55 O45 O65 O45 E41 E49 O65 E73 O81 E89 E87 O53 O67 E65 E83 E85 O69 O67 O67 E89 E59 E57 E87 E79 O97 E101 E77 E37 E31 E17 E47 E63 E21 E79 E73 E59 E53 E69 E81 E55 E51 E55 E83 E79 E91 O89 E63 E31 E37 E21 O45 E25 E37 E35 E41 E41 E43 O37 E45 E29 E33 E47 E43 E53 E59 E77 E83 O47 E31 O59 E51 E59 E63 E77 E47 O51 O57 E61 O47 E67 E77 E89 E95 E99 O83 E77 E73 E45 E65 E85 E85 O81 O97 O55 O81 E41 E37 E37 E15 O33 E25 O47 E35 O51 E31 E99 E99 E85 E99 E93 E97 E97 O73 O83 O111 E69 E81 E103 E85 E65 E79 E67 E77 E97 O97 E111 E105 E103 E107 O137 E151 E149 E155 E155 O127 O165 E123 E119 E119 O119 E145 O113 E139 E153 E117 E97 E147 E153 E149 O139 E133 E141 E103 E99 E99 O89 O111 O113 O103 E77 E85 E89 O81 E97 E103 E117 E93 O101 E99 E111 E117 E95 E95 E123 E29 E57 E73 E71 E63 O93 O65 E45 E77 O85 E117 E133 E105 E129 E115 E195 E209 E179 E225 E225 E225 E223 E223 E221 E235 E229 E233 E229 E243 E237 E237 O247 E263 O229 O235 E251 E251 E261 E235 E237 E233 E245 E251 O259 E249 E199 E193 O173 E195 O189 E185 E205 E197 E187 E181 E195 E223 E243 E237 E235 O263 O233 E225 O227 E221 E223 O199 E215 E225 E245 E239 E225 E255 E249 O235 O241 E235 E233 E251 E237 E257 E239 E219 E229 E223 O241 O219 E247 E209 E225 E247 E247 E263 E235 E243 O247 E251 E251 E245 E247 E249 E251 E253 E253 E253 E249 O233 E221 E261 E233 E253 E239 E209 E213 E245 E217 E235 E227 E243 E211 O221 O253
And the compiled gp-recipe "pattern script" version:

Code: Select all

# build-10hd-gp-recipe-TileD_part1_part2.py
import golly as g

from glife.text import make_text
from string import maketrans
phaselist=["3o$o$bo!","b2o$2o$2bo!","b2o$bobo$bo!","2bo$b2o$bobo!","$b3o$bo$2bo!"]

recipes="TileD_part1_part2_gp:e-9999 o-1 e-32 o33 e0 e-9999 o-4 e-3 o14 o9999 o-45 e2 e18 o5 o-36 e9999 e-30 e-34 o-57 e35 e1 e46 e-10 e9999 e15 e10 e39 e37 o-19 o-32 o-9 e1 e5 o-45 e-23 o37 e-47 e-32 e-8 o-15 o-5 e50 o51 o53 o20 e-22 e47 e-20 e18 e5 o-11 e15 e9999 e-23 o37 e-41 e24 e8 e-35 o9999 o-49 o1 e-9999 o-19 o-32 o-42 e-14 e5 o-11 e15 e9999 e-42 o-15 e15 o-58 o-19 o-32 o-26 o-11 o12 o28 e-5 e20 e-8 e-6 o-19 e-33 e33 e15 o-13 o31 o-42 e6 o-13 e-6 o-19 o-32 o-42 e-14 e29 o-14 o-39 e5 e-18 e-5 o27 o30 o-11 o12 o28 e-5 e20 o-8 e19 e53 o5 o12 e-6 o-19 e-33 e54 e10 o-29 e9999 e-26 e-9999 e15 e10 e39 e37 o-33 o-32 o-23 o-13 o-32 e9999 o-31 o-13 o1 o39 o12 e9999 e33 o9999 o-23 e-1 e-26 e-9999 e5 e-30 o4 e-42 o-15 e15 o-58 o-19 o-32 e-39 e-16 o12 o28 e-5 e20 e-8 e-6 o-19 e-33 e27 e-9999 o-22 o37 e-1 e-8 o-13 e15 e10 e39 e37 o-19 e-33 e33 e15 o-13 o31 o-42 e6 e-9999 o-15 e-9999 e1 o-31 e31 o-17 e-20 e18 e35 o-48 e9999 e9999 o-5 e50 o51 e34 e4 e9999 o45 o39 o-56 e9999 e13 o-19 o-32 o-9 e1 e15 e10 e39 e37 o6 e-13 o35 o1 o46 o-10 o-19 e-33 e54 e5 e-28 e58 e-9999 o-19 o-32 o-46 e-7 e29 o-14 o1 e-55 e-19 o9999 e-48 o-11 e13 e-1 o27 o30 e-1 o27 o30 e-22 e47 e-20 e18 o1 o39 o12 e9999 e33 e-24 o51 o19 o53 e5 e12 o15 o-16 e22 o15 o-22 o47 o-20 o18 e5 e-32 e15 e-23 o37 e-1 o-13 e11 o-22 o37 e-1 e-8 e-9999 e-35 o9999 o-49 o1 o-13 e35 e1 e46 e-10 o-19 o-32 e-33 e-40 o26 o7 e26 o53 o-2 e-19 o-23 e13 e15 e-3 o-22 o37 e-1 o-33 e-14 e-46 e-14 o-5 e25 e9999 o19 o53 e5 e12 e5 e-32 e15 e-23 o47 o-20 o18 e5 e-36 o9999 o-30 o-23 e37 o-1 e-8 e19 o29 o14 o-19 e-33 e45 e9999 e15 e10 e39 e37 e6 e-9999 o-19 e-33 e45 o-1 e-56 e30 e-9999 o-33 e24 e-51 o-19 o-32 o-26 e-22 e47 e-20 e18 o15 o10 o39 o37 e6 e5 e-32 e15 o-23 e37 o-47 e-35 o9999 o-49 o1 o35 e-3 o-5 e-8 e-6 o-5 e50 o51 e34 e15 e-4 e3 o12 o28 e-5 e20 o-9 e-9999 e-15 e35 e1 e46 e-10 e9999 e15 e10 e39 e37 e6 e35 e1 e46 e-10 e9999 e33 o32 e33 e9999 o10 e-37 o35 o-16 o-19 e-33 e45 e13 o-5 e38 o-7 e34 e57 e-35 o9999 o-49 o1 o29 e-14 e1 o-55 e6 e5 o-45 e-23 o37 e-47 o-5 e38 o-7 e12 o-1 e13 e9 e9999 o17 e-19 e-32 o-33 o-40 o8 e-19 e-32 e-46 o-7 e-6 o-19 o-32 o-9 e1 o35 e-3 o-5 e-8 e15 e10 e39 e37 e13 e-5 o46 e57 o-4 e34 e55 o-58 o9999 e21 e-32 o-26 o2 o-32 o-9999 e9 e-16 o-13 o-32 e-25 e42 o17 o2 e29 o-9999 o45 o39 o-56 e9999 e9999 o15 o-16 e22 o15 o-22 o37 e-1 e-8 o-13 e35 e-39 e3 e1 o-22 o37 o6 o31 o9 o9999 e17 o6 o29 e-14 e1 o-55 e6 e35 e1 e46 e-10 o-35 e9999 e-49 e1 o29 e-14 e1 o-55 e6 o15 e-57 o25 o-3 o-22 o37 e-35 o-9999 e-23 o37 e-1 o-13 o12 o28 e-5 e20 e-8 e-9999 o-19 e-33 e29 e-1 o18 e12 e28 o-5 o20 e-31 o8 e13 o52 e29 o-14 o-39 e5 o-25 o35 e-3 o-5 e-8 o19 o53 e5 e14 e9999 e35 o-48 e9999 e9999 o-19 o-32 o-9 e1 o33 e32 o33 o9999 e33 o9999 o-23 e-1 e-8 o19 o53 e5 e38 o45 o39 o-56 e5 o45 o39 o-56 e9999 e6 e35 e-39 e3 e1 o-22 o37 e-1 o-8 o15 o10 o39 o37 o13 o-35 o8 e17 o-11 o12 o28 e-5 e20 e-8 e-9999 o-19 e-33 e33 e15 o-13 o31 o-42 e-19 o-33 o45 o13 e-19 o-33 o29 o-5 e25 o-19 o-32 o-9 e1 e-9999 o-5 e38 o-7 o34 o16 o37 e8 o-19 o-32 o-26 o-5 e27 e30 e-1 o28 o-9999 o35 e-48 o9999 o9999 o-33 o-32 o-23 o-13 o-32 e9999 e9999 o19 o53 e5 e14 o-19 o-32 o-26 e-22 e47 e-20 e18 o-9999 o-35 e9999 e-49 e1 e15 e10 e39 e37 o6 o-9999 e-19 e-32 e-42 o-14 e29 o-14 o1 e-55 o-19 e-33 e54 o10 e-29 o9999 e-8 o-13 o19 o53 e5 e14 o-19 e-33 e45 e6 o-13 e35 e1 e46 e-10 e9999 e15 e10 e39 e37 o6 o1 o38 o26 o9 o9999 e17 e13 o-19 e-33 e33 e15 o-13 o31 o-42 e-19 o-33 o45 o-15 e-9999 e1 o-31 e9 e9999 o17 e9 e-24 o45 e-41 o-22 o-8 e12 e9999 e29 e30 e-6 e-35 o9999 o-49 o1 o-13 o1 o39 o12 e9999 e10 o-29 e9999 o-33 o45 e58 e29 o-14 o1 e-55 o-1 e-38 e-32 e-12 e-9999 o-13 o-32 o3 e11 e-16 o-13 o-32 e9999 e7 o13 e-19 o-33 o42 o9999 e8 o-19 o-32 e-33 e-40 e8 e-35 o9999 o-49 o1 e5 e-32 e15 o-23 e37 o-1 e-26 e-9999 e35 o-48 e9999 e9999 o6 o15 o10 o39 o37 e-19 o-33 o42 o9999 e31 e-8 o-10 o-3 o34 o16 o37 o26 e-7 e9999 e58 o1 o39 o12 o9999 o33 o-24 e51 e35 o-3 e-5 o-8 o29 e-14 e1 o-55 e6 e35 o-48 e9999 e9999 o-5 e45 o34 o16 o37 e8 e-35 e8 o17 o-22 o37 o-46 e23 e-35 e8 o17 o-22 o37 e-41 e24 e13 o-5 e0 e55 e-42 o-15 e15 o-60 e-8 e5 e-30 o4 e-42 o-15 e15 o-60 e-8 o15 o-16 e22 o15 o-5 e0 e55 o-12 o-56 o46 o9999 o-19 e-33 e45 e-19 e-32 o-33 o-40 e9 e9999 o17 e9999 o19 o53 e5 e14 o6 o-6 e-15 o-9999 o1 e-31 e9 e9999 o17 e6 e-9999 o-1 e-56 e30 e-9999 e-33 o4 o-12 e-39 e24 o-45 e55 o-12 o-56 o46 o9999 o-35 o8 e17 o-1 e27 e30 o-11 e3 e-9999 o-22 o37 e-1 e-31 e-33 e-1 e53 e20 e-5 o27 o30 e-5 o27 o30 o-1 e0 e55 o-42 o-32 o9 e-27 o45 o39 o-56 e9999 o-19 e-29 o-14 e15 e10 e39 e37 e13 o-19 e-33 e45 e-19 o-33 o45 e6 e-6 o-19 e-33 e33 o10 e-37 o35 o-16 e-24 e-24 o6 e-35 o9999 o-49 o1 e29 o-14 o-39 e5 o-25 e-6 o-19 o-32 o-9 e1 e5 e-30 o36 e1 o-12 o-56 o46 o9999 e9999 o1 o39 o12 e9999 e5 e-28 e58 o-13 e35 e-39 e3 e1 o-22 o37 e-47 e-15 o-9999 e-5 e-21 e1 e3 e49 e-18 e29 o-19 e26 o33 o24 e53 e20 o-3 e9999 o5 o3 o49 e-5 e-10 e7 e8 e-35 o9999 o-49 o1 e29 o-14 o1 e-55 e6 e5 o-11 e15 e9999 e-42 o-15 e15 o-58 o-5 e46 o57 e-4 o34 o15 o-4 o3 o1 o-18 e-22 e37 o-1 e-26 e-9999 o19 o53 e5 e14 e6 e35 e-39 e3 e1 o-1 e27 e30 e-1 o27 o30 o-1 e27 e30 e-1 o27 o30 o-5 e25 e9999 o-13 o1 o39 o12 o9999 o10 e-29 o9999 o-8 o29 e-14 e1 o-55 o-19 o-32 o-9 e1 e35 e1 e46 e-10 o-19 o-32 o-26 e-1 o7 o1 o9 o9999 e17 e-19 o-33 o45 o6 e5 e-36 o9999 o-30 e-23 o37 e-47 e9999 e29 o-14 o1 e-55 o-19 o-32 o-42 e-14 e1 e23 e8 e35 e1 e46 e-10 o-5 e38 o-7 e34 e16 e37 e13 o-22 o37 e-47 o-38 e0 e-24 o-9999 e-22 e47 e-20 e18 e15 e10 e39 e37 o-29 o-19 e4 o-13 o-32 e9999 e-26 e13 o-19 e-33 e27 e-9999 e-24 o45 o11 o13 o-13 o-32 e9999 e9999 e29 o-14 o1 e-55 e-35 e8 o17 o-1 e25 o-15 e-9999 e1 o-31 e9 e9999 o17 e-32 e-8 o-15 o-19 o-32 o-26 o-22 o37 o-46 e23 e-35 o9999 o-49 o1 e35 e1 e46 e-10 o-15 e-9999 e1 o-31 e9 e9999 o15 e-35 o9999 o-49 o1 e35 e1 e46 e-10 e-35 o9999 o-49 o1 o5 o-30 e4 o-12 o-56 o46 o9999 e-26 e-36 e-28 e31 e-8 o-10 o-3 o34 o16 o37 e9 e9999 o17 e-19 e-32 o-33 o-40 e8 e-15 o-10 o11 e-31 e9 e9999 o17 o-19 e-33 e54 e10 o-29 e9999 e-26 e-9999 o19 o53 e5 e14 e6 e29 o-14 o-39 o11 o-5 e27 e30 e-1 o27 o30 e-22 e18 e-9999 o-22 o37 e-1 e-8 o-13 o19 o53 e5 e14 e-35 o9999 o-49 o1 o15 e-57 o25 o-3 e-5 o27 o30 o-5 e0 e55 e-23 o26 o10 o11 o53 o20 o-1 e0 e55 e-42 o-15 e15 o-58 o9999 e-13 e5 e-36 o9999 o-30 o-12 o-56 o46 o9999 o6 o35 o1 o46 o-10 o-5 e38 o-7 e29 e-9999 e-18 o-19 e-33 e45 o-5 e38 o-7 e34 e57 o-15 e-9999 o-5 o-21 o12 o28 e-5 e20 o-26 o-9999 o15 o10 o39 o37 o13 o-35 o8 e17 o-22 o37 e-1 o-8 e9999 e58 o-1 o6 e1 o-25 e15 e10 e39 e37 e13 o-19 o-32 o-26 o-22 o37 e-1 e-8 e35 e1 e46 e-10 o-15 e-9999 e1 o-31 o8 e-19 o-33 o45 e6 e-6 o-19 o-32 e-39 e-16 e11 o-22 o37 o6 o31 e9 e9999 o17 e-35 e8 o17 e-1 o27 o30 e-22 e33 e9999 e-8 e5 e-30 o4 o-34 o-16 e-39 o13 o15 o-3 e-22 e37 o-47 e-5 o38 e44 o-22 e45 o-41 e-22 e-8 e23 e-26 o46 o-22 o37 e-1 e-26 e-9999 o19 o53 e5 e12 o19 o53 e5 e14 o-19 e-33 e45 o6 o35 e-48 o9999 o9999 o-19 o-32 o-9 e1 o29 e-14 e-39 o12 o28 e-5 e20 o-8 e-9 e12 e28 o-5 o20 e-8 e-6 o-19 e-33 e45 o-1 e-56 e30 e-9999 e-9999 e11 e13 e9999 o35 e-3 o-5 e-8 o19 o53 e5 e14 e-35 o9999 o-49 o1 o-13 o19 o53 e5 e14 o-19 o-32 o-26 e-22 e47 e-20 e18 o-6 e-19 e-32 e-9 o1 e-13 o29 e-14 e-39 e1 e3 e49 e-18 e29 e-9999 e-18 o-19 o-32 o-26 o-22 o37 e-47 o-1 e-56 e30 e-9999 o-33 e24 e-51 e13 o-19 o-32 e-33 e-40 e9 e9999 o17 o-1 o-23 e-8 o-19 e-33 e45 o-19 e-33 e42 e9999 e9 e9999 o17 o-5 e45 e12 e1 o-32 o3 e-15 o-6 o-9999 o-9999 o12 o28 e-5 e20 e-8 e35 e-17 e9 e9999 o17 o-19 e-33 e45 o-5 e38 o-7 o23 e-33 o-9999 o8 e-19 e-32 e-42 o-14 o15 e-57 o25 o-3 o-22 o37 e-1 e-8 e-9999 e-35 o9999 o-49 o1 e29 o-14 o-39 o17 e44 o-18 o13 o-29 o-3 o-43 o-17 e15 e10 e39 e37 o-19 e-33 e45 e13 e13 e-35 o9999 o-49 o1 o15 o10 o39 o6 o53 o15 o-9999 o-24 e-19 e-32 e-42 o-14 o35 e-3 o-5 e-8 o-7 o-11 e-8 o53 o20 o-22 o37 o-46 e23 o-1 e-60 e-9999 o-13 o-32 o23 e0 e8 o-5 e38 o-7 e12 e1 o-32 o3 e6 e-6 o-19 o-32 o-42 e-12 o6 o29 e-14 e-39 e11 e-5 o27 o30 e-1 o27 o30 e-24 o45 o11 o13 e-9999 e11 e13 e-35 o9999 o-49 o1 e15 e10 e39 e6 e34 e16 e37 o8 e-5 o50 e51 o34 o15 o-4 o3 o5 e-25 e24 e24 e9 e-9999 e-1 o27 o30 e-1 o27 o30 e-5 o27 o30 e-22 e37 o-1 e-8 o19 o53 e5 e14 e9999 e5 e-32 e15 o-23 e26 e47 o53 o20 e-5 o27 o30 o-1 e27 e30 e-22 e33 e9999 e-8 e35 e1 e46 e-10 e-35 o9999 o-49 o1 o19 o53 e5 e14 o-19 e-33 e45 e6 o-13 e29 o-14 o-39 o1 o3 o49 e-5 e-33 o4 o-12 e-39 e1 e-18 o-22 o37 e-1 e-8 o19 o53 e5 e14 e6 e35 e1 e46 e-10 e9999 o-13 e15 e10 e39 e37 e-38 o0 o-24 e-9999 e-22 e37 o-1 e-8 o-13 o15 o-16 e22 o15 e-5 o27 o30 o-1 e27 e30 o-5 e0 e55 e-23 o37 e-1 e-8 e35 o-48 e9999 e9999 e6 e-6 o-19 o-32 o-26 e-5 o27 o30 o-11 o12 o28 e-5 e20 e-8 e1 e23 e8 o1 o39 o12 e9999 e9999 o-11 e-8 o12 o9999 o29 o30 e15 e10 e39 e37 o-19 e-29 o-14 e5 e-30 o4 o-23 e47 e-20 e18 e1 e38 e26 e9 e9999 o17 o-19 e-33 e42 e9999 e8 o-19 e-33 e45 e-15 o-10 o11 e-31 e33 o45 o-15 o-45 o-43 o-1 e21 e-1 o27 o30 o-5 e0 e55 o-29 e32 e27 e9 e9999 o17 e13 o-15 e-9999 e1 o-31 e9 e9999 o17 e6 e11 e23 o-47 e0 e12 e28 o-5 o20 o-33 e-14 e-46 e-14 o-24 o45 e-55 o12 o1 e-32 e3 e-5 o38 e-7 e34 e57 e-35 o9999 o-49 o1 e5 e-32 e15 e-23 o37 e-47 e6 e5 o-11 e15 e9999 e-23 o37 e-1 e-8 e-9999 o-19 o-32 o-26 o-22 o37 e-1 e-8 e-9999 e-35 o9999 o-49 o1 o5 e-11 o15 o9999 o-23 e47 e-20 e18 e-6 o-19 e-33 e29 o-11 e16 o10 e-37 o35 o-16 e-19 e-32 e-9 o1 e5 e-32 e15 o-34 o-16 e-39 e5 e-28 e58 o19 o53 e5 e14 e9 e-1 o27 o30 o-22 o37 e-1 o-31 e8 o13 e52 o19 o53 e5 e14 e-35 o9999 o-49 o1 o-13 o1 o39 o12 e9999 e33 e-24 o47 e8 o-15 e-9999 e1 o-31 e9 e9999 o17 o-19 e-33 e45 o9999 e24 e24 e9 e-9999 o-5 e27 e30 o-22 o37 e-13 o-13 e1 e39 e12 e9999 o10 e-37 o35 o-16 o-5 e50 o51 o29 o-9999 o-18 e-19 o-33 o33 e33 e-24 o51 e-9999 o-19 e-33 e45 e-35 e8 o17 e-1 o27 o30 o-1 e25 o-5 e50 o51 o34 o16 o37 e8 e9999 o-13 o1 o39 o12 e9999 o10 e-37 o35 o-9999 o-35 e9999 e-49 e1 e19 e53 o5 o12 e29 o-14 o1 e-55 o-19 o-32 o-9 e1 e35 e1 e46 e-10 e13 e-35 e8 o17 e-1 o27 o30 o-1 e25 e-35 o9999 o-49 o8 e-8 e35 e1 e46 e-10 e9999 o19 o53 e5 e14 o-5 e38 o-7 e34 e16 e37 o8 o6 o5 o-30 e36 o1 e-42 o-15 e15 o-60 o-11 o-3 o-13 o-32 o3 e5 o-5 o-13 o-32 e9999 e7 o-19 e-33 e42 e9999 e8 o-19 e-33 e45 e9999 e5 e-32 e15 o-12 o-56 o46 o9999 o-19 e-33 e45 e-5 o38 e-7 e34 e57 e6 e29 o-14 o1 e-55 o-15 e-9999 e1 o-31 e9 e9999 o17 e6 e-6 e9999 e35 e1 e46 e-10 o-19 o-32 o-46 e-7 e35 e1 e46 e-10 o-19 o-32 o-46 e-7 o-13 o19 o53 e5 e14 e6 e5 e-30 o4 e-34 e-16 o-39 o33 e9999 e-23 o-1 e-8 e35 e-39 e3 e1 o-5 e0 e55 e-23 o37 o6 o31 e9 e9999 o17 e6 e5 e-30 o4 e-23 o26 o10 o11 e34 e57 o-19 o-32 o-9 e1 o15 o-16 e22 o15 e-5 o27 o30 o-1 e25 o-19 o-32 o-9 e1 e35 e1 e46 e-10 o-5 e38 o-7 e34 e57 e9999 o35 e-3 o-5 e-8 o-13 e5 e-32 e15 o-23 e37 o-35 e-9999 o-29 e32 o3 e15"

g.setrule("LifeHistory")
recipelist=recipes.split("\n")
locx,locy,locxstep=0,0,1000
firstrecipe=recipelist[0].split(":")
name="recipe"
if len(firstrecipe)==2: name=firstrecipe[0]
g.new(name)
for item in recipelist:
    rparts=item.split(":")

    # The target pattern is customized and will probably need to change with each new recipe
    g.putcells(g.parse("79.2E$79.2E67$3.4B$4.4B$5.4B$6.4B$B6.4B$2B6.4B$3B2.2E2.4B$4B.2E3.3B$."
                              +"4B6.2B$2.4B6.B$3.4B$4.4B$5.4B!",locx-5,locy-73))
    g.putcells(g.parse("""53.2A$53.2A2$50.A11$69.26D4B30D$67.2D25.4B30.D$65.2D26.4B31.D$63.2D
27.4B32.D$61.2D28.4B33.D$59.2D29.4B27.3D4.D$57.2D30.4B27.D3.D3.D$55.
2D31.4B28.D3.D3.D$53.2D32.4B29.5D3.D$51.2D33.4B30.D3.D3.D$49.2D34.4B
31.D3.D3.D$47.2D35.4B32.D3.D3.D$45.2D36.4B41.D$43.2D26.A10.4B42.D$41.
2D27.A.A8.4B43.D$39.2D29.2A8.4B44.D$37.2D40.4B45.D$36.D41.4B46.D$36.D
40.4B47.D$36.D39.4B48.D$36.D38.4B49.D$36.D26.2A9.4B50.D$36.D26.2A8.4B
51.D$36.D35.4B3.2A6.A40.D$36.D34.4B4.A.A4.A.A39.D$36.D33.4B6.A.A3.2A
5.A34.D4.D$36.D13.2A17.4B8.A10.A.A33.D3.D$36.D13.2A4.2A10.4B20.2A34.D
3.3D$36.D19.2A9.4B57.D$36.D29.4B58.D$36.D28.4B59.D$36.D27.4B60.D$36.D
26.4B61.B$36.D25.4B61.2B$36.D24.4B61.3B$36.D23.4B61.4B$36.D22.4B61.4B
D$36.D21.4B61.4B.D$36.D20.4B41.2A18.4B2.D$36.D19.4B42.A.A16.4B3.D$20.
A15.D18.4B44.A16.4B4.D$19.A.A14.D17.4B61.4B5.D$20.2A14.D16.4B61.4B6.D
$36.D15.4B61.4B7.D$36.D14.4B61.4B8.D$18.2A16.D13.4B40.A20.4B9.D$18.A.
A15.D12.4B40.A.A18.4B10.D$19.A16.D11.4B20.2A19.2A18.4B11.D$36.D10.4B
21.A.A37.4B12.D$36.D9.4B23.A37.4B13.D$15.2A19.D8.4B61.4B14.D$14.A.A
19.D7.4B61.4B15.D$15.A20.D6.4B19.3B39.4B16.D$24.2A10.D5.4B10.2A6.5B
38.4B17.D$17.2A3.2B2AB9.D4.4B11.2A6.6B36.4B18.D$16.B2AB2.4B10.D3.4B
18.8B24.A10.4B19.D$17.2B3.6B.B6.D2.4B8.A10.8B24.3A7.4B5.2D13.D$2.A15.
2B2.10B4.D.4B4.A4.3A8.9B4.B21.A5.4B6.2D13.D$.A.A13.2B2A11B4.D4B4.A.A
6.A5.11B3.3B19.2A4.4B14.2A6.D$2.2A10.B.3B2A12B3.D3B6.2A5.2A3.13B2.6B
17.9B6.2A7.2A6.D$13.2A18B2.BD2B14.B4.13B.7B2.4B13.6B7.A16.D$13.2AB.
15B2.2BDB13.3B5.28B2.2B2.B3.6B5.2A.A16.D$14.B3.18BD12.6B3.45B4.A2.A
17.D$18.18BD9.10B2.46B3.B2A18.D$19.17BDB2.2B3.11B.21B2A13B2A14B19.D$
19.17BD13B2A26B2A13B2A13B20.D$13.2A5.7B.8BD13B2A55B21.D$13.2A3.8B2.8B
D46B5.B.17B21.D$17.9B.9BD41B2.B10.15B22.D$16.20BD42B12.15B20.2D$15.
14B7.D3B.13B2.24B12.13B19.2D$14.14B8.D3B5.B.7B2.24B10.13B6.2A11.2D$B
12.15B8.D.4B15.20B2.B2A6.A.2A4.8B5.2A9.2D$2B8.A.17B7.D3.2A17.18B2.BA.
A3.3AB2A6.6B14.2D$D2B7.3A16B7.D3.A15.B.18B6.A2.A4.B8.5B12.2D$BD2B8.BA
14B8.D4.3A11.2A18B7.2A2.3A.2A9.B.B10.2D$2BD2B7.2A13B9.D6.A11.2A18B13.
A.A9.3B9.2D$3BD2B6.17B7.D19.13B3.3B13.A.A9.B2AB6.2D$4BD2B6.18B5.D19.
11B.3B2.B15.A6.2A3.2A5.2D$.4BD2B5.20B3.D21.9B2.2A24.A2.A7.2D$2.4BD2B
4.22B.D22.7B3.A26.2A6.2D$3.4BD2B3.23BD24.4B5.3A29.2D$4.4BD2B2.23BD22.
5B8.A27.2D$5.4BD26BD22.2A18.2A17.2D$6.4BD9B17D23.A18.2A15.2D$7.4BD8BD
15BD20.3A34.2D$8.4BD7BD10B3D2BD20.A34.2D$9.4BD6BD4B2A3BD5BD26.2A25.2D
$10.4BD5BD4B2A3BD5BD26.2A6.2A15.2D$11.4BD4BD9BD4B.D33.A2.A12.2D$12.4B
D3BD10B3D2.D34.2A11.2D$13.4BD2BD5B2A3B5.D45.2D$14.4BDBD5BA3B6.D25.2A
16.2D$15.4B2D6B3A3.2A.D24.A.A14.2D$16.4BD9BA2.2A.D24.A14.2D$17.3BD4B
4ABA5.D23.2A12.2D$18.2BD4BA2B2A6.D35.2D$19.BD2BABA2B8.D15.A17.2D$20.D
2B2A3B8.D14.A.A14.2D$20.D5B10.D14.2A13.2D$20.D.3B11.D27.2D$20.17D25.
2D$28.D31.2D$29.D28.2D$30.D25.2D$31.D22.2D$32.D19.2D$33.D16.2D$34.D
13.2D$35.D10.2D$36.D7.2D$37.D4.2D$38.D.2D$39.D!""",26,-78))
    recipestr = rparts[1].replace('\n',' ').replace('\r',' ').replace(' ','').replace('E','e').replace('O','o')
    recipestr=recipestr.replace(',','e').replace(';','o').replace(' ','e').replace("ee",'e').replace("eo",'o')
    rlist = recipestr.replace('o','e').split("e")[1:]
    parities = recipestr.translate(maketrans("",""),"0123456789-")+"~"
    if parities.replace('e','').replace('o','')!="~":
      g.exit("Bad format -- parity check failed for " + recipestr)
    parity=0
    if parities[0]!="e":
      g.note("Recipe not normalized -- should start with 'e'.")
      parity=1
    else:
      parity=0 
    loc=10
    count=0
    for delta in rlist:
      count+=1
      if count==3:
        g.fit()
        g.update()
      try:
        d=int(delta)
      except:
        continue
      if abs(d)<999:
        offset, phase = d//4, d%4
        g.putcells(g.parse(phaselist[parity]),loc-3+locx,loc+3+locy) #-6 lane
        g.putcells(g.parse(phaselist[parity+phase]),loc+2+offset+locx,loc-2+offset+locy) #+4 lane
      else: # singleton glider
        if d<0:
          g.putcells(g.parse(phaselist[parity]),loc+2+locx,loc-2+locy) #+4 lane
        else:
          g.putcells(g.parse(phaselist[parity]),loc-3+locx,loc+3+locy) #-6 lane
      loc+=180
      parities=parities[1:]
      parity=1 if parities[0]=="o" else 0
    locx+=locxstep
g.setstep(8)
I had thought that it would be necessary to build the away-from-construction-lanes part of Tile D before finishing Tile A, but looking at it again, I think everything can be done in order, pretty much as this recipe shows. Just have to stop in the middle of the Tile-A version of this recipe, to go and build B and C, before coming back and finishing the last nine still lifes.

As a side note, a few of those still lifes were inconveniently close together. Might be something to watch out for in designing future self-destruct circuitry.

Also I made it a fairly tight recipe, so that the parts could be constructed in either order. I think there might be some significant cost savings if what I've been calling Part 2 -- the 9sL constellation -- were constructed before Part 1. That way the boats could be the first things to be constructed. It would be much easier to add the blocks from the other side, because it would be all open space over there, than to build the boats in that relatively narrow stripe.

... So when someone writes a semi-automated slow-salvo compiler, that will be a good time to revisit the build order. I'm certainly hoping not to touch the problem again until then (keeping fingers crossed) Meanwhile, I think it's fairly entertaining to watch the current 9sL recipe do its work -- there are a lot of unavoidable close calls in there.

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

Re: Demonoid (diagonal Geminoid) working notes

Post by dvgrn » November 17th, 2015, 2:07 am

dvgrn wrote:I think I can just swap out a seven-glider section at the very beginning of the recipe, and replace it with the original seven gliders. Not tonight, though. Might break the whole thing permanently if I tried anything like that at this point.
Apologies for the new near-duplicate post. There was just no peace or happiness in my darkened corner, with a question like that still hanging over my head.

I think it's all fixed now -- it really was just a bad seven-glider substitution at the very beginning. But I'm posting the new copy separately, just in case I've somehow subtly made it worse and I'll want to have the previous version back again tomorrow.

Slow salvo:

Code: Select all

TileD_pt1pt2fixed:E9 E-7 E9 O51 O25 E55 O47 E47 E69 E21 E23 E25 E7 E-7 E19 E19 E5 E11 E-9 E-9 E9 E27 E9 E-5 O25 E-25 E-19 E-25 E-27 E63 E69 E29 E39 E25 E27 E7 E53 E51 E47 E47 E83 E85 E85 E99 E103 E81 E103 O107 E83 E121 E127 E111 E113 E121 E101 E135 E149 E125 O133 E127 E137 E137 E143 E127 E129 E101 E137 E153 E155 E137 E131 O129 O111 O133 E127 E143 E123 E191 E185 E185 O179 E199 O209 E187 E195 E179 E181 E175 E203 E207 E223 E201 E221 E175 E167 E183 O183 E189 E147 E145 O169 O165 E153 E183 E163 E177 E197 E143 E21 E39 E31 E5 E25 E29 E29 O1 O23 E15 O27 O27 E19 E17 E9 E15 E-1 O15 O19 E7 E-13 E-27 E-15 E-23 O-27 E5 E-7 E-13 E-17 E-23 E-23 O-13 O-7 E-9 E-25 E-25 O-1 O-25 E-19 E-21 E-3 E-3 O21 O5 E-27 E37 E41 E41 O31 E31 O37 E55 E27 O33 E41 E19 E15 E19 O45 E31 E31 O55 E71 E65 E65 O81 E43 E71 E37 E11 O59 E25 E33 O43 E69 E75 E75 O85 E81 O71 O67 E63 E69 E73 E63 O79 O59 E61 E61 E57 E61 E21 E25 E39 E33 E43 E21 E43 E51 O65 E45 E77 O63 E57 E119 E69 E63 O93 O113 E101 O97 E73 E77 E93 E107 E123 E107 O95 E63 E105 E99 E99 E53 E55 E47 E123 E129 E129 O105 O115 O105 O125 E127 E51 E51 E55 E55 O45 O65 O45 E41 E49 O65 E73 O81 E89 E87 O53 O67 E65 E83 E85 O69 O67 O67 E89 E59 E57 E87 E79 O97 E101 E77 E37 E31 E17 E47 E63 E21 E79 E73 E59 E53 E69 E81 E55 E51 E55 E83 E79 E91 O89 E63 E31 E37 E21 O45 E25 E37 E35 E41 E41 E43 O37 E45 E29 E33 E47 E43 E53 E59 E77 E83 O47 E31 O59 E51 E59 E63 E77 E47 O51 O57 E61 O47 E67 E77 E89 E95 E99 O83 E77 E73 E45 E65 E85 E85 O81 O97 O55 O81 E41 E37 E37 E15 O33 E25 O47 E35 O51 E31 E99 E99 E85 E99 E93 E97 E97 O73 O83 O111 E69 E81 E103 E85 E65 E79 E67 E77 E97 O97 E111 E105 E103 E107 O137 E151 E149 E155 E155 O127 O165 E123 E119 E119 O119 E145 O113 E139 E153 E117 E97 E147 E153 E149 O139 E133 E141 E103 E99 E99 O89 O111 O113 O103 E77 E85 E89 O81 E97 E103 E117 E93 O101 E99 E111 E117 E95 E95 E123 E29 E57 E73 E71 E63 O93 O65 E45 E77 O85 E117 E133 E105 E129 E115 E195 E209 E179 E225 E225 E225 E223 E223 E221 E235 E229 E233 E229 E243 E237 E237 O247 E263 O229 O235 E251 E251 E261 E235 E237 E233 E245 E251 O259 E249 E199 E193 O173 E195 O189 E185 E205 E197 E187 E181 E195 E223 E243 E237 E235 O263 O233 E225 O227 E221 E223 O199 E215 E225 E245 E239 E225 E255 E249 O235 O241 E235 E233 E251 E237 E257 E239 E219 E229 E223 O241 O219 E247 E209 E225 E247 E247 E263 E235 E243 O247 E251 E251 E245 E247 E249 E251 E253 E253 E253 E249 O233 E221 E261 E233 E253 E239 E209 E213 E245 E217 E235 E227 E243 E211 O221 O253
Gp-recipe "pattern script":

Code: Select all

# build-10hd-gp-recipe-TileD_part1_part2.py
import golly as g

from glife.text import make_text
from string import maketrans
phaselist=["3o$o$bo!","b2o$2o$2bo!","b2o$bobo$bo!","2bo$b2o$bobo!","$b3o$bo$2bo!"]

recipes="TileD_part1_part2_gp:e-9 e1 e0 o-55 o34 o16 o37 e9 e9999 o17 e13 e13 o-1 e-60 e-9999 o-13 o-32 e9999 e-26 e-19 o-33 o29 o-16 e-13 e-32 o-25 o27 o-11 o17 o2 e29 o-9999 e45 e39 e-56 o9999 e13 o-5 e50 o51 o53 o20 e-22 e47 e-20 e18 e5 o-11 e15 e9999 e-23 o37 e-41 e24 e8 e-35 o9999 o-49 o1 e-9999 o-19 o-32 o-42 e-14 e5 o-11 e15 e9999 e-42 o-15 e15 o-58 o-19 o-32 o-26 o-11 o12 o28 e-5 e20 e-8 e-6 o-19 e-33 e33 e15 o-13 o31 o-42 e6 o-13 e-6 o-19 o-32 o-42 e-14 e29 o-14 o-39 e5 e-18 e-5 o27 o30 o-11 o12 o28 e-5 e20 o-8 e19 e53 o5 o12 e-6 o-19 e-33 e54 e10 o-29 e9999 e-26 e-9999 e15 e10 e39 e37 o-33 o-32 o-23 o-13 o-32 e9999 o-31 o-13 o1 o39 o12 e9999 e33 o9999 o-23 e-1 e-26 e-9999 e5 e-30 o4 e-42 o-15 e15 o-58 o-19 o-32 e-39 e-16 o12 o28 e-5 e20 e-8 e-6 o-19 e-33 e27 e-9999 o-22 o37 e-1 e-8 o-13 e15 e10 e39 e37 o-19 e-33 e33 e15 o-13 o31 o-42 e6 e-9999 o-15 e-9999 e1 o-31 e31 o-17 e-20 e18 e35 o-48 e9999 e9999 o-5 e50 o51 e34 e4 e9999 o45 o39 o-56 e9999 e13 o-19 o-32 o-9 e1 e15 e10 e39 e37 o6 e-13 o35 o1 o46 o-10 o-19 e-33 e54 e5 e-28 e58 e-9999 o-19 o-32 o-46 e-7 e29 o-14 o1 e-55 e-19 o9999 e-48 o-11 e13 e-1 o27 o30 e-1 o27 o30 e-22 e47 e-20 e18 o1 o39 o12 e9999 e33 e-24 o51 o19 o53 e5 e12 o15 o-16 e22 o15 o-22 o47 o-20 o18 e5 e-32 e15 e-23 o37 e-1 o-13 e11 o-22 o37 e-1 e-8 e-9999 e-35 o9999 o-49 o1 o-13 e35 e1 e46 e-10 o-19 o-32 e-33 e-40 o26 o7 e26 o53 o-2 e-19 o-23 e13 e15 e-3 o-22 o37 e-1 o-33 e-14 e-46 e-14 o-5 e25 e9999 o19 o53 e5 e12 e5 e-32 e15 e-23 o47 o-20 o18 e5 e-36 o9999 o-30 o-23 e37 o-1 e-8 e19 o29 o14 o-19 e-33 e45 e9999 e15 e10 e39 e37 e6 e-9999 o-19 e-33 e45 o-1 e-56 e30 e-9999 o-33 e24 e-51 o-19 o-32 o-26 e-22 e47 e-20 e18 o15 o10 o39 o37 e6 e5 e-32 e15 o-23 e37 o-47 e-35 o9999 o-49 o1 o35 e-3 o-5 e-8 e-6 o-5 e50 o51 e34 e15 e-4 e3 o12 o28 e-5 e20 o-9 e-9999 e-15 e35 e1 e46 e-10 e9999 e15 e10 e39 e37 e6 e35 e1 e46 e-10 e9999 e33 o32 e33 e9999 o10 e-37 o35 o-16 o-19 e-33 e45 e13 o-5 e38 o-7 e34 e57 e-35 o9999 o-49 o1 o29 e-14 e1 o-55 e6 e5 o-45 e-23 o37 e-47 o-5 e38 o-7 e12 o-1 e13 e9 e9999 o17 e-19 e-32 o-33 o-40 o8 e-19 e-32 e-46 o-7 e-6 o-19 o-32 o-9 e1 o35 e-3 o-5 e-8 e15 e10 e39 e37 e13 e-5 o46 e57 o-4 e34 e55 o-58 o9999 e21 e-32 o-26 o2 o-32 o-9999 e9 e-16 o-13 o-32 e-25 e42 o17 o2 e29 o-9999 o45 o39 o-56 e9999 e9999 o15 o-16 e22 o15 o-22 o37 e-1 e-8 o-13 e35 e-39 e3 e1 o-22 o37 o6 o31 o9 o9999 e17 o6 o29 e-14 e1 o-55 e6 e35 e1 e46 e-10 o-35 e9999 e-49 e1 o29 e-14 e1 o-55 e6 o15 e-57 o25 o-3 o-22 o37 e-35 o-9999 e-23 o37 e-1 o-13 o12 o28 e-5 e20 e-8 e-9999 o-19 e-33 e29 e-1 o18 e12 e28 o-5 o20 e-31 o8 e13 o52 e29 o-14 o-39 e5 o-25 o35 e-3 o-5 e-8 o19 o53 e5 e14 e9999 e35 o-48 e9999 e9999 o-19 o-32 o-9 e1 o33 e32 o33 o9999 e33 o9999 o-23 e-1 e-8 o19 o53 e5 e38 o45 o39 o-56 e5 o45 o39 o-56 e9999 e6 e35 e-39 e3 e1 o-22 o37 e-1 o-8 o15 o10 o39 o37 o13 o-35 o8 e17 o-11 o12 o28 e-5 e20 e-8 e-9999 o-19 e-33 e33 e15 o-13 o31 o-42 e-19 o-33 o45 o13 e-19 o-33 o29 o-5 e25 o-19 o-32 o-9 e1 e-9999 o-5 e38 o-7 o34 o16 o37 e8 o-19 o-32 o-26 o-5 e27 e30 e-1 o28 o-9999 o35 e-48 o9999 o9999 o-33 o-32 o-23 o-13 o-32 e9999 e9999 o19 o53 e5 e14 o-19 o-32 o-26 e-22 e47 e-20 e18 o-9999 o-35 e9999 e-49 e1 e15 e10 e39 e37 o6 o-9999 e-19 e-32 e-42 o-14 e29 o-14 o1 e-55 o-19 e-33 e54 o10 e-29 o9999 e-8 o-13 o19 o53 e5 e14 o-19 e-33 e45 e6 o-13 e35 e1 e46 e-10 e9999 e15 e10 e39 e37 o6 o1 o38 o26 o9 o9999 e17 e13 o-19 e-33 e33 e15 o-13 o31 o-42 e-19 o-33 o45 o-15 e-9999 e1 o-31 e9 e9999 o17 e9 e-24 o45 e-41 o-22 o-8 e12 e9999 e29 e30 e-6 e-35 o9999 o-49 o1 o-13 o1 o39 o12 e9999 e10 o-29 e9999 o-33 o45 e58 e29 o-14 o1 e-55 o-1 e-38 e-32 e-12 e-9999 o-13 o-32 o3 e11 e-16 o-13 o-32 e9999 e7 o13 e-19 o-33 o42 o9999 e8 o-19 o-32 e-33 e-40 e8 e-35 o9999 o-49 o1 e5 e-32 e15 o-23 e37 o-1 e-26 e-9999 e35 o-48 e9999 e9999 o6 o15 o10 o39 o37 e-19 o-33 o42 o9999 e31 e-8 o-10 o-3 o34 o16 o37 o26 e-7 e9999 e58 o1 o39 o12 o9999 o33 o-24 e51 e35 o-3 e-5 o-8 o29 e-14 e1 o-55 e6 e35 o-48 e9999 e9999 o-5 e45 o34 o16 o37 e8 e-35 e8 o17 o-22 o37 o-46 e23 e-35 e8 o17 o-22 o37 e-41 e24 e13 o-5 e0 e55 e-42 o-15 e15 o-60 e-8 e5 e-30 o4 e-42 o-15 e15 o-60 e-8 o15 o-16 e22 o15 o-5 e0 e55 o-12 o-56 o46 o9999 o-19 e-33 e45 e-19 e-32 o-33 o-40 e9 e9999 o17 e9999 o19 o53 e5 e14 o6 o-6 e-15 o-9999 o1 e-31 e9 e9999 o17 e6 e-9999 o-1 e-56 e30 e-9999 e-33 o4 o-12 e-39 e24 o-45 e55 o-12 o-56 o46 o9999 o-35 o8 e17 o-1 e27 e30 o-11 e3 e-9999 o-22 o37 e-1 e-31 e-33 e-1 e53 e20 e-5 o27 o30 e-5 o27 o30 o-1 e0 e55 o-42 o-32 o9 e-27 o45 o39 o-56 e9999 o-19 e-29 o-14 e15 e10 e39 e37 e13 o-19 e-33 e45 e-19 o-33 o45 e6 e-6 o-19 e-33 e33 o10 e-37 o35 o-16 e-24 e-24 o6 e-35 o9999 o-49 o1 e29 o-14 o-39 e5 o-25 e-6 o-19 o-32 o-9 e1 e5 e-30 o36 e1 o-12 o-56 o46 o9999 e9999 o1 o39 o12 e9999 e5 e-28 e58 o-13 e35 e-39 e3 e1 o-22 o37 e-47 e-15 o-9999 e-5 e-21 e1 e3 e49 e-18 e29 o-19 e26 o33 o24 e53 e20 o-3 e9999 o5 o3 o49 e-5 e-10 e7 e8 e-35 o9999 o-49 o1 e29 o-14 o1 e-55 e6 e5 o-11 e15 e9999 e-42 o-15 e15 o-58 o-5 e46 o57 e-4 o34 o15 o-4 o3 o1 o-18 e-22 e37 o-1 e-26 e-9999 o19 o53 e5 e14 e6 e35 e-39 e3 e1 o-1 e27 e30 e-1 o27 o30 o-1 e27 e30 e-1 o27 o30 o-5 e25 e9999 o-13 o1 o39 o12 o9999 o10 e-29 o9999 o-8 o29 e-14 e1 o-55 o-19 o-32 o-9 e1 e35 e1 e46 e-10 o-19 o-32 o-26 e-1 o7 o1 o9 o9999 e17 e-19 o-33 o45 o6 e5 e-36 o9999 o-30 e-23 o37 e-47 e9999 e29 o-14 o1 e-55 o-19 o-32 o-42 e-14 e1 e23 e8 e35 e1 e46 e-10 o-5 e38 o-7 e34 e16 e37 e13 o-22 o37 e-47 o-38 e0 e-24 o-9999 e-22 e47 e-20 e18 e15 e10 e39 e37 o-29 o-19 e4 o-13 o-32 e9999 e-26 e13 o-19 e-33 e27 e-9999 e-24 o45 o11 o13 o-13 o-32 e9999 e9999 e29 o-14 o1 e-55 e-35 e8 o17 o-1 e25 o-15 e-9999 e1 o-31 e9 e9999 o17 e-32 e-8 o-15 o-19 o-32 o-26 o-22 o37 o-46 e23 e-35 o9999 o-49 o1 e35 e1 e46 e-10 o-15 e-9999 e1 o-31 e9 e9999 o15 e-35 o9999 o-49 o1 e35 e1 e46 e-10 e-35 o9999 o-49 o1 o5 o-30 e4 o-12 o-56 o46 o9999 e-26 e-36 e-28 e31 e-8 o-10 o-3 o34 o16 o37 e9 e9999 o17 e-19 e-32 o-33 o-40 e8 e-15 o-10 o11 e-31 e9 e9999 o17 o-19 e-33 e54 e10 o-29 e9999 e-26 e-9999 o19 o53 e5 e14 e6 e29 o-14 o-39 o11 o-5 e27 e30 e-1 o27 o30 e-22 e18 e-9999 o-22 o37 e-1 e-8 o-13 o19 o53 e5 e14 e-35 o9999 o-49 o1 o15 e-57 o25 o-3 e-5 o27 o30 o-5 e0 e55 e-23 o26 o10 o11 o53 o20 o-1 e0 e55 e-42 o-15 e15 o-58 o9999 e-13 e5 e-36 o9999 o-30 o-12 o-56 o46 o9999 o6 o35 o1 o46 o-10 o-5 e38 o-7 e29 e-9999 e-18 o-19 e-33 e45 o-5 e38 o-7 e34 e57 o-15 e-9999 o-5 o-21 o12 o28 e-5 e20 o-26 o-9999 o15 o10 o39 o37 o13 o-35 o8 e17 o-22 o37 e-1 o-8 e9999 e58 o-1 o6 e1 o-25 e15 e10 e39 e37 e13 o-19 o-32 o-26 o-22 o37 e-1 e-8 e35 e1 e46 e-10 o-15 e-9999 e1 o-31 o8 e-19 o-33 o45 e6 e-6 o-19 o-32 e-39 e-16 e11 o-22 o37 o6 o31 e9 e9999 o17 e-35 e8 o17 e-1 o27 o30 e-22 e33 e9999 e-8 e5 e-30 o4 o-34 o-16 e-39 o13 o15 o-3 e-22 e37 o-47 e-5 o38 e44 o-22 e45 o-41 e-22 e-8 e23 e-26 o46 o-22 o37 e-1 e-26 e-9999 o19 o53 e5 e12 o19 o53 e5 e14 o-19 e-33 e45 o6 o35 e-48 o9999 o9999 o-19 o-32 o-9 e1 o29 e-14 e-39 o12 o28 e-5 e20 o-8 e-9 e12 e28 o-5 o20 e-8 e-6 o-19 e-33 e45 o-1 e-56 e30 e-9999 e-9999 e11 e13 e9999 o35 e-3 o-5 e-8 o19 o53 e5 e14 e-35 o9999 o-49 o1 o-13 o19 o53 e5 e14 o-19 o-32 o-26 e-22 e47 e-20 e18 o-6 e-19 e-32 e-9 o1 e-13 o29 e-14 e-39 e1 e3 e49 e-18 e29 e-9999 e-18 o-19 o-32 o-26 o-22 o37 e-47 o-1 e-56 e30 e-9999 o-33 e24 e-51 e13 o-19 o-32 e-33 e-40 e9 e9999 o17 o-1 o-23 e-8 o-19 e-33 e45 o-19 e-33 e42 e9999 e9 e9999 o17 o-5 e45 e12 e1 o-32 o3 e-15 o-6 o-9999 o-9999 o12 o28 e-5 e20 e-8 e35 e-17 e9 e9999 o17 o-19 e-33 e45 o-5 e38 o-7 o23 e-33 o-9999 o8 e-19 e-32 e-42 o-14 o15 e-57 o25 o-3 o-22 o37 e-1 e-8 e-9999 e-35 o9999 o-49 o1 e29 o-14 o-39 o17 e44 o-18 o13 o-29 o-3 o-43 o-17 e15 e10 e39 e37 o-19 e-33 e45 e13 e13 e-35 o9999 o-49 o1 o15 o10 o39 o6 o53 o15 o-9999 o-24 e-19 e-32 e-42 o-14 o35 e-3 o-5 e-8 o-7 o-11 e-8 o53 o20 o-22 o37 o-46 e23 o-1 e-60 e-9999 o-13 o-32 o23 e0 e8 o-5 e38 o-7 e12 e1 o-32 o3 e6 e-6 o-19 o-32 o-42 e-12 o6 o29 e-14 e-39 e11 e-5 o27 o30 e-1 o27 o30 e-24 o45 o11 o13 e-9999 e11 e13 e-35 o9999 o-49 o1 e15 e10 e39 e6 e34 e16 e37 o8 e-5 o50 e51 o34 o15 o-4 o3 o5 e-25 e24 e24 e9 e-9999 e-1 o27 o30 e-1 o27 o30 e-5 o27 o30 e-22 e37 o-1 e-8 o19 o53 e5 e14 e9999 e5 e-32 e15 o-23 e26 e47 o53 o20 e-5 o27 o30 o-1 e27 e30 e-22 e33 e9999 e-8 e35 e1 e46 e-10 e-35 o9999 o-49 o1 o19 o53 e5 e14 o-19 e-33 e45 e6 o-13 e29 o-14 o-39 o1 o3 o49 e-5 e-33 o4 o-12 e-39 e1 e-18 o-22 o37 e-1 e-8 o19 o53 e5 e14 e6 e35 e1 e46 e-10 e9999 o-13 e15 e10 e39 e37 e-38 o0 o-24 e-9999 e-22 e37 o-1 e-8 o-13 o15 o-16 e22 o15 e-5 o27 o30 o-1 e27 e30 o-5 e0 e55 e-23 o37 e-1 e-8 e35 o-48 e9999 e9999 e6 e-6 o-19 o-32 o-26 e-5 o27 o30 o-11 o12 o28 e-5 e20 e-8 e1 e23 e8 o1 o39 o12 e9999 e9999 o-11 e-8 o12 o9999 o29 o30 e15 e10 e39 e37 o-19 e-29 o-14 e5 e-30 o4 o-23 e47 e-20 e18 e1 e38 e26 e9 e9999 o17 o-19 e-33 e42 e9999 e8 o-19 e-33 e45 e-15 o-10 o11 e-31 e33 o45 o-15 o-45 o-43 o-1 e21 e-1 o27 o30 o-5 e0 e55 o-29 e32 e27 e9 e9999 o17 e13 o-15 e-9999 e1 o-31 e9 e9999 o17 e6 e11 e23 o-47 e0 e12 e28 o-5 o20 o-33 e-14 e-46 e-14 o-24 o45 e-55 o12 o1 e-32 e3 e-5 o38 e-7 e34 e57 e-35 o9999 o-49 o1 e5 e-32 e15 e-23 o37 e-47 e6 e5 o-11 e15 e9999 e-23 o37 e-1 e-8 e-9999 o-19 o-32 o-26 o-22 o37 e-1 e-8 e-9999 e-35 o9999 o-49 o1 o5 e-11 o15 o9999 o-23 e47 e-20 e18 e-6 o-19 e-33 e29 o-11 e16 o10 e-37 o35 o-16 e-19 e-32 e-9 o1 e5 e-32 e15 o-34 o-16 e-39 e5 e-28 e58 o19 o53 e5 e14 e9 e-1 o27 o30 o-22 o37 e-1 o-31 e8 o13 e52 o19 o53 e5 e14 e-35 o9999 o-49 o1 o-13 o1 o39 o12 e9999 e33 e-24 o47 e8 o-15 e-9999 e1 o-31 e9 e9999 o17 o-19 e-33 e45 o9999 e24 e24 e9 e-9999 o-5 e27 e30 o-22 o37 e-13 o-13 e1 e39 e12 e9999 o10 e-37 o35 o-16 o-5 e50 o51 o29 o-9999 o-18 e-19 o-33 o33 e33 e-24 o51 e-9999 o-19 e-33 e45 e-35 e8 o17 e-1 o27 o30 o-1 e25 o-5 e50 o51 o34 o16 o37 e8 e9999 o-13 o1 o39 o12 e9999 o10 e-37 o35 o-9999 o-35 e9999 e-49 e1 e19 e53 o5 o12 e29 o-14 o1 e-55 o-19 o-32 o-9 e1 e35 e1 e46 e-10 e13 e-35 e8 o17 e-1 o27 o30 o-1 e25 e-35 o9999 o-49 o8 e-8 e35 e1 e46 e-10 e9999 o19 o53 e5 e14 o-5 e38 o-7 e34 e16 e37 o8 o6 o5 o-30 e36 o1 e-42 o-15 e15 o-60 o-11 o-3 o-13 o-32 o3 e5 o-5 o-13 o-32 e9999 e7 o-19 e-33 e42 e9999 e8 o-19 e-33 e45 e9999 e5 e-32 e15 o-12 o-56 o46 o9999 o-19 e-33 e45 e-5 o38 e-7 e34 e57 e6 e29 o-14 o1 e-55 o-15 e-9999 e1 o-31 e9 e9999 o17 e6 e-6 e9999 e35 e1 e46 e-10 o-19 o-32 o-46 e-7 e35 e1 e46 e-10 o-19 o-32 o-46 e-7 o-13 o19 o53 e5 e14 e6 e5 e-30 o4 e-34 e-16 o-39 o33 e9999 e-23 o-1 e-8 e35 e-39 e3 e1 o-5 e0 e55 e-23 o37 o6 o31 e9 e9999 o17 e6 e5 e-30 o4 e-23 o26 o10 o11 e34 e57 o-19 o-32 o-9 e1 o15 o-16 e22 o15 e-5 o27 o30 o-1 e25 o-19 o-32 o-9 e1 e35 e1 e46 e-10 o-5 e38 o-7 e34 e57 e9999 o35 e-3 o-5 e-8 o-13 e5 e-32 e15 o-23 e37 o-35 e-9999 o-29 e32 o3 e15"

g.setrule("LifeHistory")
recipelist=recipes.split("\n")
locx,locy,locxstep=0,0,1000
firstrecipe=recipelist[0].split(":")
name="recipe"
if len(firstrecipe)==2: name=firstrecipe[0]
g.new(name)
for item in recipelist:
    rparts=item.split(":")

    # The target pattern is customized and will probably need to change with each new recipe
    g.putcells(g.parse("79.2E$79.2E67$3.4B$4.4B$5.4B$6.4B$B6.4B$2B6.4B$3B2.2E2.4B$4B.2E3.3B$."
                              +"4B6.2B$2.4B6.B$3.4B$4.4B$5.4B!",locx-5,locy-73))
    g.putcells(g.parse("""69.26D4B30D$67.2D25.4B30.D$65.2D26.4B31.D$63.2D27.4B32.D$61.2D28.4B
33.D$59.2D29.4B27.3D4.D$57.2D30.4B27.D3.D3.D$55.2D31.4B28.D3.D3.D$53.
2D32.4B29.5D3.D$51.2D33.4B30.D3.D3.D$49.2D34.4B31.D3.D3.D$47.2D35.4B
32.D3.D3.D$45.2D36.4B41.D$43.2D26.A10.4B42.D$41.2D27.A.A8.4B43.D$39.
2D29.2A8.4B44.D$37.2D40.4B45.D$36.D41.4B46.D$36.D40.4B47.D$36.D39.4B
48.D$36.D38.4B49.D$36.D26.2A9.4B50.D$36.D26.2A8.4B51.D$36.D35.4B3.2A
6.A40.D$36.D34.4B4.A.A4.A.A39.D$36.D33.4B6.A.A3.2A5.A34.D4.D$36.D13.
2A17.4B8.A10.A.A33.D3.D$36.D13.2A4.2A10.4B20.2A34.D3.3D$36.D19.2A9.4B
57.D$36.D29.4B58.D$36.D28.4B59.D$36.D27.4B60.D$36.D26.4B61.B$36.D25.
4B61.2B$36.D24.4B61.3B$36.D23.4B61.4B$36.D22.4B61.4BD$36.D21.4B61.4B.
D$36.D20.4B41.2A18.4B2.D$36.D19.4B42.A.A16.4B3.D$20.A15.D18.4B44.A16.
4B4.D$19.A.A14.D17.4B61.4B5.D$20.2A14.D16.4B61.4B6.D$36.D15.4B61.4B7.
D$36.D14.4B61.4B8.D$18.2A16.D13.4B40.A20.4B9.D$18.A.A15.D12.4B40.A.A
18.4B10.D$19.A16.D11.4B20.2A19.2A18.4B11.D$36.D10.4B21.A.A37.4B12.D$
36.D9.4B23.A37.4B13.D$15.2A19.D8.4B61.4B14.D$14.A.A19.D7.4B61.4B15.D$
15.A20.D6.4B19.3B39.4B16.D$24.2A10.D5.4B10.2A6.5B38.4B17.D$17.2A3.2B
2AB9.D4.4B11.2A6.6B36.4B18.D$16.B2AB2.4B10.D3.4B18.8B24.A10.4B19.D$
17.2B3.6B.B6.D2.4B8.A10.8B24.3A7.4B5.2D13.D$2.A15.2B2.10B4.D.4B4.A4.
3A8.9B4.B21.A5.4B6.2D13.D$.A.A13.2B2A11B4.D4B4.A.A6.A5.11B3.3B19.2A4.
4B14.2A6.D$2.2A10.B.3B2A12B3.D3B6.2A5.2A3.13B2.6B17.9B6.2A7.2A6.D$13.
2A18B2.BD2B14.B4.13B.7B2.4B13.6B7.A16.D$13.2AB.15B2.2BDB13.3B5.28B2.
2B2.B3.6B5.2A.A16.D$14.B3.18BD12.6B3.45B4.A2.A17.D$18.18BD9.10B2.46B
3.B2A18.D$19.17BDB2.2B3.11B.21B2A13B2A14B19.D$19.17BD13B2A26B2A13B2A
13B20.D$13.2A5.7B.8BD13B2A55B21.D$13.2A3.8B2.8BD46B5.B.17B21.D$17.9B.
9BD41B2.B10.15B22.D$16.20BD42B12.15B20.2D$15.14B7.D3B.13B2.24B12.13B
19.2D$14.14B8.D3B5.B.7B2.24B10.13B6.2A11.2D$B12.15B8.D.4B15.20B2.B2A
6.A.2A4.8B5.2A9.2D$2B8.A.17B7.D3.2A17.18B2.BA.A3.3AB2A6.6B14.2D$D2B7.
3A16B7.D3.A15.B.18B6.A2.A4.B8.5B12.2D$BD2B8.BA14B8.D4.3A11.2A18B7.2A
2.3A.2A9.B.B10.2D$2BD2B7.2A13B9.D6.A11.2A18B13.A.A9.3B9.2D$3BD2B6.17B
7.D19.13B3.3B13.A.A9.B2AB6.2D$4BD2B6.18B5.D19.11B.3B2.B15.A6.2A3.2A5.
2D$.4BD2B5.20B3.D21.9B2.2A24.A2.A7.2D$2.4BD2B4.22B.D22.7B3.A26.2A6.2D
$3.4BD2B3.23BD24.4B5.3A29.2D$4.4BD2B2.23BD22.5B8.A27.2D$5.4BD26BD22.
2A18.2A17.2D$6.4BD9B17D23.A18.2A15.2D$7.4BD8BD15BD20.3A34.2D$8.4BD7BD
10B3D2BD20.A34.2D$9.4BD6BD4B2A3BD5BD26.2A25.2D$10.4BD5BD4B2A3BD5BD26.
2A6.2A15.2D$11.4BD4BD9BD4B.D33.A2.A12.2D$12.4BD3BD10B3D2.D34.2A11.2D$
13.4BD2BD5B2A3B5.D45.2D$14.4BDBD5BA3B6.D25.2A16.2D$15.4B2D6B3A3.2A.D
24.A.A14.2D$16.4BD9BA2.2A.D24.A14.2D$17.3BD4B4ABA5.D23.2A12.2D$18.2BD
4BA2B2A6.D35.2D$19.BD2BABA2B8.D15.A17.2D$20.D2B2A3B8.D14.A.A14.2D$20.
D5B10.D14.2A13.2D$20.D.3B11.D27.2D$20.17D25.2D$28.D31.2D$29.D28.2D$
30.D25.2D$31.D22.2D$32.D19.2D$33.D16.2D$34.D13.2D$35.D10.2D$36.D7.2D$
37.D4.2D$38.D.2D$39.D!""",26,-64))
    recipestr = rparts[1].replace('\n',' ').replace('\r',' ').replace(' ','').replace('E','e').replace('O','o')
    recipestr=recipestr.replace(',','e').replace(';','o').replace(' ','e').replace("ee",'e').replace("eo",'o')
    rlist = recipestr.replace('o','e').split("e")[1:]
    parities = recipestr.translate(maketrans("",""),"0123456789-")+"~"
    if parities.replace('e','').replace('o','')!="~":
      g.exit("Bad format -- parity check failed for " + recipestr)
    parity=0
    if parities[0]!="e":
      g.note("Recipe not normalized -- should start with 'e'.")
      parity=1
    else:
      parity=0 
    loc=10
    count=0
    for delta in rlist:
      count+=1
      if count==3:
        g.fit()
        g.update()
      try:
        d=int(delta)
      except:
        continue
      if abs(d)<999:
        offset, phase = d//4, d%4
        g.putcells(g.parse(phaselist[parity]),loc-3+locx,loc+3+locy) #-6 lane
        g.putcells(g.parse(phaselist[parity+phase]),loc+2+offset+locx,loc-2+offset+locy) #+4 lane
      else: # singleton glider
        if d<0:
          g.putcells(g.parse(phaselist[parity]),loc+2+locx,loc-2+locy) #+4 lane
        else:
          g.putcells(g.parse(phaselist[parity]),loc-3+locx,loc+3+locy) #-6 lane
      loc+=180
      parities=parities[1:]
      parity=1 if parities[0]=="o" else 0
    locx+=locxstep
g.setstep(8)

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

Re: Demonoid (diagonal Geminoid) working notes

Post by dvgrn » November 17th, 2015, 11:53 am

Looks to me like TileC can be patched in to the following recipe, as soon as a few glider pairs are added at the beginning and the end to make the whole thing "elbow invariant".

I probably didn't leave the elbow in the right place between the A1 and A2D1D2 recipes. So the first order of business is to move the elbow to wherever the TileC recipe expects to find it.

Then, let's see... assuming the elbow is now at (X,Y), push it back a little, duplicate it and leave a spare elbow out of the way at (X-9,Y-12) or above. Then pull the active elbow back to (X,Y) and build TileC. Then move the spare elbow back to where the A2D1D2 recipe wants it.

Then there's TileB and TileE to deal with... I think we might finally need a new gp-recipe format -- have to be able to specify a minimum time delay between slow glider pairs. The current pattern-script code isn't expecting gliders to come bouncing back down the construction lane.

I suppose we could dodge the problem for now by increasing "loc+=180" to something huge and silly like "loc+=2048" or whatever is needed. It's not like Golly will really notice the difference.

At the very end the elbow needs to be pushed back by (-5,-4), I believe.

There's a spot in the pattern script below where the TileC_invariant gp-recipe can be pasted in (I think). At that point the elbow has been moved (-43,-43).

Code: Select all

# build-10hd-gp-recipe-DemonoidA1C1A2D1D2.py
import golly as g

from glife.text import make_text
from string import maketrans
phaselist=["3o$o$bo!","b2o$2o$2bo!","b2o$bobo$bo!","2bo$b2o$bobo!","$b3o$bo$2bo!"]

TileA1="e-9 e1 e0 o-55 o34 o16 o37 e9 e9999 o17 e13 e13 o-1 e-60 e-9999 o-13 o-32 e9999 e-26 e-19 o-33 o29 o-16 e-13 e-32 o-25 o27 o-11 o17 o2 e29 o-9999 e45 e39 e-56 o9999 e13 o-5 e50 o51 o53 o20 e-22 e47 e-20 e18 e5 o-11 e15 e9999 e-23 o37 e-41 e24 e8 e-35 o9999 o-49 o1 e-9999 o-19 o-32 o-42 e-14 e5 o-11 e15 e9999 e-42 o-15 e15 o-58 o-19 o-32 o-26 o-11 o12 o28 e-5 e20 e-8 e-6 o-19 e-33 e33 e15 o-13 o31 o-42 e6 o-13 e-6 o-19 o-32 o-42 e-14 e29 o-14 o-39 e5 e-18 e-5 o27 o30 o-11 o12 o28 e-5 e20 o-8 e19 e53 o5 o12 e-6 o-19 e-33 e54 e10 o-29 e9999 e-26 e-9999 e15 e10 e39 e37 o-33 o-32 o-23 o-13 o-32 e9999 o-31 o-13 o1 o39 o12 e9999 e33 o9999 o-23 e-1 e-26 e-9999 e5 e-30 o4 e-42 o-15 e15 o-58 o-19 o-32 e-39 e-16 o12 o28 e-5 e20 e-8 e-6 o-19 e-33 e27 e-9999 o-22 o37 e-1 e-8 o-13 e15 e10 e39 e37 o-19 e-33 e33 e15 o-13 o31 o-42 e6 e-9999 o-15 e-9999 e1 o-31 e31 o-17 e-20 e18 e35 o-48 e9999 e9999 o-5 e50 o51 e34 e4 e9999 o45 o39 o-56 e9999 e13 o-19 o-32 o-9 e1 e15 e10 e39 e37 o6 e-13 o35 o1 o46 o-10 o-19 e-33 e54 e5 e-28 e58 e-9999 o-19 o-32 o-46 e-7 e29 o-14 o1 e-55 e-19 o9999 e-48 o-11 e13 e-1 o27 o30 e-1 o27 o30 e-22 e47 e-20 e18 o1 o39 o12 e9999 e33 e-24 o51 o19 o53 e5 e12 o15 o-16 e22 o15 o-22 o47 o-20 o18 e5 e-32 e15 e-23 o37 e-1 o-13 e11 o-22 o37 e-1 e-8 e-9999 e-35 o9999 o-49 o1 o-13 e35 e1 e46 e-10 o-19 o-32 e-33 e-40 o26 o7 e26 o53 o-2 e-19 o-23 e13 e15 e-3 o-22 o37 e-1 o-33 e-14 e-46 e-14 o-5 e25 e9999 o19 o53 e5 e12 e5 e-32 e15 e-23 o47 o-20 o18 e5 e-36 o9999 o-30 o-23 e37 o-1 e-8 e19 o29 o14 o-19 e-33 e45 e9999 e15 e10 e39 e37 e6 e-9999 o-19 e-33 e45 o-1 e-56 e30 e-9999 o-33 e24 e-51 o-19 o-32 o-26 e-22 e47 e-20 e18 o15 o10 o39 o37 e6 e5 e-32 e15 o-23 e37 o-47 e-35 o9999 o-49 o1 o35 e-3 o-5 e-8 e-6 o-5 e50 o51 e34 e15 e-4 e3 o12 o28 e-5 e20 o-9 e-9999 e-15 e35 e1 e46 e-10 e9999 e15 e10 e39 e37 e6 e35 e1 e46 e-10 e9999 e33 o32 e33 e9999 o10 e-37 o35 o-16 o-19 e-33 e45 e13 o-5 e38 o-7 e34 e57 e-35 o9999 o-49 o1 o29 e-14 e1 o-55 e6 e5 o-45 e-23 o37 e-47 o-5 e38 o-7 e12 o-1 e13 e9 e9999 o17 e-19 e-32 o-33 o-40 o8 e-19 e-32 e-46 o-7 e-6 o-19 o-32 o-9 e1 o35 e-3 o-5 e-8 e15 e10 e39 e37 e13 e-5 o46 e57 o-4 e34 e55 o-58 o9999 e21 e-32 o-26 o2 o-32 o-9999 e9 e-16 o-13 o-32 e-25 e42 o17 o2 e29 o-9999 o45 o39 o-56 e9999 e9999 o15 o-16 e22 o15 o-22 o37 e-1 e-8 o-13 e35 e-39 e3 e1 o-22 o37 o6 o31 o9 o9999 e17 o6 o29 e-14 e1 o-55 e6 e35 e1 e46 e-10 o-35 e9999 e-49 e1 o29 e-14 e1 o-55 e6 o15 e-57 o25 o-3 o-22 o37 e-35 o-9999 e-23 o37 e-1 o-13 o12 o28 e-5 e20 e-8 e-9999 o-19 e-33 e29 e-1 o18 e12 e28 o-5 o20 e-31 o8 e13 o52 e29 o-14 o-39 e5 o-25 o35 e-3 o-5 e-8 o19 o53 e5 e14 e9999 e35 o-48 e9999 e9999 o-19 o-32 o-9 e1 o33 e32 o33 o9999 e33 o9999 o-23 e-1 e-8 o19 o53 e5 e38 o45 o39 o-56 e5 o45 o39 o-56 e9999 e6 e35 e-39 e3 e1 o-22 o37 e-1 o-8 o15 o10 o39 o37 o13 o-35 o8 e17 o-11 o12 o28 e-5 e20 e-8 e-9999 o-19 e-33 e33 e15 o-13 o31 o-42 e-19 o-33 o45 o13 e-19 o-33 o29 o-5 e25 o-19 o-32 o-9 e1 e-9999 o-5 e38 o-7 o34 o16 o37 e8 o-19 o-32 o-26 o-5 e27 e30 e-1 o28 o-9999 o35 e-48 o9999 o9999 o-33 o-32 o-23 o-13 o-32 e9999 e9999 o19 o53 e5 e14 o-19 o-32 o-26 e-22 e47 e-20 e18 o-9999 o-35 e9999 e-49 e1 e15 e10 e39 e37 o6 o-9999 e-19 e-32 e-42 o-14 e29 o-14 o1 e-55 o-19 e-33 e54 o10 e-29 o9999 e-8 o-13 o19 o53 e5 e14 o-19 e-33 e45 e6 o-13 e35 e1 e46 e-10 e9999 e15 e10 e39 e37 o6 o1 o38 o26 o9 o9999 e17 e13 o-19 e-33 e33 e15 o-13 o31 o-42 e-19 o-33 o45 o-15 e-9999 e1 o-31 e9 e9999 o17 e9 e-24 o45 e-41 o-22 o-8 e12 e9999 e29 e30 e-6 e-35 o9999 o-49 o1 o-13 o1 o39 o12 e9999 e10 o-29 e9999 o-33 o45 e58 e29 o-14 o1 e-55 o-1 e-38 e-32 e-12 e-9999 o-13 o-32 o3 e11 e-16 o-13 o-32 e9999 e7 o13 e-19 o-33 o42 o9999 e8 o-19 o-32 e-33 e-40 e8 e-35 o9999 o-49 o1 e5 e-32 e15 o-23 e37 o-1 e-26 e-9999 e35 o-48 e9999 e9999 o6 o15 o10 o39 o37 e-19 o-33 o42 o9999 e31 e-8 o-10 o-3 o34 o16 o37 o26 e-7 e9999 e58 o1 o39 o12 o9999 o33 o-24 e51 e35 o-3 e-5 o-8 o29 e-14 e1 o-55 e6 e35 o-48 e9999 e9999 o-5 e45 o34 o16 o37 e8 e-35 e8 o17 o-22 o37 o-46 e23 e-35 e8 o17 o-22 o37 e-41 e24 e13 o-5 e0 e55 e-42 o-15 e15 o-60 e-8 e5 e-30 o4 e-42 o-15 e15 o-60 e-8 o15 o-16 e22 o15 o-5 e0 e55 o-12 o-56 o46 o9999 o-19 e-33 e45 e-19 e-32 o-33 o-40 e9 e9999 o17 e9999 o19 o53 e5 e14 o6 o-6 e-15 o-9999 o1 e-31 e9 e9999 o17 e6 e-9999 o-1 e-56 e30 e-9999 e-33 o4 o-12 e-39 e24 o-45 e55 o-12 o-56 o46 o9999 o-35 o8 e17 o-1 e27 e30 o-11 e3 e-9999 o-22 o37 e-1 e-31 e-33 e-1 e53 e20 e-5 o27 o30 e-5 o27 o30 o-1 e0 e55 o-42 o-32 o9 e-27 o45 o39 o-56 e9999 o-19 e-29 o-14 e15 e10 e39 e37 e13 o-19 e-33 e45 e-19 o-33 o45 e6 e-6 o-19 e-33 e33 o10 e-37 o35 o-16 e-24 e-24 o6 e-35 o9999 o-49 o1 e29 o-14 o-39 e5 o-25 e-6 o-19 o-32 o-9 e1 e5 e-30 o36 e1 o-12 o-56 o46 o9999 e9999 o1 o39 o12 e9999 e5 e-28 e58 o-13 e35 e-39 e3 e1 o-22 o37 e-47 e-15 o-9999 e-5 e-21 e1 e3 e49 e-18 e29 o-19 e26 o33 o24 e53 e20 o-3 e9999 o5 o3 o49 e-5 e-10 e7 e8 e-35 o9999 o-49 o1 e29 o-14 o1 e-55 e6 e5 o-11 e15 e9999 e-42 o-15 e15 o-58 o-5 e46 o57 e-4 o34 o15 o-4 o3 o1 o-18 e-22 e37 o-1 e-26 e-9999 o19 o53 e5 e14 e6 e35 e-39 e3 e1 o-1 e27 e30 e-1 o27 o30 o-1 e27 e30 e-1 o27 o30 o-5 e25 e9999 o-13 o1 o39 o12 o9999 o10 e-29 o9999 o-8 o29 e-14 e1 o-55 o-19 o-32 o-9 e1 e35 e1 e46 e-10 o-19 o-32 o-26 e-1 o7 o1 o9 o9999 e17 e-19 o-33 o45 o6 e5 e-36 o9999 o-30 e-23 o37 e-47 e9999 e29 o-14 o1 e-55 o-19 o-32 o-42 e-14 e1 e23 e8 e35 e1 e46 e-10 o-5 e38 o-7 e34 e16 e37 e13 o-22 o37 e-47 o-38 e0 e-24 o-9999 e-22 e47 e-20 e18 e15 e10 e39 e37 o-29 o-19 e4 o-13 o-32 e9999 e-26 e13 o-19 e-33 e27 e-9999 e-24 o45 o11 o13 o-13 o-32 e9999 e9999 e29 o-14 o1 e-55 e-35 e8 o17 o-1 e25 o-15 e-9999 e1 o-31 e9 e9999 o17 e-32 e-8 o-15 o-19 o-32 o-26 o-22 o37 o-46 e23 e-35 o9999 o-49 o1 e35 e1 e46 e-10 o-15 e-9999 e1 o-31 e9 e9999 o15 e-35 o9999 o-49 o1 e35 e1 e46 e-10 e-35 o9999 o-49 o1 o5 o-30 e4 o-12 o-56 o46 o9999 e-26 e-36 e-28 e31 e-8 o-10 o-3 o34 o16 o37 e9 e9999 o17 e-19 e-32 o-33 o-40 e8 e-15 o-10 o11 e-31 e9 e9999 o17 o-19 e-33 e54 e10 o-29 e9999 e-26 e-9999 o19 o53 e5 e14 e6 e29 o-14 o-39 o11 o-5 e27 e30 e-1 o27 o30 e-22 e18 e-9999 o-22 o37 e-1 e-8 o-13 o19 o53 e5 e14 e-35 o9999 o-49 o1 o15 e-57 o25 o-3 e-5 o27 o30 o-5 e0 e55 e-23 o26 o10 o11 o53 o20 o-1 e0 e55 e-42 o-15 e15 o-58 o9999 e-13 e5 e-36 o9999 o-30 o-12 o-56 o46 o9999 o6 o35 o1 o46 o-10 o-5 e38 o-7 e29 e-9999 e-18 o-19 e-33 e45 o-5 e38 o-7 e34 e57 o-15 e-9999 o-5 o-21 o12 o28 e-5 e20 o-26 o-9999 o15 o10 o39 o37 o13 o-35 o8 e17 o-22 o37 e-1 o-8 e9999 e58 o-1 o6 e1 o-25 e15 e10 e39 e37 e13 o-19 o-32 o-26 o-22 o37 e-1 e-8 e35 e1 e46 e-10 o-15 e-9999 e1 o-31 o8 e-19 o-33 o45 e6 e-6 o-19 o-32 e-39 e-16 e11 o-22 o37 o6 o31 e9 e9999 o17 e-35 e8 o17 e-1 o27 o30 e-22 e33 e9999 e-8 e5 e-30 o4 o-34 o-16 e-39 o13 o15 o-3 e-22 e37 o-47 e-5 o38 e44 o-22 e45 o-41 e-22 e-8 e23 e-26 o46 o-22 o37 e-1 e-26 e-9999 o19 o53 e5 e12 o19 o53 e5 e14 o-19 e-33 e45 o6 o35 e-48 o9999 o9999 o-19 o-32 o-9 e1 o29 e-14 e-39 o12 o28 e-5 e20 o-8 e-9 e12 e28 o-5 o20 e-8 e-6 o-19 e-33 e45 o-1 e-56 e30 e-9999 e-9999 e11 e13 e9999 o35 e-3 o-5 e-8 o19 o53 e5 e14 e-35 o9999 o-49 o1 o-13 o19 o53 e5 e14 o-19 o-32 o-26 e-22 e47 e-20 e18 o-6 e-19 e-32 e-9 o1 e-13 o29 e-14 e-39 e1 e3 e49 e-18 e29 e-9999 e-18 o-19 o-32 o-26 o-22 o37 e-47 o-1 e-56 e30 e-9999 o-33 e24 e-51 e13 o-19 o-32 e-33 e-40 e9 e9999 o17 o-1 o-23 e-8 o-19 e-33 e45 o-19 e-33 e42 e9999 e9 e9999 o17 o-5 e45 e12 e1 o-32 o3 e-15 o-6 o-9999 o-9999 o12 o28 e-5 e20 e-8 e35 e-17 e9 e9999 o17 o-19 e-33 e45 o-5 e38 o-7 o23 e-33 o-9999 o8 e-19 e-32 e-42 o-14 o15 e-57 o25 o-3 o-22 o37 e-1 e-8 e-9999 e-35 o9999 o-49 o1 e29 o-14 o-39 o17 e44 o-18 o13 o-29 o-3 o-43 o-17 e15 e10 e39 e37 o-19 e-33 e45 e13 e13 e-35 o9999 o-49 o1 o15 o10 o39 o6 o53 o15 o-9999 o-24 e-19 e-32 e-42 o-14 o35 e-3 o-5 e-8 o-7 o-11 e-8 o53 o20 o-22 o37 o-46 e23 o-1 e-60 e-9999 o-13 o-32 o23 e0 e8 o-5 e38 o-7 e12 e1 o-32 o3 e6 e-6 o-19 o-32 o-42 e-12 o6 o29 e-14 e-39 e11 e-5 o27 o30 e-1 o27 o30 e-24 o45 o11 o13 e-9999 e11 e13 e-35 o9999 o-49 o1 e15 e10 e39 e6 e34 e16 e37 o8 e-5 o50 e51 o34 o15 o-4 o3 o5 e-25 e24 e24 e9 e-9999 e-1 o27 o30 e-1 o27 o30 e-5 o27 o30 e-22 e37 o-1 e-8 o19 o53 e5 e14 e9999 e5 e-32 e15 o-23 e26 e47 o53 o20 e-5 o27 o30 o-1 e27 e30 e-22 e33 e9999 e-8 e35 e1 e46 e-10 e-35 o9999 o-49 o1 o19 o53 e5 e14 o-19 e-33 e33 e15 o-13 o31 o-42 e9999 o-13 o-13 e29 o-14 e-9999 o43 e16 o10 e-37 o35 o-16 e-35 e8 o17 o-11 e17 o44 e-18 e13 e-42 o-15 e15 o-60 o-8 o-9999 e-19 e-32 o-33 o-40 e8 o-19 o-32 o-46 e-7 e35 o-3 e-5 e-8 o1 o39 o12 e9999 e33 o9999 o-23 e-1 e-8 o-13 o19 o53 e5 e12 o5 e-45 o-29 e32 o3 e15 o-35 e9999 e-49 e1 o1 o60 o9999 o33 o24 o12 o1 e-32 e3 e-19 o-33 o45 e-19 o-33 o33 e13 e15 e-3 o-1 e0 e55 e-34 o-57"
TileC_invariant="" ###### donations gratefully accepted
TileA2D1D2="o1 o39 o12 e9999 e9999 o-11 e-8 o12 o9999 o29 o30 e15 e10 e39 e37 o-19 e-29 o-14 e5 e-30 o4 o-23 e47 e-20 e18 e1 e38 e26 e9 e9999 o17 o-19 e-33 e42 e9999 e8 o-19 e-33 e45 e-15 o-10 o11 e-31 e33 o45 o-15 o-45 o-43 o-1 e21 e-1 o27 o30 o-5 e0 e55 o-29 e32 e27 e9 e9999 o17 e13 o-15 e-9999 e1 o-31 e9 e9999 o17 e6 e11 e23 o-47 e0 e12 e28 o-5 o20 o-33 e-14 e-46 e-14 o-24 o45 e-55 o12 o1 e-32 e3 e-5 o38 e-7 e34 e57 e-35 o9999 o-49 o1 e5 e-32 e15 e-23 o37 e-47 e6 e5 o-11 e15 e9999 e-23 o37 e-1 e-8 e-9999 o-19 o-32 o-26 o-22 o37 e-1 e-8 e-9999 e-35 o9999 o-49 o1 o5 e-11 o15 o9999 o-23 e47 e-20 e18 e-6 o-19 e-33 e29 o-11 e16 o10 e-37 o35 o-16 e-19 e-32 e-9 o1 e5 e-32 e15 o-34 o-16 e-39 e5 e-28 e58 o19 o53 e5 e14 e9 e-1 o27 o30 o-22 o37 e-1 o-31 e8 o13 e52 o19 o53 e5 e14 e-35 o9999 o-49 o1 o-13 o1 o39 o12 e9999 e33 e-24 o47 e8 o-15 e-9999 e1 o-31 e9 e9999 o17 o-19 e-33 e45 o9999 e24 e24 e9 e-9999 o-5 e27 e30 o-22 o37 e-13 o-13 e1 e39 e12 e9999 o10 e-37 o35 o-16 o-5 e50 o51 o29 o-9999 o-18 e-19 o-33 o33 e33 e-24 o51 e-9999 o-19 e-33 e45 e-35 e8 o17 e-1 o27 o30 o-1 e25 o-5 e50 o51 o34 o16 o37 e8 e9999 o-13 o1 o39 o12 e9999 o10 e-37 o35 o-9999 o-35 e9999 e-49 e1 e19 e53 o5 o12 e29 o-14 o1 e-55 o-19 o-32 o-9 e1 e35 e1 e46 e-10 e13 e-35 e8 o17 e-1 o27 o30 o-1 e25 e-35 o9999 o-49 o8 e-8 e35 e1 e46 e-10 e9999 o19 o53 e5 e14 o-5 e38 o-7 e34 e16 e37 o8 o6 o5 o-30 e36 o1 e-42 o-15 e15 o-60 o-11 o-3 o-13 o-32 o3 e5 o-5 o-13 o-32 e9999 e7 o-19 e-33 e42 e9999 e8 o-19 e-33 e45 e9999 e5 e-32 e15 o-12 o-56 o46 o9999 o-19 e-33 e45 e-5 o38 e-7 e34 e57 e6 e29 o-14 o1 e-55 o-15 e-9999 e1 o-31 e9 e9999 o17 e6 e-6 e9999 e35 e1 e46 e-10 o-19 o-32 o-46 e-7 e35 e1 e46 e-10 o-19 o-32 o-46 e-7 o-13 o19 o53 e5 e14 e6 e5 e-30 o4 e-34 e-16 o-39 o33 e9999 e-23 o-1 e-8 e35 e-39 e3 e1 o-5 e0 e55 e-23 o37 o6 o31 e9 e9999 o17 e6 e5 e-30 o4 e-23 o26 o10 o11 e34 e57 o-19 o-32 o-9 e1 o15 o-16 e22 o15 e-5 o27 o30 o-1 e25 o-19 o-32 o-9 e1 e35 e1 e46 e-10 o-5 e38 o-7 e34 e57 e-32 o-5 o-3 o-1 e9 e9999 o15 o-19 e-33 e42 e9999 o9 o9999 e17 o9999 o35 o-39 o3 o1 e-1 o27 o30 o-5 e25 o-1 e-60 e-9999 o-13 o-32 o3 e5 o-5 o-13 o-32 e9999 e-26 e-19 o-33 o29 o-16 e-13 e-32 o-25 o27 o-11 o17 o2 e29 o-9999 e45 e39 e-56 o9999 e13 o-5 e50 o51 o53 o20 e-22 e47 e-20 e18 e5 o-11 e15 e9999 e-23 o37 e-41 e24 e8 e-35 o9999 o-49 o1 e-9999 o-19 o-32 o-42 e-14 e5 o-11 e15 e9999 e-42 o-15 e15 o-58 o-19 o-32 o-26 o-11 o12 o28 e-5 e20 e-8 e-6 o-19 e-33 e33 e15 o-13 o31 o-42 e6 o-13 e-6 o-19 o-32 o-42 e-14 e29 o-14 o-39 e5 e-18 e-5 o27 o30 o-11 o12 o28 e-5 e20 o-8 e19 e53 o5 o12 e-6 o-19 e-33 e54 e10 o-29 e9999 e-26 e-9999 e15 e10 e39 e37 o-33 o-32 o-23 o-13 o-32 e9999 o-31 o-13 o1 o39 o12 e9999 e33 o9999 o-23 e-1 e-26 e-9999 e5 e-30 o4 e-42 o-15 e15 o-58 o-19 o-32 e-39 e-16 o12 o28 e-5 e20 e-8 e-6 o-19 e-33 e27 e-9999 o-22 o37 e-1 e-8 o-13 e15 e10 e39 e37 o-19 e-33 e33 e15 o-13 o31 o-42 e6 e-9999 o-15 e-9999 e1 o-31 e31 o-17 e-20 e18 e35 o-48 e9999 e9999 o-5 e50 o51 e34 e4 e9999 o45 o39 o-56 e9999 e13 o-19 o-32 o-9 e1 e15 e10 e39 e37 o6 e-13 o35 o1 o46 o-10 o-19 e-33 e54 e5 e-28 e58 e-9999 o-19 o-32 o-46 e-7 e29 o-14 o1 e-55 e-19 o9999 e-48 o-11 e13 e-1 o27 o30 e-1 o27 o30 e-22 e47 e-20 e18 o1 o39 o12 e9999 e33 e-24 o51 o19 o53 e5 e12 o15 o-16 e22 o15 o-22 o47 o-20 o18 e5 e-32 e15 e-23 o37 e-1 o-13 e11 o-22 o37 e-1 e-8 e-9999 e-35 o9999 o-49 o1 o-13 e35 e1 e46 e-10 o-19 o-32 e-33 e-40 o26 o7 e26 o53 o-2 e-19 o-23 e13 e15 e-3 o-22 o37 e-1 o-33 e-14 e-46 e-14 o-5 e25 e9999 o19 o53 e5 e12 e5 e-32 e15 e-23 o47 o-20 o18 e5 e-36 o9999 o-30 o-23 e37 o-1 e-8 e19 o29 o14 o-19 e-33 e45 e9999 e15 e10 e39 e37 e6 e-9999 o-19 e-33 e45 o-1 e-56 e30 e-9999 o-33 e24 e-51 o-19 o-32 o-26 e-22 e47 e-20 e18 o15 o10 o39 o37 e6 e5 e-32 e15 o-23 e37 o-47 e-35 o9999 o-49 o1 o35 e-3 o-5 e-8 e-6 o-5 e50 o51 e34 e15 e-4 e3 o12 o28 e-5 e20 o-9 e-9999 e-15 e35 e1 e46 e-10 e9999 e15 e10 e39 e37 e6 e35 e1 e46 e-10 e9999 e33 o32 e33 e9999 o10 e-37 o35 o-16 o-19 e-33 e45 e13 o-5 e38 o-7 e34 e57 e-35 o9999 o-49 o1 o29 e-14 e1 o-55 e6 e5 o-45 e-23 o37 e-47 o-5 e38 o-7 e12 o-1 e13 e9 e9999 o17 e-19 e-32 o-33 o-40 o8 e-19 e-32 e-46 o-7 e-6 o-19 o-32 o-9 e1 o35 e-3 o-5 e-8 e15 e10 e39 e37 e13 e-5 o46 e57 o-4 e34 e55 o-58 o9999 e21 e-32 o-26 o2 o-32 o-9999 e9 e-16 o-13 o-32 e-25 e42 o17 o2 e29 o-9999 o45 o39 o-56 e9999 e9999 o15 o-16 e22 o15 o-22 o37 e-1 e-8 o-13 e35 e-39 e3 e1 o-22 o37 o6 o31 o9 o9999 e17 o6 o29 e-14 e1 o-55 e6 e35 e1 e46 e-10 o-35 e9999 e-49 e1 o29 e-14 e1 o-55 e6 o15 e-57 o25 o-3 o-22 o37 e-35 o-9999 e-23 o37 e-1 o-13 o12 o28 e-5 e20 e-8 e-9999 o-19 e-33 e29 e-1 o18 e12 e28 o-5 o20 e-31 o8 e13 o52 e29 o-14 o-39 e5 o-25 o35 e-3 o-5 e-8 o19 o53 e5 e14 e9999 e35 o-48 e9999 e9999 o-19 o-32 o-9 e1 o33 e32 o33 o9999 e33 o9999 o-23 e-1 e-8 o19 o53 e5 e38 o45 o39 o-56 e5 o45 o39 o-56 e9999 e6 e35 e-39 e3 e1 o-22 o37 e-1 o-8 o15 o10 o39 o37 o13 o-35 o8 e17 o-11 o12 o28 e-5 e20 e-8 e-9999 o-19 e-33 e33 e15 o-13 o31 o-42 e-19 o-33 o45 o13 e-19 o-33 o29 o-5 e25 o-19 o-32 o-9 e1 e-9999 o-5 e38 o-7 o34 o16 o37 e8 o-19 o-32 o-26 o-5 e27 e30 e-1 o28 o-9999 o35 e-48 o9999 o9999 o-33 o-32 o-23 o-13 o-32 e9999 e9999 o19 o53 e5 e14 o-19 o-32 o-26 e-22 e47 e-20 e18 o-9999 o-35 e9999 e-49 e1 e15 e10 e39 e37 o6 o-9999 e-19 e-32 e-42 o-14 e29 o-14 o1 e-55 o-19 e-33 e54 o10 e-29 o9999 e-8 o-13 o19 o53 e5 e14 o-19 e-33 e45 e6 o-13 e35 e1 e46 e-10 e9999 e15 e10 e39 e37 o6 o1 o38 o26 o9 o9999 e17 e13 o-19 e-33 e33 e15 o-13 o31 o-42 e-19 o-33 o45 o-15 e-9999 e1 o-31 e9 e9999 o17 e9 e-24 o45 e-41 o-22 o-8 e12 e9999 e29 e30 e-6 e-35 o9999 o-49 o1 o-13 o1 o39 o12 e9999 e10 o-29 e9999 o-33 o45 e58 e29 o-14 o1 e-55 o-1 e-38 e-32 e-12 e-9999 o-13 o-32 o3 e11 e-16 o-13 o-32 e9999 e7 o13 e-19 o-33 o42 o9999 e8 o-19 o-32 e-33 e-40 e8 e-35 o9999 o-49 o1 e5 e-32 e15 o-23 e37 o-1 e-26 e-9999 e35 o-48 e9999 e9999 o6 o15 o10 o39 o37 e-19 o-33 o42 o9999 e31 e-8 o-10 o-3 o34 o16 o37 o26 e-7 e9999 e58 o1 o39 o12 o9999 o33 o-24 e51 e35 o-3 e-5 o-8 o29 e-14 e1 o-55 e6 e35 o-48 e9999 e9999 o-5 e45 o34 o16 o37 e8 e-35 e8 o17 o-22 o37 o-46 e23 e-35 e8 o17 o-22 o37 e-41 e24 e13 o-5 e0 e55 e-42 o-15 e15 o-60 e-8 e5 e-30 o4 e-42 o-15 e15 o-60 e-8 o15 o-16 e22 o15 o-5 e0 e55 o-12 o-56 o46 o9999 o-19 e-33 e45 e-19 e-32 o-33 o-40 e9 e9999 o17 e9999 o19 o53 e5 e14 o6 o-6 e-15 o-9999 o1 e-31 e9 e9999 o17 e6 e-9999 o-1 e-56 e30 e-9999 e-33 o4 o-12 e-39 e24 o-45 e55 o-12 o-56 o46 o9999 o-35 o8 e17 o-1 e27 e30 o-11 e3 e-9999 o-22 o37 e-1 e-31 e-33 e-1 e53 e20 e-5 o27 o30 e-5 o27 o30 o-1 e0 e55 o-42 o-32 o9 e-27 o45 o39 o-56 e9999 o-19 e-29 o-14 e15 e10 e39 e37 e13 o-19 e-33 e45 e-19 o-33 o45 e6 e-6 o-19 e-33 e33 o10 e-37 o35 o-16 e-24 e-24 o6 e-35 o9999 o-49 o1 e29 o-14 o-39 e5 o-25 e-6 o-19 o-32 o-9 e1 e5 e-30 o36 e1 o-12 o-56 o46 o9999 e9999 o1 o39 o12 e9999 e5 e-28 e58 o-13 e35 e-39 e3 e1 o-22 o37 e-47 e-15 o-9999 e-5 e-21 e1 e3 e49 e-18 e29 o-19 e26 o33 o24 e53 e20 o-3 e9999 o5 o3 o49 e-5 e-10 e7 e8 e-35 o9999 o-49 o1 e29 o-14 o1 e-55 e6 e5 o-11 e15 e9999 e-42 o-15 e15 o-58 o-5 e46 o57 e-4 o34 o15 o-4 o3 o1 o-18 e-22 e37 o-1 e-26 e-9999 o19 o53 e5 e14 e6 e35 e-39 e3 e1 o-1 e27 e30 e-1 o27 o30 o-1 e27 e30 e-1 o27 o30 o-5 e25 e9999 o-13 o1 o39 o12 o9999 o10 e-29 o9999 o-8 o29 e-14 e1 o-55 o-19 o-32 o-9 e1 e35 e1 e46 e-10 o-19 o-32 o-26 e-1 o7 o1 o9 o9999 e17 e-19 o-33 o45 o6 e5 e-36 o9999 o-30 e-23 o37 e-47 e9999 e29 o-14 o1 e-55 o-19 o-32 o-42 e-14 e1 e23 e8 e35 e1 e46 e-10 o-5 e38 o-7 e34 e16 e37 e13 o-22 o37 e-47 o-38 e0 e-24 o-9999 e-22 e47 e-20 e18 e15 e10 e39 e37 o-29 o-19 e4 o-13 o-32 e9999 e-26 e13 o-19 e-33 e27 e-9999 e-24 o45 o11 o13 o-13 o-32 e9999 e9999 e29 o-14 o1 e-55 e-35 e8 o17 o-1 e25 o-15 e-9999 e1 o-31 e9 e9999 o17 e-32 e-8 o-15 o-19 o-32 o-26 o-22 o37 o-46 e23 e-35 o9999 o-49 o1 e35 e1 e46 e-10 o-15 e-9999 e1 o-31 e9 e9999 o15 e-35 o9999 o-49 o1 e35 e1 e46 e-10 e-35 o9999 o-49 o1 o5 o-30 e4 o-12 o-56 o46 o9999 e-26 e-36 e-28 e31 e-8 o-10 o-3 o34 o16 o37 e9 e9999 o17 e-19 e-32 o-33 o-40 e8 e-15 o-10 o11 e-31 e9 e9999 o17 o-19 e-33 e54 e10 o-29 e9999 e-26 e-9999 o19 o53 e5 e14 e6 e29 o-14 o-39 o11 o-5 e27 e30 e-1 o27 o30 e-22 e18 e-9999 o-22 o37 e-1 e-8 o-13 o19 o53 e5 e14 e-35 o9999 o-49 o1 o15 e-57 o25 o-3 e-5 o27 o30 o-5 e0 e55 e-23 o26 o10 o11 o53 o20 o-1 e0 e55 e-42 o-15 e15 o-58 o9999 e-13 e5 e-36 o9999 o-30 o-12 o-56 o46 o9999 o6 o35 o1 o46 o-10 o-5 e38 o-7 e29 e-9999 e-18 o-19 e-33 e45 o-5 e38 o-7 e34 e57 o-15 e-9999 o-5 o-21 o12 o28 e-5 e20 o-26 o-9999 o15 o10 o39 o37 o13 o-35 o8 e17 o-22 o37 e-1 o-8 e9999 e58 o-1 o6 e1 o-25 e15 e10 e39 e37 e13 o-19 o-32 o-26 o-22 o37 e-1 e-8 e35 e1 e46 e-10 o-15 e-9999 e1 o-31 o8 e-19 o-33 o45 e6 e-6 o-19 o-32 e-39 e-16 e11 o-22 o37 o6 o31 e9 e9999 o17 e-35 e8 o17 e-1 o27 o30 e-22 e33 e9999 e-8 e5 e-30 o4 o-34 o-16 e-39 o13 o15 o-3 e-22 e37 o-47 e-5 o38 e44 o-22 e45 o-41 e-22 e-8 e23 e-26 o46 o-22 o37 e-1 e-26 e-9999 o19 o53 e5 e12 o19 o53 e5 e14 o-19 e-33 e45 o6 o35 e-48 o9999 o9999 o-19 o-32 o-9 e1 o29 e-14 e-39 o12 o28 e-5 e20 o-8 e-9 e12 e28 o-5 o20 e-8 e-6 o-19 e-33 e45 o-1 e-56 e30 e-9999 e-9999 e11 e13 e9999 o35 e-3 o-5 e-8 o19 o53 e5 e14 e-35 o9999 o-49 o1 o-13 o19 o53 e5 e14 o-19 o-32 o-26 e-22 e47 e-20 e18 o-6 e-19 e-32 e-9 o1 e-13 o29 e-14 e-39 e1 e3 e49 e-18 e29 e-9999 e-18 o-19 o-32 o-26 o-22 o37 e-47 o-1 e-56 e30 e-9999 o-33 e24 e-51 e13 o-19 o-32 e-33 e-40 e9 e9999 o17 o-1 o-23 e-8 o-19 e-33 e45 o-19 e-33 e42 e9999 e9 e9999 o17 o-5 e45 e12 e1 o-32 o3 e-15 o-6 o-9999 o-9999 o12 o28 e-5 e20 e-8 e35 e-17 e9 e9999 o17 o-19 e-33 e45 o-5 e38 o-7 o23 e-33 o-9999 o8 e-19 e-32 e-42 o-14 o15 e-57 o25 o-3 o-22 o37 e-1 e-8 e-9999 e-35 o9999 o-49 o1 e29 o-14 o-39 o17 e44 o-18 o13 o-29 o-3 o-43 o-17 e15 e10 e39 e37 o-19 e-33 e45 e13 e13 e-35 o9999 o-49 o1 o15 o10 o39 o6 o53 o15 o-9999 o-24 e-19 e-32 e-42 o-14 o35 e-3 o-5 e-8 o-7 o-11 e-8 o53 o20 o-22 o37 o-46 e23 o-1 e-60 e-9999 o-13 o-32 o23 e0 e8 o-5 e38 o-7 e12 e1 o-32 o3 e6 e-6 o-19 o-32 o-42 e-12 o6 o29 e-14 e-39 e11 e-5 o27 o30 e-1 o27 o30 e-24 o45 o11 o13 e-9999 e11 e13 e-35 o9999 o-49 o1 e15 e10 e39 e6 e34 e16 e37 o8 e-5 o50 e51 o34 o15 o-4 o3 o5 e-25 e24 e24 e9 e-9999 e-1 o27 o30 e-1 o27 o30 e-5 o27 o30 e-22 e37 o-1 e-8 o19 o53 e5 e14 e9999 e5 e-32 e15 o-23 e26 e47 o53 o20 e-5 o27 o30 o-1 e27 e30 e-22 e33 e9999 e-8 e35 e1 e46 e-10 e-35 o9999 o-49 o1 o19 o53 e5 e14 o-19 e-33 e45 e6 o-13 e29 o-14 o-39 o1 o3 o49 e-5 e-33 o4 o-12 e-39 e1 e-18 o-22 o37 e-1 e-8 o19 o53 e5 e14 e6 e35 e1 e46 e-10 e9999 o-13 e15 e10 e39 e37 e-38 o0 o-24 e-9999 e-22 e37 o-1 e-8 o-13 o15 o-16 e22 o15 e-5 o27 o30 o-1 e27 e30 o-5 e0 e55 e-23 o37 e-1 e-8 e35 o-48 e9999 e9999 e6 e-6 o-19 o-32 o-26 e-5 o27 o30 o-11 o12 o28 e-5 e20 e-8 e1 e23 e8 o1 o39 o12 e9999 e9999 o-11 e-8 o12 o9999 o29 o30 e15 e10 e39 e37 o-19 e-29 o-14 e5 e-30 o4 o-23 e47 e-20 e18 e1 e38 e26 e9 e9999 o17 o-19 e-33 e42 e9999 e8 o-19 e-33 e45 e-15 o-10 o11 e-31 e33 o45 o-15 o-45 o-43 o-1 e21 e-1 o27 o30 o-5 e0 e55 o-29 e32 e27 e9 e9999 o17 e13 o-15 e-9999 e1 o-31 e9 e9999 o17 e6 e11 e23 o-47 e0 e12 e28 o-5 o20 o-33 e-14 e-46 e-14 o-24 o45 e-55 o12 o1 e-32 e3 e-5 o38 e-7 e34 e57 e-35 o9999 o-49 o1 e5 e-32 e15 e-23 o37 e-47 e6 e5 o-11 e15 e9999 e-23 o37 e-1 e-8 e-9999 o-19 o-32 o-26 o-22 o37 e-1 e-8 e-9999 e-35 o9999 o-49 o1 o5 e-11 o15 o9999 o-23 e47 e-20 e18 e-6 o-19 e-33 e29 o-11 e16 o10 e-37 o35 o-16 e-19 e-32 e-9 o1 e5 e-32 e15 o-34 o-16 e-39 e5 e-28 e58 o19 o53 e5 e14 e9 e-1 o27 o30 o-22 o37 e-1 o-31 e8 o13 e52 o19 o53 e5 e14 e-35 o9999 o-49 o1 o-13 o1 o39 o12 e9999 e33 e-24 o47 e8 o-15 e-9999 e1 o-31 e9 e9999 o17 o-19 e-33 e45 o9999 e24 e24 e9 e-9999 o-5 e27 e30 o-22 o37 e-13 o-13 e1 e39 e12 e9999 o10 e-37 o35 o-16 o-5 e50 o51 o29 o-9999 o-18 e-19 o-33 o33 e33 e-24 o51 e-9999 o-19 e-33 e45 e-35 e8 o17 e-1 o27 o30 o-1 e25 o-5 e50 o51 o34 o16 o37 e8 e9999 o-13 o1 o39 o12 e9999 o10 e-37 o35 o-9999 o-35 e9999 e-49 e1 e19 e53 o5 o12 e29 o-14 o1 e-55 o-19 o-32 o-9 e1 e35 e1 e46 e-10 e13 e-35 e8 o17 e-1 o27 o30 o-1 e25 e-35 o9999 o-49 o8 e-8 e35 e1 e46 e-10 e9999 o19 o53 e5 e14 o-5 e38 o-7 e34 e16 e37 o8 o6 o5 o-30 e36 o1 e-42 o-15 e15 o-60 o-11 o-3 o-13 o-32 o3 e5 o-5 o-13 o-32 e9999 e7 o-19 e-33 e42 e9999 e8 o-19 e-33 e45 e9999 e5 e-32 e15 o-12 o-56 o46 o9999 o-19 e-33 e45 e-5 o38 e-7 e34 e57 e6 e29 o-14 o1 e-55 o-15 e-9999 e1 o-31 e9 e9999 o17 e6 e-6 e9999 e35 e1 e46 e-10 o-19 o-32 o-46 e-7 e35 e1 e46 e-10 o-19 o-32 o-46 e-7 o-13 o19 o53 e5 e14 e6 e5 e-30 o4 e-34 e-16 o-39 o33 e9999 e-23 o-1 e-8 e35 e-39 e3 e1 o-5 e0 e55 e-23 o37 o6 o31 e9 e9999 o17 e6 e5 e-30 o4 e-23 o26 o10 o11 e34 e57 o-19 o-32 o-9 e1 o15 o-16 e22 o15 e-5 o27 o30 o-1 e25 o-19 o-32 o-9 e1 e35 e1 e46 e-10 o-5 e38 o-7 e34 e57 e9999 o35 e-3 o-5 e-8 o-13 e5 e-32 e15 o-23 e37 o-35 e-9999 o-29 e32 o3 e15"

if TileA1[-1:]!=" ": TileA1+=" "
if TileC_invariant!="":
  if TileC_invariant[-1:]!=" ":
    TileC_invariant+=" "

recipes=("All_together_now:" + TileA1 + TileC_invariant + TileA2D1D2).rstrip()
numgp= recipes.count(" ")+1

g.setrule("LifeHistory")
recipelist=recipes.split("\n")
locx,locy,locxstep=0,0,1000
firstrecipe=recipelist[0].split(":")
name="recipe"
if len(firstrecipe)==2: name=firstrecipe[0]
g.new(name)
for item in recipelist:
    rparts=item.split(":")

    # The target pattern is customized and will probably need to change with each new recipe
    g.putcells(g.parse("79.2E$79.2E67$3.4B$4.4B$5.4B$6.4B$B6.4B$2B6.4B$3B2.2E2.4B$4B.2E3.3B$."
                              +"4B6.2B$2.4B6.B$3.4B$4.4B$5.4B!",locx-5,locy-73))
    recipestr = rparts[1].replace('\n',' ').replace('\r',' ').replace(' ','').replace('E','e').replace('O','o')
    recipestr=recipestr.replace(',','e').replace(';','o').replace(' ','e').replace("ee",'e').replace("eo",'o')
    rlist = recipestr.replace('o','e').split("e")[1:]
    parities = recipestr.translate(maketrans("",""),"0123456789-")+"~"
    if parities.replace('e','').replace('o','')!="~":
      g.exit("Bad format -- parity check failed for " + recipestr+":"+parities.replace('e','').replace('o',''))
    parity=0
    if parities[0]!="e":
      g.note("Recipe not normalized -- should start with 'e'.")
      parity=1
    else:
      parity=0 
    loc=10
    count=0
    for delta in rlist:
      count+=1
      if count==3:
        g.fit()
        g.update()
      try:
        d=int(delta)
      except:
        continue
      if abs(d)<999:
        offset, phase = d//4, d%4
        g.putcells(g.parse(phaselist[parity]),loc-3+locx,loc+3+locy) #-6 lane
        g.putcells(g.parse(phaselist[parity+phase]),loc+2+offset+locx,loc-2+offset+locy) #+4 lane
      else: # singleton glider
        if d<0:
          g.putcells(g.parse(phaselist[parity]),loc+2+locx,loc-2+locy) #+4 lane
        else:
          g.putcells(g.parse(phaselist[parity]),loc-3+locx,loc+3+locy) #-6 lane
      loc+=180
      parities=parities[1:]
      parity=1 if parities[0]=="o" else 0
    locx+=locxstep
g.setstep(8)
g.show(str(numgp) + " glider pairs placed.")
EDIT: 4831 glider pairs so far -- I added a status-bar readout to the pattern script. Seems fairly reasonable. Might even keep it under 5000gp in all, if the (4,1) recipe search produces a slightly more efficient library. Is that search still going on, by the way, or is it done? Haven't seen any updates on GitHub yet.

EDIT2: Returning to the silly spaceship gun before spaceship idea... wouldn't this just be a matter of building five edge-shooting glider loops of Ridiculously-High-Period-P, once we get the recipe sorted out? There would be a pair of loops at each corner of the Demonoid, each loop loaded with the recipe for one of the construction lanes. A fifth period-P edge-shooting loop in the middle would contain the full recipe, to be fed into the first of the half-Demonoids once it's complete.

... Oh, and we need one more loop with just one glider in it, that is inserted every P ticks to do all the cleanup work.

-----------------------------------------

I've been very tempted to adjust the Demonoid recipe to enable very subtle long-term sabotage. It would be easy to set up the self-destruct circuits so that the cleanup glider is returned 8 ticks too soon, or even just one tick too soon.

Drop in the cleanup glider several cycles behind the front edge of the Demonoid, and you'd have a construct that would fly for tens of millions of cells diagonally with no problem at all. But ultimately it would be a shrinking spaceship, and therefore eventually doomed.

Then it would be only a moderate amount of work (which I really don't want to do) to arrange it so that when the cleanup glider finally catches up to the front, it triggers an eater seed that absorbs the whole serial recipe, and also sends a delayed signal to trigger the cleanup circuit. And eventually shoot down the eater, I guess, and maybe the leading hand block. So, in a galaxy far far away, there would be nothing left but a couple of very widely spaced elbow blocks.

Of course a glacially growing spaceship could be arranged in the same way, but somehow that doesn't seem as interesting.

chris_c
Posts: 966
Joined: June 28th, 2014, 7:15 am

Re: Demonoid (diagonal Geminoid) working notes

Post by chris_c » November 17th, 2015, 2:28 pm

dvgrn wrote:I think there might be some significant cost savings if what I've been calling Part 2 -- the 9sL constellation -- were constructed before Part 1. That way the boats could be the first things to be constructed. It would be much easier to add the blocks from the other side, because it would be all open space over there, than to build the boats in that relatively narrow stripe.
Good work on building the rest of Tiles A and D but I'm not sure I understand the logic about Parts 1 and 2. The way I see it is that Part 1 needs to be built before TileC and TileC needs to be build before Part 2 (or some of it anyway). By transitivity we get Part 1 < Part 2.
dvgrn wrote:Looks to me like TileC can be patched in to the following recipe, as soon as a few glider pairs are added at the beginning and the end to make the whole thing "elbow invariant".
Yes, I suppose making an elbow invariant version would make it easy to drop in TileC but I don't think it's necessary. The cheapest way to make TileC non-elbow-killing is to start from state "Ar" do the 3 glider-pair duplication followed by two pull6 operations. Now remove the first singleton glider from the TileC recipe I posted and paste in the rest. The elbow should still be intact (but 4hd closer than it was originally) and will be ready to use for TileD.

I should explain a little bit about the way the gp-compiler works. The main principle is that everything is measured from the back edge. For example the following operation is named L0m4CC because the elbow is in state C, the glider shoots left, the back edge of the glider aligns with the back edge of the block, the back edge of the block gets pushed back by 4hd and the block ends up in state C:

Code: Select all

x = 52, y = 50, rule = LifeHistory
50.2C$50.2C6$40.3A$42.A$41.A3$45.2A$46.2A$45.A11$32.2A$33.2A$20.3A9.A
$22.A$21.A15$13.2A$12.A.A$14.A$3A$2.A$.A!
So if we decided on the above method to make the TileC non-elbow-killing we would know where the elbow for TileD should start from. Then when computing the recipe for TileD you could adjust the starting state of the elbow on this line. It would be "Ar" followed by some odd number I imagine. I planned on doing the same thing once a recipe for TileB was known.
dvgrn wrote:4831 glider pairs so far -- I added a status-bar readout to the pattern script. Seems fairly reasonable. Might even keep it under 5000gp in all, if the (4,1) recipe search produces a slightly more efficient library. Is that search still going on, by the way, or is it done? Haven't seen any updates on GitHub yet.
I got recipes for states D and E done yesterday and pushed them to github a little while ago. State F is being computed and should take a few hours more. I haven't tried the (4,1) recipes with the gp-compiler and I am a little pessimistic about how it will deal with them. Maybe you will need to reduce the lookahead number a bit to get acceptable performance? Maybe this will reduce the quality of the recipe produced? Time will tell...

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

Re: Demonoid (diagonal Geminoid) working notes

Post by dvgrn » November 17th, 2015, 3:45 pm

chris_c wrote:
dvgrn wrote:I think there might be some significant cost savings if what I've been calling Part 2 -- the 9sL constellation -- were constructed before Part 1. That way the boats could be the first things to be constructed. It would be much easier to add the blocks from the other side, because it would be all open space over there, than to build the boats in that relatively narrow stripe.
Good work on building the rest of Tiles A and D but I'm not sure I understand the logic about Parts 1 and 2.
Right, sorry, that's because there wasn't any logic. It was very late and I should definitely have been off in my darkened corner by then.
chris_c wrote:I got recipes for states D and E done yesterday and pushed them to github a little while ago. State F is being computed and should take a few hours more. I haven't tried the (4,1) recipes with the gp-compiler and I am a little pessimistic about how it will deal with them. Maybe you will need to reduce the lookahead number a bit to get acceptable performance? Maybe this will reduce the quality of the recipe produced? Time will tell...
It seems to be chugging right along on the first sample I tried, which was the 107 gliders in Tile A2:

Code: Select all

TileA_part_2_only:E195 E209 E179 E225 E225 E225 E223 E223 E221 E235 E229 E233 E229 E243 E237 E237 O247 E263 O229 O235 E251 E251 E261 E235 E237 E233 E245 E251 O259 E249 E199 E193 O173 E195 O189 E185 E205 E197 E187 E181 E195 E223 E243 E237 E235 O263 O233 E225 O227 E221 E223 O199 E215 E225 E245 E239 E225 E255 E249 O235 O241 E235 E233 E251 E237 E257 E239 E219 E229 E223 O241 O219 E247 E209 E225 E247 E247 E263 E235 E243 O247 E251 E251 E245 E247 E249 E251 E253 E253 E253 E249 O233 E221 E261 E233 E253 E239 E209 E213 E245 E217 E235 E227 E243 E211 O221 O253
On my system it seems to chug along just fine, at about five to ten seconds per output glider, probably depending on what the current elbow is -- after a rather slow start (presumably due to having to move the elbow a long way before starting to produce gliders). So the compile step for the full recipe isn't going to be quick, but it will get there eventually.

The (4,1) gp-recipe came out to 452 glider pairs, taking something under twenty minutes to compile:

Code: Select all

# build-10hd-gp-recipe-output41test.py
import golly as g

from glife.text import make_text
from string import maketrans
phaselist=["3o$o$bo!","b2o$2o$2bo!","b2o$bobo$bo!","2bo$b2o$bobo!","$b3o$bo$2bo!"]

recipes="TileA_part_2_only_41library:e1 e58 e37 e45 o-1 e-58 o-37 o-45 e1 e58 e37 e45 o-1 e-58 o-37 o-45 o19 o38 o-18 o-9 o-19 o-32 e9999 o32 o16 o10 o6 o17 e-21 o53 o20 o-21 e19 o45 o23 e31 e-22 o55 o-40 e29 e0 e-9999 o0 o-8 o0 o-48 o12 e11 o-22 o37 o-46 e-11 o0 e29 o-14 o-39 e11 e-5 o27 o30 e-5 o27 o30 e-5 o27 e-31 o28 o0 o-29 o-3 e-16 o0 o34 o16 o37 e8 o-19 o-32 o-26 e-17 e-14 o9999 e-5 o-2 e-9999 o-5 e50 o51 o12 o18 o13 o23 o20 e-32 e-8 o-7 o18 e-10 e-35 o9999 o-49 o1 e5 e-32 e15 e-23 o37 e-47 e6 e5 o-11 e15 e9999 e-23 o37 e-1 e-8 e-9999 o-19 o-32 o-26 o-22 o37 e-47 e-19 o-25 o9 o-9 e-1 o-26 o13 o-40 o30 o9999 o53 o9 e-42 o-15 e15 o-58 e-5 o23 o13 o-32 o7 o5 o-30 e56 e18 o-29 o-3 e-16 o0 e34 e16 e37 e8 e-35 e8 o17 e-1 o27 o30 o-22 o37 o6 o31 e8 o-15 e-9999 e1 o-31 e9 e9999 o17 o-5 e38 o-7 e29 e0 o10 e-8 e5 e-32 e15 o-29 o-3 e-16 o0 o34 o16 o37 e8 e6 e29 o-14 o-39 e1 e3 e49 e-30 e9 o-1 e27 e30 o-22 o37 e-47 e-1 e-45 o8 e13 o52 e35 o-38 o-11 e-36 e45 e-42 o-15 e15 o-58 e-5 o38 e-7 e34 e1 e-14 o2 e-19 e-35 e8 o17 e-1 o27 o24 e-25 o0 o45 o39 o-56 e9999 e-36 e-46 e-36 o-9999 e-9999 o-13 o5 o-32 o22 e3 o-23 e47 e-20 e18 o5 o-44 o-8 o-55 e10 e-23 o47 o-20 o18 e29 o-14 o1 e-55 o-19 o-32 o-42 e-14 e29 o-14 e-18 e-28 e-9999 e-35 e8 o17 e-24 e45 o-41 e-28 o52 o35 e-3 o-5 e-8 e5 e-32 e15 e-23 o37 e-47 e-5 o13 o2 o-32 o-12 e53 e33 e-47 e26 e17 o5 o-32 o15 o-29 e-6 e50 o46 o-19 o-32 o-42 e-14 e5 e-30 o56 o18 o-29 o-3 e-16 o0 o29 o-26 o9999 e-35 o1 o-13 o-13 e5 e-32 e15 o-12 o-56 o46 o9999 o-19 e-33 e45 e-5 o38 e44 o5 o-16 e-35 o9999 o-49 o1 e5 e-32 e15 o-12 o-56 o50 o23 o9999 o-5 e38 o-7 o23 o-26 o-18 o9999 o-29 e-6 e50 o46 e-1 e-23 e-13 e26 o34 o16 o37 e8 o-19 o-32 e-39 o9999 e-45 e-11 o45 o1 o35 e-19 e-32 e-42 o-12 e-35 e8 o17 o-21 e19 o45 o23 o31 o45 e-41 o-22 o-8 e34 e15 e-4 e-20 e-16 e-12 e1 o-39 o51 e-35 e8 o17 o-22 o37 e-35 o-9999 e-29 o32 e3 o15 o-15 e-9999 o-5 o-21 o1 o0 o39 o-56 e9999 o-15 e44 e5 o-37 e-29 o6 o49 e-33 e-29 e-35 e-5 e-3 o-5 e27 e30 e-5 o0 e-43 e-1 o21"

numgp= recipes.count(" ")+1

g.setrule("LifeHistory")
recipelist=recipes.split("\n")
locx,locy,locxstep=0,0,1000
firstrecipe=recipelist[0].split(":")
name="recipe"
if len(firstrecipe)==2: name=firstrecipe[0]
g.new(name)
for item in recipelist:
    rparts=item.split(":")

    # The target pattern is customized and will probably need to change with each new recipe
    g.putcells(g.parse("3.2E$3.2E84$3.4B$4.4B$5.4B$6.4B$B6.4B$2B6.4B$3B2.2E2.4B$4B.2E3.3B$.4B"
                      +"6.2B$2.4B6.B$3.4B$4.4B$5.4B!",locx-5,locy-90))
    recipestr = rparts[1].replace('\n',' ').replace('\r',' ').replace(' ','').replace('E','e').replace('O','o')
    recipestr=recipestr.replace(',','e').replace(';','o').replace(' ','e').replace("ee",'e').replace("eo",'o')
    rlist = recipestr.replace('o','e').split("e")[1:]
    parities = recipestr.translate(maketrans("",""),"0123456789-")+"~"
    if parities.replace('e','').replace('o','')!="~":
      g.exit("Bad format -- parity check failed for " + recipestr+":"+parities.replace('e','').replace('o',''))
    parity=0
    if parities[0]!="e":
      g.note("Recipe not normalized -- should start with 'e'.")
      parity=1
    else:
      parity=0 
    loc=10
    count=0
    for delta in rlist:
      count+=1
      if count==3:
        g.fit()
        g.update()
      try:
        d=int(delta)
      except:
        continue
      if abs(d)<999:
        offset, phase = d//4, d%4
        g.putcells(g.parse(phaselist[parity]),loc-3+locx,loc+3+locy) #-6 lane
        g.putcells(g.parse(phaselist[parity+phase]),loc+2+offset+locx,loc-2+offset+locy) #+4 lane
      else: # singleton glider
        if d<0:
          g.putcells(g.parse(phaselist[parity]),loc+2+locx,loc-2+locy) #+4 lane
        else:
          g.putcells(g.parse(phaselist[parity]),loc-3+locx,loc+3+locy) #-6 lane
      loc+=180
      parities=parities[1:]
      parity=1 if parities[0]=="o" else 0
    locx+=locxstep
g.setstep(8)
g.show(str(numgp) + " glider pairs placed.")
As shown, it blows up spectacularly, only because one of the elbow recipes happens to get too close to the last stages of the construction. Probably there's an alternate recipe that dodges the problem for about the same cost. If you move the hand block by (5,-5) you can see that the compiler is working just fine.

The same slow salvo can be compiled in under two minutes using the (3,1) library, so the time taken is roughly proportional to the size of the library. It produces a 486gp recipe:

Code: Select all

# build-10hd-gp-recipe-output31test.py
import golly as g

from glife.text import make_text
from string import maketrans
phaselist=["3o$o$bo!","b2o$2o$2bo!","b2o$bobo$bo!","2bo$b2o$bobo!","$b3o$bo$2bo!"]

recipes="TileA_part_2_only_31library:e1 e60 e9999 e13 e15 e-3 o-5 e0 e55 o-29 e19 e24 o-33 e24 e-47 e-8 o1 o39 o12 e9999 e9999 o-11 e-8 o12 o9999 o29 o30 e15 e10 e39 e37 o-19 e-29 o-14 e5 e-30 o4 o-23 e47 e-20 e18 e1 e38 e26 e9 e9999 o17 o-19 e-33 e42 e9999 e8 o-19 e-33 e45 e-15 o-10 o11 e-31 e33 o45 o-15 o-45 o-43 o-1 e21 e-1 o27 o30 o-5 e0 e55 o-29 e32 e27 e9 e9999 o17 e13 o-15 e-9999 e1 o-31 e9 e9999 o17 e6 e11 e23 o-47 e0 e12 e28 o-5 o20 o-33 e-14 e-46 e-14 o-24 o45 e-55 o12 o1 e-32 e3 e-5 o38 e-7 e34 e57 e-35 o9999 o-49 o1 e5 e-32 e15 e-23 o37 e-47 e6 e5 o-11 e15 e9999 e-23 o37 e-1 e-8 e-9999 o-19 o-32 o-26 o-22 o37 e-1 e-8 e-9999 e-35 o9999 o-49 o1 o5 e-11 o15 o9999 o-23 e47 e-20 e18 e-6 o-19 e-33 e29 o-11 e16 o10 e-37 o35 o-16 e-19 e-32 e-9 o1 e5 e-32 e15 o-34 o-16 e-39 e5 e-28 e58 o19 o53 e5 e14 e9 e-1 o27 o30 o-22 o37 e-1 o-31 e8 o13 e52 o19 o53 e5 e14 e-35 o9999 o-49 o1 o-13 o1 o39 o12 e9999 e33 e-24 o47 e8 o-15 e-9999 e1 o-31 e9 e9999 o17 o-19 e-33 e45 o9999 e24 e24 e9 e-9999 o-5 e27 e30 o-22 o37 e-13 o-13 e1 e39 e12 e9999 o10 e-37 o35 o-16 o-5 e50 o51 o29 o-9999 o-18 e-19 o-33 o33 e33 e-24 o51 e-9999 o-19 e-33 e45 e-35 e8 o17 e-1 o27 o30 o-1 e25 o-5 e50 o51 o34 o16 o37 e8 e9999 o-13 o1 o39 o12 e9999 o10 e-37 o35 o-9999 o-35 e9999 e-49 e1 e19 e53 o5 o12 e29 o-14 o1 e-55 o-19 o-32 o-9 e1 e35 e1 e46 e-10 e13 e-35 e8 o17 e-1 o27 o30 o-1 e25 e-35 o9999 o-49 o8 e-8 e35 e1 e46 e-10 e9999 o19 o53 e5 e14 o-5 e38 o-7 e34 e16 e37 o8 o6 o5 o-30 e36 o1 e-42 o-15 e15 o-60 o-11 o-3 o-13 o-32 o3 e5 o-5 o-13 o-32 e9999 e7 o-19 e-33 e42 e9999 e8 o-19 e-33 e45 e9999 e5 e-32 e15 o-12 o-56 o46 o9999 o-19 e-33 e45 e-5 o38 e-7 e34 e57 e6 e29 o-14 o1 e-55 o-15 e-9999 e1 o-31 e9 e9999 o17 e6 e-6 e9999 e35 e1 e46 e-10 o-19 o-32 o-46 e-7 e35 e1 e46 e-10 o-19 o-32 o-46 e-7 o-13 o19 o53 e5 e14 e6 e5 e-30 o4 e-34 e-16 o-39 o33 e9999 e-23 o-1 e-8 e35 e-39 e3 e1 o-5 e0 e55 e-23 o37 o6 o31 e9 e9999 o17 e6 e5 e-30 o4 e-23 o26 o10 o11 e34 e57 o-19 o-32 o-9 e1 o15 o-16 e22 o15 e-5 o27 o30 o-1 e25 o-19 o-32 o-9 e1 e35 e1 e46 e-10 o-5 e38 o-7 e34 e57 e9999 o35 e-3 o-5 e-8 o-13 e5 e-32 e15 o-23 e37 o-35 e-9999 o-29 e32 o3 e15"

numgp= recipes.count(" ")+1

g.setrule("LifeHistory")
recipelist=recipes.split("\n")
locx,locy,locxstep=0,0,1000
firstrecipe=recipelist[0].split(":")
name="recipe"
if len(firstrecipe)==2: name=firstrecipe[0]
g.new(name)
for item in recipelist:
    rparts=item.split(":")

    # The target pattern is customized and will probably need to change with each new recipe
    g.putcells(g.parse("3.2E$3.2E84$3.4B$4.4B$5.4B$6.4B$B6.4B$2B6.4B$3B2.2E2.4B$4B.2E3.3B$.4B"
                      +"6.2B$2.4B6.B$3.4B$4.4B$5.4B!",locx-5,locy-90))
    recipestr = rparts[1].replace('\n',' ').replace('\r',' ').replace(' ','').replace('E','e').replace('O','o')
    recipestr=recipestr.replace(',','e').replace(';','o').replace(' ','e').replace("ee",'e').replace("eo",'o')
    rlist = recipestr.replace('o','e').split("e")[1:]
    parities = recipestr.translate(maketrans("",""),"0123456789-")+"~"
    if parities.replace('e','').replace('o','')!="~":
      g.exit("Bad format -- parity check failed for " + recipestr+":"+parities.replace('e','').replace('o',''))
    parity=0
    if parities[0]!="e":
      g.note("Recipe not normalized -- should start with 'e'.")
      parity=1
    else:
      parity=0 
    loc=10
    count=0
    for delta in rlist:
      count+=1
      if count==3:
        g.fit()
        g.update()
      try:
        d=int(delta)
      except:
        continue
      if abs(d)<999:
        offset, phase = d//4, d%4
        g.putcells(g.parse(phaselist[parity]),loc-3+locx,loc+3+locy) #-6 lane
        g.putcells(g.parse(phaselist[parity+phase]),loc+2+offset+locx,loc-2+offset+locy) #+4 lane
      else: # singleton glider
        if d<0:
          g.putcells(g.parse(phaselist[parity]),loc+2+locx,loc-2+locy) #+4 lane
        else:
          g.putcells(g.parse(phaselist[parity]),loc-3+locx,loc+3+locy) #-6 lane
      loc+=180
      parities=parities[1:]
      parity=1 if parities[0]=="o" else 0
    locx+=locxstep
g.setstep(8)
g.show(str(numgp) + " glider pairs placed.")
So it looks like it will be worth running the compiler on the full recipe using the (4,1) library -- once -- but that we're probably somewhere near a point of diminishing returns, and shouldn't worry about optimizing the compiler much further.

At some point I'll try and see what the (4,1) library can do with a reduced lookahead number. I'm guessing that the gp-recipe won't get much longer until the lookahead goes down below 3 -- but if guesses were horses, um, either we'd be done with the Demonoid already, or we could make a lot of glue, I'm not sure which.

EDIT:Results from output_4_1.txt library at different search depths:
  • depth 6: 448 / 107 = 4.186916 (why does the script report 448 here? There seem to be 452 pairs)
    depth 5: 454 / 107 = 4.242991 (counting spaces gives 462 actual pairs at depth 5)
    depth 4: 459 / 107 = 4.289720 (so take these numbers with a grain of salt, I haven't checked them)
    depth 3: 471 / 107 = 4.401869 (but they seem to be increasing nicely as depth decreases)
    depth 2: 505 / 107 = 4.719626 (about as you would expect)
I haven't done timing tests, but a depth-3 search takes about a minute, and deeper searches are proportionally longer, with depth 6 around 20 minutes.

chris_c
Posts: 966
Joined: June 28th, 2014, 7:15 am

Re: Demonoid (diagonal Geminoid) working notes

Post by chris_c » November 17th, 2015, 6:09 pm

dvgrn wrote: The same slow salvo can be compiled in under two minutes using the (3,1) library, so the time taken is roughly proportional to the size of the library.
Great. I was fearing some kind of exponential slow down. A linear slowdown isn't great but at least it means we can forget about the compiler for a while.

The full (4+1) results are available now. Hopefully completing the F recipes will give another little boost because State F is quite productive. The list of recipes numbers for each state is:

Code: Select all

A 1503
E 1059
C 799
F 774
D 463
B 269
G 1
Total: 4868
dvgrn wrote: depth 6: 448 / 107 = 4.186916 (why does the script report 448 here? There seem to be 452 pairs)
No idea but thanks for the testing! I will have to look at it tomorrow. Also note that there was a slight bug in the elbow searching code that meant that a glider producing recipe could be duplicated up to 4 times. It has been present since I taught the code how to deal with the phase of the output glider and it still remains: the recipe list was de-dupped using a short python script.

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

Re: Demonoid (diagonal Geminoid) working notes

Post by dvgrn » November 18th, 2015, 12:45 am

chris_c wrote:The full (4+1) results are available now. Hopefully completing the F recipes will give another little boost because State F is quite productive.
Early evidence is that there's a small but measurable boost. A depth-2 search with the new (4,1) library finds a 496gp recipe (which really is 496 glider pairs), where the old library needed 514gp (which it said was 505gp).

A depth-6 search on Tile A2 reports 443gp (and again that's really what it is) instead of the old 452gp. Definitely closing in on an average of 4gp per glider... though to cross that line might require recompiling the slow salvo so that cheaper recipes are used first. I picked recipes with fewer gliders whenever I had the choice -- but fewer slower gliders doesn't necessarily translate to fewer glider pairs.

(Argh, there are far too many ways to optimize this thing. Luckily it's plenty good enough already.)
chris_c wrote:
dvgrn wrote: depth 6: 448 / 107 = 4.186916 (why does the script report 448 here? There seem to be 452 pairs)
No idea but thanks for the testing! I will have to look at it tomorrow.
Hmm. I don't see where the last item's cost is getting stranded in next_cost, or the cost up to the first output glider isn't counted... but then again, I'm not thinking very hard about it.

Don't think I mentioned that the gp-compile-from-clipboard script has been updated so it asks for a depth along with the library and output-file parameters.

Here's the full A1CA2D1D2 gp-recipe compiled with the complete (4,1) library -- 4399 glider pairs, for a ratio of 4399 / 1080 = 4.073148:

Code: Select all

# build-10hd-gp-recipe-DemonoidA1C1A2D1D2.py
import golly as g

from glife.text import make_text
from string import maketrans
phaselist=["3o$o$bo!","b2o$2o$2bo!","b2o$bobo$bo!","2bo$b2o$bobo!","$b3o$bo$2bo!"]

####################################################
         ###########################################
TileC="" ###### donations gratefully accepted ######
         ###########################################
####################################################

TileA1="e-9999 e-1 e-23 e-13 e26 o34 o6 o6 o39 e-29 e34 e15 e-4 e3 e1 e0 e39 e-56 o9999 o-32 o-8 o9999 o-49 e15 e-18 e20 o39 e2 e15 o-57 e25 e-9999 e-9999 o-5 e50 o51 o53 o9 e-23 o37 o-46 e-11 o-9999 o-5 e38 o-7 o23 o-26 o-18 o9999 e-42 o-15 e15 o-58 e-19 o-32 e-42 o-14 e5 o-11 e15 e9999 e-42 o-15 e15 o-58 e-19 o-32 e-46 o-7 e15 e10 e39 e37 o-32 e-47 o-32 e-4 o1 e-9999 o-19 e-33 e29 e-22 e47 e-20 e18 o15 o-18 e9999 e-21 o53 o36 o18 o1 o39 o12 o9999 o33 o24 e53 e9 e-42 o-15 e15 e-33 e15 o19 o53 e5 e12 e15 e10 e39 e37 o-33 o-32 o-23 e-13 o-32 e3 o5 o0 o11 o13 o-33 e28 o24 e9 e-9 o0 o0 e26 e29 e-6 o-49 e23 e11 e10 o-29 e9999 o-11 e-9999 e24 e18 o29 o17 e57 e9 e-58 o1 e-23 o37 e-1 o-11 e-9999 e24 e18 o29 e22 e8 e24 e-38 e0 o-19 e-33 e33 o12 e-24 o8 e2 o11 e35 o-1 o-19 o-1 o-33 e28 o24 e9 o-35 o8 o-41 e38 o-11 o1 o3 o49 o-18 o53 o15 o-9999 o-24 o-1 e-56 e30 o-9999 e-8 e0 e-48 e12 e5 o-25 o-13 e5 e-32 e15 e-29 o9999 o7 o48 o-28 e29 o-14 o1 e-55 e-19 o9999 e-48 o-11 e13 e-1 o27 o30 e-1 o27 o30 e-22 e47 e-20 e18 e-9999 o-1 e-56 e30 e-9999 o-15 e4 e28 e-14 o-23 e-22 e-25 o0 e44 e-9999 e19 e53 o5 o12 e5 e-32 e15 e-23 o37 e-13 e-34 o25 e-19 o-32 e-46 o-7 e5 e-32 e15 e-23 o26 o10 o-13 o0 o5 e-39 o14 o-8 o13 o-9999 o53 e5 o31 e-35 e8 o17 e-5 o27 o24 e-59 o-14 o35 e-3 o-5 o-26 o-8 o7 o48 o-28 o-13 e5 e-32 e15 e-23 o47 o-20 o18 o19 o12 o3 o17 e10 o9999 e19 e53 o5 o14 o-5 e38 o-7 e10 e40 e15 e-36 e33 e-49 e0 o-33 o9999 o15 o-18 e9999 e-21 o29 e-19 o26 o5 e-39 o14 o-8 e12 e-11 e53 e9999 o45 o39 o-56 e25 o-10 o13 e-22 e37 o-47 e-35 o9999 o-49 o1 e-9999 o-5 e50 o51 e29 e-32 o-37 o0 e-31 o25 o-47 o-53 o-45 e52 e-42 e-4 e-42 o-15 e15 e-17 o-23 e19 e12 e3 e17 o10 o-15 e44 e5 o-37 o-60 o19 e0 e-51 o24 o53 o9 o-29 e26 o11 o-19 o3 o-19 e-33 e29 e-12 e1 e29 e-6 e45 e11 e13 o-33 e28 o24 e9 o-31 e33 o-31 e57 e13 o-22 o37 o-44 o-13 o-15 o-7 e58 e39 e-45 e-43 e-1 o21 o-22 o37 e-1 e-8 e19 e-9999 e15 o0 e-32 o-5 e-2 e9999 o27 o-22 o37 e-1 e-26 e2 o-33 o-24 o47 e-23 o26 o10 e9999 o-11 e-42 e-13 o-32 o-25 o42 o17 o2 e29 o-9999 o45 o39 o-56 e9999 e13 e-35 e8 o17 e-1 o27 o30 e-5 o27 o24 o-56 e-50 e45 o-41 e-28 o52 o5 o-30 e4 e-29 e-3 o-16 e0 o23 o-18 o1 o32 e-11 o-9999 o24 o18 e29 e12 e12 e-16 o-21 e0 e29 o-14 o-39 e11 e-1 o27 o30 o-22 o37 e-1 e-8 o15 e-57 o25 o9999 o-10 o33 o14 o44 e-21 e12 e28 o-5 o20 e-31 o8 e13 o52 e15 e10 e39 e6 o23 o-22 o-23 o0 e-7 o-15 e16 o20 o31 o34 o16 o37 e31 o-17 e-20 e18 o5 e-33 e24 o26 o29 e-19 e-7 o-32 e33 e25 e-54 e-20 e18 e15 e10 e39 e37 o-19 e-33 e45 e-10 o-49 e21 e-32 e4 e-19 o-32 e-26 e-17 e-14 o9999 e-5 o-2 o5 o-30 e4 e-29 o32 e16 o56 e-24 o45 o11 o13 o-8 o0 o-48 o12 e5 e0 e11 e13 e-4 o9999 o-3 e14 e0 e9 e9999 o17 o-19 e-33 e29 o-17 e3 e-9999 o-1 e21 e-5 o27 o30 e-1 e-3 e-43 e-1 e-31 o31 o-22 e28 e27 e-9999 e-5 o44 o12 e43 o53 o20 o-5 e0 o-43 o-1 e21 e-5 o27 o30 e-11 o22 e-33 o50 e51 e-31 o7 e7 e-9999 o25 e-22 e37 o-1 e-26 e0 o36 e-18 e5 e-32 e15 o-23 e-2 o-39 e37 o-43 o10 e-37 o35 o-20 e5 e-32 e15 e-29 o32 e16 o56 e-12 o-11 o18 e-32 e21 o-1 e27 e30 e-24 o45 o39 o-56 e9999 o-15 e8 o-11 e55 o-9 e5 o-17 e-3 e0 e-42 o-15 e15 o-58 e9999 o19 o53 e5 e14 e-35 e8 o17 o-5 e27 e30 o-1 e5 e22 o8 o9999 e0 e-45 o34 o4 e-41 o-32 o26 o7 e26 e23 e8 e24 e-38 e0 e-5 o50 e51 e12 o-1 e13 e9 e9999 o17 e-32 e-8 e9999 e-49 o15 o10 o39 o6 o53 o9 o-34 o-18 o-38 e-27 o-51 e-6 e-1 o-28 e-7 e-22 o9999 e29 o-19 e26 e22 o2 o5 e-10 e21 e45 e39 e-56 o5 e45 e39 e-56 o5 o45 o39 o-56 e9999 e9 e-1 o27 o30 e-5 o27 o30 o-17 o-14 e9999 o-5 e-2 e35 o-3 e-5 o-8 o-7 o-29 e3 o16 e-1 e-23 e-13 e26 o34 o16 o37 e8 e-35 e8 o17 o-22 o37 o-46 e23 e-35 e8 o17 o-22 o37 e-47 e-1 e-31 o1 o20 o0 o-9999 o29 e-9999 o-32 o-16 o11 o60 o38 e-9 e9 e9999 o17 e6 e5 e-32 e15 e-42 o-15 e15 o-58 e-1 e-15 o-8 e-49 e19 e-19 o-32 e-9 o1 o-13 e9999 e25 e-9999 e2 e2 e-15 o-9999 o1 e-31 e9 e9999 o17 e-26 e13 e-40 e53 e-23 o37 e-47 e-5 o13 o2 o-32 o-12 e29 o-19 e26 e10 o-37 o-39 o-45 o-25 o22 e-43 e9999 e31 o0 e53 e20 e-5 o27 o30 e-5 o27 o30 o-11 e11 o-21 e19 o45 o23 e8 o-5 e50 o51 e29 o-9 e9999 o-3 e18 o-29 e32 e36 o58 o-43 o9999 e11 e60 e38 o-9 e8 o-19 e-33 e33 o10 e-37 o35 o-20 e35 e1 o33 o-11 o5 o0 o39 o-56 e9999 e9 e-5 o19 o-8 o18 e-4 o-3 o14 e-4 e13 o-19 e-33 e33 e22 o-18 e9999 e-7 o58 e45 o-55 o53 o20 o-21 e19 o45 o23 o9 o9999 e17 e-35 o9999 o-11 o4 e-25 o-9999 o-35 o8 e17 o-1 e27 e30 o-12 e-33 o-50 o12 e8 o-19 e-33 e45 o-35 e9999 e-9 o-49 e-33 e-2 o-22 e39 o-11 o5 o3 o49 o-18 e29 o-19 e26 e13 e15 o-20 e-60 o-52 e-26 e6 e11 e6 o33 e-9999 o-45 e-49 o-12 e-35 e8 o17 o-5 e27 e30 e-1 o27 o30 o-1 e27 e30 e-1 o27 o30 e-22 e42 o2 o11 e6 o-6 o-19 e-32 o-42 e-14 o35 o1 o46 o-10 e-35 e8 o17 e-12 o-15 o-9 e-20 e11 o-21 e19 o45 o23 o31 o-22 e28 e27 e15 o-57 e25 e-9999 e-9999 e-5 o50 e51 o53 o9 o-29 e-6 e50 o46 e-1 e-39 e-7 e-1 o0 e-33 o24 e-56 o9999 e-11 o-5 e38 o-7 e34 e16 e37 e13 o-22 o37 e-47 o-38 e0 e-24 o-9999 e-5 o19 o-10 e-9 e15 e6 e-14 e-4 e-5 o19 o32 o53 o-33 o1 e-27 o-32 o3 o1 o0 o11 o13 e-13 o-32 o-25 e1 o-29 o-3 e-16 o0 o29 o-6 o-50 o-12 o-48 e29 o-14 o1 e-55 e-35 e8 o17 e-5 o27 o30 e-1 o10 e-19 o26 e11 e9999 e-8 o-10 o-3 o23 o-22 o-23 o0 e-8 e5 e-32 e15 o-29 e-6 e50 o46 e6 o-9 o5 o0 o39 o-56 e9999 o-5 e50 o51 e12 e9999 e29 e30 o11 o60 o38 e-9 e8 o-19 e-33 e54 e10 o-29 e9999 e-7 e-12 o-10 o-32 e-4 o-23 e37 o-1 e-8 e-9999 o-15 e-10 e8 o-31 e9 e9999 o17 o-19 e-33 e29 e-5 o7 e-19 o-32 e-15 e31 e-22 o28 o27 e29 o-14 o-39 o11 o-5 e27 e30 e-1 o27 o30 e-1 o19 o-10 e-9 e-6 e-19 o-32 e-9 o1 e29 e13 o6 e10 e-8 e5 e-32 e15 e-23 o37 o-46 e-11 o0 o5 e-17 o-3 o0 e-23 o37 e-1 e-35 e49 o33 o-56 e9999 e-19 o-33 o29 o-1 e25 o-19 e-33 e29 e-5 o25 e-5 o50 e51 e60 o-7 e9999 o-31 e9999 o-19 e-33 e29 o-22 o26 o10 o0 o49 o19 o53 o15 o-9999 e57 o-19 e-33 e45 e-5 o38 e-7 o12 o1 e-32 e3 e13 e-19 o-32 e-46 o-7 e35 e0 o0 e0 e11 e9999 e6 e15 e31 e-22 o55 o-40 o53 o9 o-34 o-18 o-38 e-27 o-51 e29 o2 o13 e-22 e12 o-24 e25 o-53 o45 e-41 e11 o33 o20 o34 o16 o37 e31 o-31 e9 e9999 o17 e-35 e8 o17 e-1 o27 o24 e-59 o-14 e35 o-48 e9999 e9999 o-5 e46 o57 e-4 e12 e9999 e29 e35 e12 o-24 e25 o-53 o45 e-41 o-28 e52 o-13 e5 e-30 o4 e-34 o-1 o-3 e26 o34 o16 o37 e8 e13 o-5 e38 o-7 e34 e16 e37 e13 e-5 o19 o-10 e-9 o29 e-14 e1 o-55 o-5 e38 o-7 o10 o40 o15 o-36 e8 o-19 e-33 e45 o-1 e-56 e30 e-9999 o-33 o1 e-27 e-59 e29 e3 o-35 e-8 e0 o-29 o-3 e-16 o0 o34 o16 o37 o26 e-7 e9999 e34 e-3 o-21 e19 o45 o23 o9 o9999 e17 e-35 o9999 o-11 o4 e-25 o19 o-9999 o15 e0 e13 e-19 o-32 e-26 o-22 o37 e-1 o-35 o8 o-41 e38 e-5 o27 o30 e-5 o19 o-10 e-9 o-7 e-16 o33 o0 o1 o-19 e-33 e45 e-35 e8 o17 e-1 o27 o30 o-1 e27 o-31 e28 e0 e-12 e1 o-39 o51 e7 e11 e5 e26 e34 e1 e-14 o2 e-19 o-5 e38 o-7 o29 o-34 o-30 e4 o53 o45 o11 o13 e-5 o44 e-13 o-37 o-4 o35 e-3 o-5 e-8 e19 e-9999 e15 o0 o9999 o5 o-32 o15 o-29 o-3 o-43 o-17 e5 e-32 e15 e-29 o32 e16 o56 e-12 e1 e29 e-6 e45 e11 e13 o-22 e14 o-12 e-37 e20 o8 e-5 o30 e-47 e-7 o23 e-23 o26 e-35 o43 o53 o20 o-22 o37 e-1 e-7 e-12 o-10 o-32 e-4 o-29 e9999 e7 e39 o-3 o-21 e19 o45 o23 e13 o-22 o37 o-44 o-33 e24 o-56 e9999 e0 e-5 o27 o24 e-41 o9999 o53 o9 e-12 e1 o-39 o51 o-5 e50 o51 e23 o-33 e50 o51 o-31 o31 o-22 e28 e27 e1 e28 e34 e9999 e7 o-5 e27 e23 o-5 e-50 e24 e24 e9 e-9999 e-1 o27 o30 e-1 o27 o30 e-5 o27 o30 e-22 e37 e-46 o-2 e40 o-22 o37 e-1 o-26 o2 e0 e26 o45 o-34 e-3 o53 o20 e-5 o27 o30 o-1 e27 e30 o-5 e18 o1 o0 o11 o13 e-33 e-2 o-22 e39 o-21 e19 o45 o23 o33 e-34 o-34 o14 o-5 e5 e-32 e15 o-29 e-6 e50 o46 o-30 o-12 o6 o9999 o34 o23 o-26 o-18 o9999 e-42 o-15 e15 o-60 o-35 o8 o-41 e38 o-5 e27 e30 e-1 o19 o32 e3 o15 o-1 e-38 e-32 e5 e0 e-33 e-2 o-22 e39 o-21 e19 o45 o23 e9 e9999 o17 o7 o11 o5 o26 e10 e6 e17 o-21 o12 o3 o-51 o54 o-9999 o19 o12 o3 o17 e10 e-19 o-33 o33"


elbow_move="e13 e15 o6 o-32"


TileA2D1D2="e11 e0 e44 e-1 o58 e13 o-21 e19 o45 o23 o33 e-34 e-27 o13 o-9999 e-1 e-23 e-13 e26 o34 o16 o37 e8 e-19 o-32 e-26 e-12 e1 e29 e-6 o45 o11 o13 o-9999 o11 o2 e26 e23 o-33 e50 o51 o-31 e8 e-35 e8 o17 o-22 o37 o-46 e-11 o-9999 e-32 e-8 e9999 e-49 o11 o60 o38 e-9 e8 e-19 o-32 e-26 e-5 o19 o-10 e-9 o26 o-12 e19 e-5 o-2 e-9999 o-5 e50 o51 o12 o18 o13 o23 o20 e-32 e-8 o-7 o18 e-10 e-35 o9999 o-49 o1 e5 e-32 e15 e-23 o37 e-47 e6 e5 o-11 e15 e9999 e-23 o37 e-1 e-8 e-9999 e-19 o-32 e-26 o-22 o37 e-47 e-19 o-25 o9 o-9 e-1 o-26 o13 o-40 o30 o9999 o53 o9 e-42 o-15 e15 o-58 e-5 o23 o13 o-32 o7 o5 o-30 e4 o-29 o-3 e-16 o0 e34 e16 e37 e8 e-35 e8 o17 e-1 o27 o30 o-22 o37 o6 o31 e8 o-15 e-9999 e1 o-31 e9 e9999 o17 o-5 e38 o-7 e29 e-6 o-49 e23 o14 o1 o39 o12 e9999 e13 e23 e-43 e-13 o-39 e-6 o-19 e-33 e45 o9999 e24 e24 e9 e-9999 o-5 e27 e30 o-22 o37 e-47 e-1 e-45 o8 e13 o52 e5 o-13 e7 o18 e-42 o-15 e15 o-58 e-5 o38 e-7 e34 e1 e-14 o2 e-19 e-35 e8 o17 e-1 o27 o24 e-25 o0 o45 o39 o-56 e9999 e-5 o30 e-8 o-32 e34 e33 e19 o-3 e3 o53 o20 e-3 o9999 e5 e0 e11 e13 e-33 o28 e24 o9 o-33 e-14 e-46 e-14 o-22 o37 e-1 o-11 o-1 o45 o39 o-56 e9999 e-35 e8 o17 e-24 e45 o-41 e-28 o52 o35 e-3 o-5 e-8 e5 e-32 e15 e-23 o37 e-47 e-5 o13 o2 o-32 o-12 e53 e33 e-47 e26 e17 o5 o-32 o15 o-29 e-6 e50 o46 e-19 o-32 e-42 o-14 e5 e-30 o4 o-29 o-3 e-16 o0 o29 o-26 o9999 e-35 o1 o-13 o-13 e5 e-32 e15 o-12 o-56 o46 o9999 o-19 e-33 e29 e-22 e26 e10 o9999 o-1 e-56 e30 e-9999 o-33 o1 e-27 e-59 o60 e-35 o-16 e-29 e15 e-18 e20 o39 e2 e5 o-13 e7 o18 e-42 o-15 e15 o-58 e-32 e19 e-7 e12 e9999 o53 o20 o-21 e19 o45 o23 e13 o-22 o37 e-47 e-15 o16 o3 o26 o21 e-1 e13 o34 e-9 o-38 e0 e-24 o-9999 o-22 o37 o-44 o-33 o1 e-21 e59 e4 e29 o-14 o-15 e-9999 o19 o53 e5 e14 e-19 o-32 e-26 e-1 o10 e-19 o26 o13 o53 e5 e13 e-6 o31 o-8 e-9999 o-10 e-9999 o-19 e-33 e45 o-15 e44 e5 o-37 e-60 e52 o-9999 o-45 o34 o55 o-31 o26 e29 o-19 o-7 e-32 o5 e-39 o14 o-8 o10 e-37 o35 o-9999 e-1 e-23 e-13 e26 e29 o-5 e-32 e-9999 o-1 o-23 o-13 o26 e34 e57 e-1 o-32 e7 o29 o19 e15 o-57 e25 e-9999 e-9999 o-5 e50 o51 o53 o9 e-23 o37 o-46 e-11 o-9999 o-5 e38 o-7 o23 o-26 o-18 o9999 e-42 o-15 e15 o-58 e-19 o-32 e-42 o-14 e5 o-11 e15 e9999 e-42 o-15 e15 o-58 e-19 o-32 e-46 o-7 e15 e10 e39 e37 o-32 e-47 o-32 e-4 o1 e-9999 o-19 e-33 e29 e-22 e47 e-20 e18 o15 o-18 e9999 e-21 o53 o36 o18 o1 o39 o12 o9999 o33 o24 e53 e9 e-42 o-15 e15 e-33 e15 o19 o53 e5 e12 e15 e10 e39 e37 o-33 o-32 o-23 e-13 o-32 e3 o5 o0 o11 o13 o-33 e28 o24 e9 e-9 o0 o0 e26 e29 e-6 o-49 e23 e11 e10 o-29 e9999 o-11 e-9999 e24 e18 o29 o17 e57 e9 e-58 o1 e-23 o37 e-1 o-11 e-9999 e24 e18 o29 e22 e8 e24 e-38 e0 o-19 e-33 e33 o12 e-24 o8 e2 o11 e35 o-1 o-19 o-1 o-33 e28 o24 e9 o-35 o8 o-41 e38 o-11 o1 o3 o49 o-18 o53 o15 o-9999 o-24 o-1 e-56 e30 o-9999 e-8 e0 e-48 e12 e5 o-25 o-13 e5 e-32 e15 e-29 o9999 o7 o48 o-28 e29 o-14 o1 e-55 e-19 o9999 e-48 o-11 e13 e-1 o27 o30 e-1 o27 o30 e-22 e47 e-20 e18 e-9999 o-1 e-56 e30 e-9999 o-15 e4 e28 e-14 o-23 e-22 e-25 o0 e44 e-9999 e19 e53 o5 o12 e5 e-32 e15 e-23 o37 e-13 e-34 o25 e-19 o-32 e-46 o-7 e5 e-32 e15 e-23 o26 o10 o-13 o0 o5 e-39 o14 o-8 o13 o-9999 o53 e5 o31 e-35 e8 o17 e-5 o27 o24 e-59 o-14 o35 e-3 o-5 o-26 o-8 o7 o48 o-28 o-13 e5 e-32 e15 e-23 o47 o-20 o18 o19 o12 o3 o17 e10 o9999 e19 e53 o5 o14 o-5 e38 o-7 e10 e40 e15 e-36 e33 e-49 e0 o-33 o9999 o15 o-18 e9999 e-21 o29 e-19 o26 o5 e-39 o14 o-8 e12 e-11 e53 e9999 o45 o39 o-56 e25 o-10 o13 e-22 e37 o-47 e-35 o9999 o-49 o1 e-9999 o-5 e50 o51 e29 e-32 o-37 o0 e-31 o25 o-47 o-53 o-45 e52 e-42 e-4 e-42 o-15 e15 e-17 o-23 e19 e12 e3 e17 o10 o-15 e44 e5 o-37 o-60 o19 e0 e-51 o24 o53 o9 o-29 e26 o11 o-19 o3 o-19 e-33 e29 e-12 e1 e29 e-6 e45 e11 e13 o-33 e28 o24 e9 o-31 e33 o-31 e57 e13 o-22 o37 o-44 o-13 o-15 o-7 e58 e39 e-45 e-43 e-1 o21 o-22 o37 e-1 e-8 e19 e-9999 e15 o0 e-32 o-5 e-2 e9999 o27 o-22 o37 e-1 e-26 e2 o-33 o-24 o47 e-23 o26 o10 e9999 o-11 e-42 e-13 o-32 o-25 o42 o17 o2 e29 o-9999 o45 o39 o-56 e9999 e13 e-35 e8 o17 e-1 o27 o30 e-5 o27 o24 o-56 e-50 e45 o-41 e-28 o52 o5 o-30 e4 e-29 e-3 o-16 e0 o23 o-18 o1 o32 e-11 o-9999 o24 o18 e29 e12 e12 e-16 o-21 e0 e29 o-14 o-39 e11 e-1 o27 o30 o-22 o37 e-1 e-8 o15 e-57 o25 o9999 o-10 o33 o14 o44 e-21 e12 e28 o-5 o20 e-31 o8 e13 o52 e15 e10 e39 e6 o23 o-22 o-23 o0 e-7 o-15 e16 o20 o31 o34 o16 o37 e31 o-17 e-20 e18 o5 e-33 e24 o26 o29 e-19 e-7 o-32 e33 e25 e-54 e-20 e18 e15 e10 e39 e37 o-19 e-33 e45 e-10 o-49 e21 e-32 e4 e-19 o-32 e-26 e-17 e-14 o9999 e-5 o-2 o5 o-30 e4 e-29 o32 e16 o56 e-24 o45 o11 o13 o-8 o0 o-48 o12 e5 e0 e11 e13 e-4 o9999 o-3 e14 e0 e9 e9999 o17 o-19 e-33 e29 o-17 e3 e-9999 o-1 e21 e-5 o27 o30 e-1 e-3 e-43 e-1 e-31 o31 o-22 e28 e27 e-9999 e-5 o44 o12 e43 o53 o20 o-5 e0 o-43 o-1 e21 e-5 o27 o30 e-11 o22 e-33 o50 e51 e-31 o7 e7 e-9999 o25 e-22 e37 o-1 e-26 e0 o36 e-18 e5 e-32 e15 o-23 e-2 o-39 e37 o-43 o10 e-37 o35 o-20 e5 e-32 e15 e-29 o32 e16 o56 e-12 o-11 o18 e-32 e21 o-1 e27 e30 e-24 o45 o39 o-56 e9999 o-15 e8 o-11 e55 o-9 e5 o-17 e-3 e0 e-42 o-15 e15 o-58 e9999 o19 o53 e5 e14 e-35 e8 o17 o-5 e27 e30 o-1 e5 e22 o8 o9999 e0 e-45 o34 o4 e-41 o-32 o26 o7 e26 e23 e8 e24 e-38 e0 e-5 o50 e51 e12 o-1 e13 e9 e9999 o17 e-32 e-8 e9999 e-49 o15 o10 o39 o6 o53 o9 o-34 o-18 o-38 e-27 o-51 e-6 e-1 o-28 e-7 e-22 o9999 e29 o-19 e26 e22 o2 o5 e-10 e21 e45 e39 e-56 o5 e45 e39 e-56 o5 o45 o39 o-56 e9999 e9 e-1 o27 o30 e-5 o27 o30 o-17 o-14 e9999 o-5 e-2 e35 o-3 e-5 o-8 o-7 o-29 e3 o16 e-1 e-23 e-13 e26 o34 o16 o37 e8 e-35 e8 o17 o-22 o37 o-46 e23 e-35 e8 o17 o-22 o37 e-47 e-1 e-31 o1 o20 o0 o-9999 o29 e-9999 o-32 o-16 o11 o60 o38 e-9 e9 e9999 o17 e6 e5 e-32 e15 e-42 o-15 e15 o-58 e-1 e-15 o-8 e-49 e19 e-19 o-32 e-9 o1 o-13 e9999 e25 e-9999 e2 e2 e-15 o-9999 o1 e-31 e9 e9999 o17 e-26 e13 e-40 e53 e-23 o37 e-47 e-5 o13 o2 o-32 o-12 e29 o-19 e26 e10 o-37 o-39 o-45 o-25 o22 e-43 e9999 e31 o0 e53 e20 e-5 o27 o30 e-5 o27 o30 o-11 e11 o-21 e19 o45 o23 e8 o-5 e50 o51 e29 o-9 e9999 o-3 e18 o-29 e32 e36 o58 o-43 o9999 e11 e60 e38 o-9 e8 o-19 e-33 e33 o10 e-37 o35 o-20 e35 e1 o33 o-11 o5 o0 o39 o-56 e9999 e9 e-5 o19 o-8 o18 e-4 o-3 o14 e-4 e13 o-19 e-33 e33 e22 o-18 e9999 e-7 o58 e45 o-55 o53 o20 o-21 e19 o45 o23 o9 o9999 e17 e-35 o9999 o-11 o4 e-25 o-9999 o-35 o8 e17 o-1 e27 e30 o-12 e-33 o-50 o12 e8 o-19 e-33 e45 o-35 e9999 e-9 o-49 e-33 e-2 o-22 e39 o-11 o5 o3 o49 o-18 e29 o-19 e26 e13 e15 o-20 e-60 o-52 e-26 e6 e11 e6 o33 e-9999 o-45 e-49 o-12 e-35 e8 o17 o-5 e27 e30 e-1 o27 o30 o-1 e27 e30 e-1 o27 o30 e-22 e42 o2 o11 e6 o-6 o-19 e-32 o-42 e-14 o35 o1 o46 o-10 e-35 e8 o17 e-12 o-15 o-9 e-20 e11 o-21 e19 o45 o23 o31 o-22 e28 e27 e15 o-57 e25 e-9999 e-9999 e-5 o50 e51 o53 o9 o-29 e-6 e50 o46 e-1 e-39 e-7 e-1 o0 e-33 o24 e-56 o9999 e-11 o-5 e38 o-7 e34 e16 e37 e13 o-22 o37 e-47 o-38 e0 e-24 o-9999 e-5 o19 o-10 e-9 e15 e6 e-14 e-4 e-5 o19 o32 o53 o-33 o1 e-27 o-32 o3 o1 o0 o11 o13 e-13 o-32 o-25 e1 o-29 o-3 e-16 o0 o29 o-6 o-50 o-12 o-48 e29 o-14 o1 e-55 e-35 e8 o17 e-5 o27 o30 e-1 o10 e-19 o26 e11 e9999 e-8 o-10 o-3 o23 o-22 o-23 o0 e-8 e5 e-32 e15 o-29 e-6 e50 o46 e6 o-9 o5 o0 o39 o-56 e9999 o-5 e50 o51 e12 e9999 e29 e30 o11 o60 o38 e-9 e8 o-19 e-33 e54 e10 o-29 e9999 e-7 e-12 o-10 o-32 e-4 o-23 e37 o-1 e-8 e-9999 o-15 e-10 e8 o-31 e9 e9999 o17 o-19 e-33 e29 e-5 o7 e-19 o-32 e-15 e31 e-22 o28 o27 e29 o-14 o-39 o11 o-5 e27 e30 e-1 o27 o30 e-1 o19 o-10 e-9 e-6 e-19 o-32 e-9 o1 e29 e13 o6 e10 e-8 e5 e-32 e15 e-23 o37 o-46 e-11 o0 o5 e-17 o-3 o0 e-23 o37 e-1 e-35 e49 o33 o-56 e9999 e-19 o-33 o29 o-1 e25 o-19 e-33 e29 e-5 o25 e-5 o50 e51 e60 o-7 e9999 o-31 e9999 o-19 e-33 e29 o-22 o26 o10 o0 o49 o19 o53 o15 o-9999 e57 o-19 e-33 e45 e-5 o38 e-7 o12 o1 e-32 e3 e13 e-19 o-32 e-46 o-7 e35 e0 o0 e0 e11 e9999 e6 e15 e31 e-22 o55 o-40 o53 o9 o-34 o-18 o-38 e-27 o-51 e29 o2 o13 e-22 e12 o-24 e25 o-53 o45 e-41 e11 o33 o20 o34 o16 o37 e31 o-31 e9 e9999 o17 e-35 e8 o17 e-1 o27 o24 e-59 o-14 e35 o-48 e9999 e9999 o-5 e46 o57 e-4 e12 e9999 e29 e35 e12 o-24 e25 o-53 o45 e-41 o-28 e52 o-13 e5 e-30 o4 e-34 o-1 o-3 e26 o34 o16 o37 e8 e13 o-5 e38 o-7 e34 e16 e37 e13 e-5 o19 o-10 e-9 o29 e-14 e1 o-55 o-5 e38 o-7 o10 o40 o15 o-36 e8 o-19 e-33 e45 o-1 e-56 e30 e-9999 o-33 o1 e-27 e-59 e29 e3 o-35 e-8 e0 o-29 o-3 e-16 o0 o34 o16 o37 o26 e-7 e9999 e34 e-3 o-21 e19 o45 o23 o9 o9999 e17 e-35 o9999 o-11 o4 e-25 o19 o-9999 o15 e0 e13 e-19 o-32 e-26 o-22 o37 e-1 o-35 o8 o-41 e38 e-5 o27 o30 e-5 o19 o-10 e-9 o-7 e-16 o33 o0 o1 o-19 e-33 e45 e-35 e8 o17 e-1 o27 o30 o-1 e27 o-31 e28 e0 e-12 e1 o-39 o51 e7 e11 e5 e26 e34 e1 e-14 o2 e-19 o-5 e38 o-7 o29 o-34 o-30 e4 o53 o45 o11 o13 e-5 o44 e-13 o-37 o-4 o35 e-3 o-5 e-8 e19 e-9999 e15 o0 o9999 o5 o-32 o15 o-29 o-3 o-43 o-17 e5 e-32 e15 e-29 o32 e16 o56 e-12 e1 e29 e-6 e45 e11 e13 o-22 e14 o-12 e-37 e20 o8 e-5 o30 e-47 e-7 o23 e-23 o26 e-35 o43 o53 o20 o-22 o37 e-1 e-7 e-12 o-10 o-32 e-4 o-29 e9999 e7 e39 o-3 o-21 e19 o45 o23 e13 o-22 o37 o-44 o-33 e24 o-56 e9999 e0 e-5 o27 o24 e-41 o9999 o53 o9 e-12 e1 o-39 o51 o-5 e50 o51 e23 o-33 e50 o51 o-31 o31 o-22 e28 e27 e1 e28 e34 e9999 e7 o-5 e27 e23 o-5 e-50 e24 e24 e9 e-9999 e-1 o27 o30 e-1 o27 o30 e-5 o27 o30 e-22 e37 e-46 o-2 e40 o-22 o37 e-1 o-26 o2 e0 e26 o45 o-34 e-3 o53 o20 e-5 o27 o30 o-1 e27 e30 o-5 e18 o1 o0 o11 o13 e-33 e-2 o-22 e39 o-21 e19 o45 o23 o33 e-34 o-34 o14 o-5 e29 o-14 o-39 o1 o3 o45 o16 e21 e-19 o-32 e-26 e-1 o27 o30 o-11 o1 o0 e-41 o-22 o-8 e29 e6 e-30 o36 o-5 e50 o51 o29 e-21 o32 o-4 o13 o-5 e27 e30 e-5 o19 o-10 e-9 e5 o-45 e-23 o37 e-47 o-1 o-23 o-13 o26 o29 e-19 e-7 o-32 o5 e-39 o14 o-8 o13 o-9999 o53 e5 e-7 e-6 e-19 o-32 e-9 o1 o26 o36 o8 e-3 o25 o-60 o5 o-34 e-12 e-11 e-23 o37 e-47 e9999 e29 o-14 o1 e-55 e9999 e1 e32 o2 e1 o29 e-19 o26 o5 e-39 o38 o22 e-32 o45 o11 o13 o-8 o0 o-48 o12 e11 o-22 o37 o-46 e-11 o0 e29 o-14 o-39 e11 e-5 o27 o30 e-5 o27 o30 e-5 o27 e-31 o28 o0 o-29 o-3 e-16 o0 o34 o16 o37 e8 e-19 o-32 e-26 e-17 e-14 o9999 e-5 o-2 e-9999 o-5 e50 o51 o12 o18 o13 o23 o20 e-32 e-8 o-7 o18 e-10 e-35 o9999 o-49 o1 e5 e-32 e15 e-23 o37 e-47 e6 e5 o-11 e15 e9999 e-23 o37 e-1 e-8 e-9999 e-19 o-32 e-26 o-22 o37 e-47 e-19 o-25 o9 o-9 e-1 o-26 o13 o-40 o30 o9999 o53 o9 e-42 o-15 e15 o-58 e-5 o23 o13 o-32 o7 o5 o-30 e4 o-29 o-3 e-16 o0 e34 e16 e37 e8 e-35 e8 o17 e-1 o27 o30 o-22 o37 o6 o31 e8 o-15 e-9999 e1 o-31 e9 e9999 o17 o-5 e38 o-7 e29 e-6 o-49 e23 o14 o1 o39 o12 e9999 e13 e23 e-43 e-13 o-39 e-6 o-19 e-33 e45 o9999 e24 e24 e9 e-9999 o-5 e27 e30 o-22 o37 e-47 e-1 e-45 o8 e13 o52 e5 o-13 e7 o18 e-42 o-15 e15 o-58 e-5 o38 e-7 e34 e1 e-14 o2 e-19 e-35 e8 o17 e-1 o27 o24 e-25 o0 o45 o39 o-56 e9999 e-5 o30 e-8 o-32 e34 e33 e19 o-3 e3 o53 o20 e-3 o9999 e5 e0 e11 e13 e-33 o28 e24 o9 o-33 e-14 e-46 e-14 o-22 o37 e-1 o-11 o-1 o45 o39 o-56 e9999 e-35 e8 o17 e-24 e45 o-41 e-28 o52 o35 e-3 o-5 e-8 e5 e-32 e15 e-23 o37 e-47 e-5 o13 o2 o-32 o-12 e53 e33 e-47 e26 e17 o5 o-32 o15 o-29 e-6 e50 o46 e-19 o-32 e-42 o-14 e5 e-30 o4 o-29 o-3 e-16 o0 o29 o-26 o9999 e-35 o1 o-13 o-13 e5 e-32 e15 o-12 o-56 o46 o9999 o-19 e-33 e29 e-22 e26 e10 o9999 o-1 e-56 e30 e-9999 o-33 o1 e-27 e-59 o60 e-35 o-16 e-29 e15 e-18 e20 o39 e2 e5 o-13 e7 o18 e-42 o-15 e15 o-58 e-32 e19 e-7 e12 e9999 o53 o20 o-21 e19 o45 o23 e13 o-22 o37 e-47 e-15 o16 o3 o26 o21 e-1 e13 o34 e-9 o-38 e0 e-24 o-9999 o-22 o37 o-44 o-33 o1 e-21 e59 e4 e29 o-14 o-15 e-9999 o19 o53 e5 e14 e-19 o-32 e-26 e-1 o10 e-19 o26 o13 o53 e5 e13 e-6 o31 o-8 e-9999 o-10 e-9999 o-19 e-33 e45 o-15 e-9999 e1 e2 e-2 e-9999 o-19 e-33 e45 o-35 o8 e17 e-5 e-3 e-43 o36"

if TileA1[-1:]!=" ": TileA1+=" "
if TileC!="" and TileC[-1:]!=" ": TileC+=" "
if elbow_move!="" and elbow_move[-1:]!=" ": elbow_move+=" "

recipes=("All_41complete_lib:" + TileA1 + elbow_move + TileC + TileA2D1D2).rstrip()
numgp= recipes.count(" ")+1

g.setrule("LifeHistory")
recipelist=recipes.split("\n")
locx,locy,locxstep=0,0,1000
firstrecipe=recipelist[0].split(":")
name="recipe"
if len(firstrecipe)==2: name=firstrecipe[0]
g.new(name)
for item in recipelist:
    rparts=item.split(":")

    # The target pattern is customized and will probably need to change with each new recipe
    g.putcells(g.parse("78.A9.A$77.A9.A$77.3A7.3A3$79.2E$79.2E67$3.4B$4.4B$5.4B$6.4B$B6.4B$2B6.4B$3B2.2E2.4B$4B.2E3.3B$.4B6.2B$2.4B6.B$3.4B$4.4B$5.4B!",locx-5,locy-78))

    recipestr = rparts[1].replace('\n',' ').replace('\r',' ').replace(' ','').replace('E','e').replace('O','o')
    recipestr=recipestr.replace(',','e').replace(';','o').replace(' ','e').replace("ee",'e').replace("eo",'o')
    rlist = recipestr.replace('o','e').split("e")[1:]
    parities = recipestr.translate(maketrans("",""),"0123456789-")+"~"
    if parities.replace('e','').replace('o','')!="~":
      g.exit("Bad format -- parity check failed for " + recipestr+":"+parities.replace('e','').replace('o',''))
    parity=0
    if parities[0]!="e":
      g.note("Recipe not normalized -- should start with 'e'.")
      parity=1
    else:
      parity=0 
    loc=10
    count=0
    for delta in rlist:
      count+=1
      if count==3:
        g.fit()
        g.update()
      try:
        d=int(delta)
      except:
        continue
      if abs(d)<999:
        offset, phase = d//4, d%4
        g.putcells(g.parse(phaselist[parity]),loc-3+locx,loc+3+locy) #-6 lane
        g.putcells(g.parse(phaselist[parity+phase]),loc+2+offset+locx,loc-2+offset+locy) #+4 lane
      else: # singleton glider
        if d<0:
          g.putcells(g.parse(phaselist[parity]),loc+2+locx,loc-2+locy) #+4 lane
        else:
          g.putcells(g.parse(phaselist[parity]),loc-3+locx,loc+3+locy) #-6 lane
      loc+=180
      parities=parities[1:]
      parity=1 if parities[0]=="o" else 0
    locx+=locxstep
g.setstep(8)
g.show(str(numgp) + " glider pairs placed.")

# 26 o-22 o37 e-47 e-19 o-25 o9 o-9 e-1 o-26 o13 o-40 o30 o9999
Unfortunately sparks from one of the new recipes hit an intermediate target again. (Delete the two gliders in the NE to see the conflict -- that will leave the hand block in the correct location.)

I'm tempted to just try recompiling at different depths until a gp-recipe just happens to get past the narrow spot... instead of thinking about how to adjust the compiler to deal with this kind of thing properly, which seems a lot more like work.

EDIT: A depth-7 search completed easily overnight, saving just 8 more gliders, down to 4391:

Code: Select all

e-9999 e-1 e-23 e-13 e26 o34 o6 o6 o39 e-29 e34 e15 e-4 e3 e1 e0 e39 e-56 o9999 o-32 o-8 o9999 o-49 e15 e-18 e20 o39 e2 e15 o-57 e25 e-9999 e-9999 o-5 e50 o51 o53 o9 e-23 o37 o-46 e-11 o-9999 o-5 e38 o-7 o23 o-26 o-18 o9999 e-42 o-15 e15 o-58 e-19 o-32 e-42 o-14 e5 o-11 e15 e9999 e-42 o-15 e15 o-58 e-19 o-32 e-46 o-7 e15 e10 e39 e37 o-32 e-47 o-32 e-4 o1 e-9999 o-19 e-33 e29 e-22 e47 e-20 e18 o15 o-18 e9999 e-21 o53 o36 o18 o1 o39 o12 o9999 o33 o24 e53 e36 e18 e5 o-11 e9 e20 e-23 o37 e-1 o-13 o22 o-18 o1 o32 o-11 e-9999 e24 e50 o-30 o5 o0 o39 o-56 e9999 e9 e-1 o27 o30 o-21 e-4 e35 e26 e29 e-6 o-49 e23 o14 e35 o-48 e9999 e9999 e-35 o9999 o-49 o1 o35 o0 e0 o0 o11 o0 o14 o37 o1 o-11 e-9999 e24 e18 o29 e22 e8 e24 e-38 e0 o-19 e-33 e45 o-5 e50 o51 e34 e15 e-4 o9999 e-26 e9999 o19 o53 e5 e14 e-35 o9999 o-49 o1 o11 o60 o38 e-9 e9 e9999 o17 o-24 o-24 e-36 e22 o0 o10 o40 o15 o-36 o9 e9999 o36 e10 e28 e-19 o-32 e-46 o-7 e5 e-32 e15 e-60 e52 o-9999 o-45 e12 e1 o-32 e0 e7 e-9999 e-19 o-32 o-33 o-40 e9 e9999 o17 e-35 o9999 o-49 o1 o15 e-51 o9999 o53 o20 e-5 o27 o30 o-1 e27 e24 o-59 e-14 e5 e-32 e15 e-23 o37 e-1 e-8 e35 o-1 o-19 o-1 e-33 e-2 o-22 e39 e-16 o-9999 o5 o6 o9 o-9999 o29 e-19 o26 o13 o-9999 o-9999 o53 e5 e-19 o-32 e-26 e-5 o27 e-31 o28 o0 e-42 o-15 e15 o-58 e-35 e8 o17 o-17 o-34 e1 o-44 e9999 o-19 e-32 o-9 e1 o-9999 e-19 o-33 o45 o9999 e19 e53 o5 o14 o-5 e38 o-7 e10 e40 e15 e-36 e33 e-49 e0 o-33 o0 e-26 e0 o36 e-18 e-6 e-1 e-23 e-13 e26 o34 o16 o37 o8 o-32 o19 o-9999 o-8 e-5 o38 e-40 o13 e53 e20 o-11 o5 o0 o11 o13 e-33 o24 e-56 o9999 o4 o-15 e-9999 e1 o-31 e31 o-17 e-20 e18 e5 e-32 e15 o-29 e-6 e50 o46 e-1 o-32 e7 o29 o19 e15 e-18 e20 o39 e2 o15 o-16 e22 o15 o-22 o37 e-47 o-35 e9999 e-11 e4 o-25 o-13 e35 e1 e46 e-12 e9999 o45 o11 o13 e-8 e0 e-48 e12 o1 e-19 e-19 o49 e29 o-14 o1 e-55 e-19 o-32 e-26 o-5 e27 e24 o-59 e-12 e-1 e-33 o8 o19 o0 e-13 o9999 o-32 o19 o-32 o-8 e-7 e18 o-10 o-19 e-33 e45 e-19 o-32 e-22 e20 e16 o53 o36 o18 e29 o-14 e-2 e0 e-18 e-16 e-13 o-32 o-25 o42 o17 o2 e29 o-9999 o45 o39 o-56 e9999 e13 e-35 e8 o17 e-1 o27 o30 e-5 o27 o24 o-38 e-19 o29 e-19 o26 e13 e53 o5 o13 o-6 o33 o-49 o0 e-33 e-1 o-19 o-33 o-55 e45 e11 e13 e-8 e0 e-48 e12 e1 o-25 e29 o-14 o-39 e11 e-1 o27 o30 o-22 o37 e-1 o-26 o2 e0 e26 o45 o39 o-56 e9999 o6 o-9999 o-1 e-32 o7 e29 e19 e35 o-3 e-5 e-26 e0 o36 e-18 o35 e-3 o-5 e-8 e35 e-39 e3 e1 e-5 o27 o30 o-22 o37 e-1 o-8 o-6 o-5 e46 o57 e-4 o60 e-35 o-16 e-29 o19 o53 e5 e12 e15 e10 e39 e37 o-19 e-33 e45 e-10 o-49 e21 e-32 e4 e-19 o-32 e-9 o1 o15 o-4 o-12 e-5 e16 e34 e16 e37 o9 e9999 o51 o-14 e4 o-19 e-33 e33 e15 o-13 o31 o-42 e-19 o-33 o45 o13 e-19 o-33 o45 e9 e-1 o19 o-10 e-9 e-9999 o-5 e38 o-7 o34 o16 o37 e8 e-19 o-32 e-26 o-5 e27 e30 o-5 e27 e-50 e37 e25 e-33 e4 o20 e-7 e-54 e-5 o27 o30 e-5 o27 o29 o5 o-21 e19 o45 o23 o11 o9999 o6 o15 e11 e9999 e6 e15 o13 e-22 e37 o-1 e-26 e0 o36 e-18 e29 o-14 o-39 o3 o-9999 o-1 e27 e30 e-1 o27 o30 o-17 o9999 o9999 e4 o-17 o-14 e9999 o-5 e-2 o15 e-57 o25 e6 e-32 o9 o9999 e17 e13 o-19 e-33 e33 e15 o-13 o31 o-42 e-19 o-33 o45 o-15 e44 e5 o-37 e-23 o37 e-1 e-8 o15 o10 o30 o-12 e-5 o-23 e37 o-13 e-13 e29 o-14 o-39 o1 o3 o49 e-5 e-9999 e11 e5 e26 e23 e8 e24 e-38 e0 e-5 o50 e51 e12 e18 e13 e23 e20 e13 e-19 o-32 e-9 o1 o5 o-36 o9999 e-30 o-29 e0 e-4 e-37 e0 e-35 o9999 o-49 o1 e5 e-32 e15 o-23 e37 o-1 e-7 e-12 o-16 o0 o0 o22 e8 e-1 e-45 o33 e45 e11 e13 o-33 o1 e-27 e-59 o29 o-32 o2 e-13 o0 o-22 o37 e-1 e-8 o19 o38 o-18 o-9 e-15 o-9999 o1 e-31 o31 o-8 e-10 e-3 e34 e55 e-31 e26 o34 o16 o37 e8 e-35 e8 o17 o-22 o37 o-46 e23 e-35 e8 o17 o-22 o37 e-1 e-26 e-9999 o15 o-18 e9999 e-21 o29 e-19 o26 o12 e-24 o25 e-53 e45 e-46 e-6 o-55 e29 e-6 o-49 e23 e11 o12 e-24 o8 o-2 o-12 e53 e20 e-5 o10 e-19 o26 e33 e24 o29 e-19 o43 e0 o-4 e-15 o-9999 o1 e-31 e9 e9999 o17 e-26 e13 e-40 e53 e-23 o37 e-47 e-5 o13 o2 o-32 o-12 e29 o-19 e26 e10 o-37 o-39 o-45 o-25 o22 e-43 e9999 e31 o0 e53 e20 e-5 o27 o30 e-5 o27 o30 o-11 e11 o-21 e19 o45 o23 e7 o18 o-11 e-24 e28 e5 e-18 o-19 e18 o-33 o1 e-27 e-59 e34 e60 o45 o-44 e5 o-45 o-29 o-3 e-16 o0 o29 e-19 o26 o9999 e-29 o3 e16 e-19 o-25 o9 o-9 e-1 o-15 e-10 e8 o-31 e8 o-19 e-33 e45 e13 e-1 e-43 o9 o56 o0 e-9999 o-9999 o29 e-11 e-33 o18 o53 o20 o-21 e19 o45 o23 o9 o9999 e17 e-35 o9999 o-11 o4 e-25 o-9999 o-35 o8 e17 o-1 e27 e30 o-12 e-33 o-50 o12 e8 o-19 e-33 e45 o-35 e9999 e-9 o-49 e-33 e-2 o-22 e39 o-11 o5 o3 o49 o-18 e29 o-19 e26 e13 e15 o-20 e-60 o-52 e-26 e6 e11 e6 o33 e-9999 o-45 e-49 o-12 e-35 e8 o17 o-5 e27 e30 e-1 o27 o30 o-1 e27 e30 e-1 o27 o30 e-22 e42 o2 o11 e6 o-6 o-19 e-32 o-42 e-12 e-5 o50 e51 e60 o-21 e27 e-6 o-5 o5 e-17 o-3 o0 e-42 o-29 e-14 e31 o-5 e26 e7 o26 o10 o40 o15 o-36 o31 o-34 e9999 e-5 o25 e-23 o37 e-47 e9999 e15 e10 e39 e37 o-10 e-21 o0 o-32 o-29 e26 o11 o-19 o3 o-19 e-33 e45 o6 o5 e-13 o7 e18 e-23 o37 e-47 o-38 e0 e-24 o-9999 e-5 o19 o-10 e-9 e15 e6 e-14 e-4 e-5 o19 o32 o53 o-33 o1 e-27 o-32 o3 o1 o0 o11 o13 e-13 o9999 o9999 o-32 e5 e-32 e15 o-12 o-56 o50 o23 o9999 o-19 e-33 e45 e-5 o44 o12 e43 e12 e1 o-32 o3 e6 e5 e-30 o4 o-12 o-56 o46 o9999 e13 o-19 e-33 e45 o-5 e38 o-7 e29 e-6 o-49 e23 e11 e33 e-1 e9999 e-49 e29 o-17 o9999 o9999 e4 e-22 e37 o-47 e6 o35 e-3 o-5 e-8 e15 e-4 e-12 o-5 o16 o34 o16 o37 e9 e9999 o17 o-19 e-32 e-33 e-40 e8 o-15 e-10 e8 o-31 e9 e9999 o17 o-19 e-33 e29 e-5 o7 e-19 o-32 e-15 e31 e-22 o28 o27 e29 o-14 o-39 o11 o-5 e27 e30 e-1 o27 o30 e-1 o19 o-10 e-9 e-6 e-19 o-32 e-9 o1 e29 e13 o6 e10 e-8 e5 e-32 e15 e-23 o37 o-46 e-11 o0 o5 e-17 o-3 o0 e-23 o37 e-47 e-26 e13 e-40 e23 e9999 o-12 o1 e-39 e51 o-15 e8 o-11 e55 o-9 o35 o1 o46 o-10 o-5 e38 o-7 o23 o-22 o-23 o0 e-8 e5 e-32 e15 o-29 e0 e-4 e-37 e0 o-19 e-33 e45 e-5 o38 e-7 o12 o1 e-32 e3 e13 e-19 o-32 e-46 o-7 e35 e0 o0 e0 o9 e9999 o51 o-14 e4 e-19 o-32 e-26 o-22 o37 e-1 o-13 o12 o28 e-5 e20 o-31 e8 o13 e52 o-9999 o-35 e9999 e-49 e1 o19 o-9999 o29 o-9999 e12 o19 o30 o-24 o0 e9 e9999 o17 e-35 e8 o17 e-1 o27 o24 o-38 e-19 o29 e-19 o26 o11 o9999 e-17 o-20 o18 o9999 o25 o-9999 o2 o2 e-19 o-33 o45 e-23 e-31 e-45 o59 e-23 o37 e-1 e-26 e-9999 o19 o53 e5 e12 o19 o53 e5 e14 o-19 e-33 e45 o6 o35 e-48 o9999 o9999 e-19 o-32 e-9 o1 o29 e-14 e1 o-55 o-5 e38 o-7 o10 o40 o15 o-36 e8 o-19 e-33 e45 o-1 e-56 e30 e-9999 o-33 o1 e-27 e-59 e29 e3 o-35 e-8 e0 o-29 o-3 e-16 o0 o34 o16 o37 e8 e9999 e5 o-33 o24 e26 o34 o16 o37 e26 e7 o26 o29 o-6 e-49 o23 e14 e35 o-1 o-27 e3 e9 e9999 o15 e-19 o-32 e-26 o-22 o37 e-1 o-35 o8 o-41 e38 e-5 o27 o30 e-5 o19 o-10 e-9 o-7 e-16 o33 o0 o1 o-19 e-33 e45 e-35 e8 o17 e-1 o27 o30 o-1 e27 o-31 e28 e0 e-12 e1 o-39 o51 e7 e11 e5 e26 e34 e1 e-14 o2 e-19 o-5 e38 o-7 o29 o-34 o-30 e4 o53 o45 o11 o13 e-5 o44 e-13 o-37 o-4 o35 e-3 o-5 e-8 e19 e-9999 e15 o0 o9999 o5 o-32 o15 o-29 o-3 o-43 o-17 e5 e-32 e15 e-29 o32 e16 o56 e-12 e1 e29 e-6 e45 e11 e13 o-22 e14 o-12 e-37 e20 o8 e-5 o30 e-47 e-7 o23 e-23 o26 e-35 o43 o53 o20 o-22 o37 e-1 e-7 e-12 o-10 o-32 e-4 o-29 e9999 e7 e39 o-3 o-21 e19 o45 o23 e13 o-22 o37 o-44 o-33 e24 o-56 e9999 e0 e-5 o27 o24 e-41 o9999 o53 o9 e-12 e1 o-39 o51 o-5 e50 o51 e23 o-33 e50 o51 o-31 o31 e-17 o-20 o18 o5 o-44 o-14 e-52 o9999 e-15 o18 o-20 e-25 o15 e24 e24 e9 e-9999 e-1 o27 o30 e-1 o27 o30 e-5 o27 o30 e-22 e37 e-46 o-2 e40 o-22 o37 e-1 e-8 o5 o-32 o-9999 e-1 e-1 e-23 o37 e-47 e9999 o19 o53 e5 o5 e30 o9 o9999 e17 o-19 e-33 e45 e6 e15 e10 e39 e15 e21 o-22 o37 e-47 e-35 o9999 o-49 o1 e5 e-32 e15 o-29 e-6 e50 o46 o-30 o-12 o6 o9999 o34 o23 o-26 o-18 o9999 e-42 o-15 e15 o-58 o-5 e50 o51 o34 o55 o-31 o26 e23 o-33 e-9999 e9 e9999 o17 e-5 o38 e-7 o34 o15 o20 o37 e1 o-22 o37 e-47 e9999 e5 o-13 e7 o18 o-29 e32 o3 e15 o-35 e9999 e-49 e1 e24 e24 o-16 e30 e-17 e-14 o9999 e-5 o25 o-42 o-42 e-15 o15 e44 o-13 o-15 o-6 o32 e-7 o-15 o-9999 e35 o16 o-1 e-46 o-1 e49 o-19 e-60 e52 o-9999 o-45 o29 e-19 e-7 o-32 o10 e-37 o35 o-16 e7 e11 e5 e26 e29 e-32 o-37 o0 e-8 e5 e-32 e15 o-23 e47 e-20 e18 e15 e-18 e20 o39 e2 e5 e-30 o4 e-12 e-34 o27 o11 e18 o-5 e30 o-47 o-7 o34 o16 o25 e-9 o23 o-23 e47 e-20 e18 o19 o53 e5 e12 o5 o-32 e-24 o9 o48 o1 o39 o12 o9999 o10 e-29 o9999 o-8 e5 o-17 e-3 e0 e-42 o-15 e15 e-33 e15 e5 e-32 e15 e-23 o37 e-47 e6 e5 o-11 e15 e9999 e-23 o37 e-1 e-8 e-9999 e-19 o-32 e-26 o-22 o37 e-47 e-19 o-25 o9 o-9 e-1 o-26 o13 o-40 o30 o9999 o53 o9 e-42 o-15 e15 o-58 e-5 o23 o13 o-32 o7 o5 o-30 e4 o-29 o-3 e-16 o0 e34 e16 e37 e8 e-35 e8 o17 e-1 o27 o30 o-22 o37 o6 o31 e8 o-15 e-9999 e1 o-31 e9 e9999 o17 o-5 e38 o-7 e29 e-6 o-49 e23 o14 o1 o39 o12 e9999 e13 e23 e-43 e-13 o-39 e-6 o-19 e-33 e45 o9999 e24 e24 e9 e-9999 o-5 e27 e30 o-22 o37 e-47 e-1 e-45 o8 e13 o52 e5 o-13 e7 o18 e-42 o-15 e15 o-58 e-5 o38 e-7 e34 e1 e-14 o2 e-19 e-35 e8 o17 e-5 o10 e-19 o26 o9999 e-29 o3 e16 o-1 o-31 e6 e-36 e-9999 o-33 o1 e-27 e-59 o60 e-35 o-16 e-29 o5 e-11 o9 o20 o-23 e37 o-41 o24 e8 o-5 e50 o51 e34 e9 e1 o-50 e-4 o45 o39 o-56 e9999 e-35 e8 o17 e-24 e45 o-41 e-28 o52 o35 e-3 o-5 e-8 e5 e-32 e15 e-23 o37 e-47 e-5 o13 o2 o-32 o-12 e53 e33 e-47 e26 e17 o5 o-32 o15 o-29 e-6 e50 o46 e-19 o-32 e-42 o-14 e5 e-30 o4 o-29 o-3 e-16 o0 o29 o-26 o9999 e-35 o1 o-13 o-13 e5 e-32 e15 o-12 o-56 o46 o9999 o-19 e-33 e29 e-22 e26 e10 o9999 o-1 e-56 e30 e-9999 o-33 o1 e-27 e-59 o60 e-35 o-16 e-29 e15 e-18 e20 o39 e2 e35 o-48 e9999 e9999 e-35 o9999 o-49 o1 e5 o-33 o24 e26 o34 o16 o37 e8 e-19 o-32 o9999 e32 e16 o34 o16 o37 o9 o9999 e17 e6 o9999 o9999 e-6 o-32 o38 o10 e-37 o35 o-9999 e-35 e8 o17 e-1 o27 o30 e-24 o45 o39 o-56 e5 e45 e-46 e-6 o-55 o34 o3 e9999 e15 o-30 e-5 o27 o30 o-1 e25 e-19 o-32 e-9 o1 e35 e1 e46 e-10 o-5 e38 o-7 e10 e40 e15 e-36 o33 o14 o28 e15 e-12 e1 e-28 e7 o26 e29 o-19 o-7 e-32 o5 e-39 o10 o40 e-1 e-19 o-32 e-26 e-1 o27 e-55 o-9999 e-37 e1 e0 e39 e-56 o9999 o-32 o-8 o9999 o-49 e15 e-18 e20 o39 e2 e15 o-57 e25 e-9999 e-9999 o-5 e50 o51 o53 o9 e-23 o37 o-46 e-11 o-9999 o-5 e38 o-7 o23 o-26 o-18 o9999 e-42 o-15 e15 o-58 e-19 o-32 e-42 o-14 e5 o-11 e15 e9999 e-42 o-15 e15 o-58 e-19 o-32 e-46 o-7 e15 e10 e39 e37 o-32 e-47 o-32 e-4 o1 e-9999 o-19 e-33 e29 e-22 e47 e-20 e18 o15 o-18 e9999 e-21 o53 o36 o18 o1 o39 o12 o9999 o33 o24 e53 e36 e18 e5 o-11 e9 e20 e-23 o37 e-1 o-13 o22 o-18 o1 o32 o-11 e-9999 e24 e50 o-30 o5 o0 o39 o-56 e9999 e9 e-1 o27 o30 o-21 e-4 e35 e26 e29 e-6 o-49 e23 o14 e35 o-48 e9999 e9999 e-35 o9999 o-49 o1 o35 o0 e0 o0 o11 o0 o14 o37 o1 o-11 e-9999 e24 e18 o29 e22 e8 e24 e-38 e0 o-19 e-33 e45 o-5 e50 o51 e34 e15 e-4 o9999 e-26 e9999 o19 o53 e5 e14 e-35 o9999 o-49 o1 o11 o60 o38 e-9 e9 e9999 o17 o-24 o-24 e-36 e22 o0 o10 o40 o15 o-36 o9 e9999 o36 e10 e28 e-19 o-32 e-46 o-7 e5 e-32 e15 e-60 e52 o-9999 o-45 e12 e1 o-32 e0 e7 e-9999 e-19 o-32 o-33 o-40 e9 e9999 o17 e-35 o9999 o-49 o1 o15 e-51 o9999 o53 o20 e-5 o27 o30 o-1 e27 e24 o-59 e-14 e5 e-32 e15 e-23 o37 e-1 e-8 e35 o-1 o-19 o-1 e-33 e-2 o-22 e39 e-16 o-9999 o5 o6 o9 o-9999 o29 e-19 o26 o13 o-9999 o-9999 o53 e5 e-19 o-32 e-26 e-5 o27 e-31 o28 o0 e-42 o-15 e15 o-58 e-35 e8 o17 o-17 o-34 e1 o-44 e9999 o-19 e-32 o-9 e1 o-9999 e-19 o-33 o45 o9999 e19 e53 o5 o14 o-5 e38 o-7 e10 e40 e15 e-36 e33 e-49 e0 o-33 o0 e-26 e0 o36 e-18 e-6 e-1 e-23 e-13 e26 o34 o16 o37 o8 o-32 o19 o-9999 o-8 e-5 o38 e-40 o13 e53 e20 o-11 o5 o0 o11 o13 e-33 o24 e-56 o9999 o4 o-15 e-9999 e1 o-31 e31 o-17 e-20 e18 e5 e-32 e15 o-29 e-6 e50 o46 e-1 o-32 e7 o29 o19 e15 e-18 e20 o39 e2 o15 o-16 e22 o15 o-22 o37 e-47 o-35 e9999 e-11 e4 o-25 o-13 e35 e1 e46 e-12 e9999 o45 o11 o13 e-8 e0 e-48 e12 o1 e-19 e-19 o49 e29 o-14 o1 e-55 e-19 o-32 e-26 o-5 e27 e24 o-59 e-12 e-1 e-33 o8 o19 o0 e-13 o9999 o-32 o19 o-32 o-8 e-7 e18 o-10 o-19 e-33 e45 e-19 o-32 e-22 e20 e16 o53 o36 o18 e29 o-14 e-2 e0 e-18 e-16 e-13 o-32 o-25 o42 o17 o2 e29 o-9999 o45 o39 o-56 e9999 e13 e-35 e8 o17 e-1 o27 o30 e-5 o27 o24 o-38 e-19 o29 e-19 o26 e13 e53 o5 o13 o-6 o33 o-49 o0 e-33 e-1 o-19 o-33 o-55 e45 e11 e13 e-8 e0 e-48 e12 e1 o-25 e29 o-14 o-39 e11 e-1 o27 o30 o-22 o37 e-1 o-26 o2 e0 e26 o45 o39 o-56 e9999 o6 o-9999 o-1 e-32 o7 e29 e19 e35 o-3 e-5 e-26 e0 o36 e-18 o35 e-3 o-5 e-8 e35 e-39 e3 e1 e-5 o27 o30 o-22 o37 e-1 o-8 o-6 o-5 e46 o57 e-4 o60 e-35 o-16 e-29 o19 o53 e5 e12 e15 e10 e39 e37 o-19 e-33 e45 e-10 o-49 e21 e-32 e4 e-19 o-32 e-9 o1 o15 o-4 o-12 e-5 e16 e34 e16 e37 o9 e9999 o51 o-14 e4 o-19 e-33 e33 e15 o-13 o31 o-42 e-19 o-33 o45 o13 e-19 o-33 o45 e9 e-1 o19 o-10 e-9 e-9999 o-5 e38 o-7 o34 o16 o37 e8 e-19 o-32 e-26 o-5 e27 e30 o-5 e27 e-50 e37 e25 e-33 e4 o20 e-7 e-54 e-5 o27 o30 e-5 o27 o29 o5 o-21 e19 o45 o23 o11 o9999 o6 o15 e11 e9999 e6 e15 o13 e-22 e37 o-1 e-26 e0 o36 e-18 e29 o-14 o-39 o3 o-9999 o-1 e27 e30 e-1 o27 o30 o-17 o9999 o9999 e4 o-17 o-14 e9999 o-5 e-2 o15 e-57 o25 e6 e-32 o9 o9999 e17 e13 o-19 e-33 e33 e15 o-13 o31 o-42 e-19 o-33 o45 o-15 e44 e5 o-37 e-23 o37 e-1 e-8 o15 o10 o30 o-12 e-5 o-23 e37 o-13 e-13 e29 o-14 o-39 o1 o3 o49 e-5 e-9999 e11 e5 e26 e23 e8 e24 e-38 e0 e-5 o50 e51 e12 e18 e13 e23 e20 e13 e-19 o-32 e-9 o1 o5 o-36 o9999 e-30 o-29 e0 e-4 e-37 e0 e-35 o9999 o-49 o1 e5 e-32 e15 o-23 e37 o-1 e-7 e-12 o-16 o0 o0 o22 e8 e-1 e-45 o33 e45 e11 e13 o-33 o1 e-27 e-59 o29 o-32 o2 e-13 o0 o-22 o37 e-1 e-8 o19 o38 o-18 o-9 e-15 o-9999 o1 e-31 o31 o-8 e-10 e-3 e34 e55 e-31 e26 o34 o16 o37 e8 e-35 e8 o17 o-22 o37 o-46 e23 e-35 e8 o17 o-22 o37 e-1 e-26 e-9999 o15 o-18 e9999 e-21 o29 e-19 o26 o12 e-24 o25 e-53 e45 e-46 e-6 o-55 e29 e-6 o-49 e23 e11 o12 e-24 o8 o-2 o-12 e53 e20 e-5 o10 e-19 o26 e33 e24 o29 e-19 o43 e0 o-4 e-15 o-9999 o1 e-31 e9 e9999 o17 e-26 e13 e-40 e53 e-23 o37 e-47 e-5 o13 o2 o-32 o-12 e29 o-19 e26 e10 o-37 o-39 o-45 o-25 o22 e-43 e9999 e31 o0 e53 e20 e-5 o27 o30 e-5 o27 o30 o-11 e11 o-21 e19 o45 o23 e7 o18 o-11 e-24 e28 e5 e-18 o-19 e18 o-33 o1 e-27 e-59 e34 e60 o45 o-44 e5 o-45 o-29 o-3 e-16 o0 o29 e-19 o26 o9999 e-29 o3 e16 e-19 o-25 o9 o-9 e-1 o-15 e-10 e8 o-31 e8 o-19 e-33 e45 e13 e-1 e-43 o9 o56 o0 e-9999 o-9999 o29 e-11 e-33 o18 o53 o20 o-21 e19 o45 o23 o9 o9999 e17 e-35 o9999 o-11 o4 e-25 o-9999 o-35 o8 e17 o-1 e27 e30 o-12 e-33 o-50 o12 e8 o-19 e-33 e45 o-35 e9999 e-9 o-49 e-33 e-2 o-22 e39 o-11 o5 o3 o49 o-18 e29 o-19 e26 e13 e15 o-20 e-60 o-52 e-26 e6 e11 e6 o33 e-9999 o-45 e-49 o-12 e-35 e8 o17 o-5 e27 e30 e-1 o27 o30 o-1 e27 e30 e-1 o27 o30 e-22 e42 o2 o11 e6 o-6 o-19 e-32 o-42 e-12 e-5 o50 e51 e60 o-21 e27 e-6 o-5 o5 e-17 o-3 o0 e-42 o-29 e-14 e31 o-5 e26 e7 o26 o10 o40 o15 o-36 o31 o-34 e9999 e-5 o25 e-23 o37 e-47 e9999 e15 e10 e39 e37 o-10 e-21 o0 o-32 o-29 e26 o11 o-19 o3 o-19 e-33 e45 o6 o5 e-13 o7 e18 e-23 o37 e-47 o-38 e0 e-24 o-9999 e-5 o19 o-10 e-9 e15 e6 e-14 e-4 e-5 o19 o32 o53 o-33 o1 e-27 o-32 o3 o1 o0 o11 o13 e-13 o9999 o9999 o-32 e5 e-32 e15 o-12 o-56 o50 o23 o9999 o-19 e-33 e45 e-5 o44 o12 e43 e12 e1 o-32 o3 e6 e5 e-30 o4 o-12 o-56 o46 o9999 e13 o-19 e-33 e45 o-5 e38 o-7 e29 e-6 o-49 e23 e11 e33 e-1 e9999 e-49 e29 o-17 o9999 o9999 e4 e-22 e37 o-47 e6 o35 e-3 o-5 e-8 e15 e-4 e-12 o-5 o16 o34 o16 o37 e9 e9999 o17 o-19 e-32 e-33 e-40 e8 o-15 e-10 e8 o-31 e9 e9999 o17 o-19 e-33 e29 e-5 o7 e-19 o-32 e-15 e31 e-22 o28 o27 e29 o-14 o-39 o11 o-5 e27 e30 e-1 o27 o30 e-1 o19 o-10 e-9 e-6 e-19 o-32 e-9 o1 e29 e13 o6 e10 e-8 e5 e-32 e15 e-23 o37 o-46 e-11 o0 o5 e-17 o-3 o0 e-23 o37 e-47 e-26 e13 e-40 e23 e9999 o-12 o1 e-39 e51 o-15 e8 o-11 e55 o-9 o35 o1 o46 o-10 o-5 e38 o-7 o23 o-22 o-23 o0 e-8 e5 e-32 e15 o-29 e0 e-4 e-37 e0 o-19 e-33 e45 e-5 o38 e-7 o12 o1 e-32 e3 e13 e-19 o-32 e-46 o-7 e35 e0 o0 e0 o9 e9999 o51 o-14 e4 e-19 o-32 e-26 o-22 o37 e-1 o-13 o12 o28 e-5 e20 o-31 e8 o13 e52 o-9999 o-35 e9999 e-49 e1 o19 o-9999 o29 o-9999 e12 o19 o30 o-24 o0 e9 e9999 o17 e-35 e8 o17 e-1 o27 o24 o-38 e-19 o29 e-19 o26 o11 o9999 e-17 o-20 o18 o9999 o25 o-9999 o2 o2 e-19 o-33 o45 e-23 e-31 e-45 o59 e-23 o37 e-1 e-26 e-9999 o19 o53 e5 e12 o19 o53 e5 e14 o-19 e-33 e45 o6 o35 e-48 o9999 o9999 e-19 o-32 e-9 o1 o29 e-14 e1 o-55 o-5 e38 o-7 o10 o40 o15 o-36 e8 o-19 e-33 e45 o-1 e-56 e30 e-9999 o-33 o1 e-27 e-59 e29 e3 o-35 e-8 e0 o-29 o-3 e-16 o0 o34 o16 o37 e8 e9999 e5 o-33 o24 e26 o34 o16 o37 e26 e7 o26 o29 o-6 e-49 o23 e14 e35 o-1 o-27 e3 e9 e9999 o15 e-19 o-32 e-26 o-22 o37 e-1 o-35 o8 o-41 e38 e-5 o27 o30 e-5 o19 o-10 e-9 o-7 e-16 o33 o0 o1 o-19 e-33 e45 e-35 e8 o17 e-1 o27 o30 o-1 e27 o-31 e28 e0 e-12 e1 o-39 o51 e7 e11 e5 e26 e34 e1 e-14 o2 e-19 o-5 e38 o-7 o29 o-34 o-30 e4 o53 o45 o11 o13 e-5 o44 e-13 o-37 o-4 o35 e-3 o-5 e-8 e19 e-9999 e15 o0 o9999 o5 o-32 o15 o-29 o-3 o-43 o-17 e5 e-32 e15 e-29 o32 e16 o56 e-12 e1 e29 e-6 e45 e11 e13 o-22 e14 o-12 e-37 e20 o8 e-5 o30 e-47 e-7 o23 e-23 o26 e-35 o43 o53 o20 o-22 o37 e-1 e-7 e-12 o-10 o-32 e-4 o-29 e9999 e7 e39 o-3 o-21 e19 o45 o23 e13 o-22 o37 o-44 o-33 e24 o-56 e9999 e0 e-5 o27 o24 e-41 o9999 o53 o9 e-12 e1 o-39 o51 o-5 e50 o51 e23 o-33 e50 o51 o-31 o31 e-17 o-20 o18 o5 o-44 o-14 e-52 o9999 e-15 o18 o-20 e-25 o15 e24 e24 e9 e-9999 e-1 o27 o30 e-1 o27 o30 e-5 o27 o30 e-22 e37 e-46 o-2 e40 o-22 o37 e-1 e-8 o5 o-32 o-9999 e-1 e-1 e-23 o37 e-47 e9999 o19 o53 e5 o5 e30 o9 o9999 e17 o-19 e-33 e45 e6 e15 e10 e39 e15 e21 o-22 o37 e-47 e-35 o9999 o-49 o1 e29 o-14 o-39 o1 o3 o45 o16 e21 e-19 o-32 e-26 e-1 o27 o30 o-11 o1 o0 e-41 o-22 o-8 e29 e6 e-30 o36 o-5 e50 o51 o29 e-21 o32 o-4 o13 o-5 e27 e30 o-12 e-5 o36 o-4 o0 e-33 o0 o9 o-9999 o-36 o-19 e-32 o-26 e-1 o10 e-19 o26 o22 e-16 e60 e-7 o38 e-19 o-32 o9999 e-2 e-25 e-5 o19 o-10 e-9 o26 o36 o8 e-3 o25 o-60 o5 o-34 e-12 e-11 e-23 o37 e-1 o-13 e22 e8 e24 e-38 e0 e7 e11 e5 e26 o34 o16 o37 e8 e-19 o-32 e-26 e-12 e1 e29 e-6 o45 o11 o13 o-9999 o11 o2 e26 e23 o-33 e50 o51 o-31 e8 e-35 e8 o17 o-22 o37 e-1 e-7 e-12 o-16 o0 o0 e5 e-18 o-19 e18 e-9999 e11 e5 e26 o34 o16 o37 o8 o-32 e-5 o9999 o9999 o0 o-5 e50 o51 o12 o18 o13 o23 o20 e-32 e-8 o-7 o18 e-10 e-35 o9999 o-49 o1 e5 e-32 e15 e-23 o37 e-47 e6 e5 o-11 e15 e9999 e-23 o37 e-1 e-8 e-9999 e-19 o-32 e-26 o-22 o37 e-47 e-19 o-25 o9 o-9 e-1 o-26 o13 o-40 o30 o9999 o53 o9 e-42 o-15 e15 o-58 e-5 o23 o13 o-32 o7 o5 o-30 e4 o-29 o-3 e-16 o0 e34 e16 e37 e8 e-35 e8 o17 e-1 o27 o30 o-22 o37 o6 o31 e8 o-15 e-9999 e1 o-31 e9 e9999 o17 o-5 e38 o-7 e29 e-6 o-49 e23 o14 o1 o39 o12 e9999 e13 e23 e-43 e-13 o-39 e-6 o-19 e-33 e45 o9999 e24 e24 e9 e-9999 o-5 e27 e30 o-22 o37 e-47 e-1 e-45 o8 e13 o52 e5 o-13 e7 o18 e-42 o-15 e15 o-58 e-5 o38 e-7 e34 e1 e-14 o2 e-19 e-35 e8 o17 e-5 o10 e-19 o26 o9999 e-29 o3 e16 o-1 o-31 e6 e-36 e-9999 o-33 o1 e-27 e-59 o60 e-35 o-16 e-29 o5 e-11 o9 o20 o-23 e37 o-41 o24 e8 o-5 e50 o51 e34 e9 e1 o-50 e-4 o45 o39 o-56 e9999 e-35 e8 o17 e-24 e45 o-41 e-28 o52 o35 e-3 o-5 e-8 e5 e-32 e15 e-23 o37 e-47 e-5 o13 o2 o-32 o-12 e53 e33 e-47 e26 e17 o5 o-32 o15 o-29 e-6 e50 o46 e-19 o-32 e-42 o-14 e5 e-30 o4 o-29 o-3 e-16 o0 o29 o-26 o9999 e-35 o1 o-13 o-13 e5 e-32 e15 o-12 o-56 o46 o9999 o-19 e-33 e29 e-22 e26 e10 o9999 o-1 e-56 e30 e-9999 o-33 o1 e-27 e-59 o60 e-35 o-16 e-29 e15 e-18 e20 o39 e2 e35 o-48 e9999 e9999 e-35 o9999 o-49 o1 e5 o-33 o24 e26 o34 o16 o37 e8 e-19 o-32 o9999 e32 e16 o34 o16 o37 o9 o9999 e17 e6 o9999 o9999 e-6 o-32 o38 o10 e-37 o35 o-9999 e-35 e8 o17 e-1 o27 o30 e-24 o45 o39 o-56 e5 e45 e-46 e-6 o-55 o34 o3 e9999 e15 o-30 e-5 o27 o30 o-1 e25 e-19 o-32 e-9 o1 e35 e1 e46 e-10 o-5 e38 o-7 e10 e40 e15 e-36 e8 e13 o-19 e-33 e45 o-35 o8 e17 e-5 e-3 e-43 o36
It didn't happen to fix the conflict, though, so I won't bother to patch it in to the pattern script yet.

chris_c
Posts: 966
Joined: June 28th, 2014, 7:15 am

Re: Demonoid (diagonal Geminoid) working notes

Post by chris_c » November 18th, 2015, 8:01 am

dvgrn wrote: A depth-6 search on Tile A2 reports 443gp (and again that's really what it is) instead of the old 452gp. Definitely closing in on an average of 4gp per glider... though to cross that line might require recompiling the slow salvo so that cheaper recipes are used first. I picked recipes with fewer gliders whenever I had the choice -- but fewer slower gliders doesn't necessarily translate to fewer glider pairs.
There's another possibility that would involve a moderate amount of coding and a moderate amount of slow salvo reworking. Often in a slow salvo recipe you are using a glider just to kill a small number of still lifes and there are a few possibilities for which lane the glider can be on. It wouldn't be terribly difficult to annotate the slow salvo recipe with this information and teach the gp-compiler to make use of it... but it's not something that I am keen to tackle at the moment. (EDIT: also nearby gliders are often independent of each other and can be produced in either order.... another idea that goes straight to the bottom of the in-tray)
dvgrn wrote: Hmm. I don't see where the last item's cost is getting stranded in next_cost, or the cost up to the first output glider isn't counted... but then again, I'm not thinking very hard about it.
Aha. I think I know what was going on. Turns out to be probably my favourite kind of bug: one that's already been fixed without me realising! The problem was with the redundant recipes I mentioned yesterday. A more expensive recipe could shadow a cheaper but equivalent recipe. The cost would be taken as the cost of the cheap recipe but the output recipe would be the more expensive one.
dvgrn wrote: Unfortunately sparks from one of the new recipes hit an intermediate target again. (Delete the two gliders in the NE to see the conflict -- that will leave the hand block is in the correct location.)
Yes these issues are annoying. I can't think of a satisfying fix that is completely trivial to implement. Best I can think of at the moment is to delete the offending recipe from the recipe book and then run a short search to patch around the hole. If I end up doing this I will post a working recipe for CA2D1D2. I don't think it's worth re-running A1 until we know a little bit more about recipes B and E.

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

Re: Demonoid (diagonal Geminoid) working notes

Post by dvgrn » November 18th, 2015, 10:04 am

chris_c wrote:Aha. I think I know what was going on. Turns out to be probably my favourite kind of bug: one that's already been fixed without me realising! The problem was with the redundant recipes I mentioned yesterday. A more expensive recipe could shadow a cheaper but equivalent recipe. The cost would be taken as the cost of the cheap recipe but the output recipe would be the more expensive one.
That very nicely explains why all my recent cost checks have come out completely accurate. I can safely stop being paranoid about that now, I think.
chris_c wrote:Yes these issues are annoying. I can't think of a satisfying fix that is completely trivial to implement. Best I can think of at the moment is to delete the offending recipe from the recipe book and then run a short search to patch around the hole. If I end up doing this I will post a working recipe for CA2D1D2. I don't think it's worth re-running A1 until we know a little bit more about recipes B and E.
I think what I'll do for now is delete the offending recipe semi-permanently, and see if that solves the problem -- there might be more conflicting recipes that replace it, of course. And then we'll see how much longer the recipe turns out. My guess would be that any loss in efficiency could be made up by increasing MAXDEPTH slightly.

EDIT: Yup, lucked out. Hopefully there won't be many more thorny compilation clearance problems for this round. With L5m7AAr: e1 e45 e-8 e-13 e-52 taken out, Tile A2 compiles in at depth 8 with the same number of gliders as before (444) and the elbow happens to sneak past the construction constriction with no problem. It's funny, that's not even one of the particularly impressive-looking sparky elbow ops -- it's just that the glider for that particular reaction comes from the front edge instead of the back edge.

Thankfully the slowdown really seems to be pretty much linear, so you can pick pretty much any depth you want and apply a proportional amount of patience. I tried short depth-10 and depth-16 searches, and the compiler came up with 20-glider recipes in a few minutes with no problem and no out-of-control memory use:
  • depth 7: 300gp/hr
    depth 10: 100gp/hr
    depth 16: 50gp/hr (very roughly, based on the first four gp)
They all produced the same answer, not surprisingly for such a short recipe. Even going from depth 6 to depth 7 for the full recipe managed less than a 0.2% improvement. So there's probably not much point in going beyond depth 10.

EDIT: Based on the compiler's good behavior so far, I suspect that the next significant efficiency improvement will involve adding a few hundred more elbows to the library, and then searching at a slightly lower depth setting to compensate. Basically this would mean chopping up most of the current atomic elbow operations into lots of new really-atomic ones.

There might be a way of analyzing the current library to find the most common non-block branching points. Even just adding top-scoring new elbows H through Z would open up a lot of new search paths. I'll think about it some more...

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

Re: Demonoid (diagonal Geminoid) working notes

Post by dvgrn » November 19th, 2015, 12:21 am

The attached isn't really a useful way to analyze two construction recipes -- in this case, a standard depth-7 recipe, and a depth 8 recipe compiled with just the one L5m7AAr elbow operation removed from the library. Unless you move the target hand block back by three or four ticks (which I did) these two recipes fail spectacularly in completely different ways at different times. I've edited the last post to reflect the later failure of the depth-8 recipe.

I just wanted to see what it would look like in DoubleB3S23:
DoubleB3S23DemonoidRecipe.zip
Depth 7 and 8 construction recipes run simultaneously
(114.19 KiB) Downloaded 544 times
The two recipes could theoretically be combined to get a clean build all the way through -- but I think it would require adding a few extra gp somewhere to convert one type of elbow into another. Once the elbow locations diverge, it doesn't look as if they converge again for a long time.

Also of course, the depth-8 recipe slowly gets ahead of the depth-7 one. That explains the color in the construction area, but there would be a lot of color on the construction lanes even if the two recipes were the same length. There are a lot of ways to string these ops together that are about equally good.

-- I was expecting a few more bottlenecks, I guess, where a particular series of slow gliders is so efficient to build in a certain way, that the search spends a few extra gp to position the elbow at the beginning of that sequence.

-------------------------

On another inexcusable tangent, I just realized that it's possible to build a Demonoid that's all Spartan except for the eater2, with data compression down to 90 ticks, and where the two halves of each replicator unit are absolutely identical.

The construction lanes just have to be 0hd instead of 10hd...!

Maybe I'll look into that in the safely far distant future when ElemSrch is available and it's easy to find a pure-power-of-two compatible Demonoid circuit.

EDIT: Minor progress report: removing two painfully sparky recipes from the (4,1) library and recompiling at depth 9 gives a working 4368gp recipe with no construction conflicts. Depth 9 saves another 9 gliders over depth 8. The two removed recipes were L-27m7FA and L5m7AAr.

Code: Select all

# build-10hd-gp-recipe-DemonoidA1C1A2D1D2.py
import golly as g

from glife.text import make_text
from string import maketrans
phaselist=["3o$o$bo!","b2o$2o$2bo!","b2o$bobo$bo!","2bo$b2o$bobo!","$b3o$bo$2bo!"]

####################################################
         ###########################################
TileC="" ###### donations gratefully accepted ######
         ###########################################
####################################################

TileA1="e-9999 e-1 e-23 e-13 e26 o42 o15 o24 e9 o2 o-12 o-9999 o32 o1 o9999 o-35 e9999 e-49 e1 o33 e32 o33 o9999 o9999 e-29 o3 e16 o9999 o5 o-44 o-14 e-52 o9999 o-5 e50 o51 o53 o9 e-23 o37 o-46 e-11 o-9999 o-5 e38 o-7 o23 o-26 o-18 o9999 e-42 o-15 e15 o-58 e-19 o-32 e-42 o-14 e5 o-11 e15 e9999 e-42 o-15 e15 o-58 e-19 o-32 e-46 o-7 e15 e10 e39 e37 o-32 e-47 o-32 e-4 o1 e-9999 o-19 e-33 e29 e-22 e47 e-20 e18 o15 o-18 e9999 e-21 o53 o9 o-29 e26 o19 e14 o9999 o29 e-21 o32 o-4 e33 o25 e45 e0 o9999 o10 e-37 o35 o-9999 o-1 e-38 o9999 o0 e-19 e-9999 e-13 o9999 o-32 e-39 o18 e5 o-11 e9 e20 e-23 o37 e-13 o-13 e5 e-30 o4 e-42 o-15 e15 o-58 e-19 o-32 o-39 e-50 o45 o39 o-56 e9999 o-5 e38 o-7 o60 e-35 o-16 e-29 e1 e23 e8 e15 e10 e39 e37 o-19 e-33 e33 e15 o-13 o31 o-42 e9999 o-13 e35 e1 e46 e-10 e-19 o-32 e-26 e-5 o19 o-10 e-9 e-6 e-35 o9999 o-49 o1 o11 o60 o38 e-9 e9 e9999 o17 e9999 o15 e-57 o25 o-9999 o26 o29 e-14 e-39 e22 e8 e55 o-43 o-27 o-22 o37 e-1 o-26 o2 e0 e26 o45 o39 o-56 e9999 e9 e-5 o27 o30 e-1 o27 o30 e-22 e47 e-20 e18 e-9999 o-1 e-56 e30 e-9999 o-15 e4 e28 e-14 o-23 e-22 e-25 o0 e44 e-9999 e19 e53 o5 o12 e5 e-32 e15 e-23 o37 e-1 e-8 e35 o-1 o-19 o-1 e-33 e-2 o-22 e39 e-16 o-9999 o5 o6 o9 o-9999 o29 e-19 o26 o13 o-9999 o53 e5 o31 e-35 e8 o17 e-5 o27 o24 e-59 o-14 o35 e-3 o-5 e-8 e5 e-18 o-13 e2 o-48 e10 e40 e15 e-36 o31 o-22 e28 e27 e19 e38 e-18 e-57 e0 e19 e53 o5 o14 o-5 e38 o-7 e10 e40 e15 e-36 e33 e-49 e0 o-33 o9999 o15 o-18 e9999 e-21 o29 e-19 o26 o5 e-39 o14 o-8 e12 e-11 e53 e9999 o45 o39 o-56 e25 o-10 o13 e-22 e37 o-47 e-35 o9999 o-49 o1 e-9999 o-5 e50 o51 e29 e-32 o-37 o0 e-31 o25 o-47 o-53 o-45 e52 e-42 e-4 e-42 o-15 e15 e-17 o-23 e19 e12 e3 e17 o10 o-15 e44 e5 o-37 o-60 o19 e0 e-51 o24 o53 o9 o-29 e26 o11 o-19 o3 o-19 e-33 e29 e-12 e1 e29 e-6 e45 e11 e13 o-33 e28 o24 e9 o-31 e33 o-31 e57 e13 o-22 o37 o-44 o-13 o-15 o-7 e58 e39 e-45 e-43 e-1 o21 o-22 o37 e-1 e-8 e19 e-9999 e15 o0 e-32 o-5 e-2 e9999 o27 o-22 o37 e-1 e-26 e2 o-33 o-24 o47 e-23 o26 o10 e9999 o-11 e-42 e-13 o-32 o-25 o42 o17 o2 e29 o-9999 o45 o39 o-56 e9999 e13 e-35 e8 o17 e-1 o27 o30 e-5 o27 o24 o-56 e-50 e45 o-41 e-28 o52 o5 o-30 e4 e-29 e-3 o-16 e0 e10 e40 e15 e-36 o8 o6 o5 e-11 o15 o9999 o-42 e-15 o15 e-58 e-29 e-35 e-5 e-3 o-22 o37 e-47 e9999 e9999 e25 e-9999 e2 e2 o-5 e50 o51 o23 o-18 o1 o32 o-8 o29 o13 e6 o10 o-8 e35 o-3 e-5 e-26 e0 o36 e-18 o35 e-3 o-5 e-8 e35 e-39 e3 e1 e-5 o27 o30 o-22 o37 e-1 o-8 o-6 o-5 e46 o57 e-4 o60 e-35 o-16 e-29 e35 o-48 e9999 e9999 o-15 e-9999 e1 o-31 e33 o45 o-15 o-45 o-43 o-1 e21 e-5 o27 o30 e-11 e1 e0 e11 e13 o-9999 o11 o5 o26 o23 o-18 o1 o32 e-8 e-9999 o-19 e-33 e33 e15 o-13 o31 o-42 e-19 o-33 o54 o10 o-22 e35 e0 o0 e0 e9 e9999 o17 o-19 e-33 e45 e6 e35 e-39 e3 e1 o-22 o37 o-44 o-13 o-15 o0 e-32 e2 e-22 e26 o-9 e1 e24 e9 e9999 o17 e-1 e-23 e-13 e26 e29 e0 o8 o-57 e11 o-22 o37 o-44 o-33 e24 o-56 e9999 e9999 e5 o-11 e9 e20 o-23 e37 o-1 e-26 e0 o36 e-18 e5 e-32 e15 o-23 e-2 o-39 e37 o-43 o10 e-37 o35 o-20 e15 e10 e39 e37 o-19 e-33 e33 e15 o-13 o10 e13 e0 e-32 e-8 e9999 o-58 e9999 o-19 e-33 e33 e15 o-13 o31 o-42 e-19 o-33 o45 o-15 e44 e5 o-37 e-23 o37 e-1 e-8 o15 o10 o30 o-12 e-5 o-23 e37 o-13 e-13 e29 o-14 e-9999 o41 o-34 o-18 o-38 e-27 o-51 e5 e-30 o4 o-12 o-56 o46 o8 o-18 o-33 e-6 e-31 e-16 e-4 e9 e9999 o17 e-32 e-8 e9999 e-49 o15 o10 o39 o37 e-5 o46 e57 o-4 o34 o15 o20 o37 o4 o45 o11 o13 e-15 o4 o36 o0 o8 e-5 o27 o30 e-17 e-14 o9999 e-5 o-2 e-13 o15 o10 o39 o37 o-19 e-33 e45 e13 e-5 o46 e57 o-4 o34 o16 o37 e8 o-5 e38 o-7 o10 o40 o15 o-36 o8 e-19 o-33 o42 o9999 o26 o7 e26 o34 o16 o37 e8 e-35 e8 o17 o-22 o37 o-46 e23 e-35 e8 o17 o-22 o37 o-46 e-11 o-9999 o-15 e-9999 e1 o-31 e9 e9999 o17 o-35 e9999 e-11 e0 e6 e9 e9999 o17 e9999 e35 e1 e46 e-10 e-29 e-35 e-5 e-3 o-1 e27 e30 e-5 o19 o-10 e-9 o-13 e9999 e25 e-9999 e2 e2 e-15 o-9999 o1 e-31 e9 e9999 o17 e-26 e13 e-40 e53 e-23 o37 e-47 e-5 o13 o2 o-32 o-12 e29 o-19 e26 e10 o-37 o-39 o-45 o-25 o22 e-43 e9999 e31 o0 e53 e20 e-5 o27 o30 e-5 o27 o24 o-38 o-6 o53 o20 o-5 e0 e55 o-29 o-3 e-16 o0 o29 e-5 e0 e26 o45 o39 o-56 e9999 o-32 o-24 e0 e-3 e-1 e31 e-8 o-10 o-3 o53 o20 o-5 e25 o-1 e-56 e30 e-9999 o-33 o1 e-27 e-59 e12 e1 o-32 e0 e7 o19 o38 o-18 o-9 e13 e-1 e-43 o9 o56 o0 e-9999 o-9999 o29 e-11 e-33 o18 o53 o20 o-21 e19 o45 o23 o9 o9999 e17 e-35 o9999 o-11 o4 e-25 o-9999 o-35 o8 e17 o-1 e27 e30 o-12 e-33 o-50 o12 e8 o-19 e-33 e45 o-35 e9999 e-9 o-49 e-33 e-2 o-22 e39 o-11 o5 o3 o49 o-18 e29 o-19 e26 e13 e15 o-20 e-60 o-52 e-26 e6 e11 e6 o33 e-9999 o-45 e-49 o-12 e-35 e8 o17 o-5 e27 e30 e-1 o27 o30 o-1 e27 e30 e-1 o27 o30 e-22 e42 o2 o11 e6 o-6 o-19 e-32 o-42 e-14 o35 o1 o46 o-10 e-35 e8 o17 e-12 o-15 o-9 e-20 e5 e0 o-55 o34 o16 o37 o9 o9999 e17 e-19 o-33 o54 o10 o-22 o-6 e-5 o50 e51 o53 o9 o-29 e-6 e50 o46 e-1 e-39 e-7 e-1 o0 e-33 o24 e-56 o9999 e-11 o-5 e38 o-7 e34 e16 e37 e13 o-22 o37 e-47 o-38 e0 e-24 o-9999 e-5 o19 o-10 e-9 e15 e6 e-14 e-4 e-5 o19 o32 o53 o-33 o1 e-27 o-32 o3 o1 o0 o11 o13 e-13 o9999 o9999 o-32 e5 e-32 e15 o-12 o-56 o50 o23 o9999 o-19 e-33 e45 e-5 o44 o12 e43 e12 e1 o-32 o3 e6 e5 e-30 o4 o-12 o-56 o46 o9999 e13 o-19 e-33 e45 o-5 e38 o-7 e29 e-6 o-49 e23 e11 e33 e-1 e9999 e-49 e29 o-17 o9999 o9999 e4 e-22 e37 e-44 o-33 o9999 o45 e-22 o9999 o-19 e-33 e54 e10 o-29 e9999 e-7 e-12 o-10 o-32 e-4 o-23 e37 o-1 e-8 e-9999 o-15 e-10 e8 o-31 e9 e9999 o17 o-19 e-33 e29 e-5 o7 e-19 o-32 e-15 e31 e-22 o28 o27 e29 o-14 o-39 o11 o-5 e27 e30 e-1 o27 o30 e-1 o19 o-10 e-9 o15 o-16 e22 o15 e-24 o45 o39 o-56 e5 o45 o39 o-56 e9999 e7 e11 e5 e26 o34 o3 e0 o-17 o16 o-22 o37 e-1 e-35 e49 o33 o-56 e9999 e-19 o-33 o54 e33 o3 e-16 e-40 o-34 o6 o35 o1 o46 o-10 o-5 e38 o-7 o23 o-22 o-23 o0 e-8 e5 e-32 e15 o-29 e0 e-4 e-37 e0 o-19 e-33 e45 e-5 o38 e-7 o12 o1 e-32 e3 e13 e-19 o-32 e-46 o-7 e35 e0 o0 e0 e11 e9999 e6 e15 e31 e-22 o55 o-40 o53 o9 o-34 o-18 o-38 e-27 o-51 e29 o2 o13 e-22 e12 o-24 e25 o-53 o45 e-41 e11 o33 o20 o34 o16 o37 e31 o-31 e9 e9999 o17 e-35 e8 o17 e-1 o27 o24 o-38 e-19 o29 e-19 o26 o11 o9999 e-17 o-20 o18 o9999 o25 o-9999 o2 o2 e-19 o-33 o45 e-23 e-31 e-45 o59 o-29 e0 e-9999 e-9 o10 e-37 o35 o-9999 o-15 e18 e-20 o-25 e15 e15 e10 e39 e37 o-35 o8 e17 e-5 o19 o-10 e-9 o29 e-14 e1 o-55 o-5 e38 o-7 o10 o40 o15 o-36 e8 o-19 e-33 e45 o-1 e-56 e30 e-9999 o-33 o1 e-27 e-59 o29 e-21 o-32 o2 o0 e-33 o24 e-56 o9999 o0 e-5 o27 o30 e-5 o27 o29 o5 o-21 e19 o45 o23 o9 o9999 e17 e-35 o9999 o-11 o4 e-25 o19 o-9999 o15 e0 e13 e-19 o-32 e-26 o-22 o37 e-1 o-35 o8 o-41 e38 e-5 o27 o30 e-5 o19 o-10 e-9 o-7 e-16 o33 o0 o1 o-19 e-33 e42 e9999 e9 e9999 o17 o-15 e4 e-39 e6 o6 e-32 e-8 e9999 o-58 e9999 o-15 e-9999 e1 o-31 e9 e9999 o17 o-19 e-33 e45 o-5 e38 o-7 o29 o-34 o-30 e4 o53 o45 o11 o13 e-5 o44 e-13 o-37 o-4 o35 e-3 o-5 e-8 e19 e-9999 e15 o0 o9999 o5 o-32 o15 o-29 o-3 o-43 o-17 e5 e-32 e15 e-29 o32 e16 o56 e-12 e1 e29 e-6 e45 e11 e13 o-22 e14 o-12 e-37 e20 o8 e-5 o30 e-47 e-7 o23 e-23 o26 e-35 o43 o53 o20 o-22 o37 o-46 e23 o-1 e-44 e14 e0 e0 o-9999 o29 e-11 e-33 o18 o53 o20 o-1 o-3 o-43 o-1 o-31 o11 o9999 o6 o15 e11 e5 e5 e-22 o29 e-19 o31 e0 o-27 e5 e-32 e15 e-29 o32 e16 o56 o-17 o9999 o9999 e4 o-1 e19 e-10 o-9 o5 o-32 o15 e-12 e1 e-28 e-2 e9999 o29 o6 o-58 e-6 e11 e-1 o27 o30 e-1 o27 o30 e-5 o27 o30 e-22 e37 o-1 e-8 e35 o-42 e9999 e33 e6 o-5 e50 o51 o60 e-35 o-16 e-29 o-13 o19 o53 e5 o5 e30 o9 o9999 e17 o-19 e-33 e45 e6 e15 e10 e39 e15 e21 o-22 o37 e-47 e-35 o9999 o-49 o1 e5 e-32 e15 o-29 e-6 e50 o46 o-29 o25 e-58 e-18 o53 o20 e-5 o27 o30 o-17 o-34 e1 o-44 e9999 e-35 o9999 o-49 o8 o-7 o-12 o0 e-12 e-26 e9 e9999 o17 e-5 o38 e-7 e10 o31 e-24 e-7 e34 e15 e-4 o1 e17 o5 e-39 o38 o22 e-32 o45 e-41 o-28 e52 o15 o10 o39 o37 o-19 e-32 e9999 e-26 o9999 e-19 o-33 o45 e-19 o-33 o33"
elbow_move="e13 e15 o6 o-32"
TileA2D1D2="e11 e0 e44 e-1 o58 e13 o-21 e19 o45 o23 o33 e-34 e-27 o13 o-9999 e-1 e-23 e-13 e26 o34 o16 o37 e8 e-19 o-32 e-26 e-12 e1 e29 e-6 o45 o11 o13 o-9999 o11 o2 e26 e23 o-33 e50 o51 o-31 e8 e-35 e8 o17 o-22 o37 e-1 e-7 e-12 o-16 o0 o0 e5 e-18 o-19 e18 e-9999 e11 e5 e26 o34 o16 o37 o8 o-32 e-5 o9999 o9999 o0 o-5 e50 o51 o12 o18 o13 o23 o20 e-32 e-8 o-7 o18 e-10 e-35 o9999 o-49 o1 e5 e-32 e15 e-23 o37 e-47 e6 e5 o-11 e15 e9999 e-23 o37 e-1 e-8 e-9999 e-19 o-32 e-26 o-22 o37 e-47 e-19 o-25 o9 o-9 e-1 o-26 o13 o-40 o30 o9999 o53 o9 e-42 o-15 e15 o-58 e-5 o23 o13 o-32 o7 o5 o-30 e4 o-29 o-3 e-16 o0 e34 e16 e37 e8 e-35 e8 o17 e-1 o27 o30 o-22 o37 o6 o31 e8 o-15 e-9999 e1 o-31 e9 e9999 o17 o-5 e38 o-7 e29 e-6 o-49 e23 o14 o1 o39 o12 e9999 o10 e-37 o35 o-9999 o-5 e50 o51 e29 o-5 e-32 e-9999 o9 e-21 o19 e45 e23 e8 e-19 o-32 e-42 o-12 o-35 e9999 e-49 e1 o19 o-9999 o29 o-9999 e12 e35 e1 e46 e-10 e-19 o-33 o29 o-17 o9999 o9999 e4 e-5 o27 o30 o-5 o-3 o-43 o-1 e-20 o45 o39 o-56 e9999 o-15 e4 e-39 e6 o6 e-32 o-5 e9999 e9999 e0 e-19 o-32 o-45 o-15 e45 e11 e13 e-33 o28 e24 o9 o-33 e-14 e-46 e-14 o-22 o37 e-1 o-11 o-1 o45 o39 o-56 e9999 e-35 e8 o17 e-1 o27 o30 o-17 o-34 e1 o-46 e21 e0 e-14 e0 o-41 o19 o53 e5 e38 o45 o39 o-56 e5 o45 e-41 o-28 e52 o5 e-11 o9 o20 e-29 o6 o49 e-33 e-19 o-32 e-42 o-14 e5 e-30 o4 o-29 o-3 e-16 o0 o29 o-26 o9999 e-35 o1 o-13 o-13 e5 e-32 e15 o-12 o-56 o46 o9999 o-19 e-33 e45 e-5 o38 e44 o5 o-16 e-35 o9999 o-49 o1 e5 e-32 e15 o-12 o-56 o50 o23 o9999 o-5 e38 o-7 o23 o-26 o-18 o9999 o-29 e-6 e50 o46 e-1 e-23 e-13 e26 o34 o16 o37 e8 e9999 e5 e-30 o4 e-34 e-16 o-39 o33 e9999 e-23 o-1 e-8 o19 o53 e5 e12 e1 e32 o2 e1 o29 e-21 o-32 o28 o-58 o-22 o37 e-47 e6 e19 e-9999 e15 o0 e-19 o-32 e-26 e-1 o19 o-10 e-9 o19 o15 e46 e-4 o-33 e9 e9999 o17 e6 e35 e1 e46 e-10 o-5 e38 o-7 e10 e40 e15 e-36 e8 e13 o-19 e-33 e42 e9999 o9 o9999 e17 o-5 e23 e13 o-17 e34 e15 e-4 o9999 e9999 e5 o-33 o24 e26 e34 e15 e-4 e3 e1 e0 e39 e-56 o9999 o-32 o-8 o9999 o-49 e15 e-18 e20 o39 e2 e15 o-57 e25 e-9999 e-9999 o-5 e50 o51 o53 o9 e-23 o37 o-46 e-11 o-9999 o-5 e38 o-7 o23 o-26 o-18 o9999 e-42 o-15 e15 o-58 e-19 o-32 e-42 o-14 e5 o-11 e15 e9999 e-42 o-15 e15 o-58 e-19 o-32 e-46 o-7 e15 e10 e39 e37 o-32 e-47 o-32 e-4 o1 e-9999 o-19 e-33 e29 e-22 e47 e-20 e18 o15 o-18 e9999 e-21 o53 o9 o-29 e26 o19 e14 o9999 o29 e-21 o32 o-4 e33 o25 e45 e0 o9999 o10 e-37 o35 o-9999 o-1 e-38 o9999 o0 e-19 e-9999 e-13 o9999 o-32 e-39 o18 e5 o-11 e9 e20 e-23 o37 e-13 o-13 e5 e-30 o4 e-42 o-15 e15 o-58 e-19 o-32 o-39 e-50 o45 o39 o-56 e9999 o-5 e38 o-7 o60 e-35 o-16 e-29 e1 e23 e8 e15 e10 e39 e37 o-19 e-33 e33 e15 o-13 o31 o-42 e9999 o-13 e35 e1 e46 e-10 e-19 o-32 e-26 e-5 o19 o-10 e-9 e-6 e-35 o9999 o-49 o1 o11 o60 o38 e-9 e9 e9999 o17 e9999 o15 e-57 o25 o-9999 o26 o29 e-14 e-39 e22 e8 e55 o-43 o-27 o-22 o37 e-1 o-26 o2 e0 e26 o45 o39 o-56 e9999 e9 e-5 o27 o30 e-1 o27 o30 e-22 e47 e-20 e18 e-9999 o-1 e-56 e30 e-9999 o-15 e4 e28 e-14 o-23 e-22 e-25 o0 e44 e-9999 e19 e53 o5 o12 e5 e-32 e15 e-23 o37 e-1 e-8 e35 o-1 o-19 o-1 e-33 e-2 o-22 e39 e-16 o-9999 o5 o6 o9 o-9999 o29 e-19 o26 o13 o-9999 o53 e5 o31 e-35 e8 o17 e-5 o27 o24 e-59 o-14 o35 e-3 o-5 e-8 e5 e-18 o-13 e2 o-48 e10 e40 e15 e-36 o31 o-22 e28 e27 e19 e38 e-18 e-57 e0 e19 e53 o5 o14 o-5 e38 o-7 e10 e40 e15 e-36 e33 e-49 e0 o-33 o9999 o15 o-18 e9999 e-21 o29 e-19 o26 o5 e-39 o14 o-8 e12 e-11 e53 e9999 o45 o39 o-56 e25 o-10 o13 e-22 e37 o-47 e-35 o9999 o-49 o1 e-9999 o-5 e50 o51 e29 e-32 o-37 o0 e-31 o25 o-47 o-53 o-45 e52 e-42 e-4 e-42 o-15 e15 e-17 o-23 e19 e12 e3 e17 o10 o-15 e44 e5 o-37 o-60 o19 e0 e-51 o24 o53 o9 o-29 e26 o11 o-19 o3 o-19 e-33 e29 e-12 e1 e29 e-6 e45 e11 e13 o-33 e28 o24 e9 o-31 e33 o-31 e57 e13 o-22 o37 o-44 o-13 o-15 o-7 e58 e39 e-45 e-43 e-1 o21 o-22 o37 e-1 e-8 e19 e-9999 e15 o0 e-32 o-5 e-2 e9999 o27 o-22 o37 e-1 e-26 e2 o-33 o-24 o47 e-23 o26 o10 e9999 o-11 e-42 e-13 o-32 o-25 o42 o17 o2 e29 o-9999 o45 o39 o-56 e9999 e13 e-35 e8 o17 e-1 o27 o30 e-5 o27 o24 o-56 e-50 e45 o-41 e-28 o52 o5 o-30 e4 e-29 e-3 o-16 e0 e10 e40 e15 e-36 o8 o6 o5 e-11 o15 o9999 o-42 e-15 o15 e-58 e-29 e-35 e-5 e-3 o-22 o37 e-47 e9999 e9999 e25 e-9999 e2 e2 o-5 e50 o51 o23 o-18 o1 o32 o-8 o29 o13 e6 o10 o-8 e35 o-3 e-5 e-26 e0 o36 e-18 o35 e-3 o-5 e-8 e35 e-39 e3 e1 e-5 o27 o30 o-22 o37 e-1 o-8 o-6 o-5 e46 o57 e-4 o60 e-35 o-16 e-29 e35 o-48 e9999 e9999 o-15 e-9999 e1 o-31 e33 o45 o-15 o-45 o-43 o-1 e21 e-5 o27 o30 e-11 e1 e0 e11 e13 o-9999 o11 o5 o26 o23 o-18 o1 o32 e-8 e-9999 o-19 e-33 e33 e15 o-13 o31 o-42 e-19 o-33 o54 o10 o-22 e35 e0 o0 e0 e9 e9999 o17 o-19 e-33 e45 e6 e35 e-39 e3 e1 o-22 o37 o-44 o-13 o-15 o0 e-32 e2 e-22 e26 o-9 e1 e24 e9 e9999 o17 e-1 e-23 e-13 e26 e29 e0 o8 o-57 e11 o-22 o37 o-44 o-33 e24 o-56 e9999 e9999 e5 o-11 e9 e20 o-23 e37 o-1 e-26 e0 o36 e-18 e5 e-32 e15 o-23 e-2 o-39 e37 o-43 o10 e-37 o35 o-20 e15 e10 e39 e37 o-19 e-33 e33 e15 o-13 o10 e13 e0 e-32 e-8 e9999 o-58 e9999 o-19 e-33 e33 e15 o-13 o31 o-42 e-19 o-33 o45 o-15 e44 e5 o-37 e-23 o37 e-1 e-8 o15 o10 o30 o-12 e-5 o-23 e37 o-13 e-13 e29 o-14 e-9999 o41 o-34 o-18 o-38 e-27 o-51 e5 e-30 o4 o-12 o-56 o46 o8 o-18 o-33 e-6 e-31 e-16 e-4 e9 e9999 o17 e-32 e-8 e9999 e-49 o15 o10 o39 o37 e-5 o46 e57 o-4 o34 o15 o20 o37 o4 o45 o11 o13 e-15 o4 o36 o0 o8 e-5 o27 o30 e-17 e-14 o9999 e-5 o-2 e-13 o15 o10 o39 o37 o-19 e-33 e45 e13 e-5 o46 e57 o-4 o34 o16 o37 e8 o-5 e38 o-7 o10 o40 o15 o-36 o8 e-19 o-33 o42 o9999 o26 o7 e26 o34 o16 o37 e8 e-35 e8 o17 o-22 o37 o-46 e23 e-35 e8 o17 o-22 o37 o-46 e-11 o-9999 o-15 e-9999 e1 o-31 e9 e9999 o17 o-35 e9999 e-11 e0 e6 e9 e9999 o17 e9999 e35 e1 e46 e-10 e-29 e-35 e-5 e-3 o-1 e27 e30 e-5 o19 o-10 e-9 o-13 e9999 e25 e-9999 e2 e2 e-15 o-9999 o1 e-31 e9 e9999 o17 e-26 e13 e-40 e53 e-23 o37 e-47 e-5 o13 o2 o-32 o-12 e29 o-19 e26 e10 o-37 o-39 o-45 o-25 o22 e-43 e9999 e31 o0 e53 e20 e-5 o27 o30 e-5 o27 o24 o-38 o-6 o53 o20 o-5 e0 e55 o-29 o-3 e-16 o0 o29 e-5 e0 e26 o45 o39 o-56 e9999 o-32 o-24 e0 e-3 e-1 e31 e-8 o-10 o-3 o53 o20 o-5 e25 o-1 e-56 e30 e-9999 o-33 o1 e-27 e-59 e12 e1 o-32 e0 e7 o19 o38 o-18 o-9 e13 e-1 e-43 o9 o56 o0 e-9999 o-9999 o29 e-11 e-33 o18 o53 o20 o-21 e19 o45 o23 o9 o9999 e17 e-35 o9999 o-11 o4 e-25 o-9999 o-35 o8 e17 o-1 e27 e30 o-12 e-33 o-50 o12 e8 o-19 e-33 e45 o-35 e9999 e-9 o-49 e-33 e-2 o-22 e39 o-11 o5 o3 o49 o-18 e29 o-19 e26 e13 e15 o-20 e-60 o-52 e-26 e6 e11 e6 o33 e-9999 o-45 e-49 o-12 e-35 e8 o17 o-5 e27 e30 e-1 o27 o30 o-1 e27 e30 e-1 o27 o30 e-22 e42 o2 o11 e6 o-6 o-19 e-32 o-42 e-14 o35 o1 o46 o-10 e-35 e8 o17 e-12 o-15 o-9 e-20 e5 e0 o-55 o34 o16 o37 o9 o9999 e17 e-19 o-33 o54 o10 o-22 o-6 e-5 o50 e51 o53 o9 o-29 e-6 e50 o46 e-1 e-39 e-7 e-1 o0 e-33 o24 e-56 o9999 e-11 o-5 e38 o-7 e34 e16 e37 e13 o-22 o37 e-47 o-38 e0 e-24 o-9999 e-5 o19 o-10 e-9 e15 e6 e-14 e-4 e-5 o19 o32 o53 o-33 o1 e-27 o-32 o3 o1 o0 o11 o13 e-13 o9999 o9999 o-32 e5 e-32 e15 o-12 o-56 o50 o23 o9999 o-19 e-33 e45 e-5 o44 o12 e43 e12 e1 o-32 o3 e6 e5 e-30 o4 o-12 o-56 o46 o9999 e13 o-19 e-33 e45 o-5 e38 o-7 e29 e-6 o-49 e23 e11 e33 e-1 e9999 e-49 e29 o-17 o9999 o9999 e4 e-22 e37 e-44 o-33 o9999 o45 e-22 o9999 o-19 e-33 e54 e10 o-29 e9999 e-7 e-12 o-10 o-32 e-4 o-23 e37 o-1 e-8 e-9999 o-15 e-10 e8 o-31 e9 e9999 o17 o-19 e-33 e29 e-5 o7 e-19 o-32 e-15 e31 e-22 o28 o27 e29 o-14 o-39 o11 o-5 e27 e30 e-1 o27 o30 e-1 o19 o-10 e-9 o15 o-16 e22 o15 e-24 o45 o39 o-56 e5 o45 o39 o-56 e9999 e7 e11 e5 e26 o34 o3 e0 o-17 o16 o-22 o37 e-1 e-35 e49 o33 o-56 e9999 e-19 o-33 o54 e33 o3 e-16 e-40 o-34 o6 o35 o1 o46 o-10 o-5 e38 o-7 o23 o-22 o-23 o0 e-8 e5 e-32 e15 o-29 e0 e-4 e-37 e0 o-19 e-33 e45 e-5 o38 e-7 o12 o1 e-32 e3 e13 e-19 o-32 e-46 o-7 e35 e0 o0 e0 e11 e9999 e6 e15 e31 e-22 o55 o-40 o53 o9 o-34 o-18 o-38 e-27 o-51 e29 o2 o13 e-22 e12 o-24 e25 o-53 o45 e-41 e11 o33 o20 o34 o16 o37 e31 o-31 e9 e9999 o17 e-35 e8 o17 e-1 o27 o24 o-38 e-19 o29 e-19 o26 o11 o9999 e-17 o-20 o18 o9999 o25 o-9999 o2 o2 e-19 o-33 o45 e-23 e-31 e-45 o59 o-29 e0 e-9999 e-9 o10 e-37 o35 o-9999 o-15 e18 e-20 o-25 e15 e15 e10 e39 e37 o-35 o8 e17 e-5 o19 o-10 e-9 o29 e-14 e1 o-55 o-5 e38 o-7 o10 o40 o15 o-36 e8 o-19 e-33 e45 o-1 e-56 e30 e-9999 o-33 o1 e-27 e-59 o29 e-21 o-32 o2 o0 e-33 o24 e-56 o9999 o0 e-5 o27 o30 e-5 o27 o29 o5 o-21 e19 o45 o23 o9 o9999 e17 e-35 o9999 o-11 o4 e-25 o19 o-9999 o15 e0 e13 e-19 o-32 e-26 o-22 o37 e-1 o-35 o8 o-41 e38 e-5 o27 o30 e-5 o19 o-10 e-9 o-7 e-16 o33 o0 o1 o-19 e-33 e42 e9999 e9 e9999 o17 o-15 e4 e-39 e6 o6 e-32 e-8 e9999 o-58 e9999 o-15 e-9999 e1 o-31 e9 e9999 o17 o-19 e-33 e45 o-5 e38 o-7 o29 o-34 o-30 e4 o53 o45 o11 o13 e-5 o44 e-13 o-37 o-4 o35 e-3 o-5 e-8 e19 e-9999 e15 o0 o9999 o5 o-32 o15 o-29 o-3 o-43 o-17 e5 e-32 e15 e-29 o32 e16 o56 e-12 e1 e29 e-6 e45 e11 e13 o-22 e14 o-12 e-37 e20 o8 e-5 o30 e-47 e-7 o23 e-23 o26 e-35 o43 o53 o20 o-22 o37 o-46 e23 o-1 e-44 e14 e0 e0 o-9999 o29 e-11 e-33 o18 o53 o20 o-1 o-3 o-43 o-1 o-31 o11 o9999 o6 o15 e11 e5 e5 e-22 o29 e-19 o31 e0 o-27 e5 e-32 e15 e-29 o32 e16 o56 o-17 o9999 o9999 e4 o-1 e19 e-10 o-9 o5 o-32 o15 e-12 e1 e-28 e-2 e9999 o29 o6 o-58 e-6 e11 e-1 o27 o30 e-1 o27 o30 e-5 o27 o30 e-22 e37 o-1 e-8 e35 o-42 e9999 e33 e6 o-5 e50 o51 o60 e-35 o-16 e-29 o-13 o19 o53 e5 o5 e30 o9 o9999 e17 o-19 e-33 e45 e6 e15 e10 e39 e15 e21 o-22 o37 e-47 e-35 o9999 o-49 o1 e29 o-14 o-39 o1 o3 o45 o16 e21 e-19 o-32 e-9 o1 e35 e-39 e3 e1 e-1 o27 o30 e-22 e42 o2 o11 e6 e5 o-11 e15 e9999 o-29 o-3 o-43 o-17 e9999 e58 e36 e52 e3 e9 e9999 o17 e-1 e-31 o27 o-32 e3 o-9999 o-13 e9999 e-32 e7 e-32 e-8 e9999 e-49 e35 e-39 e4 e-52 o-1 e9 e9999 o17 e-19 o-32 o-39 o22 e-37 o-13 o-23 e38 e-9 o45 o39 o-56 e9999 o-15 e18 e-20 o-25 e15 e-6 e-35 o9999 o-49 o1 e1 e32 o2 e1 o29 e-19 o26 o5 e-39 o38 o22 e-32 o45 o11 o13 o-8 o0 o-48 o12 e11 o-22 o37 o-46 e-11 o0 e29 o-14 o-39 e11 e-5 o27 o30 e-5 o27 o30 e-5 o27 e-31 o28 o0 o-29 o-3 e-16 o0 o34 o16 o37 e8 e-19 o-32 e-26 e-17 e-14 o9999 e-5 o-2 e5 o-11 e15 e9999 e-12 e-9999 e32 e1 e9999 e-19 o-33 o29 e-12 e1 e29 e-6 o45 o11 o13 o-15 e4 e36 e0 e8 e-17 o-2 e-23 o14 o24 o-22 o37 e-1 e-8 e-9999 e-19 o-32 e-26 o-22 o37 e-47 e-19 o-25 o9 o-9 e-1 o-26 o13 o-40 o30 o9999 o53 o9 e-42 o-15 e15 o-58 e-5 o23 o13 o-32 o7 o5 o-30 e4 o-29 o-3 e-16 o0 e34 e16 e37 e8 e-35 e8 o17 e-1 o27 o30 o-22 o37 o6 o31 e8 o-15 e-9999 e1 o-31 e9 e9999 o17 o-5 e38 o-7 e29 e-6 o-49 e23 o14 o1 o39 o12 e9999 o10 e-37 o35 o-9999 o-5 e50 o51 e29 o-5 e-32 e-9999 o9 e-21 o19 e45 e23 e8 e-19 o-32 e-42 o-12 o-35 e9999 e-49 e1 o19 o-9999 o29 o-9999 e12 e35 e1 e46 e-10 e-19 o-33 o29 o-17 o9999 o9999 e4 e-5 o27 o30 o-5 o-3 o-43 o-1 e-20 o45 o39 o-56 e9999 o-15 e4 e-39 e6 o6 e-32 o-5 e9999 e9999 e0 e-19 o-32 o-45 o-15 e45 e11 e13 e-33 o28 e24 o9 o-33 e-14 e-46 e-14 o-22 o37 e-1 o-11 o-1 o45 o39 o-56 e9999 e-35 e8 o17 e-1 o27 o30 o-17 o-34 e1 o-46 e21 e0 e-14 e0 o-41 o19 o53 e5 e38 o45 o39 o-56 e5 o45 e-41 o-28 e52 o5 e-11 o9 o20 e-29 o6 o49 e-33 e-19 o-32 e-42 o-14 e5 e-30 o4 o-29 o-3 e-16 o0 o29 o-26 o9999 e-35 o1 o-13 o-13 e5 e-32 e15 o-12 o-56 o46 o9999 o-19 e-33 e45 e-5 o38 e44 o5 o-16 e-35 o9999 o-49 o1 e5 e-32 e15 o-12 o-56 o50 o23 o9999 o-5 e38 o-7 o23 o-26 o-18 o9999 o-29 e-6 e50 o46 e-1 e-23 e-13 e26 o34 o16 o37 e8 e9999 e5 e-30 o4 e-34 e-16 o-39 o33 e9999 e-23 o-1 e-8 o19 o53 e5 e12 e1 e32 o2 e1 o29 e-21 o-32 o28 o-58 o-22 o37 e-47 e6 e19 e-9999 e15 o0 e-19 o-32 e-26 e-1 o19 o-10 e-9 o19 o15 e46 e-4 o-33 e9 e9999 o17 e6 e35 e1 e46 e-10 o-5 e38 o-7 e10 e40 e15 e-36 e8 e13 o-19 e-33 e45 o-35 o8 e17 e-5 e-3 e-43 o36"

if TileA1[-1:]!=" ": TileA1+=" "
if TileC!="" and TileC[-1:]!=" ": TileC+=" "
if elbow_move!="" and elbow_move[-1:]!=" ": elbow_move+=" "

recipes=("All_41complete_lib:" + TileA1 + elbow_move + TileC + TileA2D1D2).rstrip()
numgp= recipes.count(" ")+1

g.setrule("LifeHistory")
recipelist=recipes.split("\n")
locx,locy,locxstep=0,0,1000
firstrecipe=recipelist[0].split(":")
name="recipe"
if len(firstrecipe)==2: name=firstrecipe[0]
g.new(name)
for item in recipelist:
    rparts=item.split(":")

    # The target pattern is customized and will probably need to change with each new recipe
    g.putcells(g.parse("79.2E$79.2E67$3.4B$4.4B$5.4B$6.4B$B6.4B$2B6.4B$3B2.2E2.4B$4B.2E3.3B$."
                      +"4B6.2B$2.4B6.B$3.4B$4.4B$5.4B!",locx-5,locy-73))

    recipestr = rparts[1].replace('\n',' ').replace('\r',' ').replace(' ','').replace('E','e').replace('O','o')
    recipestr=recipestr.replace(',','e').replace(';','o').replace(' ','e').replace("ee",'e').replace("eo",'o')
    rlist = recipestr.replace('o','e').split("e")[1:]
    parities = recipestr.translate(maketrans("",""),"0123456789-")+"~"
    if parities.replace('e','').replace('o','')!="~":
      g.exit("Bad format -- parity check failed for " + recipestr+":"+parities.replace('e','').replace('o',''))
    parity=0
    if parities[0]!="e":
      g.note("Recipe not normalized -- should start with 'e'.")
      parity=1
    else:
      parity=0 
    loc=10
    count=0
    for delta in rlist:
      count+=1
      if count==3:
        g.fit()
        g.update()
      try:
        d=int(delta)
      except:
        continue
      if abs(d)<999:
        offset, phase = d//4, d%4
        g.putcells(g.parse(phaselist[parity]),loc-3+locx,loc+3+locy) #-6 lane
        g.putcells(g.parse(phaselist[parity+phase]),loc+2+offset+locx,loc-2+offset+locy) #+4 lane
      else: # singleton glider
        if d<0:
          g.putcells(g.parse(phaselist[parity]),loc+2+locx,loc-2+locy) #+4 lane
        else:
          g.putcells(g.parse(phaselist[parity]),loc-3+locx,loc+3+locy) #-6 lane
      loc+=180
      parities=parities[1:]
      parity=1 if parities[0]=="o" else 0
    locx+=locxstep
g.setstep(14)
g.show(str(numgp) + " glider pairs placed.")
I haven't added in the TileC recipe to the above script, just because it's a little more complicated to find the most efficient elbow-move recipes than it was in the Good Old Days, when construction lanes were 9hd apart and there was only one kind of elbow...!

chris_c
Posts: 966
Joined: June 28th, 2014, 7:15 am

Re: Demonoid (diagonal Geminoid) working notes

Post by chris_c » November 19th, 2015, 12:13 pm

dvgrn wrote:Minor progress report: removing two painfully sparky recipes from the (4,1) library and recompiling at depth 9 gives a working 4368gp recipe with no construction conflicts. Depth 9 saves another 9 gliders over depth 8. The two removed recipes were L-27m7FA and L5m7AAr.
Cool. A depth 9 fully working recipe for Tiles A + D is too tempting not to play around with. I spliced in TileC somewhere near the start of A2 at the cost of 7 glider pairs. Might not be the most efficient way but I was only working with the "central-elbows-only" block move table I posted a while back.

Code: Select all

# build-10hd-gp-recipe-DemonoidA1C1A2D1D2.py
import golly as g

from glife.text import make_text
from string import maketrans
phaselist=["3o$o$bo!","b2o$2o$2bo!","b2o$bobo$bo!","2bo$b2o$bobo!","$b3o$bo$2bo!"]

TileA1="e-9999 e-1 e-23 e-13 e26 o42 o15 o24 e9 o2 o-12 o-9999 o32 o1 o9999 o-35 e9999 e-49 e1 o33 e32 o33 o9999 o9999 e-29 o3 e16 o9999 o5 o-44 o-14 e-52 o9999 o-5 e50 o51 o53 o9 e-23 o37 o-46 e-11 o-9999 o-5 e38 o-7 o23 o-26 o-18 o9999 e-42 o-15 e15 o-58 e-19 o-32 e-42 o-14 e5 o-11 e15 e9999 e-42 o-15 e15 o-58 e-19 o-32 e-46 o-7 e15 e10 e39 e37 o-32 e-47 o-32 e-4 o1 e-9999 o-19 e-33 e29 e-22 e47 e-20 e18 o15 o-18 e9999 e-21 o53 o9 o-29 e26 o19 e14 o9999 o29 e-21 o32 o-4 e33 o25 e45 e0 o9999 o10 e-37 o35 o-9999 o-1 e-38 o9999 o0 e-19 e-9999 e-13 o9999 o-32 e-39 o18 e5 o-11 e9 e20 e-23 o37 e-13 o-13 e5 e-30 o4 e-42 o-15 e15 o-58 e-19 o-32 o-39 e-50 o45 o39 o-56 e9999 o-5 e38 o-7 o60 e-35 o-16 e-29 e1 e23 e8 e15 e10 e39 e37 o-19 e-33 e33 e15 o-13 o31 o-42 e9999 o-13 e35 e1 e46 e-10 e-19 o-32 e-26 e-5 o19 o-10 e-9 e-6 e-35 o9999 o-49 o1 o11 o60 o38 e-9 e9 e9999 o17 e9999 o15 e-57 o25 o-9999 o26 o29 e-14 e-39 e22 e8 e55 o-43 o-27 o-22 o37 e-1 o-26 o2 e0 e26 o45 o39 o-56 e9999 e9 e-5 o27 o30 e-1 o27 o30 e-22 e47 e-20 e18 e-9999 o-1 e-56 e30 e-9999 o-15 e4 e28 e-14 o-23 e-22 e-25 o0 e44 e-9999 e19 e53 o5 o12 e5 e-32 e15 e-23 o37 e-1 e-8 e35 o-1 o-19 o-1 e-33 e-2 o-22 e39 e-16 o-9999 o5 o6 o9 o-9999 o29 e-19 o26 o13 o-9999 o53 e5 o31 e-35 e8 o17 e-5 o27 o24 e-59 o-14 o35 e-3 o-5 e-8 e5 e-18 o-13 e2 o-48 e10 e40 e15 e-36 o31 o-22 e28 e27 e19 e38 e-18 e-57 e0 e19 e53 o5 o14 o-5 e38 o-7 e10 e40 e15 e-36 e33 e-49 e0 o-33 o9999 o15 o-18 e9999 e-21 o29 e-19 o26 o5 e-39 o14 o-8 e12 e-11 e53 e9999 o45 o39 o-56 e25 o-10 o13 e-22 e37 o-47 e-35 o9999 o-49 o1 e-9999 o-5 e50 o51 e29 e-32 o-37 o0 e-31 o25 o-47 o-53 o-45 e52 e-42 e-4 e-42 o-15 e15 e-17 o-23 e19 e12 e3 e17 o10 o-15 e44 e5 o-37 o-60 o19 e0 e-51 o24 o53 o9 o-29 e26 o11 o-19 o3 o-19 e-33 e29 e-12 e1 e29 e-6 e45 e11 e13 o-33 e28 o24 e9 o-31 e33 o-31 e57 e13 o-22 o37 o-44 o-13 o-15 o-7 e58 e39 e-45 e-43 e-1 o21 o-22 o37 e-1 e-8 e19 e-9999 e15 o0 e-32 o-5 e-2 e9999 o27 o-22 o37 e-1 e-26 e2 o-33 o-24 o47 e-23 o26 o10 e9999 o-11 e-42 e-13 o-32 o-25 o42 o17 o2 e29 o-9999 o45 o39 o-56 e9999 e13 e-35 e8 o17 e-1 o27 o30 e-5 o27 o24 o-56 e-50 e45 o-41 e-28 o52 o5 o-30 e4 e-29 e-3 o-16 e0 e10 e40 e15 e-36 o8 o6 o5 e-11 o15 o9999 o-42 e-15 o15 e-58 e-29 e-35 e-5 e-3 o-22 o37 e-47 e9999 e9999 e25 e-9999 e2 e2 o-5 e50 o51 o23 o-18 o1 o32 o-8 o29 o13 e6 o10 o-8 e35 o-3 e-5 e-26 e0 o36 e-18 o35 e-3 o-5 e-8 e35 e-39 e3 e1 e-5 o27 o30 o-22 o37 e-1 o-8 o-6 o-5 e46 o57 e-4 o60 e-35 o-16 e-29 e35 o-48 e9999 e9999 o-15 e-9999 e1 o-31 e33 o45 o-15 o-45 o-43 o-1 e21 e-5 o27 o30 e-11 e1 e0 e11 e13 o-9999 o11 o5 o26 o23 o-18 o1 o32 e-8 e-9999 o-19 e-33 e33 e15 o-13 o31 o-42 e-19 o-33 o54 o10 o-22 e35 e0 o0 e0 e9 e9999 o17 o-19 e-33 e45 e6 e35 e-39 e3 e1 o-22 o37 o-44 o-13 o-15 o0 e-32 e2 e-22 e26 o-9 e1 e24 e9 e9999 o17 e-1 e-23 e-13 e26 e29 e0 o8 o-57 e11 o-22 o37 o-44 o-33 e24 o-56 e9999 e9999 e5 o-11 e9 e20 o-23 e37 o-1 e-26 e0 o36 e-18 e5 e-32 e15 o-23 e-2 o-39 e37 o-43 o10 e-37 o35 o-20 e15 e10 e39 e37 o-19 e-33 e33 e15 o-13 o10 e13 e0 e-32 e-8 e9999 o-58 e9999 o-19 e-33 e33 e15 o-13 o31 o-42 e-19 o-33 o45 o-15 e44 e5 o-37 e-23 o37 e-1 e-8 o15 o10 o30 o-12 e-5 o-23 e37 o-13 e-13 e29 o-14 e-9999 o41 o-34 o-18 o-38 e-27 o-51 e5 e-30 o4 o-12 o-56 o46 o8 o-18 o-33 e-6 e-31 e-16 e-4 e9 e9999 o17 e-32 e-8 e9999 e-49 o15 o10 o39 o37 e-5 o46 e57 o-4 o34 o15 o20 o37 o4 o45 o11 o13 e-15 o4 o36 o0 o8 e-5 o27 o30 e-17 e-14 o9999 e-5 o-2 e-13 o15 o10 o39 o37 o-19 e-33 e45 e13 e-5 o46 e57 o-4 o34 o16 o37 e8 o-5 e38 o-7 o10 o40 o15 o-36 o8 e-19 o-33 o42 o9999 o26 o7 e26 o34 o16 o37 e8 e-35 e8 o17 o-22 o37 o-46 e23 e-35 e8 o17 o-22 o37 o-46 e-11 o-9999 o-15 e-9999 e1 o-31 e9 e9999 o17 o-35 e9999 e-11 e0 e6 e9 e9999 o17 e9999 e35 e1 e46 e-10 e-29 e-35 e-5 e-3 o-1 e27 e30 e-5 o19 o-10 e-9 o-13 e9999 e25 e-9999 e2 e2 e-15 o-9999 o1 e-31 e9 e9999 o17 e-26 e13 e-40 e53 e-23 o37 e-47 e-5 o13 o2 o-32 o-12 e29 o-19 e26 e10 o-37 o-39 o-45 o-25 o22 e-43 e9999 e31 o0 e53 e20 e-5 o27 o30 e-5 o27 o24 o-38 o-6 o53 o20 o-5 e0 e55 o-29 o-3 e-16 o0 o29 e-5 e0 e26 o45 o39 o-56 e9999 o-32 o-24 e0 e-3 e-1 e31 e-8 o-10 o-3 o53 o20 o-5 e25 o-1 e-56 e30 e-9999 o-33 o1 e-27 e-59 e12 e1 o-32 e0 e7 o19 o38 o-18 o-9 e13 e-1 e-43 o9 o56 o0 e-9999 o-9999 o29 e-11 e-33 o18 o53 o20 o-21 e19 o45 o23 o9 o9999 e17 e-35 o9999 o-11 o4 e-25 o-9999 o-35 o8 e17 o-1 e27 e30 o-12 e-33 o-50 o12 e8 o-19 e-33 e45 o-35 e9999 e-9 o-49 e-33 e-2 o-22 e39 o-11 o5 o3 o49 o-18 e29 o-19 e26 e13 e15 o-20 e-60 o-52 e-26 e6 e11 e6 o33 e-9999 o-45 e-49 o-12 e-35 e8 o17 o-5 e27 e30 e-1 o27 o30 o-1 e27 e30 e-1 o27 o30 e-22 e42 o2 o11 e6 o-6 o-19 e-32 o-42 e-14 o35 o1 o46 o-10 e-35 e8 o17 e-12 o-15 o-9 e-20 e5 e0 o-55 o34 o16 o37 o9 o9999 e17 e-19 o-33 o54 o10 o-22 o-6 e-5 o50 e51 o53 o9 o-29 e-6 e50 o46 e-1 e-39 e-7 e-1 o0 e-33 o24 e-56 o9999 e-11 o-5 e38 o-7 e34 e16 e37 e13 o-22 o37 e-47 o-38 e0 e-24 o-9999 e-5 o19 o-10 e-9 e15 e6 e-14 e-4 e-5 o19 o32 o53 o-33 o1 e-27 o-32 o3 o1 o0 o11 o13 e-13 o9999 o9999 o-32 e5 e-32 e15 o-12 o-56 o50 o23 o9999 o-19 e-33 e45 e-5 o44 o12 e43 e12 e1 o-32 o3 e6 e5 e-30 o4 o-12 o-56 o46 o9999 e13 o-19 e-33 e45 o-5 e38 o-7 e29 e-6 o-49 e23 e11 e33 e-1 e9999 e-49 e29 o-17 o9999 o9999 e4 e-22 e37 e-44 o-33 o9999 o45 e-22 o9999 o-19 e-33 e54 e10 o-29 e9999 e-7 e-12 o-10 o-32 e-4 o-23 e37 o-1 e-8 e-9999 o-15 e-10 e8 o-31 e9 e9999 o17 o-19 e-33 e29 e-5 o7 e-19 o-32 e-15 e31 e-22 o28 o27 e29 o-14 o-39 o11 o-5 e27 e30 e-1 o27 o30 e-1 o19 o-10 e-9 o15 o-16 e22 o15 e-24 o45 o39 o-56 e5 o45 o39 o-56 e9999 e7 e11 e5 e26 o34 o3 e0 o-17 o16 o-22 o37 e-1 e-35 e49 o33 o-56 e9999 e-19 o-33 o54 e33 o3 e-16 e-40 o-34 o6 o35 o1 o46 o-10 o-5 e38 o-7 o23 o-22 o-23 o0 e-8 e5 e-32 e15 o-29 e0 e-4 e-37 e0 o-19 e-33 e45 e-5 o38 e-7 o12 o1 e-32 e3 e13 e-19 o-32 e-46 o-7 e35 e0 o0 e0 e11 e9999 e6 e15 e31 e-22 o55 o-40 o53 o9 o-34 o-18 o-38 e-27 o-51 e29 o2 o13 e-22 e12 o-24 e25 o-53 o45 e-41 e11 o33 o20 o34 o16 o37 e31 o-31 e9 e9999 o17 e-35 e8 o17 e-1 o27 o24 o-38 e-19 o29 e-19 o26 o11 o9999 e-17 o-20 o18 o9999 o25 o-9999 o2 o2 e-19 o-33 o45 e-23 e-31 e-45 o59 o-29 e0 e-9999 e-9 o10 e-37 o35 o-9999 o-15 e18 e-20 o-25 e15 e15 e10 e39 e37 o-35 o8 e17 e-5 o19 o-10 e-9 o29 e-14 e1 o-55 o-5 e38 o-7 o10 o40 o15 o-36 e8 o-19 e-33 e45 o-1 e-56 e30 e-9999 o-33 o1 e-27 e-59 o29 e-21 o-32 o2 o0 e-33 o24 e-56 o9999 o0 e-5 o27 o30 e-5 o27 o29 o5 o-21 e19 o45 o23 o9 o9999 e17 e-35 o9999 o-11 o4 e-25 o19 o-9999 o15 e0 e13 e-19 o-32 e-26 o-22 o37 e-1 o-35 o8 o-41 e38 e-5 o27 o30 e-5 o19 o-10 e-9 o-7 e-16 o33 o0 o1 o-19 e-33 e42 e9999 e9 e9999 o17 o-15 e4 e-39 e6 o6 e-32 e-8 e9999 o-58 e9999 o-15 e-9999 e1 o-31 e9 e9999 o17 o-19 e-33 e45 o-5 e38 o-7 o29 o-34 o-30 e4 o53 o45 o11 o13 e-5 o44 e-13 o-37 o-4 o35 e-3 o-5 e-8 e19 e-9999 e15 o0 o9999 o5 o-32 o15 o-29 o-3 o-43 o-17 e5 e-32 e15 e-29 o32 e16 o56 e-12 e1 e29 e-6 e45 e11 e13 o-22 e14 o-12 e-37 e20 o8 e-5 o30 e-47 e-7 o23 e-23 o26 e-35 o43 o53 o20 o-22 o37 o-46 e23 o-1 e-44 e14 e0 e0 o-9999 o29 e-11 e-33 o18 o53 o20 o-1 o-3 o-43 o-1 o-31 o11 o9999 o6 o15 e11 e5 e5 e-22 o29 e-19 o31 e0 o-27 e5 e-32 e15 e-29 o32 e16 o56 o-17 o9999 o9999 e4 o-1 e19 e-10 o-9 o5 o-32 o15 e-12 e1 e-28 e-2 e9999 o29 o6 o-58 e-6 e11 e-1 o27 o30 e-1 o27 o30 e-5 o27 o30 e-22 e37 o-1 e-8 e35 o-42 e9999 e33 e6 o-5 e50 o51 o60 e-35 o-16 e-29 o-13 o19 o53 e5 o5 e30 o9 o9999 e17 o-19 e-33 e45 e6 e15 e10 e39 e15 e21 o-22 o37 e-47 e-35 o9999 o-49 o1 e5 e-32 e15 o-29 e-6 e50 o46 o-29 o25 e-58 e-18 o53 o20 e-5 o27 o30 o-17 o-34 e1 o-44 e9999 e-35 o9999 o-49 o8 o-7 o-12 o0 e-12 e-26 e9 e9999 o17 e-5 o38 e-7 e10 o31 e-24 e-7 e34 e15 e-4 o1 e17 o5 e-39 o38 o22 e-32 o45 e-41 o-28 e52 o15 o10 o39 o37 o-19 e-32 e9999 e-26 o9999 e-19 o-33 o45 e-19 o-33 o33"

elbow_move="e13 e15 o6 o-32"

TileA2D1D2_part1="e11 e0 e44 e-1 o58 e13 o-21 e19 o45 o23 o33 e-34 e-27 o13 o-9999 e-1 e-23 e-13 e26 o34 o16 o37 e8 e-19 o-32 e-26 e-12 e1 e29 e-6 o45 o11 o13 o-9999 o11 o2 e26 e23 o-33 e50 o51 o-31 e8 e-35 e8 o17 o-22 o37 e-1 e-7 e-12 o-16 o0 o0 e5 e-18 o-19 e18 e-9999 e11 e5 e26 o34 o16 o37 o8 "

TileA2D1D2_part2="o-32 e-5 o9999 o9999 o0 o-5 e50 o51 o12 o18 o13 o23 o20 e-32 e-8 o-7 o18 e-10 e-35 o9999 o-49 o1 e5 e-32 e15 e-23 o37 e-47 e6 e5 o-11 e15 e9999 e-23 o37 e-1 e-8 e-9999 e-19 o-32 e-26 o-22 o37 e-47 e-19 o-25 o9 o-9 e-1 o-26 o13 o-40 o30 o9999 o53 o9 e-42 o-15 e15 o-58 e-5 o23 o13 o-32 o7 o5 o-30 e4 o-29 o-3 e-16 o0 e34 e16 e37 e8 e-35 e8 o17 e-1 o27 o30 o-22 o37 o6 o31 e8 o-15 e-9999 e1 o-31 e9 e9999 o17 o-5 e38 o-7 e29 e-6 o-49 e23 o14 o1 o39 o12 e9999 o10 e-37 o35 o-9999 o-5 e50 o51 e29 o-5 e-32 e-9999 o9 e-21 o19 e45 e23 e8 e-19 o-32 e-42 o-12 o-35 e9999 e-49 e1 o19 o-9999 o29 o-9999 e12 e35 e1 e46 e-10 e-19 o-33 o29 o-17 o9999 o9999 e4 e-5 o27 o30 o-5 o-3 o-43 o-1 e-20 o45 o39 o-56 e9999 o-15 e4 e-39 e6 o6 e-32 o-5 e9999 e9999 e0 e-19 o-32 o-45 o-15 e45 e11 e13 e-33 o28 e24 o9 o-33 e-14 e-46 e-14 o-22 o37 e-1 o-11 o-1 o45 o39 o-56 e9999 e-35 e8 o17 e-1 o27 o30 o-17 o-34 e1 o-46 e21 e0 e-14 e0 o-41 o19 o53 e5 e38 o45 o39 o-56 e5 o45 e-41 o-28 e52 o5 e-11 o9 o20 e-29 o6 o49 e-33 e-19 o-32 e-42 o-14 e5 e-30 o4 o-29 o-3 e-16 o0 o29 o-26 o9999 e-35 o1 o-13 o-13 e5 e-32 e15 o-12 o-56 o46 o9999 o-19 e-33 e45 e-5 o38 e44 o5 o-16 e-35 o9999 o-49 o1 e5 e-32 e15 o-12 o-56 o50 o23 o9999 o-5 e38 o-7 o23 o-26 o-18 o9999 o-29 e-6 e50 o46 e-1 e-23 e-13 e26 o34 o16 o37 e8 e9999 e5 e-30 o4 e-34 e-16 o-39 o33 e9999 e-23 o-1 e-8 o19 o53 e5 e12 e1 e32 o2 e1 o29 e-21 o-32 o28 o-58 o-22 o37 e-47 e6 e19 e-9999 e15 o0 e-19 o-32 e-26 e-1 o19 o-10 e-9 o19 o15 e46 e-4 o-33 e9 e9999 o17 e6 e35 e1 e46 e-10 o-5 e38 o-7 e10 e40 e15 e-36 e8 e13 o-19 e-33 e42 e9999 o9 o9999 e17 o-5 e23 e13 o-17 e34 e15 e-4 o9999 e9999 e5 o-33 o24 e26 e34 e15 e-4 e3 e1 e0 e39 e-56 o9999 o-32 o-8 o9999 o-49 e15 e-18 e20 o39 e2 e15 o-57 e25 e-9999 e-9999 o-5 e50 o51 o53 o9 e-23 o37 o-46 e-11 o-9999 o-5 e38 o-7 o23 o-26 o-18 o9999 e-42 o-15 e15 o-58 e-19 o-32 e-42 o-14 e5 o-11 e15 e9999 e-42 o-15 e15 o-58 e-19 o-32 e-46 o-7 e15 e10 e39 e37 o-32 e-47 o-32 e-4 o1 e-9999 o-19 e-33 e29 e-22 e47 e-20 e18 o15 o-18 e9999 e-21 o53 o9 o-29 e26 o19 e14 o9999 o29 e-21 o32 o-4 e33 o25 e45 e0 o9999 o10 e-37 o35 o-9999 o-1 e-38 o9999 o0 e-19 e-9999 e-13 o9999 o-32 e-39 o18 e5 o-11 e9 e20 e-23 o37 e-13 o-13 e5 e-30 o4 e-42 o-15 e15 o-58 e-19 o-32 o-39 e-50 o45 o39 o-56 e9999 o-5 e38 o-7 o60 e-35 o-16 e-29 e1 e23 e8 e15 e10 e39 e37 o-19 e-33 e33 e15 o-13 o31 o-42 e9999 o-13 e35 e1 e46 e-10 e-19 o-32 e-26 e-5 o19 o-10 e-9 e-6 e-35 o9999 o-49 o1 o11 o60 o38 e-9 e9 e9999 o17 e9999 o15 e-57 o25 o-9999 o26 o29 e-14 e-39 e22 e8 e55 o-43 o-27 o-22 o37 e-1 o-26 o2 e0 e26 o45 o39 o-56 e9999 e9 e-5 o27 o30 e-1 o27 o30 e-22 e47 e-20 e18 e-9999 o-1 e-56 e30 e-9999 o-15 e4 e28 e-14 o-23 e-22 e-25 o0 e44 e-9999 e19 e53 o5 o12 e5 e-32 e15 e-23 o37 e-1 e-8 e35 o-1 o-19 o-1 e-33 e-2 o-22 e39 e-16 o-9999 o5 o6 o9 o-9999 o29 e-19 o26 o13 o-9999 o53 e5 o31 e-35 e8 o17 e-5 o27 o24 e-59 o-14 o35 e-3 o-5 e-8 e5 e-18 o-13 e2 o-48 e10 e40 e15 e-36 o31 o-22 e28 e27 e19 e38 e-18 e-57 e0 e19 e53 o5 o14 o-5 e38 o-7 e10 e40 e15 e-36 e33 e-49 e0 o-33 o9999 o15 o-18 e9999 e-21 o29 e-19 o26 o5 e-39 o14 o-8 e12 e-11 e53 e9999 o45 o39 o-56 e25 o-10 o13 e-22 e37 o-47 e-35 o9999 o-49 o1 e-9999 o-5 e50 o51 e29 e-32 o-37 o0 e-31 o25 o-47 o-53 o-45 e52 e-42 e-4 e-42 o-15 e15 e-17 o-23 e19 e12 e3 e17 o10 o-15 e44 e5 o-37 o-60 o19 e0 e-51 o24 o53 o9 o-29 e26 o11 o-19 o3 o-19 e-33 e29 e-12 e1 e29 e-6 e45 e11 e13 o-33 e28 o24 e9 o-31 e33 o-31 e57 e13 o-22 o37 o-44 o-13 o-15 o-7 e58 e39 e-45 e-43 e-1 o21 o-22 o37 e-1 e-8 e19 e-9999 e15 o0 e-32 o-5 e-2 e9999 o27 o-22 o37 e-1 e-26 e2 o-33 o-24 o47 e-23 o26 o10 e9999 o-11 e-42 e-13 o-32 o-25 o42 o17 o2 e29 o-9999 o45 o39 o-56 e9999 e13 e-35 e8 o17 e-1 o27 o30 e-5 o27 o24 o-56 e-50 e45 o-41 e-28 o52 o5 o-30 e4 e-29 e-3 o-16 e0 e10 e40 e15 e-36 o8 o6 o5 e-11 o15 o9999 o-42 e-15 o15 e-58 e-29 e-35 e-5 e-3 o-22 o37 e-47 e9999 e9999 e25 e-9999 e2 e2 o-5 e50 o51 o23 o-18 o1 o32 o-8 o29 o13 e6 o10 o-8 e35 o-3 e-5 e-26 e0 o36 e-18 o35 e-3 o-5 e-8 e35 e-39 e3 e1 e-5 o27 o30 o-22 o37 e-1 o-8 o-6 o-5 e46 o57 e-4 o60 e-35 o-16 e-29 e35 o-48 e9999 e9999 o-15 e-9999 e1 o-31 e33 o45 o-15 o-45 o-43 o-1 e21 e-5 o27 o30 e-11 e1 e0 e11 e13 o-9999 o11 o5 o26 o23 o-18 o1 o32 e-8 e-9999 o-19 e-33 e33 e15 o-13 o31 o-42 e-19 o-33 o54 o10 o-22 e35 e0 o0 e0 e9 e9999 o17 o-19 e-33 e45 e6 e35 e-39 e3 e1 o-22 o37 o-44 o-13 o-15 o0 e-32 e2 e-22 e26 o-9 e1 e24 e9 e9999 o17 e-1 e-23 e-13 e26 e29 e0 o8 o-57 e11 o-22 o37 o-44 o-33 e24 o-56 e9999 e9999 e5 o-11 e9 e20 o-23 e37 o-1 e-26 e0 o36 e-18 e5 e-32 e15 o-23 e-2 o-39 e37 o-43 o10 e-37 o35 o-20 e15 e10 e39 e37 o-19 e-33 e33 e15 o-13 o10 e13 e0 e-32 e-8 e9999 o-58 e9999 o-19 e-33 e33 e15 o-13 o31 o-42 e-19 o-33 o45 o-15 e44 e5 o-37 e-23 o37 e-1 e-8 o15 o10 o30 o-12 e-5 o-23 e37 o-13 e-13 e29 o-14 e-9999 o41 o-34 o-18 o-38 e-27 o-51 e5 e-30 o4 o-12 o-56 o46 o8 o-18 o-33 e-6 e-31 e-16 e-4 e9 e9999 o17 e-32 e-8 e9999 e-49 o15 o10 o39 o37 e-5 o46 e57 o-4 o34 o15 o20 o37 o4 o45 o11 o13 e-15 o4 o36 o0 o8 e-5 o27 o30 e-17 e-14 o9999 e-5 o-2 e-13 o15 o10 o39 o37 o-19 e-33 e45 e13 e-5 o46 e57 o-4 o34 o16 o37 e8 o-5 e38 o-7 o10 o40 o15 o-36 o8 e-19 o-33 o42 o9999 o26 o7 e26 o34 o16 o37 e8 e-35 e8 o17 o-22 o37 o-46 e23 e-35 e8 o17 o-22 o37 o-46 e-11 o-9999 o-15 e-9999 e1 o-31 e9 e9999 o17 o-35 e9999 e-11 e0 e6 e9 e9999 o17 e9999 e35 e1 e46 e-10 e-29 e-35 e-5 e-3 o-1 e27 e30 e-5 o19 o-10 e-9 o-13 e9999 e25 e-9999 e2 e2 e-15 o-9999 o1 e-31 e9 e9999 o17 e-26 e13 e-40 e53 e-23 o37 e-47 e-5 o13 o2 o-32 o-12 e29 o-19 e26 e10 o-37 o-39 o-45 o-25 o22 e-43 e9999 e31 o0 e53 e20 e-5 o27 o30 e-5 o27 o24 o-38 o-6 o53 o20 o-5 e0 e55 o-29 o-3 e-16 o0 o29 e-5 e0 e26 o45 o39 o-56 e9999 o-32 o-24 e0 e-3 e-1 e31 e-8 o-10 o-3 o53 o20 o-5 e25 o-1 e-56 e30 e-9999 o-33 o1 e-27 e-59 e12 e1 o-32 e0 e7 o19 o38 o-18 o-9 e13 e-1 e-43 o9 o56 o0 e-9999 o-9999 o29 e-11 e-33 o18 o53 o20 o-21 e19 o45 o23 o9 o9999 e17 e-35 o9999 o-11 o4 e-25 o-9999 o-35 o8 e17 o-1 e27 e30 o-12 e-33 o-50 o12 e8 o-19 e-33 e45 o-35 e9999 e-9 o-49 e-33 e-2 o-22 e39 o-11 o5 o3 o49 o-18 e29 o-19 e26 e13 e15 o-20 e-60 o-52 e-26 e6 e11 e6 o33 e-9999 o-45 e-49 o-12 e-35 e8 o17 o-5 e27 e30 e-1 o27 o30 o-1 e27 e30 e-1 o27 o30 e-22 e42 o2 o11 e6 o-6 o-19 e-32 o-42 e-14 o35 o1 o46 o-10 e-35 e8 o17 e-12 o-15 o-9 e-20 e5 e0 o-55 o34 o16 o37 o9 o9999 e17 e-19 o-33 o54 o10 o-22 o-6 e-5 o50 e51 o53 o9 o-29 e-6 e50 o46 e-1 e-39 e-7 e-1 o0 e-33 o24 e-56 o9999 e-11 o-5 e38 o-7 e34 e16 e37 e13 o-22 o37 e-47 o-38 e0 e-24 o-9999 e-5 o19 o-10 e-9 e15 e6 e-14 e-4 e-5 o19 o32 o53 o-33 o1 e-27 o-32 o3 o1 o0 o11 o13 e-13 o9999 o9999 o-32 e5 e-32 e15 o-12 o-56 o50 o23 o9999 o-19 e-33 e45 e-5 o44 o12 e43 e12 e1 o-32 o3 e6 e5 e-30 o4 o-12 o-56 o46 o9999 e13 o-19 e-33 e45 o-5 e38 o-7 e29 e-6 o-49 e23 e11 e33 e-1 e9999 e-49 e29 o-17 o9999 o9999 e4 e-22 e37 e-44 o-33 o9999 o45 e-22 o9999 o-19 e-33 e54 e10 o-29 e9999 e-7 e-12 o-10 o-32 e-4 o-23 e37 o-1 e-8 e-9999 o-15 e-10 e8 o-31 e9 e9999 o17 o-19 e-33 e29 e-5 o7 e-19 o-32 e-15 e31 e-22 o28 o27 e29 o-14 o-39 o11 o-5 e27 e30 e-1 o27 o30 e-1 o19 o-10 e-9 o15 o-16 e22 o15 e-24 o45 o39 o-56 e5 o45 o39 o-56 e9999 e7 e11 e5 e26 o34 o3 e0 o-17 o16 o-22 o37 e-1 e-35 e49 o33 o-56 e9999 e-19 o-33 o54 e33 o3 e-16 e-40 o-34 o6 o35 o1 o46 o-10 o-5 e38 o-7 o23 o-22 o-23 o0 e-8 e5 e-32 e15 o-29 e0 e-4 e-37 e0 o-19 e-33 e45 e-5 o38 e-7 o12 o1 e-32 e3 e13 e-19 o-32 e-46 o-7 e35 e0 o0 e0 e11 e9999 e6 e15 e31 e-22 o55 o-40 o53 o9 o-34 o-18 o-38 e-27 o-51 e29 o2 o13 e-22 e12 o-24 e25 o-53 o45 e-41 e11 o33 o20 o34 o16 o37 e31 o-31 e9 e9999 o17 e-35 e8 o17 e-1 o27 o24 o-38 e-19 o29 e-19 o26 o11 o9999 e-17 o-20 o18 o9999 o25 o-9999 o2 o2 e-19 o-33 o45 e-23 e-31 e-45 o59 o-29 e0 e-9999 e-9 o10 e-37 o35 o-9999 o-15 e18 e-20 o-25 e15 e15 e10 e39 e37 o-35 o8 e17 e-5 o19 o-10 e-9 o29 e-14 e1 o-55 o-5 e38 o-7 o10 o40 o15 o-36 e8 o-19 e-33 e45 o-1 e-56 e30 e-9999 o-33 o1 e-27 e-59 o29 e-21 o-32 o2 o0 e-33 o24 e-56 o9999 o0 e-5 o27 o30 e-5 o27 o29 o5 o-21 e19 o45 o23 o9 o9999 e17 e-35 o9999 o-11 o4 e-25 o19 o-9999 o15 e0 e13 e-19 o-32 e-26 o-22 o37 e-1 o-35 o8 o-41 e38 e-5 o27 o30 e-5 o19 o-10 e-9 o-7 e-16 o33 o0 o1 o-19 e-33 e42 e9999 e9 e9999 o17 o-15 e4 e-39 e6 o6 e-32 e-8 e9999 o-58 e9999 o-15 e-9999 e1 o-31 e9 e9999 o17 o-19 e-33 e45 o-5 e38 o-7 o29 o-34 o-30 e4 o53 o45 o11 o13 e-5 o44 e-13 o-37 o-4 o35 e-3 o-5 e-8 e19 e-9999 e15 o0 o9999 o5 o-32 o15 o-29 o-3 o-43 o-17 e5 e-32 e15 e-29 o32 e16 o56 e-12 e1 e29 e-6 e45 e11 e13 o-22 e14 o-12 e-37 e20 o8 e-5 o30 e-47 e-7 o23 e-23 o26 e-35 o43 o53 o20 o-22 o37 o-46 e23 o-1 e-44 e14 e0 e0 o-9999 o29 e-11 e-33 o18 o53 o20 o-1 o-3 o-43 o-1 o-31 o11 o9999 o6 o15 e11 e5 e5 e-22 o29 e-19 o31 e0 o-27 e5 e-32 e15 e-29 o32 e16 o56 o-17 o9999 o9999 e4 o-1 e19 e-10 o-9 o5 o-32 o15 e-12 e1 e-28 e-2 e9999 o29 o6 o-58 e-6 e11 e-1 o27 o30 e-1 o27 o30 e-5 o27 o30 e-22 e37 o-1 e-8 e35 o-42 e9999 e33 e6 o-5 e50 o51 o60 e-35 o-16 e-29 o-13 o19 o53 e5 o5 e30 o9 o9999 e17 o-19 e-33 e45 e6 e15 e10 e39 e15 e21 o-22 o37 e-47 e-35 o9999 o-49 o1 e29 o-14 o-39 o1 o3 o45 o16 e21 e-19 o-32 e-9 o1 e35 e-39 e3 e1 e-1 o27 o30 e-22 e42 o2 o11 e6 e5 o-11 e15 e9999 o-29 o-3 o-43 o-17 e9999 e58 e36 e52 e3 e9 e9999 o17 e-1 e-31 o27 o-32 e3 o-9999 o-13 e9999 e-32 e7 e-32 e-8 e9999 e-49 e35 e-39 e4 e-52 o-1 e9 e9999 o17 e-19 o-32 o-39 o22 e-37 o-13 o-23 e38 e-9 o45 o39 o-56 e9999 o-15 e18 e-20 o-25 e15 e-6 e-35 o9999 o-49 o1 e1 e32 o2 e1 o29 e-19 o26 o5 e-39 o38 o22 e-32 o45 o11 o13 o-8 o0 o-48 o12 e11 o-22 o37 o-46 e-11 o0 e29 o-14 o-39 e11 e-5 o27 o30 e-5 o27 o30 e-5 o27 e-31 o28 o0 o-29 o-3 e-16 o0 o34 o16 o37 e8 e-19 o-32 e-26 e-17 e-14 o9999 e-5 o-2 e5 o-11 e15 e9999 e-12 e-9999 e32 e1 e9999 e-19 o-33 o29 e-12 e1 e29 e-6 o45 o11 o13 o-15 e4 e36 e0 e8 e-17 o-2 e-23 o14 o24 o-22 o37 e-1 e-8 e-9999 e-19 o-32 e-26 o-22 o37 e-47 e-19 o-25 o9 o-9 e-1 o-26 o13 o-40 o30 o9999 o53 o9 e-42 o-15 e15 o-58 e-5 o23 o13 o-32 o7 o5 o-30 e4 o-29 o-3 e-16 o0 e34 e16 e37 e8 e-35 e8 o17 e-1 o27 o30 o-22 o37 o6 o31 e8 o-15 e-9999 e1 o-31 e9 e9999 o17 o-5 e38 o-7 e29 e-6 o-49 e23 o14 o1 o39 o12 e9999 o10 e-37 o35 o-9999 o-5 e50 o51 e29 o-5 e-32 e-9999 o9 e-21 o19 e45 e23 e8 e-19 o-32 e-42 o-12 o-35 e9999 e-49 e1 o19 o-9999 o29 o-9999 e12 e35 e1 e46 e-10 e-19 o-33 o29 o-17 o9999 o9999 e4 e-5 o27 o30 o-5 o-3 o-43 o-1 e-20 o45 o39 o-56 e9999 o-15 e4 e-39 e6 o6 e-32 o-5 e9999 e9999 e0 e-19 o-32 o-45 o-15 e45 e11 e13 e-33 o28 e24 o9 o-33 e-14 e-46 e-14 o-22 o37 e-1 o-11 o-1 o45 o39 o-56 e9999 e-35 e8 o17 e-1 o27 o30 o-17 o-34 e1 o-46 e21 e0 e-14 e0 o-41 o19 o53 e5 e38 o45 o39 o-56 e5 o45 e-41 o-28 e52 o5 e-11 o9 o20 e-29 o6 o49 e-33 e-19 o-32 e-42 o-14 e5 e-30 o4 o-29 o-3 e-16 o0 o29 o-26 o9999 e-35 o1 o-13 o-13 e5 e-32 e15 o-12 o-56 o46 o9999 o-19 e-33 e45 e-5 o38 e44 o5 o-16 e-35 o9999 o-49 o1 e5 e-32 e15 o-12 o-56 o50 o23 o9999 o-5 e38 o-7 o23 o-26 o-18 o9999 o-29 e-6 e50 o46 e-1 e-23 e-13 e26 o34 o16 o37 e8 e9999 e5 e-30 o4 e-34 e-16 o-39 o33 e9999 e-23 o-1 e-8 o19 o53 e5 e12 e1 e32 o2 e1 o29 e-21 o-32 o28 o-58 o-22 o37 e-47 e6 e19 e-9999 e15 o0 e-19 o-32 e-26 e-1 o19 o-10 e-9 o19 o15 e46 e-4 o-33 e9 e9999 o17 e6 e35 e1 e46 e-10 o-5 e38 o-7 e10 e40 e15 e-36 e8 e13 o-19 e-33 e45 o-35 o8 e17 e-5 e-3 e-43 o36 "

move20 = "e-1 e-23 o-3 e9999 "

TileC = "e-32 e-8 o-11 e13 e13 e-32 e-8 o-11 e-32 e-8 o-11 e-32 e-8 o-11 e-32 e-8 o-11 e6 e9999 e9999 e9999 o5 e-9999 e-9999 e2 e1 e-34 e-26 e26 o-15 e-9999 o-43 e18 o-56 o-12 o16 e-9999 e-12 e13 e13 e13 e13 o-15 e18 e-7 o-19 e-29 o-14 e1 e45 o-55 e3 o-5 e68 e9999 e-20 o38 o-5 e53 o34 e-2 o-13 e5 e-62 o-22 e-34 o-57 e1 e38 e26 e8 o-29 e8 o-58 e-9999 e-32 e-8 o-11 o9999 e35 o-4 e-31 o-9999 e13 e6 e-9999 o-15 e18 e-7 o-1 e-38 e-26 e-8 e1 e31 e-23 e9999 e5 e-28 e58 o32 o8 o7 e17 e-34 o9999 o32 o8 o7 e17 e-34 e-1 e-23 e-1 e-12 o24 o24 e-6 o1 o31 o-23 o9999 o5 o-28 o58 e-9999 e-32 o-15 o17 o23 o5 e-40 "

movem16 = "e6 e-6 e13 "

if TileA1[-1:]!=" ": TileA1+=" "
if TileC!="" and TileC[-1:]!=" ": TileC+=" "
if elbow_move!="" and elbow_move[-1:]!=" ": elbow_move+=" "

TileCD = TileA2D1D2_part1 + move20 + TileC + movem16 + TileA2D1D2_part2

recipes=("All_41complete_lib:" + TileA1 + elbow_move + TileCD).rstrip()
numgp= recipes.count(" ")+1

g.setrule("LifeHistory")
recipelist=recipes.split("\n")
locx,locy,locxstep=0,0,1000
firstrecipe=recipelist[0].split(":")
name="recipe"
if len(firstrecipe)==2: name=firstrecipe[0]
g.new(name)
for item in recipelist:
    rparts=item.split(":")

    # The target pattern is customized and will probably need to change with each new recipe
    g.putcells(g.parse("79.2E$79.2E67$3.4B$4.4B$5.4B$6.4B$B6.4B$2B6.4B$3B2.2E2.4B$4B.2E3.3B$."
                      +"4B6.2B$2.4B6.B$3.4B$4.4B$5.4B!",locx-5,locy-73))

    recipestr = rparts[1].replace('\n',' ').replace('\r',' ').replace(' ','').replace('E','e').replace('O','o')
    recipestr=recipestr.replace(',','e').replace(';','o').replace(' ','e').replace("ee",'e').replace("eo",'o')
    rlist = recipestr.replace('o','e').split("e")[1:]
    parities = recipestr.translate(maketrans("",""),"0123456789-")+"~"
    if parities.replace('e','').replace('o','')!="~":
      g.exit("Bad format -- parity check failed for " + recipestr+":"+parities.replace('e','').replace('o',''))
    parity=0
    if parities[0]!="e":
      g.note("Recipe not normalized -- should start with 'e'.")
      parity=1
    else:
      parity=0
    loc=10
    count=0
    for delta in rlist:
      count+=1
      if count==3:
        g.fit()
        g.update()
      try:
        d=int(delta)
      except:
        continue
      if abs(d)<999:
        offset, phase = d//4, d%4
        g.putcells(g.parse(phaselist[parity]),loc-3+locx,loc+3+locy) #-6 lane
        g.putcells(g.parse(phaselist[parity+phase]),loc+2+offset+locx,loc-2+offset+locy) #+4 lane
      else: # singleton glider
        if d<0:
          g.putcells(g.parse(phaselist[parity]),loc+2+locx,loc-2+locy) #+4 lane
        else:
          g.putcells(g.parse(phaselist[parity]),loc-3+locx,loc+3+locy) #-6 lane
      loc+=180
      parities=parities[1:]
      parity=1 if parities[0]=="o" else 0
    locx+=locxstep
g.setstep(14)
g.show(str(numgp) + " glider pairs placed.")
I am making good progress on TileE. I've got recipes for all 3 eaters in 24gp each and I think I've got recipes for all of the blocks and boats lying around somewhere. All that is left to do is TileB, the reverse gliders before TileA and then join everything together.

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

Re: Demonoid (diagonal Geminoid) working notes

Post by dvgrn » November 19th, 2015, 1:32 pm

chris_c wrote:A depth 9 fully working recipe for Tiles A + D is too tempting not to play around with. I spliced in TileC somewhere near the start of A2 at the cost of 7 glider pairs. Might not be the most efficient way but I was only working with the "central-elbows-only" block move table I posted a while back.
...
I am making good progress on TileE. I've got recipes for all 3 eaters in 24gp each and I think I've got recipes for all of the blocks and boats lying around somewhere. All that is left to do is TileB, the reverse gliders before TileA and then join everything together.
Looks plenty good enough for me! And I'm glad to hear TileE is coming along okay.

I figured maybe over the weekend I'd write a quick gp-recipe optimizer, to move each glider pair as close as possible to the previous pair. (Or it could align all the pairs to a spacing of 256, I suppose, except whatever rare cases need longer -- not sure if that will make Golly happier or not.)

I'm also thinking that it won't take too long to write a script that takes an optimized gp-recipe as input, and copies the streams for the two construction lanes into a series of edge-shooting loop guns. Then as soon as the final Demonoid recipe is available, it can be tested by building a Demonoid gun. I've borrowed the simple loops from the period-2^23 loafer gun, adjusted for 10hd instead of 9hd, and there really isn't much more to it than that.

The only small annoyance that I can see is that the A-blocker recipe doesn't leave an elbow in front of the eater. It would have been convenient for the gun to be able to pull an elbow back to the starting location, wait for the new Demonoid to lift off out of the way, and then start construction again.

On the other hand, that would have meant a different recipe in the construction-lane loop guns from the one in the Demonoid-input loop gun, so it's probably just as well. It should be easy enough to trigger elbow rebuilders by splitting off a couple of signals from the self-destruct signal loop. I haven't looked yet to see if there's an H-to-block converter with enough clearance, but the odds seem reasonably good -- at least if the recipe is adjusted to start with a big AA push operation or two.

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

Re: Demonoid (diagonal Geminoid) working notes

Post by dvgrn » November 21st, 2015, 3:18 am

dvgrn wrote:I've borrowed the simple loops from the period-2^23 loafer gun, adjusted for 10hd instead of 9hd, and there really isn't much more to it than that.
That was silly of me. The loafer-gun loops don't recover nearly quick enough to be used in this ultramodern Demonoid design.

Here's a script that builds an unprogrammed Demonoid gun, using more up-to-date wiring. To make space for a full Demonoid construction recipe, gunsize will have to be increased to around two million, and diagdist to somewhere up near a million... EDIT: sorry, make that half a million -- the recipe gets folded in half twice, so to speak.

Code: Select all

import golly as g

gunsize=250
diagdist=500

g.setrule("LifeHistory")

basegun = g.parse("""83.2E$83.2E64$2E$2E25$67.E$67.3E$70.E$69.2E8.2E$79.E$77.E.E$77.2E$63.
2E$63.2E26.2E$91.E$89.E.E$89.2E$63.2E$63.2E$183.2E$118.E64.E.E$116.3E
66.E4.2E$115.E65.4E.2E2.E2.E$87.2E13.2E11.2E11.E52.E2.E.E.E.E.2E$87.
2E13.2E24.3E53.E.E.E.E$61.2E68.E53.2E.E.E$62.E67.2E57.E$62.E.E80.2E$
63.2E80.E29.2E$142.2E.E30.E7.2E$141.E2.E31.E.E5.2E$142.2E33.2E$127.2E
$127.2E4$114.2E3.E$114.E3.E.E66.2E$101.2E12.E3.E.E65.E$100.E.E13.E3.E
.E.2E62.3E$100.E13.E.4E2.E.2E64.E$99.2E13.2E3.E.E$117.E.E.2E.2E$114.
3E.E3.E.E61.2E$114.E2.E4.E.E10.2E48.E.E$115.2E6.E11.2E42.2E4.E$177.E
2.E2.2E.4E$177.2E.E.E.E.E2.E$180.E.E.E.E$180.E.E.2E$181.E2$194.2E$
185.2E7.E$185.2E5.E.E$192.2E2$141.2E$134.2E5.2E$134.2E3$136.2E24.E19.
2E$136.2E24.3E14.E3.E$130.2E33.E13.4E$130.2E32.2E$179.2E$179.E$176.2E
.E$175.E2.E$176.2E$161.2E$161.2E4$148.2E3.E$127.E20.E3.E.E$127.3E19.E
3.E.E$130.E19.E3.E.E.2E$129.2E17.E.4E2.E.2E$147.E.E3.E.E$147.E.E2.E2.
2E.2E$148.E3.2E2.E.E$156.E.E10.2E$157.E11.2E5$149.2E$149.2E9$134.2E$
134.2E2$98.2E$99.E$99.E.E$85.2E13.2E$85.2E3$79.2E40.2E$79.2E40.2E$83.
2E$83.2E4$78.2E$78.2E5$102.2E$97.2E2.E2.E$97.E.E2.2E7.2E$100.2E9.2E$
101.E$98.E2.E.2E$97.E.E.2E.E$98.E.E$99.E2.2E$100.2E.3E$106.E$100.2E.
3E$100.2E.E2$92.2E$83.2E7.2E$84.E$84.E.E$85.2E4$105.2E$105.2E5$48.E
41.E$48.3E38.E.E$51.E15.2E20.E.E$50.2E16.E21.E$66.E17.2E.3E$66.5E14.E
.E$42.2E27.E13.E$42.E25.3E12.E.E$39.2E.E24.E15.2E$39.E2.3E4.2E16.4E$
40.2E3.E3.2E14.2E3.E3.2E$42.4E18.E2.3E4.2E$42.E15.2E4.2E.E$43.3E12.E.
E6.E$46.E13.E6.2E$41.5E14.2E$41.E$43.E31.2E$42.2E32.E$73.3E$73.E!""")
farsideadjuster=g.parse("""3.2C$4.C$2.C$2.5C14.2C$7.C13.C$4.3C12.C.C$3.C15.2C$3.4C$.2C3.C3.2C$C
2.3C4.2C$2C.C$3.C$3.2C3$11.2C$12.C$9.3C$9.C21$58.2C$58.C$60.C$40.2C
14.5C$41.C13.C$41.C.C12.3C$42.2C15.C$56.4C$51.2C3.C3.2C$51.2C4.3C2.C$
59.C.2C$59.C$58.2C3$50.2C$50.C$51.3C$53.C!""",diagdist+152,-diagdist-48)
timingbelt=g.parse("""94.2C$94.C$92.C.C$92.2C7$87.2C4.2C$87.2C4.2C4$88.2C$88.2C2.2C$92.C.C$
79.2C13.C$79.C14.2C$80.3C$82.C15$72.2C$63.2C7.2C$64.C$64.C.C$59.2C4.
2C$60.C20.2C$60.C.C18.C$46.2C13.2C16.C.C$46.2C31.2C3$40.2C$40.2C$44.
2C$44.2C67.C$113.3C$116.C$115.C.C$39.2C74.C.C$39.2C32.2C41.C$73.2C2.
2C$77.C.C$79.C$79.2C$63.2C66.2C$58.2C2.C2.C65.2C$58.C.C2.2C$61.2C$62.
C$59.C2.C.2C45.2C$58.C.C.2C.C44.C.C$59.C.C48.C$60.C2.2C44.2C7.2C$61.
2C.3C51.2C$67.C$61.2C.3C59.2C.C$61.2C.C61.2C.3C$132.C$53.2C54.C16.2C.
3C$44.2C7.2C54.3C13.C2.2C$45.C66.C11.C.C$45.C.C63.2C10.C.C.2C.C$46.2C
76.C2.C.2C$127.C$126.2C$123.C.C2.2C$66.2C55.2C2.C2.C$66.2C60.2C$144.
2C$144.C$142.C.C$138.2C2.2C4.C3.2C$9.C41.C52.2C32.2C7.C.C.C2.C$9.3C
38.C.C51.2C40.C2.C.3C.C$12.C15.2C20.C.C92.C3.C4.C$11.2C16.C21.C94.3C.
C.C$27.C17.2C.3C97.C.C.2C$27.5C14.C.C60.2C38.C$3.2C27.C13.C62.2C$3.C
25.3C12.C.C58.2C$2C.C24.C15.2C59.2C$C2.3C4.2C16.4C$.2C3.C3.2C14.2C3.C
3.2C$3.4C18.C2.3C4.2C74.2C$3.C15.2C4.2C.C82.2C13.2C29.2C$4.3C12.C.C6.
C96.C.C29.C.C$7.C13.C6.2C95.C33.C$2.5C14.2C101.2C24.2C7.2C$2.C147.2C$
4.C31.2C$3.2C32.C$34.3C$34.C103.2C$138.2C!""",254,-306)
recipegun=g.parse("""69.2A$69.2A9$84.2A$84.2A10$64.2A$65.A$62.3A$62.A4$80.2A$80.A.A$82.A$
82.2A7$72.2A$63.2A7.2A$64.A$64.A.A$59.2A4.2A$60.A20.2A$60.A.A18.A$46.
2A13.2A16.A.A$46.2A31.2A3$40.2A$40.2A$44.2A$44.2A4$39.2A$39.2A32.2A$
73.2A2.2A$77.A.A$79.A$79.2A$63.2A$58.2A2.A2.A$58.A.A2.2A$61.2A$62.A$
59.A2.A.2A$58.A.A.2A.A$59.A.A$60.A2.2A$61.2A.3A$67.A$61.2A.3A$61.2A.A
2$53.2A$44.2A7.2A$45.A$45.A.A$46.2A4$66.2A$66.2A5$9.A41.A$9.3A38.A.A$
12.A15.2A20.A.A$11.2A16.A21.A$27.A17.2A.3A$27.5A14.A.A$3.2A27.A13.A$
3.A25.3A12.A.A$2A.A24.A15.2A$A2.3A4.2A16.4A$.2A3.A3.2A14.2A3.A3.2A$3.
4A18.A2.3A4.2A$3.A15.2A4.2A.A$4.3A12.A.A6.A$7.A13.A6.2A$2.5A14.2A$2.A
$4.A31.2A$3.2A32.A$34.3A$34.A!""",154,-206)
reflectorRLE="""8.E$8.3E$11.E$10.E.E$10.E.E$11.E5$26.2E$26.2E4$6.2E$5.E.E$5.E$4.2E7.
2E$13.2E2$21.2E.E38.2E$21.2E.3E36.E$27.E37.E$21.2E.3E18.2E14.5E$20.E
2.2E21.E13.E$19.E.E24.E.E12.3E$.E16.E.E.3E22.2E15.E$.3E15.E2.E2.E35.
4E$4.E17.E.E.E29.2E3.E3.2E$3.2E16.2E2.E.E28.2E4.3E2.E$18.E.E2.E.E.E
36.E.2E$18.2E2.2E.2E37.E$63.2E2$25.E$23.3E29.2E$22.E32.E$22.2E32.3E$
58.E2$2E30.E$2E28.3E$29.E$29.2E2$17.E$9.2E5.E.E$9.2E6.E3$19.2E$18.E.E
5.2E$18.E7.2E$17.2E2$31.E$27.2E.E.E$26.E.E.E.E$23.E2.E.E.E.E.2E$23.4E
.2E2.E2.E$27.E4.2E$25.E.E$25.2E!"""
reflectors=g.parse(reflectorRLE)
reflectors_white=g.parse(reflectorRLE.replace("E","C"))
reflectors_green=g.parse(reflectorRLE.replace("E","A"))
mirror_reflectors=g.parse(reflectorRLE,0,0,0,1,1,0)

# have to use g.join() all the time because of multi-state cell lists
# -- sometimes there's an extra 0...

# gun on southwest side -- yellow
all = g.transform(basegun,0,-64)
all = g.join(all, g.transform(reflectors,60+gunsize,195+gunsize))
all = g.join(all,g.transform(mirror_reflectors,196+gunsize,62+gunsize))

# gun on northeast side -- also yellow
all = g.join(all, g.transform(basegun,diagdist+98,-diagdist-227,0,1,1,0))
all = g.join(all, farsideadjuster)
all = g.join(all, g.transform(reflectors,diagdist+224+gunsize,-diagdist-31+gunsize))
all = g.join(all, g.transform(mirror_reflectors,diagdist+357+gunsize,-diagdist-167+gunsize))

# recipe gun -- green
all = g.join(all, recipegun)
all = g.join(all, g.transform(reflectors_green,175+gunsize,-95+gunsize))

# timing belt -- white
all = g.join(all, timingbelt)
all = g.join(all, g.transform(reflectors_white,275+gunsize,-197+gunsize))

g.putcells(all)
I think more or less all that's left is to integrate a modified copy of the 10hd builder script into this script, to perform the following tasks:
  • add a single glider into the "timing belt" loop (white)
  • place short hard-coded recipes in the two sets of two loop guns, to convert the beehives (dropped on the edge of the construction lanes by branches of the timing-belt circuit) into usable block elbows, then move them into starting position
  • place copies of the SW construction lane gliders into the outer loop guns (yellow) -- the SW loop in the SW shotgun, and the NE loop in the NE shotgun -- behind the hard-coded elbow placement gliders
  • place copies of the NE construction lane gliders into the inner loop guns (also yellow, ran out of colors) -- the NE loop in the SW shotgun, and the SW loop in the NE shotgun
  • place a copy of both the SW and NE construction lane gliders into the recipe gun (green) -- NE first, then SW, in series
The reflectors at the southeast edge are all white, just because I was too lazy to re-color them.

The relative timing of the NE and SW glider streams in the recipe gun (only) will have to be adjusted precisely, so that the gliders in the SW stream reach Circuit B in synchrony with their partners in the NE stream reaching Circuit A. This will depend on the value of diagdist. I think only one of those two streams will need to be rephased (probably -- 75% odds). The other streams of gliders can all be placed in the same phase and orientation as the current builder script does already; we just need copies at several different offsets.

Might have to do something a little tricky on the northeast side, so that the construction streams from the loop guns over there arrive at the right time relative to the elbow-building signal from the timing belt. That's the one detail of this gun pattern that's not strictly symmetrical -- the elbow gets built at a different time on the two sides.

If I'm getting tired of scripting by then, I might just cheat and make all the guns much longer than strictly necessary, and move the two streams in the northeast one Demonoid-diameter down the loops. The loop guns could easily be shortened up manually after they run for a while.

--------------------------

I ran a report on all the INCn elbows in the (4,1) library, and was surprised to see how many of them had sparks that extended several lanes beyond the construction lanes, on both sides. Or rather, how few of them didn't have big splotchy sparks:

Code: Select all

x = 14758, y = 270, rule = LifeHistory
2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E
48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.
2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E
48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.
2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E
48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.
2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E$2E48.2E48.2E48.2E48.2E48.
2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E
48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.
2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E
48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.
2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E
48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.
2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E
48.2E48.2E$4500.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E
48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.
2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E
48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.
2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E
48.2E48.2E$5100.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E
48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.
2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E
48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.
2E48.2E48.2E48.2E4$7850.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.
2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E
48.2E48.2E48.2E48.2E48.2E48.2E48.2E$7850.2E48.2E48.2E48.2E48.2E48.2E
48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.
2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E
48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.
2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E
48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E$9350.2E48.2E
48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.
2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E
48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.
2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E
48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.
2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E
48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.
2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E$316.2A48.2A48.2A2248.2A48.
2A48.2A48.2A48.2A8532.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E
48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.
2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E
48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.
2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E48.2E$
316.A.A47.A.A47.A.A2247.A.A47.A.A47.A.A47.A.A47.A.A$18.2A148.2A48.2A
48.2A46.A49.A49.A701.2A48.2A48.2A48.2A48.2A48.2A48.2A48.2A48.2A48.2A
48.2A48.2A48.2A48.2A48.2A48.2A48.2A48.2A48.2A48.2A48.2A48.2A48.2A48.
2A48.2A48.2A48.2A48.2A196.A49.A49.A49.A49.A2251.2A49.A48.2A48.2A298.
2A48.2A48.2A48.2A48.2A48.2A48.2A48.2A48.2A48.2A48.2A48.2A48.2A48.2A
48.2A48.2A48.2A48.2A$17.2A50.2A96.2A48.2A48.2A848.2A48.2A48.2A48.2A
48.2A48.2A48.2A48.2A48.2A48.2A48.2A48.2A48.2A48.2A48.2A48.2A48.2A48.
2A48.2A48.2A48.2A48.2A48.2A48.2A48.2A48.2A48.2A48.2A50.2A48.2A48.2A
2497.A.A47.2A47.2A48.2A50.2A246.2A48.2A48.2A48.2A48.2A48.2A48.2A48.2A
48.2A48.2A48.2A48.2A48.2A48.2A49.A.A47.A.A47.A.A47.A.A48.2A48.2A48.2A
48.2A48.2A48.2A48.2A48.2A48.2A48.2A48.2A48.2A48.2A1099.A49.A3348.2A
48.2A48.2A748.2A48.2A48.2A48.2A48.2A$19.A48.2A99.A49.A49.A849.A49.A
49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A
49.A49.A49.A49.A49.A49.A49.A49.A49.A48.2A48.2A48.2A300.2A49.A49.A
2096.A49.A.A48.A49.A48.2A249.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.
A49.A49.A49.A48.A49.A49.A49.A49.2A48.2A48.2A48.2A48.2A48.2A48.2A48.2A
48.2A48.2A48.2A48.2A48.2A799.3A49.A48.2A49.A147.2A48.2A49.2A48.2A48.
2A48.2A49.A49.A49.A49.A2946.2A48.2A48.2A51.A696.2A48.2A48.2A48.2A49.A
.A47.3A48.2A49.A$70.A2449.A49.A49.A299.A.A47.2A48.2A50.A49.A49.A49.A
49.A49.A49.A49.A1897.A49.3A1097.A49.A49.A49.A49.A49.A49.A49.A49.A49.A
49.A49.A49.A49.3A746.A50.2A47.2A49.2A147.A.A47.A.A47.2A48.2A48.2A48.
2A49.2A48.2A48.2A48.2A998.3A47.3A47.3A47.3A47.3A47.3A1697.A49.A49.A
49.2A48.3A48.2A49.A547.A49.A49.A49.A48.A49.A50.A.A47.2A49.2A48.2A48.
2A48.2A48.2A48.2A48.2A48.2A48.2A48.2A48.2A48.2A48.2A48.2A48.2A48.2A
48.2A48.2A48.2A48.2A48.2A49.A49.A49.A$473.A2446.A49.A.A47.A.A48.2A48.
2A48.2A48.2A48.2A48.2A48.2A48.2A50.A49.A49.A49.A49.A49.A49.A49.A49.A
1496.A1749.A51.2A48.2A48.2A48.2A546.A49.A.A48.A48.A.A248.A49.A49.A49.
A48.A.A47.A.A47.A.A47.A.A997.A49.A49.A49.A49.A49.A1849.A.A47.A49.2A
49.2A797.A49.A49.A.A47.2A48.2A48.2A48.2A48.2A48.2A48.2A48.2A48.2A48.
2A48.2A48.2A48.2A48.2A48.2A48.2A48.2A48.2A48.2A48.2A49.A.A47.2A48.2A
48.2A$12.3A47.3A47.3A47.3A47.3A47.3A48.2A48.2A48.2A47.3A7.2A38.3A47.
3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A
47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.
3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A
47.3A48.2A48.2A48.2A48.2A48.2A47.3A47.3A47.3A47.3A6.A.A38.3A6.A.A38.
3A6.A.A38.3A6.A.A38.3A6.A.A38.3A6.A.A38.3A6.A.A38.3A6.A.A38.3A7.2A38.
3A7.2A38.3A7.2A38.3A7.2A38.3A7.2A38.3A7.2A38.3A7.2A38.3A7.2A38.3A7.2A
38.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.
3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A
47.3A47.3A47.3A6.A40.3A8.2A37.3A8.2A37.3A8.2A37.3A47.3A47.3A47.3A47.
3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A
47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.
3A6.A40.3A6.2A39.3A6.2A39.3A6.2A39.3A6.2A39.3A8.2A37.3A8.2A37.3A8.2A
37.3A8.2A37.3A8.2A37.3A8.2A37.3A8.2A37.3A8.2A37.3A8.2A37.3A8.2A37.3A
47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.
3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A
47.3A47.3A47.3A9.A37.3A9.A37.3A47.3A47.3A47.3A6.A40.3A6.A40.3A6.A40.
3A6.A40.3A6.A40.3A6.A40.3A9.A37.3A9.A37.3A9.A37.3A9.A37.3A9.A37.3A47.
3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A
47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.
3A47.3A47.3A47.3A47.3A6.A40.3A7.A39.3A6.A.A38.3A8.2A37.3A47.3A47.3A
47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.
3A47.3A7.A39.3A7.A39.3A7.A39.3A7.A39.3A7.A39.3A7.A39.3A7.A39.3A7.A39.
3A7.A39.3A7.A39.3A7.A39.3A7.A39.3A7.A39.3A7.A39.3A7.A39.3A7.A39.3A7.A
39.3A7.A39.3A7.A39.3A7.A39.3A6.A40.3A6.A.A38.3A6.A.A38.3A6.A.A38.3A8.
2A37.3A8.2A37.3A8.2A37.3A8.2A37.3A8.2A37.3A47.3A47.3A47.3A47.3A47.3A$
12.A49.A49.A49.A49.A49.A49.2A48.2A48.2A48.A9.A.A37.A10.3A36.A49.A49.A
49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A
49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A
49.A49.A49.A49.A49.A49.2A48.2A48.2A48.2A48.2A48.A49.A49.A49.A49.A49.A
49.A49.A49.A49.A49.A49.A9.A.A37.A9.A.A37.A9.A.A37.A9.A.A37.A9.A.A37.A
9.A.A37.A9.A.A37.A9.A.A37.A9.A.A37.A10.3A36.A10.3A36.A11.2A36.A49.A
49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A
49.A49.A49.A49.A49.A49.A49.A49.A49.A9.2A38.A10.A.A36.A10.A.A36.A49.A
49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A
49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A10.A38.A10.A
38.A10.A38.A10.A38.A9.2A38.A9.2A38.A9.2A38.A9.2A38.A9.2A38.A10.A.A36.
A10.A.A36.A10.A.A36.A10.A.A36.A10.A.A36.A49.A49.A49.A49.A49.A49.A49.A
49.A49.A49.A49.A49.A49.A49.A49.A49.A11.2A36.A49.A49.A49.A49.A49.A49.A
49.A49.A49.A49.A49.A49.A49.A10.2A37.A10.2A37.A49.A49.A49.A49.A49.A49.
A49.A49.A49.A10.2A37.A10.2A37.A10.2A37.A10.2A37.A10.2A37.A49.A49.A49.
A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A
49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A10.A.A36.
A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A
49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A
49.A49.A49.A49.A49.A49.A49.A9.2A38.A10.A.A36.A10.A.A36.A10.A.A36.A10.
A.A36.A49.A49.A49.A49.A49.A$13.A49.A49.A49.A49.A49.A50.A49.A49.A48.A
49.A9.A39.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A
49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A
49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A50.A49.A49.A49.A49.A48.A49.A
49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A
49.A49.A9.A39.A9.A39.A10.A.A36.A11.2A36.A11.2A36.A11.2A36.A11.2A36.A
11.2A36.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A
49.A49.A49.A49.A49.A49.A49.A10.A38.A9.A39.A9.A39.A49.A49.A49.A49.A49.
A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A
49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A10.A38.A10.A
38.A10.A38.A10.A38.A10.A38.A9.A39.A9.A39.A9.A39.A9.A39.A9.A39.A49.A
49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A10.A.A36.
A12.A36.A12.A36.A12.A36.A12.A36.A12.A36.A12.A36.A49.A49.A49.A49.A49.A
49.A49.A9.A.A37.A9.A.A37.A11.2A36.A11.2A36.A11.2A36.A49.A49.A49.A49.A
49.A49.A9.A.A37.A9.A.A37.A9.A.A37.A9.A.A37.A9.A.A37.A11.2A36.A11.2A
36.A11.2A36.A11.2A36.A11.2A36.A11.2A36.A11.2A36.A11.2A36.A11.2A36.A
11.2A36.A11.2A36.A11.2A36.A11.2A36.A11.2A36.A11.2A36.A11.2A36.A11.2A
36.A11.2A36.A11.2A36.A11.2A36.A11.2A36.A11.2A36.A11.2A36.A49.A49.A49.
A49.A49.A49.A49.A49.A49.A49.A49.A49.A9.A39.A12.A36.A12.A36.A12.A36.A
49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A
49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A
49.A49.A49.A49.A10.A38.A9.A39.A9.A39.A9.A39.A9.A39.A12.A36.A49.A49.A
49.A49.A$524.A51.2A48.2A49.A49.A3196.A49.A49.A49.2A48.2A48.2A48.2A48.
2A49.3A49.A49.A49.A3598.2A48.2A546.A50.2A48.2A48.2A48.2A48.2A48.2A49.
2A48.2A49.A49.A49.A49.A49.A146.2A48.2A48.2A598.2A48.2A48.2A48.2A48.2A
48.2A48.2A48.2A48.2A48.2A48.2A48.2A48.2A48.2A48.2A48.2A48.2A48.2A48.
2A48.2A48.2A48.2A48.2A50.2A98.2A547.2A48.2A48.2A49.2A48.2A2097.2A49.
2A48.2A48.2A48.2A48.2A$575.2A48.2A49.2A48.2A48.3A3297.A49.A49.A49.A
49.A48.A50.2A48.2A48.2A100.A3496.2A48.2A598.A.A47.A.A47.A.A47.A.A47.A
.A47.A.A47.2A48.2A49.2A48.2A48.2A48.2A48.2A148.A49.A49.A599.A49.A49.A
49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A
49.A49.A49.A49.A.A96.2A548.A.A47.A.A47.A.A47.2A48.2A2098.A.A47.2A48.
2A48.2A48.2A48.2A$577.A49.A48.A.A47.A.A47.A3549.A49.A.A47.A.A47.A.A
98.2A3498.A49.A899.A49.A48.A.A47.A.A47.A.A47.A.A47.A.A1997.A51.2A47.A
699.A49.A2149.A49.A49.A49.A49.A$777.A3751.2A46.A.A49.2A48.2A48.2A48.
2A48.2A48.2A48.2A48.2A48.2A48.2A6297.A.A$4528.2A98.2A48.2A48.2A48.2A
48.2A48.2A48.2A48.2A48.2A48.2A6298.A$4530.A99.A49.A49.A49.A49.A49.A
49.A49.A49.A49.A52$2683.2A$2683.A.A1898.2A8047.3A$2634.3A46.A1900.A.A
8046.A$2634.A1949.A900.3A7146.A1250.3A$136.3A2496.A301.2A548.2A1996.A
2351.2A48.2A2298.2A3696.A$136.A2800.A.A547.A.A1547.3A446.A2350.A.A47.
A.A2248.2A47.A.A3696.A$137.A2799.A549.A1351.2A48.2A146.A2799.A49.A
2250.A.A46.A1151.2A397.3A$2589.3A2247.A.A47.A.A146.A550.3A2197.3A
1247.3A447.3A597.3A46.A700.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A
47.3A47.A.A348.2A46.A801.2A48.2A$490.3A2096.A300.3A1946.A49.A699.A
2199.A1249.A449.A599.A551.2A48.2A48.2A48.2A46.A49.A49.A49.A49.A49.A
49.A49.A49.A49.A49.A250.3A47.3A47.A.A46.A700.3A47.3A47.A.A47.A.A197.
3A$490.A2099.A299.A2699.A2199.A1051.2A48.2A47.3A47.3A46.A352.A96.A
599.A550.A.A47.A.A47.A.A47.A.A46.A49.A49.A49.A49.A49.A49.A49.A49.A49.
A299.A49.A49.A500.3A47.3A196.A49.A49.A49.A199.A1650.3A$491.A2399.A
501.2A48.2A948.2A797.3A348.2A2048.2A48.2A98.2A1097.A.A47.A.A46.A49.A
351.2A47.2A49.2A198.2A398.2A547.3A46.A49.A49.A49.A799.A49.A549.A49.A
199.A49.A299.A1649.A$3343.3A47.A.A47.A.A947.A.A796.A350.A.A2047.A.A
47.A.A97.A.A1096.A49.A49.A49.A349.2A48.A.A48.A.A197.A.A397.A.A546.A
1351.2A246.A49.A2002.A196.A$395.2A48.2A2348.2A48.2A496.A49.A49.A949.A
799.A349.A701.2A48.2A848.2A398.2A46.A49.A99.A1600.A98.A199.A399.A549.
A951.2A397.A.A197.3A198.2A48.2A1647.3A197.2A$395.A.A47.A.A2347.A.A47.
A.A397.3A96.A2001.2A897.A.A47.A.A847.A.A397.A.A599.A49.A597.3A349.A
48.2A48.2A48.2A2247.A.A299.A96.A199.A200.A.A47.A.A1547.3A47.3A46.A
199.A.A$395.A49.A301.2A48.2A198.2A48.2A1697.3A46.A49.A301.2A48.2A46.A
1101.2A348.2A48.2A597.A.A896.A49.A849.A300.3A47.3A46.A600.2A48.2A597.
A350.2A47.2A48.2A48.2A2248.A300.2A297.A150.3A46.A49.A1549.A49.A49.A
101.2A248.2A149.A49.A$747.A.A47.A.A97.3A47.3A47.A.A47.A.A147.3A47.3A
1496.A400.A.A47.A.A46.A901.2A149.A46.2A99.3A47.3A47.3A98.2A47.A.A47.A
.A497.3A47.3A46.A50.3A47.3A197.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A
47.3A47.3A47.3A49.A148.2A48.2A48.2A48.2A47.3A47.3A47.3A47.3A47.3A47.
3A47.3A47.3A47.3A47.3A47.3A49.A148.2A196.A49.A502.A97.3A46.A.A47.A.A
597.A349.A.A48.A49.A49.A249.3A49.A148.2A48.2A48.2A397.3A47.3A47.3A47.
3A47.3A49.A1346.A.A149.2A47.3A47.3A196.A450.3A147.3A47.3A47.3A47.3A
47.3A47.3A47.3A746.A49.A100.3A47.A.A48.2A197.A.A98.2A47.2A48.2A$747.A
49.A99.A49.A49.A49.A149.A49.A1499.A351.2A46.A49.A949.2A149.2A48.A98.A
49.A49.A100.A.A46.A49.A499.A49.A99.A49.A199.A49.A49.A49.A49.A49.A49.A
49.A49.A49.A49.A50.2A147.2A48.2A48.2A48.2A48.A49.A49.A49.A49.A49.A49.
A49.A49.A49.A49.A50.2A147.2A198.A49.A500.2A97.A1002.A446.A50.2A147.2A
48.2A48.2A398.A49.A49.A49.A49.A50.2A49.2A1446.2A48.A49.A199.A449.A
149.A49.A49.A49.A49.A49.A49.A899.A49.A49.2A198.A99.2A48.A.A47.A.A$
898.A49.A249.A49.A1849.2A200.2A847.A148.A.A147.A49.A49.A99.A599.A49.A
99.A49.A199.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A.A148.A49.A
49.A49.A48.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A.A148.A449.3A
296.A.A97.A150.3A497.3A347.2A447.A49.A.A148.A49.A49.A149.3A246.A49.A
49.A49.A49.A49.A.A48.A.A898.2A547.A48.A49.A649.A149.A49.A49.A49.A49.A
49.A49.A899.A100.A299.A$3100.A199.A.A249.A49.A49.A548.2A2999.A496.A
549.A499.A349.A.A897.A549.A900.A.A449.A1349.A49.A49.A49.A49.A49.A49.A
49.A49.A49.A49.A49.A$1102.2A2196.A250.2A48.2A48.2A548.A.A2997.2A497.A
549.A52.A446.A1249.A1449.A450.2A1348.2A48.2A48.2A48.2A48.2A48.2A48.2A
48.2A48.2A48.2A48.2A48.2A$92.3A48.2A47.3A47.3A9.A37.3A9.A37.3A48.2A
48.2A48.2A48.2A47.3A48.2A48.2A47.3A48.2A47.3A47.3A47.3A47.3A47.3A47.
3A6.2A39.3A147.3A9.A37.3A9.A37.3A9.A37.3A9.A37.3A9.A37.3A9.A37.3A9.A
37.3A9.A37.3A9.A37.3A9.A37.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A
47.3A47.3A47.3A47.3A47.3A47.3A47.3A48.2A47.3A47.3A48.2A48.2A48.2A48.
2A47.3A47.3A8.2A37.3A48.2A48.2A48.2A47.3A47.3A47.3A47.3A47.3A48.2A47.
3A6.A.A38.3A6.A.A38.3A6.A.A39.2A48.2A48.2A48.2A48.2A48.2A47.3A47.3A
47.3A97.3A6.A40.3A48.2A47.3A48.2A97.3A47.3A48.2A47.3A47.3A47.3A47.3A
47.3A47.3A47.3A47.3A48.2A47.3A47.3A48.2A97.3A48.2A47.3A48.2A48.2A47.
3A48.2A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A
47.3A47.3A247.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.
3A47.3A47.3A6.A.A89.2A48.2A48.2A48.2A48.2A48.2A48.2A48.2A47.3A47.3A
48.2A47.3A47.3A97.3A47.3A47.3A47.3A47.3A48.2A48.2A7.2A38.3A47.3A47.3A
47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A48.2A48.2A48.2A47.3A47.
3A48.2A48.2A48.2A48.2A48.2A47.3A48.2A97.3A48.2A47.3A47.3A47.3A47.3A
47.3A47.3A47.3A47.3A48.2A47.3A47.3A247.3A47.3A47.3A48.2A47.3A47.3A47.
3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A48.2A47.3A47.3A
47.3A47.3A48.2A48.2A47.3A47.3A47.3A47.3A48.2A47.3A6.A.A38.3A97.3A47.
3A48.2A47.3A47.3A48.2A48.2A48.2A48.2A47.3A47.3A47.3A48.2A47.3A47.3A
48.2A47.3A397.3A6.A.A38.3A6.A.A38.3A6.A.A38.3A6.A.A38.3A6.A.A38.3A6.A
.A38.3A6.A.A38.3A6.A.A38.3A6.A.A38.3A6.A.A38.3A6.A.A38.3A6.A.A38.3A
48.2A48.2A48.2A48.2A97.3A48.2A48.2A48.2A47.3A47.3A47.3A48.2A47.3A47.
3A$92.A49.2A48.A49.A10.2A37.A10.2A37.A49.2A48.2A48.2A48.2A48.A10.3A
36.2A48.2A48.A49.2A48.A49.A49.A49.A49.A49.A10.A38.A149.A10.2A37.A10.
2A37.A10.2A37.A10.2A37.A10.2A37.A10.2A37.A10.2A37.A10.2A37.A10.2A37.A
10.2A37.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A
49.2A48.A49.A49.2A48.2A48.2A48.2A48.A49.A9.2A38.A49.2A48.2A48.2A48.A
49.A49.A49.A49.A49.2A48.A49.A49.A49.2A48.2A48.2A48.2A48.2A48.2A48.A
10.3A36.A10.3A36.A99.A49.A49.2A48.A49.2A98.A49.A49.2A48.A49.A49.A49.A
49.A49.A49.A49.A49.2A48.A49.A49.2A98.A49.2A48.A49.2A48.2A48.A49.2A48.
A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A249.A49.A49.A49.
A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A99.2A9.3A36.2A48.2A48.2A48.
2A48.2A48.2A48.2A48.A49.A49.2A48.A49.A99.A49.A49.A49.A49.A49.2A48.2A
8.A.A37.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.2A48.2A48.2A
48.A49.A49.2A48.2A48.2A48.2A48.2A48.A49.2A98.A49.2A48.A49.A49.A49.A
49.A49.A49.A49.A49.2A48.A49.A249.A49.A49.A49.2A48.A49.A49.A49.A49.A
49.A49.A49.A49.A49.A49.A49.A49.A49.2A48.A49.A49.A49.A10.3A36.2A48.2A
48.A49.A49.A49.A49.2A48.A49.A99.A49.A49.2A48.A49.A49.2A48.2A48.2A48.
2A48.A49.A49.A49.2A48.A49.A49.2A48.A399.A49.A49.A49.A49.A49.A49.A49.A
49.A49.A49.A49.A49.A49.2A48.2A48.2A48.2A98.A49.2A48.2A48.2A48.A49.A
49.A49.2A48.A49.A$93.A50.A48.A49.A9.A.A37.A9.A.A37.A50.A49.A49.A49.A
10.2A36.A9.A40.A49.A48.A50.A48.A11.2A36.A49.A49.A49.A49.A49.A149.A9.A
.A37.A9.A.A37.A9.A.A37.A9.A.A37.A9.A.A37.A9.A.A37.A9.A.A37.A9.A.A37.A
9.A.A37.A9.A.A37.A10.3A36.A10.3A36.A10.3A36.A10.3A36.A10.3A36.A10.3A
36.A10.3A36.A12.A36.A49.A49.A49.A49.A49.A49.A49.A50.A48.A49.A50.A49.A
49.A49.A48.A49.A10.A38.A50.A49.A49.A48.A49.A49.A49.A49.A50.A48.A49.A
49.A50.A10.2A37.A10.2A37.A10.2A37.A10.2A37.A10.2A37.A10.2A36.A9.A39.A
9.A39.A99.A49.A50.A48.A50.A98.A49.A50.A48.A49.A49.A49.A49.A49.A49.A
49.A50.A48.A49.A50.A98.A50.A48.A50.A49.A48.A50.A48.A49.A49.A49.A49.A
49.A49.A49.A49.A49.A49.A49.A49.A49.A249.A49.A49.A49.A49.A49.A49.A49.A
49.A49.A49.A49.A49.A49.A100.A8.A40.A49.A49.A49.A49.A49.A49.A48.A49.A
50.A48.A49.A99.A49.A49.A49.A49.A50.A49.A48.A49.A49.A49.A49.A49.A49.A
49.A49.A49.A49.A49.A50.A49.A49.A48.A49.A50.A49.A49.A49.A49.A48.A50.A
98.A50.A48.A49.A49.A49.A49.A49.A49.A49.A50.A48.A49.A249.A49.A49.A50.A
48.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.A50.A48.A49.A49.A
49.A9.A40.A49.A48.A49.A49.A49.A50.A48.A49.A99.A49.A50.A48.A49.A50.A
49.A49.A49.A48.A49.A49.A50.A48.A49.A50.A48.A399.A49.A49.A49.A49.A49.A
49.A49.A49.A49.A49.A49.A49.A11.2A37.A49.A49.A49.A98.A50.A49.A49.A48.A
49.A49.A50.A48.A49.A$555.A.A46.A51.2A48.2A147.A.A946.A49.A49.A49.A49.
A49.A49.A50.2A48.3A1497.A.A47.A.A47.A.A47.A.A47.A.A47.A.A46.A49.A750.
3A2496.A52.A4048.2A96.A2349.2A$357.2A196.A99.2A48.2A148.A949.A49.A49.
A49.A49.A49.A49.A49.A.A47.A51.2A798.2A646.A49.A49.A49.A49.A49.A150.3A
696.A150.3A49.A2347.2A4047.2A2449.A$357.A.A297.A49.A451.A1046.A50.A.A
797.A.A1046.A699.A149.A50.2A100.A49.A2196.A.A4048.A$357.A800.2A1097.A
51.2A48.2A48.2A48.2A48.2A546.A1049.A849.A49.A.A98.2A48.2A9149.2A$
1158.A.A1147.2A48.2A48.2A48.2A48.2A1751.A846.A.A47.A.A4750.A49.A4347.
A.A$2310.A49.A49.A49.A49.A1749.2A5648.2A48.2A4347.A$212.2A2348.2A
1696.A.A3149.2A2496.A.A47.A.A$112.3A97.A.A2347.A.A4847.A.A$112.A99.A
2349.A4849.A$113.A48$7613.2A99.A698.2A48.2A48.2A48.2A$2514.2A48.2A
2798.2A98.2A2147.A.A97.2A697.2A48.2A48.2A48.2A$564.3A648.2A1297.A.A
47.A.A2497.3A297.A.A97.A.A2146.A51.2A46.A.A698.A49.A49.A49.A900.2A
2197.3A$564.A650.A.A1296.A49.A2499.A299.A99.A2199.2A1799.A.A2196.A
2750.3A$565.A649.A3849.A2600.A1749.3A46.A1401.2A548.2A246.A2300.3A
446.A$1818.2A6048.2A498.2A1046.A350.3A398.2A697.A.A547.A.A1348.2A
1196.A449.A$1817.2A3050.2A2997.A.A496.2A1048.A349.A400.A.A696.A452.A
96.A1350.A.A1196.A502.A99.A$1819.A2300.2A747.A.A2996.A500.A1398.A252.
A146.A1150.2A549.2A896.A1700.2A98.2A$4119.2A748.A1300.3A897.3A2947.2A
1297.A.A548.A.A2596.A.A97.A.A$2421.3A1697.A650.2A47.3A1297.3A46.A850.
3A46.A1700.3A48.2A897.3A296.A.A399.2A47.3A1396.A1901.2A$2421.A2350.A.
A46.A300.3A948.2A46.A49.A801.2A46.A49.A1699.A50.A.A798.2A96.A700.A.A
46.A151.2A3146.2A450.2A$823.3A1547.3A46.A800.3A1546.A49.A299.A950.A.A
46.A850.A.A46.A451.2A1296.A49.A800.A.A96.A101.2A48.2A48.2A496.A49.A
150.A.A48.2A1547.3A1547.A449.A.A$524.3A296.A251.2A48.2A1246.A849.A
1899.A501.2A446.A899.A500.A.A1397.3A648.2A96.A199.2A48.2A48.2A698.A
50.A.A1546.A1999.A$475.3A46.A152.A146.A250.A.A47.A.A49.A1196.A451.2A
396.A200.3A2197.A.A1846.A102.A1296.A650.A.A297.A49.A49.A399.3A47.3A
296.A950.3A596.A151.2A1198.2A$475.A49.A150.2A397.A49.A50.2A1648.A.A
48.2A47.3A496.A2199.A101.2A48.2A97.3A448.2A298.2A48.2A97.3A797.2A
1297.A649.A151.2A646.A49.A1249.A351.2A397.A.A48.2A47.3A1096.2A$476.A
199.A.A249.2A246.A.A98.3A47.3A47.3A48.2A48.2A48.2A48.2A699.A48.2A398.
2A96.A50.A.A46.A150.3A346.A350.3A99.A199.A97.3A149.A897.3A298.2A147.
3A47.A.A47.A.A96.A450.A.A98.2A48.2A48.2A48.2A47.A.A47.A.A96.A651.2A
97.3A46.A.A249.2A98.2A1098.2A547.3A97.A.A448.2A98.2A48.2A46.A49.A201.
2A348.2A48.2A48.2A48.2A546.A349.2A49.3A47.3A47.3A47.3A196.A50.A.A46.A
150.3A47.3A47.3A247.3A447.3A47.3A97.A600.2A97.3A48.2A$927.2A50.2A296.
A49.A49.A49.2A48.2A48.2A49.A.A147.3A48.2A497.2A47.2A398.2A148.A49.A
101.2A46.A100.3A199.A149.A246.A100.2A198.2A97.A150.2A198.3A696.A300.A
.A48.2A96.A49.A49.A51.2A46.A449.A99.2A48.2A48.2A48.2A48.A49.A51.2A46.
A649.2A98.A299.2A98.2A401.A298.2A396.2A548.A99.A449.2A98.2A48.2A298.
2A348.2A48.2A48.2A48.2A300.2A597.A48.A49.A49.A49.A249.A49.A149.A49.A
49.A249.A449.A49.A52.A646.2A98.A49.2A$329.3A597.A48.2A298.A49.A49.A
50.A49.A49.A48.A149.A49.2A100.2A396.A.A48.A399.A249.3A47.A.A46.A51.2A
46.A152.A47.2A99.2A47.2A99.2A146.A99.A.A197.A.A97.A149.A.A197.A699.A
299.A50.A.A96.A149.2A101.A49.A447.A49.A49.A49.A148.2A101.A49.A398.2A
147.A98.A300.A99.A399.2A298.A.A397.A548.A550.A99.A49.A299.A349.A49.A
49.A49.A299.A.A646.A49.A49.A49.A350.3A96.A49.A49.A249.A449.A49.A50.2A
648.A98.A50.A$329.A50.3A249.A347.A50.2A598.2A96.A50.A98.2A50.2A298.2A
746.A49.A99.2A48.A150.2A47.A.A97.2A48.A.A48.3A46.2A200.2A548.2A146.A
200.3A698.2A146.A250.A99.2A48.2A49.2A697.A99.2A48.2A49.2A346.2A1048.A
.A297.A552.A1947.3A47.3A47.3A47.3A96.A1149.A502.A49.A49.A49.A49.A296.
A.A99.2A48.2A$330.A49.A250.2A249.2A146.2A598.2A249.A49.A.A296.2A748.A
150.A198.A.A148.A98.A50.A198.2A549.A.A346.A201.2A496.2A498.A.A47.A.A
48.A.A349.A446.A.A47.A.A48.A.A299.A47.A849.3A798.2A247.2A1947.A49.A
49.A49.A1249.A500.2A48.2A48.2A48.2A48.2A398.A.A47.A.A349.A$272.3A47.
3A48.2A6.A40.3A47.3A48.2A48.2A48.2A6.A.A39.2A47.3A8.2A37.3A9.A37.3A
48.2A7.A.A37.3A47.3A47.3A7.A39.3A48.2A47.3A48.2A197.3A47.3A47.3A47.3A
47.3A7.A39.3A48.2A48.2A47.3A47.3A47.3A6.A40.3A47.3A47.3A47.3A47.3A48.
2A7.A40.2A48.2A48.2A48.2A47.3A48.2A48.2A47.3A48.2A9.A88.2A47.3A47.3A
48.2A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A47.3A48.2A47.3A48.2A47.
3A6.A40.3A48.2A48.2A97.3A7.A40.2A48.2A48.2A48.2A48.2A47.3A47.3A48.2A
48.2A47.3A48.2A6.A41.2A47.3A48.2A47.3A47.3A98.2A6.A40.3A47.3A47.3A47.
3A6.2A39.3A48.2A48.2A47.3A47.3A47.3A148.2A47.3A7.A40.2A47.3A47.3A47.
3A97.3A48.2A47.3A48.2A47.3A47.3A47.3A6.A40.3A47.3A47.3A47.3A47.3A48.
2A47.3A7.2A238.3A48.2A47.3A48.2A47.3A47.3A47.3A6.A40.3A47.3A47.3A47.
3A47.3A47.3A7.2A38.3A48.2A47.3A48.2A47.3A98.2A47.3A47.3A47.3A47.3A47.
3A47.3A47.3A47.3A148.2A6.A40.3A8.2A37.3A47.3A47.3A47.3A47.3A47.3A47.
3A47.3A47.3A47.3A8.2A37.3A8.2A37.3A47.3A47.3A48.2A7.A.A38.2A48.2A48.
2A47.3A47.3A6.A.A38.3A47.3A9.A37.3A9.A37.3A9.A37.3A47.3A47.3A97.3A48.
2A47.3A47.3A47.3A47.3A47.3A47.3A48.2A47.3A47.3A47.3A47.3A47.3A47.3A
47.3A47.3A47.3A47.3A47.3A47.3A48.2A47.3A47.3A48.2A47.3A48.2A48.2A48.
2A48.2A48.2A6.A41.2A6.A41.2A6.A41.2A6.A40.3A47.3A48.2A47.3A48.2A97.3A
48.2A47.3A47.3A47.3A48.2A47.3A47.3A47.3A47.3A97.3A48.2A48.2A48.2A47.
3A47.3A48.2A47.3A47.3A48.2A48.2A47.3A47.3A47.3A47.3A47.3A97.3A6.A.A
38.3A6.A.A38.3A6.A.A38.3A6.A.A38.3A6.A.A38.3A47.3A47.3A48.2A48.2A48.
2A47.3A48.2A6.A41.2A6.A41.2A8.2A37.3A48.2A48.2A48.2A48.2A48.2A7.2A39.
2A9.A38.2A47.3A48.2A48.2A98.2A48.2A47.3A48.2A47.3A47.3A48.2A$272.A49.
A49.2A48.A11.2A36.A49.2A48.2A48.2A48.2A48.A9.2A38.A10.2A37.A49.2A8.A
39.A49.A49.A49.A49.2A48.A49.2A198.A49.A49.A49.A49.A49.A12.A36.2A48.2A
48.A49.A49.A49.A49.A49.A49.A49.A49.2A48.2A48.2A48.2A48.2A48.A49.2A48.
2A48.A49.2A9.2A87.2A48.A49.A49.2A48.A49.A49.A49.A49.A49.A49.A49.A49.A
49.2A48.A49.2A48.A49.A49.2A48.2A98.A49.2A48.2A48.2A48.2A48.2A48.A49.A
49.2A11.A36.2A48.A49.2A48.2A48.A49.2A48.A49.A99.2A48.A49.A49.A49.A10.
A38.A49.2A48.2A48.A49.A49.A149.2A48.A49.2A48.A49.A49.A99.A49.2A48.A
49.2A48.A49.A49.A49.A49.A49.A49.A49.A49.2A48.A9.A.A237.A49.2A48.A49.
2A48.A49.A49.A49.A49.A49.A49.A49.A49.A9.A.A37.A49.2A48.A49.2A48.A99.
2A48.A49.A49.A49.A49.A49.A49.A49.A149.2A8.A39.A10.A.A36.A10.3A36.A49.
A49.A49.A49.A49.A49.A49.A49.A10.A.A36.A10.A.A36.A49.A49.A49.2A8.A39.
2A48.2A48.2A48.A49.A49.A49.A10.2A37.A10.2A37.A10.2A37.A49.A49.A99.A
49.2A48.A49.A49.A49.A49.A49.A49.2A48.A49.A49.A49.A49.A49.A49.A49.A49.
A49.A49.A49.A49.2A48.A49.A49.2A48.A49.2A48.2A48.2A48.2A48.2A48.2A48.
2A48.2A48.A49.A49.2A48.A49.2A10.2A86.A49.2A48.A49.A49.A49.2A48.A49.A
49.A49.A99.A49.2A48.2A48.2A48.A49.A49.2A48.A49.A49.2A48.2A48.A49.A49.
A49.A11.2A36.A99.A49.A49.A49.A49.A49.A49.A49.A49.2A48.2A48.2A48.A49.
2A48.2A48.2A8.2A38.A49.2A10.2A36.2A10.2A36.2A48.2A48.2A8.A.A37.2A9.2A
37.2A48.A49.2A48.2A98.2A11.A36.2A48.A49.2A48.A49.A49.2A$273.A49.A50.A
48.A10.A.A36.A50.A49.A49.A49.A48.A10.A38.A9.A.A37.A50.A48.A49.A49.A
49.A50.A48.A50.A198.A49.A49.A49.A49.A49.A10.2A38.A49.A48.A49.A49.A49.
A49.A49.A49.A49.A50.A49.A49.A49.A49.A48.A50.A49.A48.A50.A8.A.A88.A48.
A49.A50.A48.A49.A49.A49.A49.A49.A49.A49.A49.A50.A48.A50.A48.A49.A50.A
49.A98.A50.A49.A49.A49.A49.A48.A49.A50.A9.2A38.A48.A50.A49.A48.A50.A
48.A49.A100.A48.A49.A49.A49.A49.A50.A49.A48.A49.A49.A150.A48.A50.A48.
A49.A49.A99.A50.A48.A50.A48.A49.A49.A49.A49.A49.A49.A49.A10.3A37.A48.
A249.A50.A48.A50.A48.A49.A49.A49.A49.A49.A49.A49.A10.3A36.A49.A50.A
10.2A36.A50.A48.A100.A48.A49.A49.A49.A11.2A36.A49.A49.A49.A150.A48.A
9.A39.A9.A39.A49.A49.A49.A49.A49.A49.A49.A49.A9.A39.A9.A39.A49.A49.A
50.A49.A49.A49.A48.A49.A49.A11.2A36.A9.A.A37.A9.A.A37.A9.A.A37.A49.A
49.A99.A50.A48.A49.A49.A49.A49.A49.A50.A48.A11.2A36.A49.A49.A49.A49.A
49.A49.A49.A49.A49.A49.A50.A48.A49.A50.A48.A50.A49.A49.A49.A49.A49.A
49.A49.A48.A49.A50.A48.A50.A9.A.A86.A50.A48.A49.A49.A11.2A37.A48.A49.
A49.A49.A99.A50.A49.A49.A48.A49.A50.A48.A49.A50.A49.A48.A49.A49.A49.A
9.2A38.A99.A49.A49.A49.A49.A49.A49.A49.A50.A49.A49.A48.A50.A49.A49.A
9.A38.A50.A9.A.A37.A9.A.A37.A49.A49.A49.A8.A.A38.A48.A50.A49.A99.A9.
2A38.A48.A50.A48.A49.A50.A$434.A1249.A.A799.2A799.A398.2A546.A.A749.
2A49.A1246.A899.A149.2A448.2A200.2A246.A1000.A.A846.2A1448.A299.2A
1000.2A47.A400.2A546.A49.A499.A.A$288.A1698.2A48.2A48.2A48.2A48.2A
296.2A150.2A647.2A398.A.A748.2A546.2A49.2A1200.A46.A852.A46.A150.A51.
A397.A199.A.A1246.A850.A1749.A999.A.A447.A.A$287.2A1697.2A48.2A48.2A
48.2A48.2A299.A148.2A149.3A496.A.A397.A52.A696.2A150.2A397.A48.A.A
1198.2A898.2A248.2A597.A4849.A449.A$287.A.A1698.A49.A49.A49.A49.A449.
A148.A950.2A698.A149.A.A47.3A1596.A.A897.A.A247.A.A899.2A1698.2A2948.
2A1748.2A$2788.A949.A.A199.2A646.A49.A3650.A.A797.3A48.2A846.2A2299.
3A646.2A1748.2A$3939.2A50.2A646.A3649.A799.A50.A.A847.A2298.A50.3A
597.A1749.A$3941.A49.A.A48.2A4948.2A96.A49.A2351.2A248.2A546.A49.A
2201.2A$3991.A49.2A4948.2A2498.2A249.A.A596.A2199.2A$4043.A4949.A
2499.A248.A2800.A49$10042.3A$10042.A2951.2A$4296.A5746.A2851.2A97.A.A
$2396.2A1897.2A1000.A7597.A.A96.A$2396.A.A1896.A.A998.2A7597.A$2396.A
2899.A.A748.3A897.3A$4050.A1996.A899.A852.A1647.3A1697.3A$4049.2A
1997.A899.A850.2A1449.2A148.2A46.A1651.2A46.A2451.2A698.2A$4049.A.A
448.3A2949.A346.A.A1448.A.A147.A.A46.A1650.A.A46.A2449.2A300.2A97.3A
297.A.A$4500.A1851.2A298.2A598.2A197.2A1797.A149.A1401.2A296.A2500.A
299.A.A96.A299.A$3554.A946.A1301.2A547.A.A296.2A50.2A547.A.A196.A.A
1898.3A1447.A.A197.3A47.3A2098.2A746.A99.A$1204.2A198.2A1498.2A647.2A
2248.A.A197.3A346.A300.A49.A.A197.3A346.A1551.2A48.2A496.A1449.A199.A
49.A1401.2A697.A.A397.3A$1204.A.A197.A.A1497.A.A646.A.A1549.2A696.A
199.A602.A96.A199.A1900.A.A47.A.A496.A1050.3A596.A49.A251.2A48.2A
1097.A.A696.A301.2A96.A$1204.A199.A900.3A497.3A96.A2200.A.A896.A200.
3A397.2A297.A200.3A1696.A49.A302.A1246.A451.2A47.3A397.A.A47.A.A1096.
A301.2A697.A.A96.A202.A798.2A197.3A$2007.2A296.A499.A1351.2A498.2A48.
2A396.A152.A946.A101.2A296.A.A497.A101.2A298.2A1148.2A298.2A47.3A147.
2A148.3A647.3A49.A298.2A96.A449.2A48.A399.A49.A201.2A1197.A.A696.A
252.A47.2A200.A548.2A47.A.A47.3A146.A$1257.3A47.3A48.2A147.3A147.3A
48.2A48.2A47.3A48.2A146.2A298.A200.3A48.2A99.A97.3A46.A51.2A98.2A47.
3A47.3A297.3A48.2A248.2A47.3A197.3A97.3A147.A.A247.3A197.3A46.2A49.A.
A147.3A397.2A648.3A296.A100.A.A99.A98.2A48.2A247.3A296.A100.A.A197.3A
97.A.A48.2A199.A297.3A347.3A47.3A148.2A46.2A249.3A47.A.A46.A51.2A96.A
.A147.A250.3A297.3A47.3A46.A50.2A297.2A199.3A247.3A97.A48.A50.3A447.
3A147.A.A948.2A47.3A47.3A146.A50.3A847.3A47.2A47.A.A98.3A97.2A99.2A
98.2A97.3A148.2A97.A.A46.A49.A149.A$1059.2A99.A96.A49.A49.2A148.A149.
A49.2A48.2A48.A49.2A51.A97.A498.A49.2A99.2A97.A99.2A98.2A48.A49.A299.
A49.2A249.A.A46.A199.A99.A149.A249.A150.3A46.A50.A48.A149.A151.2A246.
A.A647.A399.A100.2A97.2A48.2A248.A399.A199.A99.A49.2A199.2A297.A349.A
49.A101.2A47.A.A47.A100.2A146.A49.A49.A49.2A248.A249.A299.A49.A49.A
49.A.A298.A198.A249.A199.A300.3A146.A149.A949.2A48.A49.A199.A849.A49.
A.A147.A99.A.A97.2A98.2A98.A149.2A98.A99.A102.A$1059.A.A97.2A97.A49.A
50.A148.A149.A50.A49.A48.A50.A49.2A597.A50.A98.A.A97.A100.A99.A48.A
49.A52.A198.2A46.A50.A199.3A46.A49.A51.2A98.2A46.A99.A399.A149.A49.A
200.3A46.A150.A.A896.A499.A.A98.A49.A248.A599.A150.A50.2A146.A.A297.A
349.A49.A99.2A48.A150.A.A146.A150.A498.A299.A49.A599.A151.2A96.A199.A
299.A149.A1100.A48.A49.A199.A849.A199.A200.A99.A98.A150.A250.2A47.2A$
1059.A51.2A46.A.A399.2A346.A.A1198.2A50.A147.A.A296.A149.2A50.2A46.2A
698.A249.A199.A1252.A899.A447.A.A249.A697.A198.A1402.A496.2A598.A
1802.A49.A1547.A.A46.A.A$1111.A.A446.2A50.2A848.2A646.A.A48.2A147.A
299.A150.A49.A.A47.A948.A1450.2A898.2A447.A250.2A2298.2A449.2A47.A
2399.2A48.2A699.2A647.3A196.A$1052.3A47.3A6.A40.3A48.2A47.3A97.3A48.
2A47.3A98.2A7.A40.2A7.A.A37.3A97.3A147.3A47.3A47.3A47.3A47.3A47.3A47.
3A47.3A47.3A47.3A48.2A47.3A6.2A89.3A47.3A47.3A47.3A47.3A48.2A98.2A
148.2A48.2A47.3A6.A.A39.2A8.2A37.3A47.3A47.3A47.3A47.3A48.2A47.3A47.
3A47.3A48.2A47.3A47.3A6.A41.2A97.3A97.3A47.3A48.2A47.3A47.3A48.2A47.
3A47.3A47.3A47.3A47.3A98.2A48.2A97.3A97.3A47.3A7.3A37.3A47.3A48.2A47.
3A47.3A9.A38.2A48.2A497.3A48.2A48.2A47.3A47.3A47.3A47.3A47.3A47.3A48.
2A6.A.A38.3A48.2A47.3A47.3A47.3A48.2A47.3A47.3A47.3A48.2A48.2A47.3A
47.3A47.3A47.3A47.3A47.3A48.2A6.A.A38.3A48.2A47.3A47.3A47.3A48.2A47.
3A48.2A47.3A48.2A48.2A48.2A47.3A47.3A6.A.A38.3A47.3A47.3A47.3A347.3A
97.3A47.3A48.2A47.3A47.3A47.3A48.2A48.2A98.2A48.2A48.2A47.3A48.2A48.
2A47.3A47.3A47.3A48.2A47.3A47.3A448.2A47.3A47.3A47.3A47.3A6.A.A38.3A
47.3A47.3A47.3A47.3A47.3A97.3A48.2A6.2A39.3A47.3A47.3A48.2A48.2A48.2A
47.3A47.3A48.2A48.2A47.3A47.3A47.3A47.3A48.2A97.3A48.2A48.2A47.3A848.
2A148.2A47.3A47.3A47.3A97.3A48.2A47.3A48.2A47.3A6.A.A38.3A6.A.A39.2A
47.3A47.3A47.3A47.3A47.3A47.3A47.3A48.2A48.2A98.2A48.2A48.2A6.2A39.3A
48.2A47.3A47.3A47.3A47.3A47.3A47.3A97.3A47.3A47.3A47.3A6.A40.3A48.2A
48.2A47.3A47.3A47.3A$1052.A49.A49.A49.2A48.A99.A49.2A48.A99.2A48.2A8.
A39.A99.A149.A49.A49.A49.A49.A49.A49.A49.A49.A49.A49.2A48.A10.A88.A
49.A49.A49.A49.A49.2A98.2A148.2A48.2A48.A49.2A9.A.A36.A49.A49.A49.A
49.A49.2A48.A49.A49.A49.2A48.A49.A49.2A98.A99.A49.A49.2A48.A49.A49.2A
48.A49.A49.A49.A49.A99.2A48.2A98.A99.A49.A9.A39.A49.A49.2A48.A49.A10.
2A37.2A48.2A498.A49.2A48.2A48.A49.A49.A49.A49.A12.A36.A49.2A48.A49.2A
48.A49.A10.3A36.A49.2A48.A49.A49.A49.2A48.2A48.A49.A49.A49.A49.A12.A
36.A49.2A48.A49.2A48.A10.3A36.A49.A49.2A48.A49.2A48.A49.2A48.2A48.2A
48.A49.A49.A49.A49.A49.A349.A99.A49.A49.2A48.A49.A49.A49.2A48.2A98.2A
48.2A48.2A48.A10.3A36.2A48.2A48.A49.A49.A49.2A48.A49.A449.2A48.A49.A
49.A49.A49.A49.A49.A49.A49.A49.A99.A49.2A9.A38.A49.A49.A49.2A48.2A48.
2A48.A49.A49.2A48.2A48.A49.A49.A49.A49.2A98.A12.A36.2A48.2A48.A849.2A
148.2A48.A49.A49.A99.A49.2A48.A49.2A48.A49.A49.2A48.A11.2A36.A49.A49.
A11.2A36.A49.A49.A49.2A48.2A98.2A48.2A48.2A9.A38.A49.2A48.A49.A49.A
49.A49.A49.A99.A49.A49.A49.A9.A39.A49.2A48.2A48.A49.A49.A$1053.A49.A
49.A50.A48.A99.A50.A48.A100.A49.A48.A99.A149.A49.A49.A49.A49.A11.2A
36.A49.A49.A49.A49.A50.A48.A99.A49.A49.A49.A49.A50.A99.A149.A49.A48.A
50.A8.A39.A49.A49.A49.A49.A50.A48.A49.A49.A50.A48.A49.A50.A98.A99.A
49.A12.A37.A48.A49.A11.2A37.A48.A49.A49.A11.2A36.A49.A100.A49.A98.A
99.A49.A9.A39.A49.A50.A48.A11.2A36.A9.A.A38.A49.A498.A50.A49.A48.A49.
A49.A49.A49.A10.2A37.A50.A48.A50.A48.A49.A9.A39.A50.A48.A49.A49.A50.A
49.A48.A49.A49.A49.A49.A10.2A37.A50.A48.A50.A48.A9.A39.A49.A50.A48.A
50.A48.A50.A49.A11.A37.A48.A49.A49.A49.A11.2A36.A49.A349.A99.A49.A50.
A48.A49.A49.A50.A49.A99.A49.A49.A48.A9.A40.A49.A48.A49.A49.A50.A48.A
49.A10.3A437.A48.A49.A49.A11.2A36.A49.A49.A11.2A36.A49.A49.A49.A99.A
50.A48.A49.A49.A50.A49.A49.A48.A49.A50.A49.A48.A49.A49.A49.A50.A98.A
10.2A38.A9.3A37.A48.A850.A149.A48.A12.A36.A49.A99.A50.A48.A50.A48.A
49.A50.A48.A10.A.A36.A10.3A36.A12.A36.A9.2A38.A49.A49.A50.A49.A99.A
49.A49.A48.A50.A48.A49.A49.A49.A49.A49.A99.A49.A49.A49.A49.A50.A49.A
48.A49.A49.A$1465.3A647.A.A1997.2A147.2A199.A.A697.A.A996.A.A297.A
599.A.A247.A351.2A47.2A247.2A1148.A399.A600.A.A146.2A1198.A.A47.A
1150.2A547.A49.A50.2A48.A750.2A$1465.A649.A51.2A198.2A1148.2A596.A.A
148.A198.A699.A2499.2A48.A.A248.A1548.A599.A150.A1248.A1149.A.A299.2A
296.A49.A.A798.A.A$1466.A700.A.A48.2A147.A.A1146.2A1401.A148.2A2597.A
2901.A2397.A.A1146.A$2167.A50.A.A146.A351.2A797.A1399.2A148.A.A4148.
2A1347.2A149.2A2246.A$2218.A51.2A446.2A750.2A1446.A.A147.A4150.A.A
1346.A.A147.2A$2269.2A449.A748.2A3900.2A548.2A1296.A1001.2A248.2A247.
A2151.A$2271.A1199.A3898.2A548.2A2298.2A248.2A2399.2A$7372.A549.A99.
3A2197.A149.3A97.A2398.A.A$8022.A2349.A$8023.A2349.A!
Maybe at some point it will be worth adding all the old 10hd A/Ar recipes to the library, to pick up some of the "narrow gauge" options that I remember having available for the linear-propagator project.

As an irrelevant corollary, recompiling with a (4,1)+old10hd library might make just enough difference to reduce the cost per glider down below 4gp...

Anyway, for now it looks like the beehive elbow-insertion mechanism should leave plenty of space to push an elbow past, using for example this strangely symmetrical INC5 recipe:

Code: Select all

#C m10AA: e1 e-9999 e-9999 e1
x = 54, y = 54, rule = LifeHistory
2D$2D4$5.2E$5.2E$13.2A$12.2A$14.A3$7.3A$7.A$8.A6$26.2A$25.2A$27.A11$
39.2A$38.2A$40.A11$52.2A$51.2A$53.A3$46.3A$46.A$47.A!
Something like this will be needed for the hard-coded prefix recipes added to the loop guns, to push the elbows into place. I guess some more complicated circuitry could be wired up instead, to construct the block from a distance with a colliding *WSS+glider. Then no special prefix recipes would be needed at all.

This seemed like a simple enough solution, though. I haven't worked out yet exactly how far the elbows will need to be pushed to keep the inserter circuitry safe.

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

Re: Demonoid (diagonal Geminoid) completed!

Post by dvgrn » November 25th, 2015, 10:50 pm

We have a new diagonal spaceship period -- a c/12700 Demonoid:
Demonoid-c12700.mc.gz
130c/1651000 diagonal Geminoid spaceship
(47.07 KiB) Downloaded 605 times
-- or rather a new infinite family, 130c/(1636712+16N) diagonal. N is the diagonal distance that the SE half-Demonoid is moved from its closest allowable position.

Slight optimizations are possible to get below period 1636712, but the only really easy improvement would be to bring some of the glider pairs one, two or three ticks closer together. Any more tightening than that would wreck the circuitry, which includes an R64 signal crossing and so is only safe down to a 153-tick repeat time.

There are several technological advances in this model, thanks mostly to chris_c: direct constructions using 180-degree elbow reactions, seeds for eater2 and an even rarer still life (adapted from Catagolue), creation and cleanup reactions for the A and B blocker constellations... and also a new 90-degree elbow-op library that allows blocks in fourteen different locations to be used as elbows, instead of just one or two locations.

Most of the cleanup is done with a single glider that follows along behind the recipe gliders, triggering a self-destruct circuit for each circuit in turn, as soon as it's no longer in use. Actually the self-destruct sequence starts while most of the circuit is still active. You can see this at the northeast end of the attached pattern, starting at T=432 -- the last glider coming in along the south edge is on a different lane from all the others.

User avatar
biggiemac
Posts: 515
Joined: September 17th, 2014, 12:21 am
Location: California, USA

Re: Demonoid (diagonal Geminoid) completed!

Post by biggiemac » November 26th, 2015, 12:02 am

Well done! This has been fun to follow in its construction, and the end result is a new nerdy-work-of-art. Congrats to all who contributed!
Physics: sophistication from simplicity.

thunk
Posts: 170
Joined: October 3rd, 2015, 8:50 pm
Location: Central USA

Re: Demonoid (diagonal Geminoid) completed!

Post by thunk » November 26th, 2015, 12:45 am

biggiemac wrote:Well done! This has been fun to follow in its construction, and the end result is a new nerdy-work-of-art. Congrats to all who contributed!
I agree, this has been a seriously impressive technical tour de force. And the best implementation yet of Spartan+ circuitry (that's at least what I call it), a new nifty toolkit for the incomprehensible-to-me subfield of self-construction.

Kudos to the major contributors, dvgrn and chris_c, and to the many minor contributors who have posted on this thread.
"What's purple and commutes?
The Evanston Express."

User avatar
Scorbie
Posts: 1692
Joined: December 7th, 2013, 1:05 am

Re: Demonoid (diagonal Geminoid) completed!

Post by Scorbie » November 26th, 2015, 2:04 am

Wow. Nice to see it fly. I was sort of @_@ when viewing the posts here, actually, and I'm still kinda @_@ right now after watching that fly but I do see that it's way simpler than the original gemini and the replicator, and I see (vaguely) what you've doing here and there.
Congrats to all!
Ahh. After watching it the second time I think I understood how it works. If I saw correctly, the spaceship is glide-symmetric, isn't it?

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

Re: Demonoid (diagonal Geminoid) completed!

Post by dvgrn » November 26th, 2015, 12:55 pm

Scorbie wrote:After watching it the second time I think I understood how it works. If I saw correctly, the spaceship is glide-symmetric, isn't it?
Yes. It's just like the original Gemini in a way -- EDIT: in the sense that the recipe builds exactly the same thing at both ends. The Demonoid is smaller because it doesn't have separate circuitry to accept recipes from two possible directions. But that limits it to a strict mirror-image design, and therefore diagonal travel only.

The Gemini has twelve data streams of gliders that run in parallel, whereas this Demonoid design has just one stream of gliders divided up into two parts, A and B. The circuitry is arranged so that Circuit B ignores the A gliders, and then Circuit A ignores the B gliders, but when the gliders are matched correctly with their circuits they produce the slow salvos that construct the next copies of Circuits A and B.

Amusingly, just as we were putting the finishing touches on this design, we realized that we missed a trick that will reduce the length of the program tape by another factor of four, more or less, and cut out a lot of the remaining complexity.

It looks as if two copies of Tile A will make a workable universal constructor. It will have to use 0hd recipes instead of the more efficient 10hd ones. But the spaceship period will be cut in half -- it will repeat exactly after just one pair of 180-degree reflections. Because they're identical, the last cycle's Circuit A can be re-used as Circuit B the next time around. So the step will go down from 130 to 65.

The period will be cut in half again because the recipe only has to build one 180-degree reflector per cycle instead of two. And all the clever A-blocker and B-blocker and NW31 still-life construction and destruction tricks are suddenly unnecessary... though I guess we'd still build one eater in each cycle using gliders from 180-degree elbow reactions. Might try and see if that can be done with a standard 90-degree recipe, but then again we already have the 180-degree version.

There's just one minor patch needed to the current Tile A recipe. Either a still life needs to be built somewhere near the yellow block (NW copy) to absorb a now-surplus glider, or we can save a boat and longboat combination but some other method has to be arranged to shoot down the white eater (SE copy).

Code: Select all

x = 173, y = 218, rule = LifeHistory
86.4B$87.4B$88.4B$89.4B$63.A26.4B$62.A.A26.4B$63.2A26.4B$91.5B$90.9B$
90.9B$90.9B$89.10B$88.12B$78.2A8.13B$79.A9.11B$79.A.AB4.12B$65.2A4.2A
7.2AB.15B$56.A7.B2AB3.2A9.17B$55.A.A7.2B15.17B$55.2A3.B3.2B17.17B.B$
59.2AB.4B15.19B2A$50.2A7.2A8B11.19B.B2A$46.A3.A.A7.B.B2A6B2.2B2.20B4.
B$45.A.A3.A11.2A32B$46.2A15.24B.9B$59.28B2.7B$59.28B2.7B$58.2A26B4.6B
$58.2A14B.4B10.7B8.A$59.B.11B2.4B12.6B8.3A$61.10B2.4B13.7B10.A$62.14B
14.6B10.2A$61.14B15.5B$62.13B14.6B$62.13B14.4B$64.2B.8B14.2B2AB$67.8B
16.2A$66.9B$65.10B24.2E$64.4B.7B10.2A11.2E$63.4B2.8B9.2A$62.4B4.8B$
61.4B5.8B$60.4B5.6B2.B2A$59.4B6.7B.BA.A$58.4B8.6B4.A$57.4B9.6B4.2A$
56.4B10.6B$55.4B4.A5.8B$54.4B4.A.A3.8B$53.4B6.2A3.9B$52.4B12.9B$51.4B
12.10B$31.2A17.4B13.3B2A5B$31.2A16.4B8.2A3.4B2A5B$48.4B10.A3.11B$47.
4B11.A.A12B$46.4B13.2A2.8B$45.4B19.7B5.2A$32.2A10.4B10.2A10.7B2.B2A2B
$32.2A9.4B11.2A9.9B2.4B6.2A$42.4B18.2B.11B.6B5.A$41.4B19.22B.BA.A$40.
4B19.23B.B2A10.A$39.4B20.25B10.3A$38.4B18.28B9.A$26.2A9.4B19.28B4.2A
3.2A53.4B$26.2A8.4B18.29B5.2A59.4B$35.4B19.28B68.4B$34.4B19.28B43.A
26.4B$33.4B20.26B44.A.A26.4B$32.4B21.27B44.2A26.4B$31.4B24.23B.B2A70.
5B$19.2A9.4B28.20B.BA.A7.A60.9B$18.A.A8.4B33.16B4.A6.A.A59.9B$19.A8.
4B20.2A11.18B3.2A5.A.A59.9B$27.4B21.A.A9.20B10.A59.10B$26.4B23.A9.20B
70.12B$25.4B33.18B63.2C8.13B$24.4B35.16B65.C9.11B$23.4B37.13B67.C.CB
4.12B$22.4B38.5B2A2B.3B53.2A4.2A7.2CB.15B$21.4B3.2A36.3B2A2B2.4B9.2A
31.A7.B2AB3.2A9.17B$20.4B4.A.A35.8B3.2A9.2A30.A.A7.2B15.17B$19.4B6.A.
A33.8B4.A42.2A3.B3.2B17.17B.B$18.4B8.A34.8B5.3A43.2AB.4B15.19B2A$17.
4B44.7B8.A34.2A7.2A8B11.19B.B2A$16.4B45.7B39.A3.A.A7.B.B2A6B2.2B2.20B
4.B$15.4B47.6B7.A30.A.A3.A11.2A32B$14.4B11.2A35.6B6.A.A30.2A15.24B.9B
$13.4B11.A.A36.5B6.A.A43.28B2.7B$12.4B13.A37.6B4.2A.3A41.28B2.7B$11.
4B51.6B6.B4.A39.2A26B4.6B$10.4B52.7B3.B2AB3A40.2A14B.4B10.7B8.A$9.4B
54.8B.B2A.A43.B.11B2.4B12.6B8.3A$8.4B19.2A34.10B49.10B2.4B13.7B10.A$
7.4B19.A.A18.2A13.3B2A6B50.14B14.6B10.2A$6.4B21.A18.A.A7.2A5.2B2A6B
49.14B15.5B$5.4B42.A9.A5.10B7.A42.13B14.6B$4.4B53.A.AB2.11B5.A.A41.
13B14.4B$3.4B55.2AB.12B5.A.A43.2B.8B14.2B2AB$2.4B58.15B5.A47.8B16.2A$
.4B59.16B51.9B$4B60.16B.2B47.10B$64.18B2A45.4B.7B10.2A$43.2A18.17B.B
2A44.4B2.8B9.2A$43.A.A16.4B2.8B.4B.B44.4B4.8B$44.A16.4B4.7B50.4B5.8B$
60.4B5.6B50.4B5.6B2.B2A$59.4B6.4B51.4B6.7B.BA.A$58.4B5.A3B52.4B8.6B4.
A$57.4B5.A.AB52.4B9.6B4.2A$56.4B6.A.A7.2A43.4B10.6B$55.4B8.A8.2A42.4B
4.A5.8B$54.4B6.3A52.4B4.A.A3.8B$53.4B7.A53.4B6.2A3.9B$52.4B61.4B12.9B
$49.2A4B61.4B12.10B$48.A.A3B42.2A17.4B13.3B2A5B$49.BA2B43.2A16.4B8.2A
3.4B2A5B$48.4B61.4B10.A3.11B$47.4B61.4B11.A.A12B$46.4B61.4B13.2A2.8B$
45.4B14.2A45.4B19.7B5.2A$44.4B15.2A32.2A10.4B10.2A10.7B2.B2A2B$43.4B
50.2A9.4B11.2A9.9B2.4B6.2A$42.4B61.4B18.2B.11B.6B5.A$41.4B61.4B19.22B
.BA.A$40.4B61.4B19.23B.B2A10.A$39.4B61.4B20.25B10.3A$38.4B61.4B18.28B
9.A$37.4B50.2A9.4B19.28B4.2A3.2A$36.4B51.2A8.4B18.29B5.2A$35.4B61.4B
19.28B$34.4B61.4B19.28B$33.4B61.4B20.26B$32.4B61.4B21.27B$31.4B61.4B
24.23B.B2A$30.4B61.4B28.20B.BA.A7.A$29.4B61.4B33.16B4.A6.A.A$28.4B61.
4B20.2A11.18B3.2A5.A.A$27.4B61.4B21.A.A9.20B10.A$26.4B61.4B23.A9.20B$
25.4B61.4B33.18B$24.4B61.4B35.16B$23.4B61.4B37.13B$22.4B61.4B38.5B2A
2B.3B$21.4B61.4B41.3B2A2B2.4B9.2A$20.4B61.4B42.8B3.2A9.2A$19.4B61.4B
42.8B4.A$18.4B61.4B43.8B5.3A$18.3B61.4B44.7B8.A$19.B61.4B45.7B$80.4B
47.6B7.A$79.4B11.2A35.6B6.A.A$78.4B11.A.A36.5B6.A.A$77.4B13.A37.6B4.
2A.3A$76.4B51.6B6.B4.A$75.4B52.7B3.B2AB3A$74.4B54.8B.B2A.A$73.4B19.2A
34.10B$72.4B19.A.A18.2A13.3B2A6B$71.4B21.A18.A.A7.2A5.2B2A6B$70.4B42.
A9.A5.10B7.A$69.4B53.A.AB2.11B5.A.A$68.4B55.2AB.12B5.A.A$67.4B58.15B
5.A$66.4B59.16B$65.4B59.17B.2B$129.18B2A$108.2A18.17B.B2A$108.A.A16.
4B2.8B.4B.B$109.A16.4B4.7B$125.4B5.6B$124.4B6.4B$123.4B5.A3B$122.4B5.
A.AB$121.4B6.A.A7.2A$120.4B8.A8.2A$119.4B6.3A$118.4B7.A$117.4B$114.2A
4B$113.A.A3B$114.BA2B$113.4B$112.4B$111.4B$110.4B14.2A$109.4B15.2A$
108.4B$107.4B$106.4B$105.4B$104.4B$103.4B$102.4B$101.4B$100.4B$99.4B$
98.4B$97.4B$96.4B$95.4B$94.4B$93.4B$92.4B$91.4B$90.4B$89.4B$88.4B$87.
4B$86.4B$85.4B$84.4B$83.4B$83.3B$84.B!
There's actually a temporary blinker near the yellow block at one point during the construction, that could absorb that surplus glider. Unfortunately that blinker is shot down by a wing reaction in the process of placing a block, not directly from the elbow, so I don't see any really easy way of rescuing it.

User avatar
Kazyan
Posts: 1247
Joined: February 6th, 2014, 11:02 pm

Re: Demonoid (diagonal Geminoid) completed!

Post by Kazyan » November 26th, 2015, 4:05 pm

*stares at spaceship for a good 10-15 minutes puzzling it out*

Wow, this is some very smart construction work. Congratulations! Funnily enough, the simpler these designs get, the more amazing they are--sort of like when John Conway simplified Von Neumann's rules.
dvgrn wrote:Amusingly, just as we were putting the finishing touches on this design, we realized that we missed a trick that will reduce the length of the program tape by another factor of four, more or less, and cut out a lot of the remaining complexity. [0hd design explanation omitted for brevity]
Hmm. It's a longshot, but I wonder if--via circulating G2/G5/G6/etc pairs instead of just gliders, or periodic circuitry, or some other farfetched way of aggressively cutting down the repeat time of a circuit--only a single copy of Tile A would suffice on each end. If it could emit gliders quickly enough, it could perform 0hd recipes without a partner.

While I'm already doing wishful thinking for magical ultra-low-repeat-time circuits over here, what sorts of new conduits would improve the speed further? Besides a spartan syringe or spartan snark, of course.
Tanner Jacobi
Coldlander, a novel, available in paperback and as an ebook. Now on Amazon.

User avatar
Extrementhusiast
Posts: 1966
Joined: June 16th, 2009, 11:24 pm
Location: USA

Re: Demonoid (diagonal Geminoid) completed!

Post by Extrementhusiast » November 26th, 2015, 5:20 pm

Actually, if one were to use a 0hd construction arm, it appears that one can use as many instruction tapes as desired, constructing and destroying one reader at a time, as all of the readers would be identical!
I Like My Heisenburps! (and others)

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

Re: Demonoid (diagonal Geminoid) completed!

Post by dvgrn » November 26th, 2015, 7:02 pm

Kazyan wrote:Hmm. It's a longshot, but I wonder if--via circulating G2/G5/G6/etc pairs instead of just gliders, or periodic circuitry, or some other farfetched way of aggressively cutting down the repeat time of a circuit--only a single copy of Tile A would suffice on each end. If it could emit gliders quickly enough, it could perform 0hd recipes without a partner.
The working of the 0hd trick relies on Tile A happening to terminate with an edge-shooter that can insert a glider very very close behind another glider on the same lane. When the lead glider in a 0hd pair hits something, another glider has to be there almost immediately to modify the reaction. Check out the first glider pairs in Paul Chapman's 0hd universal set:

Code: Select all

x = 2149, y = 247, rule = LifeHistory
F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F
59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F2$2.F
59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F
59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F2$4.F
59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F
59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F2$6.F
59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F
59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F2$8.F
59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F
59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F2$10.
F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F
59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F2$12.
F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F
59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F2$14.
F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F
59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F2$16.
F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F
59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F2$18.
F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F
59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F2$20.
F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F
59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F2$22.
F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F
59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F2$24.
F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F
59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F$55.
2C58.2C58.2C58.2C58.2C58.2C58.2C58.2C58.2C58.2C58.2C58.2C58.2C58.2C
58.2C58.2C58.2C58.2C58.2C58.2C58.2C58.2C58.2C58.2C58.2C58.2C58.2C62.
2C54.2C58.2C54.2C62.2C58.2C$26.F28.2C29.F28.2C29.F28.2C29.F28.2C29.F
28.2C29.F28.2C29.F28.2C29.F28.2C29.F28.2C29.F28.2C29.F28.2C29.F28.2C
29.F28.2C29.F28.2C29.F28.2C29.F28.2C29.F28.2C29.F28.2C29.F28.2C29.F
28.2C29.F28.2C29.F28.2C29.F28.2C29.F28.2C29.F28.2C29.F28.2C29.F28.2C
29.F32.2C25.F28.2C29.F28.2C29.F24.2C33.F28.2C29.F28.2C29.F2$28.F59.F
59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F
59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F2$30.F26.
2A31.F26.2A31.F26.2A31.F26.2A31.F26.2A31.F26.2A31.F26.2A31.F26.2A31.F
26.2A31.F26.2A31.F26.2A31.F26.2A31.F26.2A31.F26.2A31.F26.2A31.F26.2A
31.F26.2A31.F26.2A31.F26.2A31.F26.2A31.F26.2A31.F26.2A31.F26.2A31.F
26.2A31.F26.2A31.F26.2A31.F26.2A31.F30.2A27.F26.2A31.F26.2A31.F22.2A
35.F26.2A31.F26.2A31.F$57.A.A57.A.A57.A.A57.A.A57.A.A57.A.A57.A.A57.A
.A57.A.A57.A.A57.A.A57.A.A57.A.A57.A.A57.A.A57.A.A57.A.A57.A.A57.A.A
57.A.A57.A.A57.A.A57.A.A57.A.A57.A.A57.A.A57.A.A61.A.A53.A.A57.A.A53.
A.A61.A.A57.A.A$32.F24.A34.F24.A34.F24.A34.F24.A34.F24.A34.F24.A34.F
24.A34.F24.A34.F24.A34.F24.A34.F24.A34.F24.A34.F24.A34.F24.A34.F24.A
34.F24.A34.F24.A34.F24.A34.F24.A34.F24.A34.F24.A34.F24.A34.F24.A34.F
24.A34.F24.A34.F24.A34.F24.A34.F28.A30.F24.A34.F24.A34.F20.A38.F24.A
34.F24.A34.F2$34.F59.F59.F59.F26.2A31.F59.F59.F59.F59.F59.F59.F59.F
26.2A31.F59.F26.2A31.F26.2A31.F59.F59.F59.F59.F59.F26.2A31.F26.2A31.F
59.F59.F59.F26.2A31.F59.F30.2A27.F59.F26.2A31.F59.F59.F26.2A31.F$63.A
59.A59.A57.A.A59.A59.A59.A58.2A59.A58.2A117.A.A59.A57.A.A57.A.A58.2A
119.A59.A117.A.A57.A.A58.2A59.A59.A56.2A60.2A61.A.A113.A.A54.2A62.2A
57.A.A$36.F25.2A32.F25.2A32.F25.2A32.F24.A34.F25.2A32.F25.2A32.F25.2A
32.F24.2A33.F25.2A32.F24.2A33.F27.A31.F24.A34.F25.2A32.F24.A34.F24.A
34.F24.2A33.F26.2A31.F25.2A32.F25.2A32.F27.A31.F24.A34.F24.A34.F24.2A
33.F25.2A32.F25.2A32.F25.A33.F24.2A33.F28.A30.F27.A31.F24.A34.F20.2A
37.F24.2A33.F24.A34.F$62.A.A57.A.A57.A.A117.A.A57.A.A57.A.A58.A58.A.A
58.A59.2A117.A.A178.A58.2A58.A.A57.A.A58.2A178.A58.A.A57.A.A118.A119.
2A114.A63.A$38.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F24.A.A32.F59.
F59.F59.F59.F59.F25.A33.F59.F59.F24.A.A32.F59.F59.F59.F59.F59.F59.F
59.F59.F24.A.A32.F59.F59.F59.F59.F2$40.F59.F59.F59.F59.F59.F59.F59.F
59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F
59.F59.F59.F59.F59.F59.F59.F59.F59.F2$42.F59.F59.F59.F59.F59.F59.F59.
F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F
59.F59.F59.F59.F59.F59.F59.F59.F59.F2$44.F59.F59.F59.F59.F59.F59.F59.
F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F
59.F59.F59.F59.F59.F59.F59.F59.F59.F2$46.F59.F59.F59.F59.F59.F59.F59.
F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F
59.F59.F59.F59.F59.F59.F59.F59.F59.F2$48.F59.F59.F59.F59.F59.F59.F59.
F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F
59.F59.F59.F59.F59.F59.F59.F59.F59.F2$50.F59.F59.F59.F59.F59.F59.F59.
F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F
59.F59.F59.F59.F59.F59.F59.F59.F59.F2$52.F59.F59.F59.F59.F59.F59.F59.
F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F
59.F59.F59.F59.F59.F59.F59.F59.F59.F2$54.F59.F59.F59.F59.F59.F59.F59.
F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F
59.F59.F59.F59.F59.F59.F59.F59.F59.F2$56.F59.F59.F59.F59.F59.F59.F59.
F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F
59.F59.F59.F59.F59.F59.F59.F59.F59.F2$58.F59.F59.F59.F59.F59.F59.F59.
F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F
59.F59.F59.F59.F59.F59.F59.F59.F59.F2$60.F59.F59.F59.F59.F59.F59.F59.
F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F59.F
59.F59.F59.F59.F59.F59.F59.F59.F59.F2$62.F59.F59.F59.F25.3A31.F59.F
59.F59.F59.F59.F59.F59.F25.3A31.F59.F25.3A31.F25.3A31.F59.F59.F59.F
59.F59.F25.3A31.F25.3A31.F59.F59.F59.F25.3A31.F59.F29.3A27.F59.F25.3A
31.F59.F59.F25.3A31.F$268.A479.A119.A59.A359.A59.A239.A123.A115.A179.
A$64.F59.F59.F59.F24.A34.F59.F59.F59.F26.2A31.F59.F26.2A31.F59.F24.A
34.F59.F24.A34.F24.A34.F26.2A31.F59.F59.F59.F59.F24.A34.F24.A34.F26.
2A31.F59.F59.F24.A34.F26.2A31.F28.A30.F59.F24.A34.F22.2A35.F26.2A31.F
24.A34.F$510.2A118.2A358.2A418.2A238.2A234.2A62.2A$66.F59.F59.F59.F
59.F59.F59.F59.F25.A33.F59.F25.A33.F59.F59.F59.F59.F59.F25.A33.F59.F
59.F59.F59.F59.F59.F25.A33.F59.F59.F59.F25.A33.F59.F59.F59.F21.A37.F
25.A33.F59.F$694.2A119.A359.A58.2A538.2A$68.F25.3A31.F25.3A31.F25.3A
31.F59.F25.3A31.F25.3A31.F25.3A31.F59.F25.3A31.F59.F24.2A33.F59.F25.
2A32.F26.2A31.F59.F59.F59.F25.3A31.F25.2A32.F24.2A33.F59.F59.F59.F25.
3A31.F25.3A31.F59.F59.F59.F24.2A33.F59.F59.F59.F59.F$94.A59.A59.A119.
A59.A59.A119.A120.A118.A.A57.2A238.A59.A.A58.A120.2A116.A59.A240.A$
70.F24.A34.F24.A34.F24.A34.F59.F24.A34.F24.A34.F24.A34.F59.F24.A34.F
59.F59.F59.F59.F25.A33.F59.F59.F59.F24.A34.F59.F59.F59.F25.A.A31.F59.
F24.A34.F24.A34.F59.F59.F59.F59.F59.F59.F59.F59.F$219.A359.A539.A236.
A$72.F59.F59.F25.2A32.F26.2A31.F59.F59.F59.F59.F25.2A32.F59.F26.2A31.
F59.F59.F59.F27.A31.F59.F59.F25.2A32.F59.F59.F59.F59.F59.F59.F59.F59.
F59.F30.2A27.F26.2A31.F59.F59.F59.F59.F$101.A116.A.A58.A.A296.A.A118.
A.A237.2A177.A.A118.3A238.2A58.2A181.A.A53.A.A237.3A$74.F25.2A32.F59.
F59.F24.A34.F59.F59.F59.F59.F59.F59.F24.A34.F59.F59.F59.F24.A.A32.F
59.F59.F59.F59.F24.A34.F59.F59.F59.F24.2A33.F24.2A33.F59.F59.F28.A30.
F24.A34.F59.F59.F27.A31.F24.A34.F$100.A.A1137.A240.A59.A419.2A57.A$
163.2A178.2A58.2A58.2A1496.A.A$162.2A178.2A58.2A58.2A300.2A538.2A538.
2A$164.A179.A59.A59.A180.2A116.2A240.2A296.2A538.2A$525.3A117.A.A117.
A239.A.A297.A119.3A417.A$525.A119.A359.A419.A$526.A899.A2$1670.2A234.
2A$1670.A.A233.A.A$1670.A235.A$1073.2A$1072.2A$835.2A237.A120.2A$834.
2A359.A.A418.2A$836.A358.A420.A.A$1078.2A536.A$1078.A.A$1078.A3$903.
2A$902.2A$904.A$246.2A358.2A538.2A$246.A.A57.3A297.A.A118.2A239.A177.
A.A118.2A481.3A54.2A239.A$128.2A116.A59.A299.A119.2A239.2A177.A120.A.
A237.3A57.3A180.A55.2A239.2A$128.A.A176.A420.A238.A.A297.A239.A59.A
183.A56.A238.A.A$128.A1260.3A116.A59.A420.3A$190.3A177.3A57.3A57.3A
418.2A476.A422.A176.A$190.A179.A59.A59.A241.2A176.2A478.A420.2A177.A$
191.A179.A59.A59.A240.A.A177.A239.3A656.A.A$254.2A358.2A116.A62.A356.
A182.A539.A$254.A.A357.A.A59.A117.2A178.3A58.2A116.A121.2A57.2A59.2A
477.2A$136.2A116.A359.A60.2A117.A.A177.A60.A.A237.A.A56.A.A58.A.A476.
A.A$136.A.A536.A.A297.A59.A239.A119.A660.3A$136.A1501.2A239.A176.A$
199.2A238.2A59.A1136.2A239.2A177.A$198.2A238.2A59.2A540.A597.A238.A.A
$200.A239.A58.A.A299.2A237.2A$800.2A238.A.A298.3A$802.A60.2A358.2A
116.A$383.3A178.2A296.2A358.2A118.A121.2A$383.A179.2A299.A359.A238.2A
$384.A180.A899.A$1526.3A57.3A$1468.2A56.A59.A$1467.2A58.A59.A$1110.2A
357.A$1109.2A$1111.A2$1115.A599.A235.A$1114.2A598.2A234.2A$1114.A.A
597.A.A64.A168.A.A$1780.2A$1780.A.A234.3A$338.3A597.3A898.2A176.A$
338.A360.3A236.A241.2A657.A.A115.A60.A$339.A359.A181.2A56.A240.A.A
656.A116.2A$282.2A358.2A56.A180.A.A296.A775.A.A$281.2A300.2A56.2A238.
A420.3A118.2A$164.2A117.A298.2A59.A540.2A116.A119.2A421.A$163.2A419.A
599.A.A116.A120.A419.2A238.3A$165.A1018.A659.A.A60.A118.2A56.A$227.2A
238.2A178.2A1257.2A117.2A58.A$226.2A238.2A59.3A116.2A119.3A298.2A358.
2A476.A.A118.A$228.A239.A58.A120.A118.A300.A.A237.3A59.A57.A.A658.2A$
528.A239.A299.A239.A60.2A57.A301.2A357.A.A$292.A958.2A56.A59.A.A357.
2A358.A$291.2A179.2A59.A716.2A479.A$174.A116.A.A177.2A59.2A240.A477.A
661.A$173.2A298.A58.A.A238.2A600.A537.2A$173.A.A597.A.A240.A357.2A
178.3A57.3A296.A.A$237.A777.2A357.A.A119.2A56.A59.A$236.2A777.A.A477.
2A58.A59.A$236.A.A1019.2A237.A$419.2A837.A.A$419.A.A597.3A236.A$419.A
599.A$1020.A121.2A$1142.A.A417.3A57.3A$1142.A419.A59.A$1505.2A56.A59.
A184.3A$366.2A598.2A178.2A356.2A302.A$366.A.A358.2A237.A.A177.A.A357.
A302.A$366.A360.A.A236.A120.3A56.A$727.A180.3A176.A896.3A$908.A179.A
895.A$611.2A296.A1075.A$610.2A120.2A238.2A237.3A478.2A178.2A$612.A
119.A.A237.A.A236.A479.2A124.2A53.A.A$732.A181.2A56.A239.A480.A123.A.
A52.A$674.3A236.2A902.A$674.A240.A420.2A117.3A$376.3A296.A660.A.A116.
A537.2A121.3A$376.A959.A119.A300.3A232.2A65.A56.A$377.A242.A1136.A
236.A63.2A57.A$319.3A178.2A117.2A839.2A296.A299.A.A$201.2A116.A180.A.
A116.A.A838.A.A479.A$201.A.A116.A179.A959.A480.2A$201.A1739.A.A$324.
2A359.A537.3A$206.A57.3A56.2A359.2A537.A$205.2A57.A60.A358.A.A537.A$
205.A.A57.A$1888.2A$269.2A1616.2A$268.2A240.2A1079.A58.2A118.2A117.A$
270.A238.2A1079.2A58.A.A116.2A$511.A1078.A.A57.A120.A$1533.2A179.A$
1173.3A356.2A120.2A57.2A$454.3A658.2A56.A360.A118.2A58.A.A$454.A660.A
.A56.A421.2A57.A$455.A659.A480.A.A$1178.2A416.A$1177.2A$760.2A417.A$
759.2A1083.3A$761.A179.3A900.A$941.A903.A236.3A$942.A1139.A$1544.3A
536.A$1544.A602.A$406.3A238.2A477.3A416.A600.2A$406.A240.A.A476.A
1019.A.A$407.A239.A479.A$769.3A1082.2A$769.A1084.A.A$412.2A356.A1083.
A173.2A$412.A.A1612.2A$412.A1616.A4$659.A1138.2A$658.2A1138.A.A$658.A
.A1137.A4$1983.3A$1983.A$1984.A2$967.3A$967.A$968.A10$2055.3A$2055.A$
2056.A9$1831.2A$1831.A.A$1831.A!
It's an interesting thought that a 0hd design doesn't really need an edge shooter any more -- a transparent glider output would be almost as good, as long as it could insert gliders either closely in front or closely in back of a glider already in the lane. It might complicate construction if things have to be built on both sides of the construction lane, or even worse right on the lane -- but there's a solution for pretty much any construction, using prebuilt slow-salvo seeds if necessary.

Anyway, a single-emitter design would probably have to have a repeat time below 20 ticks, before that idea would really work -- certainly below 43, since even a honeyfarm explosion will settle in that amount of time. If you can't hit the lead glider's explosion while it's active, the search space basically shrinks down to nothing. And even a Snark can't manage that kind of speed.

However, there are some interesting searches that could be run, to look for workable universal constructors with just a single modified "Tile A" reflector.

A 2xTileA design can probably fit in a 50000x50000 bounding box. It's quite possible that one of simsim314's designs might have a smaller bounding box and/or period -- relying on a tiny p120 or p240 drive gun to supply one of the gliders.
Kazyan wrote:While I'm already doing wishful thinking for magical ultra-low-repeat-time circuits over here, what sorts of new conduits would improve the speed further? Besides a spartan syringe or spartan snark, of course.
Well, here are a couple of crazy ideas that I came up with this week.

1) It might be possible to increase the search space for elbow operations really significantly, not just by increasing the number of allowable elbows, but by abandoning the slow-salvo idea.

Now that we can deliver a second glider pair as soon as 90 ticks after a previous pair -- or is there a G(n) signal option that reduces even that lower limit? -- it's perfectly possible to hit a small explosive reaction while it's still active, and get something new and useful out.

2) What about a design where each signal on the tape serves as the Lane A glider for one glider pair, and then the Lane B glider for the following glider pair? Would that still allow enough flexibility to produce a universal library of elbow operations?

I haven't tried running the search yet, but I bet that could be made to work. It's not at all clear what lane spacing would work best for that design -- probably not 0hd, and not necessarily 9hd or 10hd either. What circuit could most efficiently put out gliders on nearby lanes with a reasonable time offset? What about something like this?

Code: Select all

x = 82, y = 42, rule = LifeHistory
5.A$5.3A$8.A$7.2A5$9.E$9.E.E$9.3E$11.E4$10.2A$2.2A5.A.A$3.A5.A$3A5.2A
$A$46.A$44.3A$43.A$18.2A23.2A$13.2A3.2A$13.2A3$12.2A$13.A4.2A51.C$10.
3A5.2A49.3C$10.A41.2A15.C.C$52.2A15.C$29.2A49.A$28.A.A48.A.A$28.A50.A
.A$27.2A10.2A39.A$40.A$37.3A9.2A$37.A11.A$50.A$49.2A!
It's not quite perfect, because there's a spark from the Fx119 that would forbid some relative spacings of paired gliders -- but I think those aren't the most useful glider pairs at 7hd anyway.

There's probably still a universal set of operations, especially if we allow lots of different elbows. All that's required for a small object or constellation to function as an elbow is that multiple recipes have to be able to convert it to other objects that are also elbows -- and that not all of those recipes emit sideways gliders.

Is there a better option to investigate than this Fx119+F117 -- adding a different H-to-G maybe? Or maybe something could be done with the new edge-shooter Herschel track that was adapted to make an LWSS output.

User avatar
Kiran
Posts: 285
Joined: March 4th, 2015, 6:48 pm

Re: Demonoid (diagonal Geminoid) completed!

Post by Kiran » November 26th, 2015, 10:43 pm

Very nice!
Is this the first explicitly constructed infinite family of spaceship velocities?
I guess the next challenge is to find one that is more compatible with Hashlife.
Kiran Linsuain

thunk
Posts: 170
Joined: October 3rd, 2015, 8:50 pm
Location: Central USA

Re: Demonoid (diagonal Geminoid) completed!

Post by thunk » November 26th, 2015, 10:53 pm

Kiran wrote:Very nice!
Is this the first explicitly constructed infinite family of spaceship velocities?
I guess the next challenge is to find one that is more compatible with Hashlife.
No it isn't-- the various geminoids have adjustable slopes and velocities, up to (but not including)(1,1)c/580. This can be increased (especially with the addition of snarks and syringes) with substantially more work.
The half-baked knightships also have adjustable periods, but fixed slopes of (6,3)c/large.

The geminoids are also much more compatible with Hashlife than this specific Demonoid, since the constructed Geminoids have a power-of-two period. Due to the specific travel time of the glider streams through the A- and B-conduits, the period of this Demonoid will always be 8 mod 16--which will never be a power of two for any period >8.

EDIT: To clarify timing constraints, based on dvgrn's post below.
Last edited by thunk on November 27th, 2015, 1:32 pm, edited 1 time in total.
"What's purple and commutes?
The Evanston Express."

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

Re: Demonoid (diagonal Geminoid) completed!

Post by dvgrn » November 27th, 2015, 12:19 pm

thunk wrote:The geminoids are also much more compatible with Hashlife, due to the fact that they can have a power-of-two period. Due to the specific travel time of the glider streams through the A- and B-conduits, the period of a Demonoid will always be 8 mod 16--which will never be a power of two for any period >8.
Technically the Geminoids and Demonoids have about equal potential for Hashlife-compatibility, I think. They would both have to be rebuilt from the ground up to make them adjustable to 2^N periods.

The Demonoid's 8-mod-16 limitation is strictly a function of the specific tracks used before the 180-degree glider output. In this case, a syringe+F166+R64 was the shortest and cheapest (in terms of still lifes) series that produced a workable design.

Tracks that produce 0 mod 16 return gliders (instead of 8 mod 16) are certainly out there -- if nothing else, syringe plus HL141B plus some number of BRx46Bs, plus some connection to the glider output and edge shooter. That might also have the advantage of allowing signal packing down to 90 ticks instead of 153, which would be a significant improvement... but it probably wouldn't make up for having to build a much longer Herschel track.

It Won't Really Help...
A 2^N temporal adjustment probably isn't enough anyway. Unless the spatial offset is also taken into account, HashLife still might not be very happy. The current Demonoid has a lane offset of 65, which is the absolute worst possible: Golly would have to remember snapshots of 64 complete cycles of the Demonoid before the larger hashtiles would start to match up again.

Even if the temporal phase-change issue were fixed, the spatial offset might be enough of a problem that Golly would need terabytes of memory before it could "run away" with a Demonoid simulation. I haven't tried to do even a good ballpark estimate of this, though -- would anyone care to sort out some actual numbers?

Next Steps?
Not surprisingly, just at the moment I'm not particularly inclined to attempt a complete rebuild of the self-destruct circuitry to match a new track! I'd like to get Hersrch updated with all of the new Spartan Herschel conduits from the past few years, and see if a search turns up a reasonably compact 180-degree reflection that allows a pure 2^N adjustment in both space and time.

Cropped HashLife
Really it might make just as much sense to speed up the simulation of these self-constructing patterns by writing a new HashLife-based algorithm for Golly that can handle non-power-of-two spatial and temporal repetition. It might "just" be a matter of adding the option to crop each different size of HashLife tile by some number of cells horizontally or vertically, or to leave out some number of generations when calculating certain levels of temporal offset.

I'm not at all sure that the math could be made to work out in practice, of course. But as long as CroppedHashLife always stores, say, the 127th descendant of 2^7-size tiles instead of the 128th, then it seems as if that would permit fast simulation of patterns with period 127*2^N. All the normal benefits of HashLife would still be available for tiles bigger than 2^7. The algorithm would have to be configured specifically for each periodic pattern, but that doesn't seem like the difficult part of the problem.

Hyperspace HashLife
Another custom algorithm that could speed up this kind of self-constructing circuitry would be a tricky hyperspace-enabled HashLife that moves all the NE-traveling gliders to a completely different part of the Life universe, as they start to travel from one Demonoid wing to another... and teleport them back when they get within range of the circuitry. The horrible slowness of these boustrophedonic designs is almost all due to the unmanageably large number of hashtiles resulting from nearby glider streams traveling in opposite directions.

Diamonds Are Awesome
After the easy 2xTileA Demonoid variant, it really might be best to leave these 180-degree-reflection Geminoid/Demonoid designs behind and move on to try something like a diamond-shaped loop. From what I've seen so far, it looks like they'll run really impressively fast, with no modifications needed to Golly at all.

Post Reply