How about a unidimensional spaceship?

For discussion of specific patterns or specific families of patterns in Conway's Game of Life, both newly-discovered and well-known.
User avatar
Hippo.69
Posts: 674
Joined: July 14th, 2020, 7:35 pm
Contact:

Re: How about a unidimensional spaceship?

Post by Hippo.69 »

So I have replayed one cycle of the ship (in a "debug mode"). Currently it is 2/135167562552 ship. There is problem with SoD (longboat in switch far seed needed shift 6fd with ecca2 (I have known that) ... new salvo is almost computed... there is some other SoD problem (I was surprised) I am not sure if there is a bug in "simulation" or there is a real problem ... to be checked.

So something wrong happens during 65532M->86663M period (one behive disappears from the absorbers, move1 track is missing an eater).
So could there be a wandering glider(s) or is it just a bug in simulation?

Code: Select all

x = 791, y = 641, rule = B3/S23
50b2o125b2o36bo220b2o110b2o$177b2o36bo332b2o35b3o$32b2o31b2o26b2o111b
2o7bo78b2o122b2o31b2o26b2o96b2o101b2o$32b2o31b2o25bo2bo109bo2bo85b2o
27b2o93b2o31b2o25bo2bo94bo2bo9bo90b2o27b2o$86b2o4bobo86b2o22bobo9b3o
103bobo146b2o4bobo71b2o22bobo10bo119bobo$86b2o5bo3bo83b2o23bo19b2o96bo
29b2o116b2o5bo3bo68b2o23bo11bo7b2o111bo29b2o$96bobo127b2o126b2o126bobo
112b2o141b2o$95bo2bo205b2o175bo2bo205b2o$35b2o28b2o29b2o206b2o6b2o107b
2o28b2o29b2o206b2o6b2o$35b2o28b2o125b2o117bo2bo106b2o28b2o3bo106b2o
132bo2bo$69b3o86b2o31bo2bo91b2o24bobo141bo72b2o31bo2bo106b2o24bobo$
158b2o32b2o92b2o25bo142bo72b2o32b2o107b2o25bo$73bo269b2o384b2o$73bo
268bobo113b3o267bobo$73bo241b2o26bo357b2o26bo$314bo2bo382bo2bo$289b2o
24b2o358b2o24b2o$63b2o132b2o90b2o34b2o122b2o117b2o105b2o34b2o$16b2o45b
obo84b2o45bobo125bobo74b2o45bobo69b2o45bobo140bobo$16b2o46bo85b2o46bo
127bo75b2o46bo70b2o46bo142bo$37b2o254b2o128b2o254b2o$37b2o254b2o128b2o
254b2o2$26b2o384b2o$26b2o125b2o257b2o110b2o$153b2o14b2o353b2o14b2o$8b
2o159b2o99b2o122b2o144b2o114b2o$8b2o260b2o122b2o260b2o$157b2o19b2ob2o
345b2o19b2ob2o$68b2o87b2o19b2ob2o19b2o126b2o122b2o72b2o19b2ob2o19b2o
141b2o$68b2o132b2o126b2o122b2o117b2o141b2o$280b2o384b2o$11b2o36bo230b
2o115b2o267b2o$11b2o36bo347b2o35b3o$40b2o7bo84b2o126b2o31b2o26b2o101b
2o77b2o141b2o31b2o26b2o$39bo2bo91b2o27b2o97b2o31b2o25bo2bo99bo2bo9bo
66b2o27b2o112b2o31b2o25bo2bo$15b2o22bobo9b3o109bobo150b2o4bobo76b2o22b
obo10bo95bobo165b2o4bobo$15b2o23bo19b2o102bo29b2o120b2o5bo3bo73b2o23bo
11bo7b2o87bo29b2o135b2o5bo3bo$60b2o132b2o130bobo117b2o117b2o145bobo$
144b2o179bo2bo186b2o194bo2bo$144b2o6b2o111b2o28b2o29b2o187b2o6b2o126b
2o28b2o29b2o$26b2o123bo2bo110b2o28b2o3bo111b2o108bo2bo125b2o28b2o$25bo
2bo97b2o24bobo145bo77b2o31bo2bo82b2o24bobo159b3o95b2o$26b2o98b2o25bo
146bo77b2o32b2o83b2o25bo258b2o$183b2o369b2o133bo$182bobo117b3o248bobo
133bo$155b2o26bo342b2o26bo134bo$154bo2bo367bo2bo$129b2o24b2o343b2o24b
2o$31b2o96b2o34b2o126b2o122b2o81b2o34b2o141b2o$31bobo131bobo78b2o45bob
o74b2o45bobo116bobo93b2o45bobo93b2o$32bo133bo79b2o46bo75b2o46bo118bo
94b2o46bo94b2o$133b2o132b2o235b2o147b2o$133b2o132b2o235b2o147b2o2$256b
2o384b2o$256b2o115b2o267b2o$3b2o368b2o14b2o$3b2o105b2o126b2o149b2o90b
2o141b2o141b2o$110b2o126b2o241b2o141b2o141b2o$12b2ob2o360b2o19b2ob2o$
12b2ob2o19b2o132b2o126b2o77b2o19b2ob2o19b2o117b2o141b2o$36b2o132b2o
126b2o122b2o117b2o141b2o104bo$120b2o369b2o297bo$120b2o119b2o248b2o134b
2o36bo$241b2o35b3o346b2o36bo$102b2o31b2o26b2o105b2o82b2o117b2o31b2o26b
2o120b2o7bo93b2o$102b2o31b2o25bo2bo103bo2bo9bo71b2o27b2o88b2o31b2o25bo
2bo118bo2bo100b2o$156b2o4bobo80b2o22bobo10bo100bobo141b2o4bobo95b2o22b
obo9b3o$28b2o126b2o5bo3bo77b2o23bo11bo7b2o92bo29b2o111b2o5bo3bo92b2o
23bo19b2o$28b2o136bobo121b2o122b2o121bobo136b2o104b2o$165bo2bo195b2o
170bo2bo242bobo$105b2o28b2o29b2o196b2o6b2o102b2o28b2o29b2o244b2o$105b
2o28b2o119b2o113bo2bo101b2o28b2o3bo130b2o$139b3o80b2o31bo2bo87b2o24bob
o136bo96b2o31bo2bo106b2o$222b2o32b2o88b2o25bo137bo96b2o32b2o107b2o36bo
$17b2o124bo259b2o383bobo$16bobo124bo258bobo108b3o272bo$17bo125bo231b2o
26bo370b2o13b2o$374bo2bo396bobo$349b2o24b2o398b2o$o132b2o126b2o86b2o
34b2o117b2o141b2o$bo84b2o45bobo78b2o45bobo121bobo69b2o45bobo93b2o45bob
o93b2o$o85b2o46bo79b2o46bo123bo70b2o46bo94b2o46bo94b2o36bo$107b2o244b
2o123b2o300bobo$107b2o244b2o123b2o300bo2bo$766b2o13b2o$96b2o369b2o297b
obo$96b2o119b2o248b2o134b2o162b2o$217b2o14b2o368b2o14b2o$78b2o153b2o
95b2o117b2o168b2o114b2o$78b2o250b2o117b2o284b2o36bo$221b2o19b2ob2o360b
2o19b2ob2o139bobo$4b2o132b2o81b2o19b2ob2o19b2o122b2o117b2o96b2o19b2ob
2o19b2o118bo2bo14bo$4b2o132b2o126b2o122b2o117b2o141b2o104b2o13b2o15bo$
340b2o416bobo$81b2o36bo220b2o110b2o305b2o$81b2o36bo332b2o35b3o$110b2o
7bo78b2o122b2o31b2o26b2o96b2o101b2o141b2o$109bo2bo85b2o27b2o93b2o31b2o
25bo2bo94bo2bo9bo90b2o27b2o112b2o36bo$85b2o22bobo9b3o103bobo146b2o4bob
o71b2o22bobo10bo119bobo148bobo$bo83b2o23bo19b2o96bo29b2o116b2o5bo3bo
68b2o23bo11bo7b2o111bo29b2o118bo2bo14b2o$obo127b2o126b2o126bobo112b2o
141b2o104b2o13b2o15b2o$2bo205b2o175bo2bo205b2o154bobo$2o206b2o6b2o107b
2o28b2o29b2o206b2o6b2o147b2o$96b2o117bo2bo106b2o28b2o3bo106b2o132bo2bo
$62b2o31bo2bo91b2o24bobo141bo72b2o31bo2bo106b2o24bobo114b2o$62b2o32b2o
92b2o25bo142bo72b2o32b2o107b2o25bo115b2o36bo$247b2o384b2o121bobo$246bo
bo113b3o267bobo121bo2bo14b2o$219b2o26bo357b2o26bo108b2o13b2o15b2o$218b
o2bo382bo2bo134bobo$193b2o24b2o358b2o24b2o136b2o$101b2o90b2o34b2o122b
2o117b2o105b2o34b2o$54b2o45bobo125bobo74b2o45bobo69b2o45bobo140bobo93b
2o$54b2o46bo127bo75b2o46bo70b2o46bo142bo94b2o36bo$197b2o128b2o254b2o
163bobo$197b2o128b2o254b2o163bo2bo14b2o$734b2o13b2o15b2o16b2o$316b2o
416bobo47b2o$57b2o257b2o110b2o305b2o$57b2o14b2o353b2o14b2o$73b2o99b2o
122b2o144b2o114b2o141b2o$174b2o122b2o260b2o141b2o36bo$61b2o19b2ob2o
345b2o19b2ob2o282bobo$61b2o19b2ob2o19b2o126b2o122b2o72b2o19b2ob2o19b2o
141b2o118bo2bo14b2o$106b2o126b2o122b2o117b2o141b2o104b2o13b2o15b2o16b
2o$184b2o384b2o154bobo47b2o$184b2o115b2o267b2o155b2o$301b2o35b3o$38b2o
126b2o31b2o26b2o101b2o77b2o141b2o31b2o26b2o80b2o$38b2o27b2o97b2o31b2o
25bo2bo99bo2bo9bo66b2o27b2o112b2o31b2o25bo2bo79b2o36bo$67bobo150b2o4bo
bo76b2o22bobo10bo95bobo165b2o4bobo117bobo$68bo29b2o120b2o5bo3bo73b2o
23bo11bo7b2o87bo29b2o135b2o5bo3bo114bo2bo14b2o$98b2o130bobo117b2o117b
2o145bobo99b2o13b2o15b2o16b2o$48b2o179bo2bo186b2o194bo2bo99bobo47b2o$
48b2o6b2o111b2o28b2o29b2o187b2o6b2o126b2o28b2o29b2o101b2o$55bo2bo110b
2o28b2o3bo111b2o108bo2bo125b2o28b2o$30b2o24bobo145bo77b2o31bo2bo82b2o
24bobo159b3o95b2o$30b2o25bo146bo77b2o32b2o83b2o25bo258b2o36bo$87b2o
369b2o133bo130bobo$86bobo117b3o248bobo133bo130bo2bo14b2o$59b2o26bo342b
2o26bo134bo116b2o13b2o15b2o16b2o$58bo2bo367bo2bo277bobo47b2o$33b2o24b
2o343b2o24b2o279b2o$33b2o34b2o126b2o122b2o81b2o34b2o141b2o$69bobo78b2o
45bobo74b2o45bobo116bobo93b2o45bobo93b2o102b2o$70bo79b2o46bo75b2o46bo
118bo94b2o46bo94b2o36bo65bobo$37b2o132b2o235b2o147b2o157bobo65b2o$37b
2o132b2o235b2o147b2o157bo2bo14b2o$702b2o13b2o15b2o16b2o$160b2o384b2o
154bobo47b2o36bo$160b2o115b2o267b2o155b2o84bo$277b2o14b2o494bo$14b2o
126b2o149b2o90b2o141b2o141b2o102b2o13bo$14b2o126b2o241b2o141b2o141b2o
36bo65bobo$281b2o19b2ob2o401bobo65b2o$74b2o126b2o77b2o19b2ob2o19b2o
117b2o141b2o118bo2bo14b2o$74b2o126b2o122b2o117b2o141b2o104b2o13b2o15b
2o16b2o$24b2o369b2o297bobo47b2o36bo$24b2o119b2o248b2o134b2o36bo125b2o
84bobo$145b2o35b3o346b2o36bo211bo2bo$6b2o31b2o26b2o105b2o82b2o117b2o
31b2o26b2o120b2o7bo93b2o102b2o13b2o$6b2o31b2o25bo2bo103bo2bo9bo71b2o
27b2o88b2o31b2o25bo2bo118bo2bo100b2o36bo65bobo$60b2o4bobo80b2o22bobo
10bo100bobo141b2o4bobo95b2o22bobo9b3o126bobo65b2o$60b2o5bo3bo77b2o23bo
11bo7b2o92bo29b2o111b2o5bo3bo92b2o23bo19b2o118bo2bo14b2o$70bobo121b2o
122b2o121bobo136b2o104b2o13b2o15b2o16b2o$69bo2bo195b2o170bo2bo242bobo
47b2o36bo$9b2o28b2o29b2o196b2o6b2o102b2o28b2o29b2o244b2o84bobo$9b2o28b
2o119b2o113bo2bo101b2o28b2o3bo130b2o225bo2bo$43b3o80b2o31bo2bo87b2o24b
obo136bo96b2o31bo2bo106b2o102b2o13b2o$126b2o32b2o88b2o25bo137bo96b2o
32b2o107b2o36bo65bobo$47bo259b2o383bobo65b2o$47bo258bobo108b3o272bo2bo
14b2o$47bo231b2o26bo370b2o13b2o15b2o16b2o$278bo2bo396bobo47b2o36bo$
253b2o24b2o398b2o84bobo$37b2o126b2o86b2o34b2o117b2o141b2o212bo2bo14b2o
$37bobo78b2o45bobo121bobo69b2o45bobo93b2o45bobo93b2o102b2o13b2o15b2o$
38bo79b2o46bo123bo70b2o46bo94b2o46bo94b2o36bo65bobo$11b2o244b2o123b2o
300bobo65b2o$11b2o244b2o123b2o300bo2bo14b2o$670b2o13b2o15b2o16b2o$2o
369b2o297bobo47b2o36bo$2o119b2o248b2o134b2o162b2o84bobo$121b2o14b2o
368b2o14b2o232bo2bo14b2o$137b2o95b2o117b2o168b2o114b2o102b2o13b2o15b2o
$234b2o117b2o284b2o36bo65bobo$125b2o19b2ob2o360b2o19b2ob2o139bobo65b2o
$42b2o81b2o19b2ob2o19b2o122b2o117b2o96b2o19b2ob2o19b2o118bo2bo14b2o$
42b2o126b2o122b2o117b2o141b2o104b2o13b2o15b2o16b2o$244b2o416bobo47b2o
36bo$23bo220b2o110b2o305b2o84bobo$23bo332b2o35b3o353bo2bo14b2o$14b2o7b
o78b2o122b2o31b2o26b2o96b2o101b2o141b2o102b2o13b2o15b2o$13bo2bo85b2o
27b2o93b2o31b2o25bo2bo94bo2bo9bo90b2o27b2o112b2o36bo65bobo$13bobo9b3o
103bobo146b2o4bobo71b2o22bobo10bo119bobo148bobo65b2o$14bo19b2o96bo29b
2o116b2o5bo3bo68b2o23bo11bo7b2o111bo29b2o118bo2bo14b2o$34b2o126b2o126b
obo112b2o141b2o104b2o13b2o15b2o16b2o$112b2o175bo2bo205b2o154bobo47b2o
36bo$112b2o6b2o107b2o28b2o29b2o206b2o6b2o147b2o84bobo$2o117bo2bo106b2o
28b2o3bo106b2o132bo2bo232bo2bo14b2o$2bo91b2o24bobo141bo72b2o31bo2bo
106b2o24bobo114b2o102b2o13b2o15b2o$2o92b2o25bo142bo72b2o32b2o107b2o25b
o115b2o36bo65bobo$151b2o384b2o121bobo65b2o$150bobo113b3o267bobo121bo2b
o14b2o$123b2o26bo357b2o26bo108b2o13b2o15b2o16b2o$122bo2bo382bo2bo134bo
bo47b2o36bo$97b2o24b2o358b2o24b2o136b2o84bobo$5b2o90b2o34b2o122b2o117b
2o105b2o34b2o212bo2bo14b2o$5bobo125bobo74b2o45bobo69b2o45bobo140bobo
93b2o102b2o13b2o15b2o$6bo127bo75b2o46bo70b2o46bo142bo94b2o36bo65bobo$
101b2o128b2o254b2o163bobo65b2o$101b2o128b2o254b2o163bo2bo14b2o$638b2o
13b2o15b2o16b2o$220b2o416bobo47b2o36bo$220b2o110b2o305b2o84bobo$332b2o
14b2o375bo2bo14b2o$78b2o122b2o144b2o114b2o141b2o102b2o13b2o15b2o$78b2o
122b2o260b2o141b2o36bo65bobo$336b2o19b2ob2o282bobo65b2o$10b2o126b2o
122b2o72b2o19b2ob2o19b2o141b2o118bo2bo14b2o$10b2o126b2o122b2o117b2o
141b2o104b2o13b2o15b2o16b2o$88b2o384b2o154bobo47b2o36bo$88b2o115b2o
267b2o155b2o84bobo$205b2o35b3o472bo2bo14b2o$70b2o31b2o26b2o101b2o77b2o
141b2o31b2o26b2o80b2o102b2o13b2o15b2o$70b2o31b2o25bo2bo99bo2bo9bo66b2o
27b2o112b2o31b2o25bo2bo79b2o36bo65bobo$124b2o4bobo76b2o22bobo10bo95bob
o165b2o4bobo117bobo65b2o$2b2o120b2o5bo3bo73b2o23bo11bo7b2o87bo29b2o
135b2o5bo3bo114bo2bo14b2o$2b2o130bobo117b2o117b2o145bobo99b2o13b2o15b
2o16b2o$133bo2bo186b2o194bo2bo99bobo47b2o36bo$73b2o28b2o29b2o187b2o6b
2o126b2o28b2o29b2o101b2o84bobo$73b2o28b2o3bo111b2o108bo2bo125b2o28b2o
218bo2bo14b2o$108bo77b2o31bo2bo82b2o24bobo159b3o95b2o102b2o13b2o15b2o$
108bo77b2o32b2o83b2o25bo258b2o36bo65bobo$362b2o133bo130bobo65b2o$110b
3o248bobo133bo130bo2bo14b2o$334b2o26bo134bo116b2o13b2o15b2o16b2o$333bo
2bo277bobo47b2o36bo$308b2o24b2o279b2o84bobo$101b2o122b2o81b2o34b2o141b
2o212bo2bo14b2o$54b2o45bobo74b2o45bobo116bobo93b2o45bobo93b2o102b2o13b
2o15b2o$54b2o46bo75b2o46bo118bo94b2o46bo94b2o36bo65bobo$75b2o235b2o
147b2o157bobo65b2o$75b2o235b2o147b2o157bo2bo14b2o$606b2o13b2o15b2o16b
2o$64b2o384b2o154bobo47b2o36bo$64b2o115b2o267b2o155b2o84bobo$181b2o14b
2o494bo2bo14b2o$46b2o149b2o90b2o141b2o141b2o102b2o13b2o15b2o$46b2o241b
2o141b2o141b2o36bo65bobo$185b2o19b2ob2o401bobo65b2o$106b2o77b2o19b2ob
2o19b2o117b2o141b2o118bo2bo14b2o$106b2o122b2o117b2o141b2o104b2o13b2o
15b2o16b2o$299b2o297bobo47b2o36bo$49b2o248b2o134b2o36bo125b2o84bobo$
49b2o35b3o346b2o36bo211bo2bo14b2o$78b2o82b2o117b2o31b2o26b2o120b2o7bo
93b2o102b2o13b2o15b2o$77bo2bo9bo71b2o27b2o88b2o31b2o25bo2bo118bo2bo
100b2o36bo65bobo$53b2o22bobo10bo100bobo141b2o4bobo95b2o22bobo9b3o126bo
bo65b2o$53b2o23bo11bo7b2o92bo29b2o111b2o5bo3bo92b2o23bo19b2o118bo2bo
14b2o$98b2o122b2o121bobo136b2o104b2o13b2o15b2o16b2o$172b2o170bo2bo242b
obo47b2o36bo$172b2o6b2o102b2o28b2o29b2o244b2o84bobo$64b2o113bo2bo101b
2o28b2o3bo130b2o225bo2bo14b2o$30b2o31bo2bo87b2o24bobo136bo96b2o31bo2bo
106b2o102b2o13b2o15b2o$30b2o32b2o88b2o25bo137bo96b2o32b2o107b2o36bo65b
obo$211b2o383bobo65b2o$210bobo108b3o272bo2bo14b2o$183b2o26bo370b2o13b
2o15b2o16b2o$182bo2bo396bobo47b2o36bo$157b2o24b2o398b2o84bobo$69b2o86b
2o34b2o117b2o141b2o212bo2bo14b2o$22b2o45bobo121bobo69b2o45bobo93b2o45b
obo93b2o102b2o13b2o15b2o$22b2o46bo123bo70b2o46bo94b2o46bo94b2o36bo65bo
bo$161b2o123b2o300bobo65b2o$161b2o123b2o300bo2bo14b2o$574b2o13b2o15b2o
16b2o$275b2o297bobo47b2o36bo$25b2o248b2o134b2o162b2o84bobo$25b2o14b2o
368b2o14b2o232bo2bo14b2o$41b2o95b2o117b2o168b2o114b2o102b2o13b2o15b2o$
138b2o117b2o284b2o36bo65bobo$29b2o19b2ob2o360b2o19b2ob2o139bobo65b2o$
29b2o19b2ob2o19b2o122b2o117b2o96b2o19b2ob2o19b2o118bo2bo14b2o$74b2o
122b2o117b2o141b2o104b2o13b2o15b2o16b2o$148b2o416bobo47b2o36bo$148b2o
110b2o305b2o84bobo$260b2o35b3o353bo2bo14b2o$6b2o122b2o31b2o26b2o96b2o
101b2o141b2o102b2o13b2o15b2o$6b2o27b2o93b2o31b2o25bo2bo94bo2bo9bo90b2o
27b2o112b2o36bo65bobo$35bobo146b2o4bobo71b2o22bobo10bo119bobo148bobo
65b2o$36bo29b2o116b2o5bo3bo68b2o23bo11bo7b2o111bo29b2o118bo2bo14b2o$
66b2o126bobo112b2o141b2o104b2o13b2o15b2o16b2o$16b2o175bo2bo205b2o154bo
bo47b2o36bo$16b2o6b2o107b2o28b2o29b2o206b2o6b2o147b2o84bobo$23bo2bo
106b2o28b2o3bo106b2o132bo2bo232bo2bo14b2o$24bobo141bo72b2o31bo2bo106b
2o24bobo114b2o102b2o13b2o15b2o$25bo142bo72b2o32b2o107b2o25bo115b2o36bo
65bobo$55b2o384b2o121bobo65b2o$54bobo113b3o267bobo121bo2bo14b2o$27b2o
26bo357b2o26bo108b2o13b2o15b2o16b2o$26bo2bo382bo2bo134bobo47b2o36bo$b
2o24b2o358b2o24b2o136b2o84bobo$b2o34b2o122b2o117b2o105b2o34b2o212bo2bo
14b2o$37bobo74b2o45bobo69b2o45bobo140bobo93b2o102b2o13b2o15b2o$38bo75b
2o46bo70b2o46bo142bo94b2o36bo65bobo$5b2o128b2o254b2o163bobo65b2o$5b2o
128b2o254b2o163bo2bo14b2o$542b2o13b2o15b2o16b2o$124b2o416bobo47b2o36bo
$124b2o110b2o305b2o84bobo$236b2o14b2o375bo2bo14b2o$106b2o144b2o114b2o
141b2o102b2o13b2o15b2o$106b2o260b2o141b2o36bo65bobo$240b2o19b2ob2o282b
obo65b2o$42b2o122b2o72b2o19b2ob2o19b2o141b2o118bo2bo14b2o$42b2o122b2o
117b2o141b2o104b2o13b2o15b2o16b2o$378b2o154bobo47b2o36bo$109b2o267b2o
155b2o84bobo$109b2o35b3o472bo2bo14b2o$7b2o26b2o101b2o77b2o141b2o31b2o
26b2o80b2o102b2o13b2o15b2o$7b2o25bo2bo99bo2bo9bo66b2o27b2o112b2o31b2o
25bo2bo79b2o36bo65bobo$28b2o4bobo76b2o22bobo10bo95bobo165b2o4bobo117bo
bo65b2o$28b2o5bo3bo73b2o23bo11bo7b2o87bo29b2o135b2o5bo3bo114bo2bo14b2o
$38bobo117b2o117b2o145bobo99b2o13b2o15b2o16b2o$37bo2bo186b2o194bo2bo
99bobo47b2o36bo$7b2o29b2o187b2o6b2o126b2o28b2o29b2o101b2o84bobo$7b2o3b
o111b2o108bo2bo125b2o28b2o218bo2bo14b2o$12bo77b2o31bo2bo82b2o24bobo
159b3o95b2o102b2o13b2o15b2o$12bo77b2o32b2o83b2o25bo258b2o36bo65bobo$
266b2o133bo130bobo65b2o$14b3o248bobo133bo130bo2bo14b2o$238b2o26bo134bo
116b2o13b2o15b2o16b2o$237bo2bo277bobo47b2o36bo$212b2o24b2o279b2o84bobo
$5b2o122b2o81b2o34b2o141b2o212bo2bo14b2o$5bobo74b2o45bobo116bobo93b2o
45bobo93b2o102b2o13b2o15b2o$6bo75b2o46bo118bo94b2o46bo94b2o36bo65bobo$
216b2o147b2o157bobo65b2o$216b2o147b2o157bo2bo14b2o$510b2o13b2o15b2o16b
2o$354b2o154bobo47b2o36bo$85b2o267b2o155b2o84bobo$85b2o14b2o494bo2bo
14b2o$101b2o90b2o141b2o141b2o102b2o13b2o15b2o$193b2o141b2o141b2o36bo
65bobo$89b2o19b2ob2o401bobo65b2o$10b2o77b2o19b2ob2o19b2o117b2o141b2o
118bo2bo14b2o$10b2o122b2o117b2o141b2o104b2o13b2o15b2o16b2o$203b2o297bo
bo47b2o36bo$203b2o134b2o36bo125b2o84bobo$339b2o36bo211bo2bo14b2o$66b2o
117b2o31b2o26b2o120b2o7bo93b2o102b2o13b2o15b2o$66b2o27b2o88b2o31b2o25b
o2bo118bo2bo100b2o36bo65bobo$95bobo141b2o4bobo95b2o22bobo9b3o126bobo
65b2o$2b2o92bo29b2o111b2o5bo3bo92b2o23bo19b2o118bo2bo14b2o$2b2o122b2o
121bobo136b2o104b2o13b2o15b2o16b2o$76b2o170bo2bo242bobo47b2o36bo$76b2o
6b2o102b2o28b2o29b2o244b2o84bobo$83bo2bo101b2o28b2o3bo130b2o225bo2bo
14b2o$58b2o24bobo136bo96b2o31bo2bo106b2o102b2o13b2o15b2o$58b2o25bo137b
o96b2o32b2o107b2o36bo65bobo$115b2o383bobo65b2o$114bobo108b3o272bo2bo
14b2o$87b2o26bo370b2o13b2o15b2o16b2o$86bo2bo396bobo47b2o36bo$61b2o24b
2o398b2o84bobo$61b2o34b2o117b2o141b2o212bo2bo14b2o$97bobo69b2o45bobo
93b2o45bobo93b2o102b2o13b2o15b2o$98bo70b2o46bo94b2o46bo94b2o36bo65bobo
$65b2o123b2o300bobo65b2o$65b2o123b2o300bo2bo14b2o$478b2o13b2o15b2o16b
2o$179b2o297bobo47b2o36bo$179b2o134b2o162b2o84bobo$315b2o14b2o232bo2bo
14b2o$42b2o117b2o168b2o114b2o102b2o13b2o15b2o$42b2o117b2o284b2o36bo65b
obo$319b2o19b2ob2o139bobo65b2o$102b2o117b2o96b2o19b2ob2o19b2o118bo2bo
14b2o$102b2o117b2o141b2o104b2o13b2o15b2o16b2o$52b2o416bobo47b2o36bo$
52b2o110b2o305b2o84bobo$164b2o35b3o353bo2bo14b2o$34b2o31b2o26b2o96b2o
101b2o141b2o102b2o13b2o15b2o$34b2o31b2o25bo2bo94bo2bo9bo90b2o27b2o112b
2o36bo65bobo$88b2o4bobo71b2o22bobo10bo119bobo148bobo65b2o$88b2o5bo3bo
68b2o23bo11bo7b2o111bo29b2o118bo2bo14b2o$98bobo112b2o141b2o104b2o13b2o
15b2o16b2o$97bo2bo205b2o154bobo47b2o36bo$37b2o28b2o29b2o206b2o6b2o147b
2o84bobo$37b2o28b2o3bo106b2o132bo2bo232bo2bo14b2o$72bo72b2o31bo2bo106b
2o24bobo114b2o102b2o13b2o15b2o$72bo72b2o32b2o107b2o25bo115b2o36bo65bob
o$345b2o121bobo65b2o$74b3o267bobo121bo2bo14b2o$317b2o26bo108b2o13b2o
15b2o16b2o$316bo2bo134bobo47b2o36bo$291b2o24b2o136b2o84bobo$65b2o117b
2o105b2o34b2o212bo2bo14b2o$18b2o45bobo69b2o45bobo140bobo93b2o102b2o13b
2o15b2o$18b2o46bo70b2o46bo142bo94b2o36bo65bobo$39b2o254b2o163bobo65b2o
$39b2o254b2o163bo2bo14b2o$446b2o13b2o15b2o16b2o$28b2o416bobo47b2o36bo$
28b2o110b2o305b2o84bobo$140b2o14b2o375bo2bo14b2o$10b2o144b2o114b2o141b
2o102b2o13b2o15b2o$10b2o260b2o141b2o36bo65bobo$144b2o19b2ob2o282bobo
65b2o$70b2o72b2o19b2ob2o19b2o141b2o118bo2bo14b2o$70b2o117b2o141b2o104b
2o13b2o15b2o16b2o$282b2o154bobo47b2o36bo$13b2o267b2o155b2o84bobo$13b2o
35b3o472bo2bo14b2o$42b2o77b2o141b2o31b2o26b2o80b2o102b2o13b2o15b2o$41b
o2bo9bo66b2o27b2o112b2o31b2o25bo2bo79b2o36bo65bobo$17b2o22bobo10bo95bo
bo165b2o4bobo117bobo65b2o$17b2o23bo11bo7b2o87bo29b2o135b2o5bo3bo114bo
2bo14b2o$62b2o117b2o145bobo99b2o13b2o15b2o16b2o$131b2o194bo2bo99bobo
47b2o36bo$131b2o6b2o126b2o28b2o29b2o101b2o84bobo$28b2o108bo2bo125b2o
28b2o218bo2bo14b2o$27bo2bo82b2o24bobo159b3o95b2o102b2o13b2o15b2o$28b2o
83b2o25bo258b2o36bo65bobo$170b2o133bo130bobo65b2o19bo$169bobo133bo130b
o2bo14b2o69bobo$142b2o26bo134bo116b2o13b2o15b2o16b2o51b2o$141bo2bo277b
obo47b2o36bo$116b2o24b2o279b2o84bobo$33b2o81b2o34b2o141b2o212bo2bo14b
2o$33bobo116bobo93b2o45bobo93b2o102b2o13b2o15b2o$34bo118bo94b2o46bo94b
2o36bo65bobo$120b2o147b2o157bobo65b2o$120b2o147b2o157bo2bo14b2o$414b2o
13b2o15b2o16b2o$258b2o154bobo47b2o36bo$258b2o155b2o84bobo$5b2o494bo2bo
14b2o$5b2o90b2o141b2o141b2o102b2o13b2o15b2o$97b2o141b2o141b2o36bo65bob
o$14b2ob2o401bobo65b2o$14b2ob2o19b2o117b2o141b2o118bo2bo14b2o$38b2o
117b2o141b2o104b2o13b2o15b2o16b2o$107b2o297bobo47b2o36bo$107b2o134b2o
36bo125b2o84bobo$243b2o36bo211bo2bo14b2o$89b2o31b2o26b2o120b2o7bo93b2o
102b2o13b2o15b2o$89b2o31b2o25bo2bo118bo2bo100b2o36bo65bobo$143b2o4bobo
95b2o22bobo9b3o126bobo65b2o$30b2o111b2o5bo3bo92b2o23bo19b2o118bo2bo14b
2o$30b2o121bobo136b2o104b2o13b2o15b2o16b2o$152bo2bo242bobo47b2o36bo$
92b2o28b2o29b2o244b2o84bobo$92b2o28b2o3bo130b2o225bo2bo14b2o$127bo96b
2o31bo2bo106b2o102b2o13b2o15b2o$127bo96b2o32b2o107b2o36bo65bobo$404bob
o65b2o19bo$129b3o272bo2bo14b2o69bobo$390b2o13b2o15b2o16b2o51b2o$390bob
o47b2o36bo$391b2o84bobo$120b2o141b2o212bo2bo14b2o$73b2o45bobo93b2o45bo
bo93b2o102b2o13b2o15b2o$73b2o46bo94b2o46bo94b2o36bo65bobo$94b2o300bobo
65b2o$94b2o300bo2bo14b2o$382b2o13b2o15b2o16b2o$83b2o297bobo47b2o36bo$
83b2o134b2o162b2o84bobo$219b2o14b2o232bo2bo14b2o$65b2o168b2o114b2o102b
2o13b2o15b2o$65b2o284b2o36bo65bobo$223b2o19b2ob2o139bobo65b2o$125b2o
96b2o19b2ob2o19b2o118bo2bo14b2o$125b2o141b2o104b2o13b2o15b2o16b2o$374b
obo47b2o36bo$68b2o305b2o84bobo$68b2o35b3o353bo2bo14b2o$97b2o101b2o141b
2o102b2o13b2o15b2o$96bo2bo9bo90b2o27b2o112b2o36bo65bobo$72b2o22bobo10b
o119bobo148bobo65b2o$72b2o23bo11bo7b2o111bo29b2o118bo2bo14b2o$117b2o
141b2o104b2o13b2o15b2o16b2o$210b2o154bobo47b2o36bo$210b2o6b2o147b2o84b
obo$83b2o132bo2bo232bo2bo14b2o$49b2o31bo2bo106b2o24bobo114b2o102b2o13b
2o15b2o$49b2o32b2o107b2o25bo115b2o36bo65bobo$249b2o121bobo65b2o19bo$
248bobo121bo2bo14b2o69bobo$221b2o26bo108b2o13b2o15b2o16b2o51b2o$220bo
2bo134bobo47b2o36bo$195b2o24b2o136b2o84bobo$88b2o105b2o34b2o212bo2bo
14b2o$88bobo140bobo93b2o102b2o13b2o15b2o$89bo142bo94b2o36bo65bobo$199b
2o163bobo65b2o$199b2o163bo2bo14b2o$350b2o13b2o15b2o16b2o$350bobo47b2o
36bo$351b2o84bobo$60b2o375bo2bo14b2o$60b2o114b2o141b2o102b2o13b2o15b2o
$176b2o141b2o36bo65bobo$69b2ob2o282bobo65b2o$69b2ob2o19b2o141b2o118bo
2bo14b2o$93b2o141b2o104b2o13b2o15b2o16b2o$186b2o154bobo47b2o36bo$186b
2o155b2o84bobo$429bo2bo14b2o$168b2o31b2o26b2o80b2o102b2o13b2o15b2o$
168b2o31b2o25bo2bo79b2o36bo65bobo$222b2o4bobo117bobo65b2o$85b2o135b2o
5bo3bo114bo2bo14b2o$85b2o145bobo99b2o13b2o15b2o16b2o$231bo2bo99bobo47b
2o36bo$171b2o28b2o29b2o101b2o84bobo$171b2o28b2o218bo2bo14b2o$205b3o95b
2o102b2o13b2o15b2o$303b2o36bo12bo52bobo$209bo130bobo9b2o54b2o19bo$209b
o130bo2bo9b2o3b2o69bobo$209bo116b2o13b2o15b2o16b2o51b2o$326bobo47b2o
36bo$327b2o84bobo$199b2o212bo2bo14b2o$152b2o45bobo197b2o13b2o15b2o$
152b2o46bo132bo65bobo$173b2o157bobo65b2o$173b2o157bo2bo14b2o$318b2o13b
2o15b2o16b2o$162b2o154bobo47b2o36bo$162b2o155b2o84bobo$405bo2bo14b2o$
144b2o245b2o13b2o15b2o$144b2o179bo65bobo$324bobo65b2o$204b2o118bo2bo
14b2o$204b2o104b2o13b2o15b2o16b2o$310bobo47b2o36bo$147b2o36bo125b2o84b
obo$147b2o36bo211bo2bo14b2o$176b2o7bo197b2o13b2o15b2o$175bo2bo138bo65b
obo$151b2o22bobo9b3o126bobo65b2o$151b2o23bo19b2o118bo2bo14b2o$196b2o
119b2o15b2o16b2o$352b2o36bo$389bobo$162b2o225bo2bo14b2o$128b2o31bo2bo
210b2o13b2o15b2o$128b2o32b2o158bo52bobo$320b2o54b2o19bo$321b2o74bobo$
344b2o51b2o$344b2o36bo$381bobo$167b2o212bo2bo14b2o$167bobo197b2o13b2o
15b2o$168bo198bobo$299b2o5b2o60b2o$300bo5b2o$300bobo$301b2o71bo$305b2o
66bobo$139b2o163bobo66bo2bo14b2o$139b2o164bo53b2o13b2o15b2o$301bo57bob
o$148b2ob2o147b3o57b2o$148b2ob2o19b2o125bob3o$172b2o124bo3bo$297bo3bo
64bo$296b3obo64bobo$297b3o65bo2bo14b2o$298bo52b2o13b2o15b2o$351bobo$
352b2o$164b2o$164b2o$358bo$357bobo$357bo2bo14b2o$358b2o15b2o$329bo$
327bobo35bo$328b2o35bobo$365b2o!
This is not a bug in simulation ... it is the cordership producing backwards gliders stopping residue.
So the switch far seed has to be modified to consider these gliders as well.

It is about 10th time I am recomputing the switch far seed. I would use narrow beam to debug the seed ... it could happen the target for wider beam would be on another place, but anyways. ... I feel about 2 weeks ... I need just one day to finish the project ...

Unfortunately the "debug mode" depends on the switch far seed ... there is no problem to play the finished ship in golly (chosing appropriate step to do that fast), but debugging it in golly would require several weeks or months, apg showed me how to speed it up in lifelib to get quickly to ecca2 start. The same method would not work well just after the near switch far as there are still antiparallel incoming gliders to ecca2 with gliders of ecca2 far arm.
This is why the streem of gliders is fed directly to ecca2 at the switch far moment to generate the ecca2 arm gliders not using the tape red bits so without the antiparallel stream of gliders ... so hashlife could calculate it quickly.
Independently the tape reading is simulated and the final pattern at generation 46000M (M=2^{20}) is composed together.
There are no tape read gliders after generation 46000M so hashlife works well after that.
(The length of the preswitch program determines when the gliders to ecca2 should be fed ...)
Last edited by Hippo.69 on December 1st, 2025, 4:34 pm, edited 2 times in total.
User avatar
apg
Moderator
Posts: 3007
Joined: June 1st, 2009, 4:32 pm

Re: How about a unidimensional spaceship?

Post by apg »

Hippo.69 wrote: December 1st, 2025, 12:46 am This is not a bug in simulation ... it is the cordership producing backwards gliders stopping residue.
So the switch far seed has to be modified to consider these gliders as well.
Oh wow; that's a pretty amazing coincidence that those 3 stray gliders don't cause the ECCA2 to completely explode, instead just subtly damaging the SoD.
It is about 10th time I am recomputing the switch far seed. I would use narrow beam to debug the seed ... it could happen the target for wider beam would be on another place, but anyways. ... I feel about 2 weeks ... I need just one day to finish the project ...
It looks like you're really close this time!
What do you do with ill crystallographers? Take them to the mono-clinic!
User avatar
Hippo.69
Posts: 674
Joined: July 14th, 2020, 7:35 pm
Contact:

Re: How about a unidimensional spaceship?

Post by Hippo.69 »

apg wrote: December 1st, 2025, 2:57 pm Oh wow; that's a pretty amazing coincidence that those 3 stray gliders don't cause the ECCA2 to completely explode, instead just subtly damaging the SoD.
Actually ecca2 is off at that time (it would explode if move4 reset loop would be interrupted), and not only SoD was damaged,
damaged corderabsorber would cause independent problem.
But yes looking from a distance you would not notice there is a change ... so I was really surprised SoD failed ... even when the proper final state was already tested.

So if you manually edit the switch far seed by shifting the longboat and adding 3 blocks ... then (I bet) the next generation of the ship would be started through the state with all living cells have y=0. (Checked the SoD is invoked long before the corderships arive and the armblock is destroyed (by SoD) still before corderships arrive)

OK switching Far is promissing, I have not checked the offset at far is OK, here is start and (almost) start of ecca2.
example.mc
example_42168M.mc
Last edited by Hippo.69 on December 3rd, 2025, 4:54 pm, edited 1 time in total.
User avatar
Hippo.69
Posts: 674
Joined: July 14th, 2020, 7:35 pm
Contact:

Re: How about a unidimensional spaceship?

Post by Hippo.69 »

So finally 2c/133076755768 ship of starting bounding box 3707300605x1 is here:
range of y coordinates is about +/-5537521000, maximal x coordinate during the first cycle is about ... 11075626500
apg wrote: December 2nd, 2025, 7:41 pm I can confirm that the pattern works by running it end-to-end, but the period is 133076755768 (you had a typo in your forum post). I'm going to put the verification code in the repository now.

Congratulations!
Typo corrected, thanks and congratulation as well.
example.mc
(3.35 MiB) Downloaded 1727 times
Generation 42168M (simulated without too dirty tricks):
example_42168M.mc
(7.72 MiB) Downloaded 420 times
Genereation 46000M is here (simulated... replaced by the version reached from 42168 in golly):
exam48234496000.mc
(8.27 MiB) Downloaded 424 times
Seems full simulation gives the same results.
Code to stop at the important ecca2 moments is here .. feel free to "slow down/interrupt" script would not be confused by it:
(Oh comment saving the intermediate files out)

Code: Select all

local g = golly()
local nameprefix=string.sub(g.getname(),1,4)

-----------------------------------------------------
local RADIX_LEN = 6 ;
local RADIX_FIL = "000000" ; -- length >= RADIX_LEN
local RADIX = 10^RADIX_LEN ;

BigNum = {} ;
BigNum.mt = {} ;

function BigNum.new( num )
   local bignum = {} ;
   setmetatable( bignum , BigNum.mt ) ;
   BigNum.change( bignum , num ) ;
   return bignum ;
end

function BigNum.mt.sub( num1 , num2 )
   local temp = BigNum.new() ;
   local bnum1 = BigNum.new( num1 ) ;
   local bnum2 = BigNum.new( num2 ) ;
   BigNum.sub( bnum1 , bnum2 , temp ) ;
   return temp ;
end

function BigNum.mt.add( num1 , num2 )
   local temp = BigNum.new() ;
   local bnum1 = BigNum.new( num1 ) ;
   local bnum2 = BigNum.new( num2 ) ;
   BigNum.add( bnum1 , bnum2 , temp ) ;
   return temp ;
end

function BigNum.mt.tostring( bnum )
   local i = 0
   local j
   local temp = ""
   local str
   local dotpos
   if bnum == nil then
      return "nil"
   elseif bnum.len > 0 then
      for i = bnum.len - 2 , 0 , -1  do
         str = tostring(bnum[i])
         dotpos = string.find(str..".","%.")
         temp = temp .. string.sub(RADIX_FIL..string.sub(str,1,dotpos-1),-RADIX_LEN)
      end
      str = tostring(bnum[bnum.len - 1])
      dotpos = string.find(str..".","%.")
      temp = string.sub(str,1,dotpos-1) .. temp
      if bnum.signal == '-' then
         temp = bnum.signal .. temp
      end
      return temp
   else
      return ""
   end
end

function BigNum.mt.eq( num1 , num2 )
   local bnum1 = BigNum.new( num1 ) ;
   local bnum2 = BigNum.new( num2 ) ;
   return BigNum.eq( bnum1 , bnum2 ) ;
end

function BigNum.mt.lt( num1 , num2 )
   local bnum1 = BigNum.new( num1 ) ;
   local bnum2 = BigNum.new( num2 ) ;
   return BigNum.lt( bnum1 , bnum2 ) ;
end

function BigNum.mt.le( num1 , num2 )
   local bnum1 = BigNum.new( num1 ) ;
   local bnum2 = BigNum.new( num2 ) ;
   return BigNum.le( bnum1 , bnum2 ) ;
end

function BigNum.mt.unm( num )
   local ret = BigNum.new( num )
   if ret.signal == "+" then
      ret.signal = "-"
   else
      ret.signal = "+"
   end
   return ret
end

function BigNum.mt.half( num )
   local ret = BigNum.new()
   local bnum = BigNum.new( num ) ;
   BigNum.half( bnum , ret ) ;
   return ret ;
end

BigNum.mt.__metatable = "hidden"
BigNum.mt.__tostring  = BigNum.mt.tostring ;
BigNum.mt.__add = BigNum.mt.add ;
BigNum.mt.__sub = BigNum.mt.sub ;
BigNum.mt.__unm = BigNum.mt.unm ;
BigNum.mt.__eq = BigNum.mt.eq   ;
BigNum.mt.__le = BigNum.mt.le   ;
BigNum.mt.__lt = BigNum.mt.lt   ;

setmetatable( BigNum.mt, { __index = "inexistent field", __newindex = "not available", __metatable="hidden" } ) ;

function BigNum.add( bnum1 , bnum2 , bnum3 )
   local maxlen = 0 ;
   local i = 0 ;
   local carry = 0 ;
   local signal = "+" ;
   local old_len = 0 ;
   if bnum1 == nil or bnum2 == nil or bnum3 == nil then
      error("Function BigNum.add: parameter nil") ;
   elseif bnum1.signal == "-" and bnum2.signal == "+" then
      bnum1.signal = "+" ;
      BigNum.sub( bnum2 , bnum1 , bnum3 ) ;

      if not rawequal(bnum1, bnum3) then
         bnum1.signal = "-" ;
      end
      return 0 ;
   elseif bnum1.signal == "+" and bnum2.signal == "-" then
      bnum2.signal = "+" ;
      BigNum.sub( bnum1 , bnum2 , bnum3 ) ;
      if not rawequal(bnum2, bnum3) then
         bnum2.signal = "-" ;
      end
      return 0 ;
   elseif bnum1.signal == "-" and bnum2.signal == "-" then
      signal = "-" ;
   end
   old_len = bnum3.len ;
   if bnum1.len > bnum2.len then
      maxlen = bnum1.len ;
   else
      maxlen = bnum2.len ;
      bnum1 , bnum2 = bnum2 , bnum1 ;
   end
   for i = 0 , maxlen - 1 do
      if bnum2[i] ~= nil then
         bnum3[i] = bnum1[i] + bnum2[i] + carry ;
      else
         bnum3[i] = bnum1[i] + carry ;
      end
      if bnum3[i] >= RADIX then
         bnum3[i] = bnum3[i] - RADIX ;
         carry = 1 ;
      else
         carry = 0 ;
      end
   end
   if carry == 1 then
      bnum3[maxlen] = 1 ;
   end
   bnum3.len = maxlen + carry ;
   bnum3.signal = signal ;
   for i = bnum3.len, old_len do
      bnum3[i] = nil ;
   end
   return 0 ;
end

function BigNum.sub( bnum1 , bnum2 , bnum3 )
   local maxlen = 0 ;
   local i = 0 ;
   local carry = 0 ;
   local old_len = 0 ;

   if bnum1 == nil or bnum2 == nil or bnum3 == nil then
      error("Function BigNum.sub: parameter nil") ;
   elseif bnum1.signal == "-" and bnum2.signal == "+" then
      bnum1.signal = "+" ;
      BigNum.add( bnum1 , bnum2 , bnum3 ) ;
      bnum3.signal = "-" ;
      if not rawequal(bnum1, bnum3) then
         bnum1.signal = "-" ;
      end
      return 0 ;
   elseif bnum1.signal == "-" and bnum2.signal == "-" then
      bnum1.signal = "+" ;
      bnum2.signal = "+" ;
      BigNum.sub( bnum2, bnum1 , bnum3 ) ;
      if not rawequal(bnum1, bnum3) then
         bnum1.signal = "-" ;
      end
      if not rawequal(bnum2, bnum3) then
         bnum2.signal = "-" ;
      end
      return 0 ;
   elseif bnum1.signal == "+" and bnum2.signal == "-" then
      bnum2.signal = "+" ;
      BigNum.add( bnum1 , bnum2 , bnum3 ) ;
      if not rawequal(bnum2, bnum3) then
         bnum2.signal = "-" ;
      end
      return 0 ;
   end
   if BigNum.compareAbs( bnum1 , bnum2 ) == 2 then
      BigNum.sub( bnum2 , bnum1 , bnum3 ) ;
      bnum3.signal = "-" ;
      return 0 ;
   else
      maxlen = bnum1.len ;
   end
   old_len = bnum3.len ;
   bnum3.len = 0 ;
   for i = 0 , maxlen - 1 do
      if bnum2[i] ~= nil then
         bnum3[i] = bnum1[i] - bnum2[i] - carry ;
      else
         bnum3[i] = bnum1[i] - carry ;
      end
      if bnum3[i] < 0 then
         bnum3[i] = RADIX + bnum3[i] ;
         carry = 1 ;
      else
         carry = 0 ;
      end

      if bnum3[i] ~= 0 then
         bnum3.len = i + 1 ;
      end
   end
   bnum3.signal = "+" ;
   if bnum3.len == 0 then
      bnum3.len = 1 ;
      bnum3[0]  = 0 ;
   end
   if carry == 1 then
      error( "Error in function sub" ) ;
   end
   for i = bnum3.len , max( old_len , maxlen - 1 ) do
      bnum3[i] = nil ;
   end
   return 0 ;
end

function BigNum.half( bnum1 , bnum2 )
   local maxlen = bnum1.len ;
   local i = 0 ;
   if bnum1 == nil or bnum2 == nil then
      error("Function BigNum.half: parameter nil") ;
   end
   for i = maxlen, bnum2.len-1, 1 do
      bnum2[i] = nil ;
   end
   bnum2.len = maxlen
   local carry = 0
   if bnum1[maxlen-1]<2 then
     bnum2[maxlen-1]=nil
     bnum2.len=maxlen-1
     carry = bnum1[maxlen-1] % 2
   end
   for i = bnum2.len - 1,0,-1 do
     bnum2[i] = (bnum1[i] + carry * RADIX)//2
     carry = bnum1[i] % 2
   end
   bnum2.signal = bnum1.signal ;
   if bnum2.len == 0 then
      bnum2.len = 1 ;
      bnum2[0]  = 0 ;
   end
   return carry == 1 ;
end

function BigNum.eq( bnum1 , bnum2 )
   if BigNum.compare( bnum1 , bnum2 ) == 0 then
      return true ;
   else
      return false ;
   end
end

function BigNum.lt( bnum1 , bnum2 )
   if BigNum.compare( bnum1 , bnum2 ) == 2 then
      return true ;
   else
      return false ;
   end
end

function BigNum.le( bnum1 , bnum2 )
   local temp = -1 ;
   temp = BigNum.compare( bnum1 , bnum2 )
   if temp == 0 or temp == 2 then
      return true ;
   else
      return false ;
   end
end

function BigNum.compareAbs( bnum1 , bnum2 )
   if bnum1 == nil or bnum2 == nil then
      error("Function compare: parameter nil") ;
   elseif bnum1.len > bnum2.len then
      return 1 ;
   elseif bnum1.len < bnum2.len then
      return 2 ;
   else
      local i ;
      for i = bnum1.len - 1 , 0 , -1 do
         if bnum1[i] > bnum2[i] then
            return 1 ;
         elseif bnum1[i] < bnum2[i] then
            return 2 ;
         end
      end
   end
   return 0 ;
end

function BigNum.compare( bnum1 , bnum2 )
   local signal = 0 ;

   if bnum1 == nil or bnum2 == nil then
      error("Funtion BigNum.compare: parameter nil") ;
   elseif bnum1.signal == "+" and bnum2.signal == "-" then
      return 1 ;
   elseif bnum1.signal == "-" and bnum2.signal == "+" then
      return 2 ;
   elseif bnum1.signal == "-" and bnum2.signal == "-" then
      signal = 1 ;
   end
   if bnum1.len > bnum2.len then
      return 1 + signal ;
   elseif bnum1.len < bnum2.len then
      return 2 - signal ;
   else
      local i ;
      for i = bnum1.len - 1 , 0 , -1 do
         if bnum1[i] > bnum2[i] then
            return 1 + signal ;
	 elseif bnum1[i] < bnum2[i] then
	    return 2 - signal ;
	 end
      end
   end
   return 0 ;
end

function BigNum.copy( bnum1 , bnum2 )
   if bnum1 ~= nil and bnum2 ~= nil then
      local i ;
      for i = 0 , bnum1.len - 1 do
         bnum2[i] = bnum1[i] ;
      end
      bnum2.len = bnum1.len ;
   else
      error("Function BigNum.copy: parameter nil") ;
   end
end

function BigNum.change( bnum1 , num )
   local j = 0 ;
   local len = 0  ;
   local num = num ;
   local l ;
   local oldLen = 0 ;
   if bnum1 == nil then
      error( "BigNum.change: parameter nil" ) ;
   elseif type( bnum1 ) ~= "table" then
      error( "BigNum.change: parameter error, type unexpected" ) ;
   elseif num == nil then
      bnum1.len = 1 ;
      bnum1[0] = 0 ;
      bnum1.signal = "+";
   elseif type( num ) == "table" and num.len ~= nil then  --check if num is a big number
      for i = 0 , num.len do
         bnum1[i] = num[i] ;
      end
      if num.signal ~= "-" and num.signal ~= "+" then
         bnum1.signal = "+" ;
      else
         bnum1.signal = num.signal ;
      end
      oldLen = bnum1.len ;
      bnum1.len = num.len ;
   elseif type( num ) == "string" or type( num ) == "number" then
      if string.sub( num , 1 , 1 ) == "+" or string.sub( num , 1 , 1 ) == "-" then
         bnum1.signal = string.sub( num , 1 , 1 ) ;
         num = string.sub(num, 2) ;
      else
         bnum1.signal = "+" ;
      end
      num = string.gsub( num , " " , "" )
      local sf = string.find( num , "e" )
      if sf ~= nil then
         local e = string.sub( num , sf + 1 )
         num = string.sub( num , 1 , sf - 1 )
         e = tonumber(e) ;
         if e ~= nil and e > 0 then
            e = tonumber(e) ;
         else
            error( "Function BigNum.change: string is not a valid number" ) ;
         end
         local dotpos=string.find(num..".","%.")
         num = string.gsub( num , "%." , "" )
         local dotshift = string.len(num)+1-dotpos
         for i = 1 , e do
            num = num .. "0"
         end
         if dotshift>0 then num = string.sub(num,1,-dotshift-1) end
      else
         sf = string.find( num , "%." ) ;
         if sf ~= nil then
            num = string.sub( num , 1 , sf - 1 ) ;
         end
      end

      l = string.len( num ) ;
      oldLen = bnum1.len ;
      if (l > RADIX_LEN) then
         local mod = l-( math.floor( l / RADIX_LEN ) * RADIX_LEN ) ;
         for i = 1 , l-mod, RADIX_LEN do
            bnum1[j] = tonumber( string.sub( num, -( i + RADIX_LEN - 1 ) , -i ) );
            --Check if string dosn't represents a number
            if bnum1[j] == nil then
               error( "Function BigNum.change: string is not a valid number" ) ;
               bnum1.len = 0 ;
               return 1 ;
            end
            j = j + 1 ;
            len = len + 1 ;
         end
         if (mod ~= 0) then
            bnum1[j] = tonumber( string.sub( num , 1 , mod ) ) ;
            bnum1.len = len + 1 ;
         else
            bnum1.len = len ;
         end
         for i = bnum1.len - 1 , 1 , -1 do
            if bnum1[i] == 0 then
               bnum1[i] = nil ;
               bnum1.len = bnum1.len - 1 ;
            else
               break ;
            end
         end

      else
         bnum1[j] = tonumber( num ) ;
         bnum1.len = 1 ;
      end
   else
      error( "Function BigNum.change: parameter error, type unexpected" ) ;
   end

   if oldLen ~= nil then
      for i = bnum1.len , oldLen do
         bnum1[i] = nil ;
      end
   end

   return 0 ;
end

function BigNum.put( bnum , int , pos )
   if bnum == nil then
      error("Function BigNum.put: parameter nil") ;
   end
   local i = 0 ;
   for i = 0 , pos - 1 do
      bnum[i] = 0 ;
   end
   bnum[pos] = int ;
   for i = pos + 1 , bnum.len do
      bnum[i] = nil ;
   end
   bnum.len = pos ;
   return 0 ;
end

function printraw( bnum )
   local i = 0 ;
   if bnum == nil then
      error( "Function printraw: parameter nil" ) ;
   end
   while 1 == 1 do
      if bnum[i] == nil then
         io.write( " len "..bnum.len ) ;
         if i ~= bnum.len then
            io.write( " ERROR! " ) ;
         end
         io.write( "\n" ) ;
         return 0 ;
      end
      io.write( "r"..bnum[i] ) ;
      i = i + 1 ;
   end
end

function max( int1 , int2 )
   if int1 > int2 then
      return int1 ;
   else
      return int2 ;
   end
end

function decr( bnum1 )
   local temp = {} ;
   temp = BigNum.new( "1" ) ;
   BigNum.sub( bnum1 , temp , bnum1 ) ;
   return 0 ;
end

function BigNum.pow2(exp)
  -- exp should be > 0
  local bnum = BigNum.new("2")
  for i=2,exp do
    bnum = BigNum.mt.add(bnum, bnum)
  end
  return bnum
end
---------------------------------------------

local rule = g.getrule()
-- No effect if already in B3/S23 rule
if g.getgen()=="0" then
 if g.getname()=="example_42168M.mc" then
  g.setgen("44216352768")
 end
 if g.getname()=="example_42248M.mc" then
  g.setgen("44300238848")
 end
 if g.getname()=="example_46000M.mc" then
  g.setgen("48234496000")
 end
end
g.save("c:\\Golly\\workdir\\"..nameprefix..g.getgen()..".mc","mc")
g.setbase(2)
local step=16 --16
local sub=2^6 --2^12
local bngen=BigNum.new(g.getgen())
local targetgen=BigNum.new("48234496000")
local message="going to simulation skip 46000M"

local function to_target(target)
  g.show("Target "..BigNum.mt.tostring(target).." at "..sub.."*2^{"..step.."}")
  local bngen=BigNum.new(g.getgen())
  local stop_at=target-BigNum.pow2(step)
  while (bngen < target) do
    step = g.getstep()+0
    stop_at=target-BigNum.pow2(step)
    g.show(BigNum.mt.tostring(bngen).."<=?"..BigNum.mt.tostring(stop_at)..", going to "..BigNum.mt.tostring(target).." "..sub.."*2^{"..step.."} "..message)
    for k=1,sub do
      if (bngen > stop_at) then
        break
      end
      g.step()
      g.update()
      bngen=BigNum.new(g.getgen())
      g.show(BigNum.mt.tostring(bngen).."<="..BigNum.mt.tostring(stop_at)..", going to "..BigNum.mt.tostring(target).." "..k.."/"..sub.."*2^{"..step.."} "..message)
    end
    bngen=BigNum.new(g.getgen())
    --g.save("c:\\Golly\\workdir\\"..nameprefix..g.getgen()..".mc","mc")
    if (bngen > stop_at) then
      if sub>2 then
        sub = sub // 2
      else
        if step<8 then
          break
        end
        g.setstep(step-1)
      end
    end
  end
  if bngen <= target then
    g.note("Checkpoint "..message)
  end 
end

sub=2^6 --2^12
g.setstep(16)
message="going to simulation skip 46000M"
to_target(targetgen)

g.setstep(30)
local targetgen=BigNum.new("66451210000")
message = " going near gpse90 stop"
to_target(targetgen)

g.setstep(30)
local targetgen=BigNum.new("66451432000") 
message = "going to start of FarCleanupWithAbsorbers"
to_target(targetgen)

g.setstep(30)
local targetgen=BigNum.new("66457550000")---
message = "going to start of Corderfleet1" 
to_target(targetgen)

g.setstep(30)
local targetgen=BigNum.new("66631220000")
message = "going to start of mwss salvo (--end of ecca2 program)"
to_target(targetgen)

g.setstep(30)
local targetgen=BigNum.new("88603751200")
message = "going to 3 glider catch"
to_target(targetgen)

g.setstep(30)
local targetgen=BigNum.new("88781290000")
message = "going mwss build"
to_target(targetgen)

g.setstep(30)
local targetgen=BigNum.new("110929270000")
message = "going mwss cleanup end and ecca2 SoD"
to_target(targetgen)

g.setstep(30)
local targetgen=BigNum.new("132902296000")
message = "going corderfleet1 arrival"
to_target(targetgen)

g.setstep(30)
local targetgen=BigNum.new("133074388000")
message = "going last cordership arrival"
to_target(targetgen)

g.setstep(20)
local targetgen=BigNum.new("133076749000")
message = "new generation invocation"
to_target(targetgen)

--133076755768
--3707300604
Last edited by Hippo.69 on December 3rd, 2025, 5:21 pm, edited 12 times in total.
User avatar
hth3
Posts: 362
Joined: February 15th, 2025, 10:04 am
Location: The Sun

Re: How about a unidimensional spaceship?

Post by hth3 »

Congratulations!!! :!: :!: :!: :D
I tried to run it in Golly, but my laptop is too low-end for that, but I got a glimpse of the first ~5 million generations, it's so cool.
It kinda looks like an arrow.
Can't trust someone who misspells typset as typeset.
Contribute to CheckerLife!
Oppose KOSA now, save the internet!
The Sandboxer Sandbox (Discord server)
RIP Unname New Web
User avatar
Hippo.69
Posts: 674
Joined: July 14th, 2020, 7:35 pm
Contact:

Re: How about a unidimensional spaceship?

Post by Hippo.69 »

hth3 wrote: December 2nd, 2025, 10:40 am Congratulations!!! :!: :!: :!: :D
I tried to run it in Golly, but my laptop is too low-end for that, but I got a glimpse of the first ~5 million generations, it's so cool.
It kinda looks like an arrow.
The start is slow as well, skipping to generation 42168M is recomended.
User avatar
I6_I6
Posts: 999
Joined: July 26th, 2025, 8:44 pm
Location: Here, there, somewhere, anywhere, everywhere.
Contact:

Re: How about a unidimensional spaceship?

Post by I6_I6 »

Wow! This is amazing!
That's 2 macro-spaceships in the span of a week.
I've been watching this thread for a while as it grew, but could never comprehend anything going on.
Will someone bother to explain how it works?
We really need a wiki page.

Code: Select all

#C [[ THEME Golly ]]
x = 27, y = 15, rule = LifeHistory
8.A$A6.A.A$3A4.BA2B.B2D$3.A4.2B.2B2DB$2.2A2.3B.6B2.3B$2.20B$4.19B$4.2B
C10BD4B$4.2B2C10BD4B$4.B2C11B2D3B$4.13B2D4B$5.12BD3B.B2A$6.13B3.BA.A$
6.3B.B3.B10.A$25.2A!
RuleEdit: A .rule file editing tool
WhiteHawk
Posts: 1371
Joined: July 10th, 2024, 5:34 pm

Re: How about that! A unidimensional spaceship!

Post by WhiteHawk »

Hippo.69 wrote: December 2nd, 2025, 10:30 am So finally 2/1330767555768 ship of bounding box 3707300605x1 is here:
Cool! Congrats on finally creating this thing.

Semi-related question: Does the existence of the unidimensional ship show that any synthesizable reaction can be made into a spaceship as long as it makes enough gliders to build it's own RCT and clean it's own ash?

EDIT: Also what's it's ultimate population?
Currently working to improve Life's guns and work on updating SKOPs and Isotropic rules most similar to B3/S23 to Life standards. Will get software to begin searches eventually.

Pseudastur albicollis
User avatar
I6_I6
Posts: 999
Joined: July 26th, 2025, 8:44 pm
Location: Here, there, somewhere, anywhere, everywhere.
Contact:

Re: How about a unidimensional spaceship?

Post by I6_I6 »

Why are there 2 stray gliders in the example_46000M file?

Code: Select all

#C [[ THEME Golly ]]
x = 27, y = 15, rule = LifeHistory
8.A$A6.A.A$3A4.BA2B.B2D$3.A4.2B.2B2DB$2.2A2.3B.6B2.3B$2.20B$4.19B$4.2B
C10BD4B$4.2B2C10BD4B$4.B2C11B2D3B$4.13B2D4B$5.12BD3B.B2A$6.13B3.BA.A$
6.3B.B3.B10.A$25.2A!
RuleEdit: A .rule file editing tool
User avatar
Hippo.69
Posts: 674
Joined: July 14th, 2020, 7:35 pm
Contact:

Re: How about a unidimensional spaceship?

Post by Hippo.69 »

I6_I6 wrote: December 2nd, 2025, 11:03 am Why are there 2 stray gliders in the example_46000M file?
At which coordinates?
User avatar
I6_I6
Posts: 999
Joined: July 26th, 2025, 8:44 pm
Location: Here, there, somewhere, anywhere, everywhere.
Contact:

Re: How about a unidimensional spaceship?

Post by I6_I6 »

Hippo.69 wrote: December 2nd, 2025, 11:05 am
I6_I6 wrote: December 2nd, 2025, 11:03 am Why are there 2 stray gliders in the example_46000M file?
At which coordinates?
I don't know, but they go northwest and southwest, starting from the west end of the spaceship. They shouldn't be hard to spot.
I'm not sure if the original example file has this as well because my laptop isn't good enough.
EDIT:
Is this the slowest non-adjustable spaceship speed?

Code: Select all

#C [[ THEME Golly ]]
x = 27, y = 15, rule = LifeHistory
8.A$A6.A.A$3A4.BA2B.B2D$3.A4.2B.2B2DB$2.2A2.3B.6B2.3B$2.20B$4.19B$4.2B
C10BD4B$4.2B2C10BD4B$4.B2C11B2D3B$4.13B2D4B$5.12BD3B.B2A$6.13B3.BA.A$
6.3B.B3.B10.A$25.2A!
RuleEdit: A .rule file editing tool
User avatar
Hippo.69
Posts: 674
Joined: July 14th, 2020, 7:35 pm
Contact:

Re: How about a unidimensional spaceship?

Post by Hippo.69 »

I6_I6 wrote: December 2nd, 2025, 11:07 am
Hippo.69 wrote: December 2nd, 2025, 11:05 am
I6_I6 wrote: December 2nd, 2025, 11:03 am Why are there 2 stray gliders in the example_46000M file?
At which coordinates?
I don't know, but they go northwest and southwest, starting from the west end of the spaceship. They shouldn't be hard to spot.
I'm not sure if the original example file has this as well because my laptop isn't good enough.
Oh my bad, this was 46000M.mc generated, but there is fake arm block near the south end of the gpse90 trash (this was not debugged).
I have deleted it manually but saved the file to wrong directory ... I have to replace the 46000M.mc file.
I6_I6 wrote: December 2nd, 2025, 11:07 am EDIT:
Is this the slowest non-adjustable spaceship speed?
Definitely not, you can rather easily adjust it ... just slow down the last cordership creation/switch far later (it's difficult to wait with p9*256 ecca, but you have an option to start moving to reach space where you can fire glider on clean even lane to the spine and then to return back to continue the ecca2 program). Switching far later would just mean biger maximal x,y coordinates (and big increase in the period). Firing last cordership later would just mean corresponding small prolonging the period.

We have not tried hard, but we have tried to make the period small.
(I have decided to stop back firing corderships by absorbers in front of them, what constraints the amount of work which could be done between firing GPSE90 stopping salvo and creating the absorbers.
Another solution would be to stop the GPSE90's as early as possible, stop the corderships from behind and then build (near) corderabsorbers, destroy ecca1 and then switch far. Far would be much more closer so we would not need to wait that long for the information to travel the distance.
The drawback of this alternative solution would be more trash to clean from the corderships and it would require carefull planning to stop the corderships in profimity of GPSE90's stop ... to prevent another arm block jump requirement (maybe 180degree ott near spine to get required delay).
I expect this would be the way to get much faster unidimensional ship. Of course all size reductions would help as well.)
Last edited by Hippo.69 on December 2nd, 2025, 3:21 pm, edited 2 times in total.
User avatar
I6_I6
Posts: 999
Joined: July 26th, 2025, 8:44 pm
Location: Here, there, somewhere, anywhere, everywhere.
Contact:

Re: How about a unidimensional spaceship?

Post by I6_I6 »

Are we giving this a name or is it just the "unidimensional spaceship"? That might cause confusion if more unidimensional spacships are found.
Edit: Just pointing out that below is Hippo.69's 500th post.
Last edited by I6_I6 on December 2nd, 2025, 11:51 am, edited 1 time in total.

Code: Select all

#C [[ THEME Golly ]]
x = 27, y = 15, rule = LifeHistory
8.A$A6.A.A$3A4.BA2B.B2D$3.A4.2B.2B2DB$2.2A2.3B.6B2.3B$2.20B$4.19B$4.2B
C10BD4B$4.2B2C10BD4B$4.B2C11B2D3B$4.13B2D4B$5.12BD3B.B2A$6.13B3.BA.A$
6.3B.B3.B10.A$25.2A!
RuleEdit: A .rule file editing tool
User avatar
Hippo.69
Posts: 674
Joined: July 14th, 2020, 7:35 pm
Contact:

Re: How about a unidimensional spaceship?

Post by Hippo.69 »

I6_I6 wrote: December 2nd, 2025, 11:28 am Are we giving this a name or is it just the "unidimensional spaceship"? That might cause confusion if more unidimensional spacships are found.
We can name it by its dimensions.
I am planning to reduce its size in far future.
The fuse startup can definitely be improved.
It could save about 25%. I do not think halving the size is “easy”. The ecca2 portion is rather optimized. Just the switch far seed computation with wider beam would probably save say hundred of gliders/thousand of bits…

Generating smaller fuse would save much more as the fuse seed should be entirely reconstructed.
Improving binary arm by 30% would save negligable % of the ship size.

Replacing ECCA1 by version with step after the direction change could save something like 1% of the ecca1 bits size. Compiling agnosticized program instead of fixed lane program by ecca1 could save something like 1% as well (just guesses). Build of smaller ECCA1 would shorten binary portion, but it would be hardly seen in the ship size.

Using agnosticized recipe in the fuse portion would definitely reduce its size. Better cordership seed and better salvo for gpse90 would help…
I6_I6 wrote: December 2nd, 2025, 11:28 am Edit: Just pointing out that below is Hippo.69's 500th post.
Yep, I try not to make too many posts ... by editig posts often:).
Last edited by Hippo.69 on December 2nd, 2025, 1:24 pm, edited 2 times in total.
User avatar
Hippo.69
Posts: 674
Joined: July 14th, 2020, 7:35 pm
Contact:

Re: How about a unidimensional spaceship?

Post by Hippo.69 »

I6_I6 wrote: December 2nd, 2025, 10:47 am Wow! This is amazing!
That's 2 macro-spaceships in the span of a week.
I've been watching this thread for a while as it grew, but could never comprehend anything going on.
Will someone bother to explain how it works?
We really need a wiki page.
My Alma mater would like some “scientific output” (in the form of a published paper). I would welcome any suggestion where to publish it. …. The tools required to build such a pattern. (Apg … Pslmake, gSoD, Corderfleet periodic destroyal search, slow2salvo tools, glider destroyal search, binary arm, ECCA´s, fuse arm., splitters/turners collection)
Last edited by Hippo.69 on December 2nd, 2025, 1:19 pm, edited 2 times in total.
User avatar
hth3
Posts: 362
Joined: February 15th, 2025, 10:04 am
Location: The Sun

Re: How about a unidimensional spaceship?

Post by hth3 »

I6_I6 wrote: December 2nd, 2025, 11:28 am Are we giving this a name or is it just the "unidimensional spaceship"? That might cause confusion if more unidimensional spacships are found.
I thought maybe Arrow 1, since it looks like an arrow and it's the first of its kind, and maybe there will be future reductions and improvements?
Can't trust someone who misspells typset as typeset.
Contribute to CheckerLife!
Oppose KOSA now, save the internet!
The Sandboxer Sandbox (Discord server)
RIP Unname New Web
User avatar
Hippo.69
Posts: 674
Joined: July 14th, 2020, 7:35 pm
Contact:

Re: How about a unidimensional spaceship?

Post by Hippo.69 »

hth3 wrote: December 2nd, 2025, 12:11 pm
I6_I6 wrote: December 2nd, 2025, 11:28 am Are we giving this a name or is it just the "unidimensional spaceship"? That might cause confusion if more unidimensional spacships are found.
I thought maybe Arrow 1, since it looks like an arrow and it's the first of its kind, and maybe there will be future reductions and improvements?
I do not mind how would it be called, first halve of the ship was build by others (mostly calcyman=apg) and the shape is determined by it
(I did just the dirty "cleaning" work noone was willing to do for several years).
User avatar
I6_I6
Posts: 999
Joined: July 26th, 2025, 8:44 pm
Location: Here, there, somewhere, anywhere, everywhere.
Contact:

Re: How about a unidimensional spaceship?

Post by I6_I6 »

Hippo.69 wrote: December 2nd, 2025, 4:17 pm
hth3 wrote: December 2nd, 2025, 12:11 pm
I6_I6 wrote: December 2nd, 2025, 11:28 am Are we giving this a name or is it just the "unidimensional spaceship"? That might cause confusion if more unidimensional spacships are found.
I thought maybe Arrow 1, since it looks like an arrow and it's the first of its kind, and maybe there will be future reductions and improvements?
I do not mind how would it be called, first halve of the ship was build by others (mostly calcyman=apg) and the shape is determined by it
(I did just the dirty "cleaning" work noone was willing to do for several years).
"Arrow 1" sounds okay, but I think the name should reflect the fact that the spaceship is unidimensional, which "Arrow 1" does not.
For now, I'll start a Wiki page named "Unidimensional spaceship 1". Feel free to change the name.
EDIT: How do you add pattern files to the infobox?
EDIT 2: Can someone please explain how the spaceship works so I can add it to the Wiki page?

Code: Select all

#C [[ THEME Golly ]]
x = 27, y = 15, rule = LifeHistory
8.A$A6.A.A$3A4.BA2B.B2D$3.A4.2B.2B2DB$2.2A2.3B.6B2.3B$2.20B$4.19B$4.2B
C10BD4B$4.2B2C10BD4B$4.B2C11B2D3B$4.13B2D4B$5.12BD3B.B2A$6.13B3.BA.A$
6.3B.B3.B10.A$25.2A!
RuleEdit: A .rule file editing tool
User avatar
apg
Moderator
Posts: 3007
Joined: June 1st, 2009, 4:32 pm

Re: How about a unidimensional spaceship?

Post by apg »

Hippo.69 wrote: December 2nd, 2025, 10:30 am So finally 2/1330767555768 ship of starting bounding box 3707300605x1 is here:
I can confirm that the pattern works by running it end-to-end, but the period is 133076755768 (you had a typo in your forum post). I'm going to put the verification code in the repository now.

Congratulations!
What do you do with ill crystallographers? Take them to the mono-clinic!
User avatar
Hippo.69
Posts: 674
Joined: July 14th, 2020, 7:35 pm
Contact:

Re: How about a unidimensional spaceship?

Post by Hippo.69 »

Seems there is a bug in the forum, when more people write a post at the same time the post sometimes vanishes.
... I wrote twice the ship description this way ... I definitely should write it elsewhere (it was long post:( I have no stamina to write it again now) and cut and paste it to the forum.
NooneAtAll3
Posts: 54
Joined: January 29th, 2023, 3:38 am

Re: How about a unidimensional spaceship?

Post by NooneAtAll3 »

Finally 1D ship has been done

1D_2 ship next?
User avatar
hth3
Posts: 362
Joined: February 15th, 2025, 10:04 am
Location: The Sun

Re: How about a unidimensional spaceship?

Post by hth3 »

I am thinking of a 2-cell-thick spaceship now.
Can't trust someone who misspells typset as typeset.
Contribute to CheckerLife!
Oppose KOSA now, save the internet!
The Sandboxer Sandbox (Discord server)
RIP Unname New Web
User avatar
I6_I6
Posts: 999
Joined: July 26th, 2025, 8:44 pm
Location: Here, there, somewhere, anywhere, everywhere.
Contact:

Re: How about a unidimensional spaceship?

Post by I6_I6 »

hth3 wrote: December 3rd, 2025, 7:02 am I am thinking of a 2-cell-thick spaceship now.
How about a ship that's 3hd or 2fd thick?

Code: Select all

#C [[ THEME Golly ]]
x = 27, y = 15, rule = LifeHistory
8.A$A6.A.A$3A4.BA2B.B2D$3.A4.2B.2B2DB$2.2A2.3B.6B2.3B$2.20B$4.19B$4.2B
C10BD4B$4.2B2C10BD4B$4.B2C11B2D3B$4.13B2D4B$5.12BD3B.B2A$6.13B3.BA.A$
6.3B.B3.B10.A$25.2A!
RuleEdit: A .rule file editing tool
User avatar
Hippo.69
Posts: 674
Joined: July 14th, 2020, 7:35 pm
Contact:

Re: How about a unidimensional spaceship?

Post by Hippo.69 »

I6_I6 wrote: December 2nd, 2025, 10:47 am Wow! This is amazing!
That's 2 macro-spaceships in the span of a week.
I've been watching this thread for a while as it grew, but could never comprehend anything going on.
Will someone bother to explain how it works?
We really need a wiki page.
Hippo.69 wrote: December 3rd, 2025, 2:02 pm Attempt of vacabullary explanation.
Hippo.69 wrote: December 5th, 2025, 3:56 am
Mimila99 wrote: December 5th, 2025, 12:25 am Where is the moving part of the mechanism
Now I have written it in notepad so I will not lose it if it does not go through on the first try ... where to publish articles describing the tools used in process of building these megaloprojects (RCT15, unidimensional spaceship ... hashlife friendly 0e0p metacell ... far from beeing ready)?

Unidimensional spaceship can be interpreted as a demonstration of the progress of recent years in slow salvo technology and the various arms that use it.

The project uses 4 construction arms, with the last three sharing principles with the arms used in the RCT15 project. The first arm is newly invented just for this case. I was not part of the community at the time the principles of the first two arms were studied, but let me describe them anyway.

The one line restriction limit us to using blinkers as the basis of the first arm. Interestingly, a small perturbation at the end of some blinker configuration makes the pattern unstable, and several blinker patterns allow the perturbation "fuse" to move in a controlled manner. Various configurations have been discovered that leave no debris but move at different speeds. Some configurations have been found that produce backward-firing mwss (and leave debris), head-on collisions of mwss that transform them into gliders for both phases. By combining these configurations, we can trigger a fusion in the middle of a carefully chosen arrangement of blinkers that would synchronize the mwss collisions at the desired time parity at a prescribed x-coordinate and generate a glider with a prescribed phase and trajectory, so that such an arm could create any p2 recipe.

The second arm used is a binary arm, where a pair of synchronized gliders on the same trajectories are used, with one glider always present and the presence of the other gliders allowing modification of the resulting configuration. Careful study of the results of various words using letters "1" and "2" (indicating the presence of the second glider) led to the discovery of specific modifications of the target "anchor" configuration.

Some of them allow you to move the "head" of the anchor stack closer/farther from the base of the arm. Some sequences will generate a perpendicular glider. Not all mod 8 phases and colors (of 8 colors) are known, but with careful "head positioning" any p8 recipe could be built with such an arm. The program used for the translation only used single blinker anchor technology, which produces a glider for a cost of around 100 bits ("letters").
The agnosticisation of salvas of the p8 recipe to use only the p1/p2 constraints on the glider phases (when possible) greatly reduces the number of bits required. Currently, there is an alternative method with around 80 bits per glider using 4 different anchors deep in the "arm target stack" (used by me in RCT15 optimization project).
The code could be improved by some form of dynamic programming by compiling the salvo from the parts emitting gliders closest to the arm to the gliders further away from the arm, but there was no need to complete the project.

The third and fourth arms are extreme compression construction arms "ecca", where a programming language interpreter is created and individual incoming letters are interpreted as instructions specifying which phase (mod 2) and line of glider to emit.

We have achieved an optimal encoding that requires about 7-8 bits to emit a typical slow p2 salvo of gliders.

The instruction set includes a move direction change option (followed by move 1), move4 (repeated), move2, move1, color option, phase option.
Stopping the move4 loop results in a glider being fired "near" the current arm position after a defined number of letters.
The fourth arm uses "yellow lane" filtering technology, which allows its components to be recycled, resulting in a more compact and less expensive design. On the contrary ecca1 is built as p1 pattern what allows selecting less expensive options during the build by the binary arm (at few places where p8 restriction would be required in ecca2 build).
The arms are capable of firing gliders with 4 combinations of phase mode 8 and color (all four combinations of phase mod 2 and color). This is perfectly fine for slow salvos with p2 restrictions, but building p8 salvos requires limiting the salvos to use only a limited set of "signature" color combinations of glider phases.

This led to a modification of the pslmake program (apg) (transforming "neo" Spartan configurations for slow salvos that are built from a single block). When a bespoke subsalvo builds a p8 pattern (initial call by a single glider), a 0 degree one time turner prefix is ​​optionally allowed for a phase/color correction. Similarly, p2 salvos are transformed to the required p8 phases corresponding to the signature.

There are a few more requirements to build the ship. We should implement a storage of bits that will be fed into the binary arm and later into the ECCA1 and ECCA2 arms. Fortunately, a slow salvo of 8 gliders fired symmetrically into the central “spine” track from both sides (the ship cannot lose symmetry) will create 4 blocks near the spine if there is nothing there, or move the blinker from its current position by 2 pixels (east) emitting glider backward.

The fuse arm fires 8 90 degree glider producing switch engines “GPSE90” that fire the slow salvo and convert the blinkers on the spine into a traveling signal.

The signal is then fed into the binary arm by a pair of corderships firing the gliders back. One of the gliders is reflected so that they annihilate on impact. The glider signal from the tape annihilates the glider from one stream (negative signal), so the reflected glider from the other stream is not annihilated at the start of the arm. The ever-present glider of the binary arm is created by a gun of the corresponding period (repeated in the third and fourth arms).

The fuse arm creates a reflector (p8bouncer) and a seed for a pair of corderships so that the first bit read triggers the corderships in synchronized phase to allow annihilation (and reflection).

To trigger the fuse arm, we need a target for the arm gliders to be modified. This is what the pre-fuse does. It releases a glider, travels some distance, and releases a perpendicular lwss on collision course with the glider. The collision leaves behind debris (the target of the fuse arm) and launches two gliders into the spine. One of them hits its mirror image and creates a biblock, while the other triggers the fuse arm in the middle.

We already know what the fuse arm does, the binary arm creates ecca1 and triggers a meteor shower creating a reflector on the input signal path. When the arm's anchor stack is removed, ecca1 starts interpreting the input bits. The goal of the ecca1 arm is to clean up the west. It destroys the remnants of the dirty mwss creations and reconstructs the initial bliner configurations shifted 2 pixels to the east (we can't build anything on the spine due to symmetry, but we can modify the already presented content of the spine).
It also creates ecca2, the beehive needed to transition to the one-dimensional state and the ship needed at the end of the tape cleaning.

Ecca1 finishes its work by destroying its reflector on the input signal path.

Ecca2 is responsible for cleaning up the east. It is built with a destruction seed (computation supported by the gSoD program), which means that one incoming glider on the correct path will cause the pattern to disappear. The destruction seed generates two gliders.
One of the goals of ecca2 is to create seeds of destruction of the reflectors on the input path - one destruction seed for the reflectors of ecca1 and one for the reflector of the binary arm. The ship created by ecca1 near the spine converts a pair of cleaning mwss into a single glider, which triggers the destruction seed of ecca2. The exit gliders of ecca2 seed of destruction, are navigated by one time reflectors to the destruction seeds of the reflectors of ecca1 and the binary arm.

Ecca2 converts ecca1 into a ship (a one time turner), which would play its role at the very end of the ship's period
(a slow destructive salvo combined with the trivial task of pslmake).
(the rest of the blinker of the binary arm stack is also destroyed by ecca2).

ECCA2 should also clean up the remains of the gun used by the binary arm (in the current version we stopped it with ecca1, but it would probably be equally or more efficient to stop it with ecca2)
(slow 2 salvo is used there and half honey farm to honey farm slow salvo move collection helps a lot in such design).

The most important task of ecca2 is to stop the tape reading mechanism and clean it up.
The salvo of synchronized gliders stops the GPSE90 and the corderabsorbers are assembled in time to stop the cordership pair
(as a tool a program was used that automatically combines a pre-calculated splitters and reflectors (consisting of at most two small objects) to create a given pair of synchronized parallel gliders).
The glider streams fired from the corderships do not stop at the same time, so the 3 escaping gliders are also stopped by the seed created by ecca2.
In order for ecca2 to create a seed to stop the GPSE90, it must clean up the irregularities of the GPSE90's trajectory debris. (destructive salvo calculated into a periodic pattern...). Similarly, the far-end cleanup converts the debris of the stopped GPSE90 into a periodic pattern.
Ecca2 must send corderfleets cleaning a periodic pattern (of arbitrary length). Therefore, it must create corderabsorbers on the other side (we chose corderabsorbers close, ships travelling from far).
(used a program to search for corderfleets cleaning compatible periodic patterns) ... the corderships were created using modern 11 cluster seeds (except for the one closest to the arm, where 12 cluster seeds were used to fit close to the arm)).

The corderfleet was also used to destroy the remnants of a pair of corderships.
The last task of ecca2 was to fire a salvo to create two mwss that would clean the blocks created during the tape reading (this would trigger a seed of ecca2 destroyal at the end).

The corderabsorber for the last cordership is modified and instead of annihilating with the cordership it emits a perpendicular glider that hits the boat from the ECCA1 conversion to bounce to the behive and converts it into a one-dimensional pattern, starting a new generation.

The ECCA2 compiler used agnosticised lane phase recipes and chose the optimal route from the options (shortening the tape as much as possible). This optimization was not done in ECCA1, binary or fuse arm.
Last edited by Hippo.69 on December 5th, 2025, 4:50 am, edited 9 times in total.
User avatar
I6_I6
Posts: 999
Joined: July 26th, 2025, 8:44 pm
Location: Here, there, somewhere, anywhere, everywhere.
Contact:

Re: How about a unidimensional spaceship?

Post by I6_I6 »

Hippo.69 wrote: December 3rd, 2025, 8:43 am
I6_I6 wrote: December 2nd, 2025, 10:47 am Will someone bother to explain how it works?
(2000-word essay explaining how it works)
I don't understand a word of that :cry: :oops:
I basically know nothing about engineering :(

Code: Select all

#C [[ THEME Golly ]]
x = 27, y = 15, rule = LifeHistory
8.A$A6.A.A$3A4.BA2B.B2D$3.A4.2B.2B2DB$2.2A2.3B.6B2.3B$2.20B$4.19B$4.2B
C10BD4B$4.2B2C10BD4B$4.B2C11B2D3B$4.13B2D4B$5.12BD3B.B2A$6.13B3.BA.A$
6.3B.B3.B10.A$25.2A!
RuleEdit: A .rule file editing tool
Post Reply