C_R_116 wrote: August 9th, 2026, 4:01 pm
1. How do I build starting grids to extend partial spaceships for llsss or llsss-recentering? Is there a specific code that can automatically do that that I'm not aware of?
2. How do I use the grid-tool to help with the grids?
3. (Which is more of a request) Will anyone be willing to update the "
Extending partial results" and "
Saving and loading the search state" sections in the
LLSSS Tutorials section?
I think most of your questions (implicit or otherwise) boil down to a combination of "what are W rows" and "how to extend partials" which I'm going to group together and do first (I hope this will also answer what sorts of things "grid-tool" does by using them along the way). I'll discuss saving/loading state at the end. Most of what I write is going to be a little too abstract and/or raw to be inserted into the tutorial directly, but hopefully we can get you sorted.
I'm not sure when any of this will trickle down to the tutorial. There are just too few people doing these things and it's all just too weird and unpolished.
For the first half, you sort of have to decide how much you want to think about lattices and how much you want to invest here. Depending on your answer I think you might reasonably start at three different levels which I think will mostly lead into each other nicely (but the more sections you read, the more sense later sections will make, hopefully). If you're all-in, I'd start right below this paragraph. If you're interested enough to know the details of grid-tool and how to set up partials for extension manually (first), I'd start at (II) below. If you want to skip to current best efforts to make extending partials easier, I'd skip to (III) below.
(I) W rows and lattices.
Perhaps best illustrated with a question: in the following 2c/5 partial in all generations, which row is "first", i.e. closest to the front of the ship? Which is second-closest? Third-closest? Etc.
Code: Select all
$ cat p1.pic
| (A1).......... | (B1).......... | (C1).......... | (D1).......... | (E1).......... |
| (A2).......... | (B2).......... | (C2).......... | (D2).......... | (E2).......... |
| (A3).......... | (B3).......... | (C3).......... | (D3).....*.... | (E3)....***... |
| (A4).....*.... | (B4).....*.... | (C4)....***... | (D4)....***... | (E4)....*.*... |
| (A5)....*.*... | (B5)...**.**.. | (C5)....*..*.. | (D5)....*.*... | (E5)....*.*... |
| (A6)...**.**.. | (B6)......**.. | (C6).......... | (D6).......... | (E6)....**.... |
$
When searching for a ship we want to guess the rows in this order (by which is nearest the front) and so this is very much more than academic. It turns out there is a natural order and in fact, rather than viewing things in XYT coordinates you might rewrite the abelian group of the YT plane mod 2c/5 according to its single generator (or its negation). One sign of the generator is the same orientation as T (and Y) and for 2c5-f2b this is what LLSSS calls "W".
I can ask grid-tool to-uwi to restructure the above XYT view in a second view called UWI, which for 2c5-f2b (or any KcN-f2b or KcN-b2f with gcd(K, N) = 1) just amounts to showing all the rows in W order:
Code: Select all
$ rlife grid-tool to-uwi 2c5-f2b < p1.pic
| (A1).......... |
| |
| (B1).......... |
| |
| (C1).......... |
| (A2).......... |
| (D1).......... |
| (B2).......... |
| (E1).......... |
| (C2).......... |
| (A3).......... |
| (D2).......... |
| (B3).......... |
| (E2).......... |
| (C3).......... |
| (A4).....*.... |
| (D3).....*.... |
| (B4).....*.... |
| (E3)....***... |
| (C4)....***... |
| (A5)....*.*... |
| (D4)....***... |
| (B5)...**.**.. |
| (E4)....*.*... |
| (C5)....*..*.. |
| (A6)...**.**.. |
| (D5)....*.*... |
| (B6)......**.. |
| (E5)....*.*... |
| (C6).......... |
| |
| (D6).......... |
| |
| (E6)....**.... |
Note it has even inserted blanks where e.g. we didn't have the row that is halfway between A1 and B1.
In terms of actual editing grids this of course helps very little, but it might help understand why proper grids are staggered so weirdly.
(II) Manual grid construction
Generally the name of the game for LLSSS inputs is to make UVW prisms. For many geometries this can be hard to see and so it is likely easier to view everything in "UWI" view where UVW prisms translate to rectangles, aligned in the same place in each section. For geometries w/o GCD (including 3c10-f2b) there is just one section so that's just rectangles.
If I look at your proposed input ("proposed.in") in UWI view, neither the collection of non-blank spots nor the questions marks make a rectangle:
Code: Select all
$ rlife grid-tool to-uwi 3c10-f2b < proposed.in
| ........................ |
| |
| |
| ........................ |
| |
| |
| ........................ |
| ..................... |
| |
| ........................ |
| **...................... |
| ........................ |
| ........................ |
| **...................... |
| ........................ |
| ........................ |
| **...................... |
| ***.................. |
| ........................ |
| **...................... |
| **...................... |
| ........................ |
| **...................... |
| ..*..................... |
| ****.................... |
| **...................... |
| ..*..................... |
| ....*................ |
| **...................... |
| ..*..................... |
| **...................... |
| *****................... |
| ..*..................... |
| **...................... |
| *****................... |
| ..*..................... |
| **...................... |
| ..................... |
| ..****.................. |
| **...*.................. |
| .....*.................. |
| ...*.*.................. |
| **..**.................. |
| .....**................. |
| ...*.*.................. |
| **.****................. |
| ....***................. |
| .....**.............. |
| **.*.***................ |
| ....****................ |
| .....**................. |
| **...***................ |
| ....**.*................ |
| ....**.*................ |
| ***..*.**............... |
| ...*.*.**............... |
| ....*..**............... |
| ..*..*..*............ |
| ...*....*............... |
| ...*...*................ |
| .....*.**............... |
| ..*..*.**............... |
| ...*...**............... |
| .....*.**............... |
| **...*...*.............. |
| ...*.****............... |
| ....**.................. |
| ..*....*.*........... |
| .....*...*.............. |
| ....**..*............... |
| ........*............... |
| ........**.............. |
| ....*................... |
| .......**............... |
| .......*..*............. |
| .......**............... |
| .........*.............. |
| ..................... |
| .........*.............. |
| ........................ |
| ........................ |
| .........**............. |
| ........*............... |
| .......**............... |
| ........................ |
| ........*............... |
| .........*.............. |
| ..................... |
| .......***.............. |
| ........***............. |
| .......**............... |
| .........**............. |
| ......*****............. |
| ......***............... |
| ........................ |
| .....*....*............. |
| ......*..*.............. |
| ......****........... |
| .........*.............. |
| .....***.*.............. |
| ......**.*.............. |
| ......**.*.............. |
| .....***.**............. |
| .....*...*.............. |
| .....******............. |
| .....*....*............. |
| .....***.**............. |
| .....*..**........... |
| .....**................. |
| ....*..*................ |
| .....**...*............. |
| ....*.*................. |
| ....*..**............... |
| ....*....**............. |
| ......**................ |
| ....**.................. |
| ....**..***............. |
| ....*....*........... |
| ....***................. |
| ....**....*............. |
| ...**.**.*.............. |
| ....*................... |
| ...*...**............... |
| ....*...*............... |
| ...**.*................. |
| ......*................. |
| ........*............... |
| ...**.**............. |
| .....*.................. |
| ....**.**............... |
| ......**................ |
| ....***................. |
| .......***.............. |
| ........*............... |
| ....**.................. |
| .........*.............. |
| .....*..*............... |
| ...**.*.............. |
| ........................ |
| .....**.*............... |
| ...**.*................. |
| ........................ |
| ........*............... |
| ....*.**................ |
| ......*................. |
| ........................ |
| ....*.**................ |
| ......*.............. |
| ........................ |
| ....*..*................ |
| .....*.................. |
| ......*................. |
| ....*...*............... |
| ....**.................. |
| ......*................. |
| .....*..*............... |
| ....***................. |
| ..................... |
| .....***................ |
| ....*.**................ |
| ..?????????????......... |
| .....*.*................ |
| ....*.**................ |
| ..?????????????......... |
| ....****................ |
| ....*.**................ |
| ..?????????????......... |
| ...**...*............ |
| ....*.**................ |
| ..?????????????......... |
| ..?????????????......... |
| ...**...*............... |
| ..?????????????......... |
| ..?????????????......... |
| ...**..**............... |
| ..?????????????......... |
| ..?????????????......... |
| .......**............ |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????...... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????...... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????...... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????...... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????...... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????...... |
| ..?????????????......... |
| ..?????????????......... |
| |
| ..?????????????......... |
| ..?????????????......... |
| |
| ..?????????????......... |
| ..?????????????......... |
| |
| |
| ..?????????????......... |
Note gaps at front and back for both as well as mismatched widths in some places (last generation is missing three columns).
I would...
(1) "Round up" the front by replacing those blank rows with periods. Arguably better done by having more zero rows on the top in the XYT view, but either way will do. You could also reasonably "round down" by deleting rows off the front until there are no more blanks.
(2) "Round down" the back by deleting the first blank row there and everything after it. You could also reasonably "round up" by filling in rows.
(3) "Round up" the front of the question marks by replacing with question marks in each row that has none but is trapped between rows with them.
(4) "Round up" the missing rights sides by replacing the three blanks with periods in those rows (or extend the tenth generation in the original input).
That leaves me with this, "fixed.uwi":
Code: Select all
$ cat fixed.uwi
| ........................ |
| ........................ |
| ........................ |
| ........................ |
| ........................ |
| ........................ |
| ........................ |
| ........................ |
| ........................ |
| ........................ |
| **...................... |
| ........................ |
| ........................ |
| **...................... |
| ........................ |
| ........................ |
| **...................... |
| ***..................... |
| ........................ |
| **...................... |
| **...................... |
| ........................ |
| **...................... |
| ..*..................... |
| ****.................... |
| **...................... |
| ..*..................... |
| ....*................... |
| **...................... |
| ..*..................... |
| **...................... |
| *****................... |
| ..*..................... |
| **...................... |
| *****................... |
| ..*..................... |
| **...................... |
| ........................ |
| ..****.................. |
| **...*.................. |
| .....*.................. |
| ...*.*.................. |
| **..**.................. |
| .....**................. |
| ...*.*.................. |
| **.****................. |
| ....***................. |
| .....**................. |
| **.*.***................ |
| ....****................ |
| .....**................. |
| **...***................ |
| ....**.*................ |
| ....**.*................ |
| ***..*.**............... |
| ...*.*.**............... |
| ....*..**............... |
| ..*..*..*............... |
| ...*....*............... |
| ...*...*................ |
| .....*.**............... |
| ..*..*.**............... |
| ...*...**............... |
| .....*.**............... |
| **...*...*.............. |
| ...*.****............... |
| ....**.................. |
| ..*....*.*.............. |
| .....*...*.............. |
| ....**..*............... |
| ........*............... |
| ........**.............. |
| ....*................... |
| .......**............... |
| .......*..*............. |
| .......**............... |
| .........*.............. |
| ........................ |
| .........*.............. |
| ........................ |
| ........................ |
| .........**............. |
| ........*............... |
| .......**............... |
| ........................ |
| ........*............... |
| .........*.............. |
| ........................ |
| .......***.............. |
| ........***............. |
| .......**............... |
| .........**............. |
| ......*****............. |
| ......***............... |
| ........................ |
| .....*....*............. |
| ......*..*.............. |
| ......****.............. |
| .........*.............. |
| .....***.*.............. |
| ......**.*.............. |
| ......**.*.............. |
| .....***.**............. |
| .....*...*.............. |
| .....******............. |
| .....*....*............. |
| .....***.**............. |
| .....*..**.............. |
| .....**................. |
| ....*..*................ |
| .....**...*............. |
| ....*.*................. |
| ....*..**............... |
| ....*....**............. |
| ......**................ |
| ....**.................. |
| ....**..***............. |
| ....*....*.............. |
| ....***................. |
| ....**....*............. |
| ...**.**.*.............. |
| ....*................... |
| ...*...**............... |
| ....*...*............... |
| ...**.*................. |
| ......*................. |
| ........*............... |
| ...**.**................ |
| .....*.................. |
| ....**.**............... |
| ......**................ |
| ....***................. |
| .......***.............. |
| ........*............... |
| ....**.................. |
| .........*.............. |
| .....*..*............... |
| ...**.*................. |
| ........................ |
| .....**.*............... |
| ...**.*................. |
| ........................ |
| ........*............... |
| ....*.**................ |
| ......*................. |
| ........................ |
| ....*.**................ |
| ......*................. |
| ........................ |
| ....*..*................ |
| .....*.................. |
| ......*................. |
| ....*...*............... |
| ....**.................. |
| ......*................. |
| .....*..*............... |
| ....***................. |
| ........................ |
| .....***................ |
| ....*.**................ |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
| ..?????????????......... |
And that can be converted back to an input file in XYT coords with:
Code: Select all
$ rlife grid-tool from-uwi 3c10-f2b < fixed.uwi
| | | | | | | | ........................ | ........................ | ........................ |
| | | | | ........................ | ........................ | ........................ | ........................ | ........................ | ***..................... |
| ........................ | ........................ | ........................ | ........................ | ........................ | ........................ | ........................ | ........................ | ****.................... | ....*................... |
| **...................... | **...................... | **...................... | **...................... | **...................... | **...................... | **...................... | *****................... | *****................... | ........................ |
| **...................... | ..*..................... | ..*..................... | ..*..................... | ..*..................... | ..*..................... | ..****.................. | ...*.*.................. | ...*.*.................. | .....**................. |
| **...................... | **...................... | **...................... | **...*.................. | **..**.................. | **.****................. | **.*.***................ | **...***................ | ***..*.**............... | ..*..*..*............... |
| .....*.................. | .....**................. | ....***................. | ....****................ | ....**.*................ | ...*.*.**............... | ...*....*............... | ..*..*.**............... | **...*...*.............. | ..*....*.*.............. |
| .....**................. | ....**.*................ | ....*..**............... | ...*...*................ | ...*...**............... | ...*.****............... | .....*...*.............. | ........**.............. | .......*..*............. | ........................ |
| .....*.**............... | .....*.**............... | ....**.................. | ....**..*............... | ....*................... | .......**............... | .........*.............. | .........**............. | ........................ | ........................ |
| ........*............... | .......**............... | .........*.............. | ........................ | ........*............... | ........*............... | .......***.............. | .........**............. | ........................ | ......****.............. |
| ........................ | .......**............... | .........*.............. | ........***............. | ......*****............. | .....*....*............. | .........*.............. | ......**.*.............. | .....******............. | .....*..**.............. |
| .......**............... | ......***............... | ......*..*.............. | .....***.*.............. | .....***.**............. | .....*....*............. | .....**................. | ....*.*................. | ......**................ | ....*....*.............. |
| ......**.*.............. | .....*...*.............. | .....***.**............. | ....*..*................ | ....*..**............... | ....**.................. | ....***................. | ....*................... | ...**.*................. | ...**.**................ |
| .....**...*............. | ....*....**............. | ....**..***............. | ....**....*............. | ...*...**............... | ......*................. | .....*.................. | ....***................. | ....**.................. | ...**.*................. |
| ...**.**.*.............. | ....*...*............... | ........*............... | ....**.**............... | .......***.............. | .........*.............. | ........................ | ........................ | ......*................. | ......*................. |
| ......**................ | ........*............... | .....*..*............... | .....**.*............... | ........*............... | ........................ | ........................ | ......*................. | ......*................. | ........................ |
| ...**.*................. | ....*.**................ | ....*.**................ | ....*..*................ | ....*...*............... | .....*..*............... | .....***................ | ..?????????????......... | ..?????????????......... | ..?????????????......... |
| .....*.................. | ....**.................. | ....***................. | ....*.**................ | ..?????????????......... | ..?????????????......... | ..?????????????......... | ..?????????????......... | ..?????????????......... | ..?????????????......... |
| ..?????????????......... | ..?????????????......... | ..?????????????......... | ..?????????????......... | ..?????????????......... | ..?????????????......... | ..?????????????......... | ..?????????????......... | ..?????????????......... | ..?????????????......... |
| ..?????????????......... | ..?????????????......... | ..?????????????......... | ..?????????????......... | ..?????????????......... | ..?????????????......... | ..?????????????......... | ..?????????????......... | ..?????????????......... | ..?????????????......... |
| ..?????????????......... | ..?????????????......... | ..?????????????......... | ..?????????????......... | ..?????????????......... | ..?????????????......... | ..?????????????......... | ..?????????????......... | ..?????????????......... | ..?????????????......... |
| ..?????????????......... | ..?????????????......... | ..?????????????......... | ..?????????????......... | ..?????????????......... | ..?????????????......... | ..?????????????......... | ..?????????????......... | ..?????????????......... | ..?????????????......... |
| ..?????????????......... | ..?????????????......... | ..?????????????......... | ..?????????????......... | ..?????????????......... | ..?????????????......... | ..?????????????......... | ..?????????????......... | ..?????????????......... | ..?????????????......... |
| ..?????????????......... | ..?????????????......... | ..?????????????......... | ..?????????????......... | ..?????????????......... | ..?????????????......... | ..?????????????......... | ..?????????????......... | ..?????????????......... | ..?????????????......... |
| ..?????????????......... | ..?????????????......... | ..?????????????......... | ..?????????????......... | ..?????????????......... | ..?????????????......... | ..?????????????......... | | | |
| ..?????????????......... | ..?????????????......... | ..?????????????......... | ..?????????????......... | | | | | | |
This should be usable to run a fixed board search.
This process is of course somewhat tedious and my best (not so great) efforts to automate it are "ingest-1gp", which I'll discuss in the next section.
I think the bottom line for this section though, and really the bottom line and/or best practice for grid management as it stands now is that:
(a) You may freely convert back and forth between XYT/UWI view with to-uwi/from-uwi, especially when the geometry is a hard one to understand, i.e. not c/N. You do not have to understand the transformation to use it.
(b) You must make matching rectangles, using any editing tools you see fit. This may be adding or removing and can be done in either view (XYT or UWI), depending on how you're deciding values and/or what context you want to see when you do it.
(III) ingest-1gp
This tool can try to make sense of a single generation partial. Let's take the form of this you gave earlier ("p2.rle"):
Code: Select all
x = 22, y = 41, rule = B3/S23
10b2o$10b2o$10b2o$6bo8bo$5b2o8b2o$3b2obo8bob2o$3bo14bo2$3b2o12b2o$2bob
2o10b2obo$bo3b2o8b2o3bo$2bob2ob2o4b2ob2obo$4b2o10b2o$5bob2o4b2obo$6bo
8bo2$3b2o12b2o$2b3o12b3o$3b2o2b2o4b2o2b2o$2b3o2b2o4b2o2b3o$2b2obobo6bo
bob2o$bo5bo6bo5bo$bo3b2o8b2o3bo$5b2o8b2o$5bo10bo$2b2ob3o6b3ob2o$2bo3b
3o4b3o3bo$4bo12bo$bo3bo10bo3bo$o20bo$bob2o2b2o4b2o2b2obo$3b2obo2bo2bo
2bob2o$2b2obo10bob2o$2b2obobo6bobob2o$7b2o4b2o$5b4o4b4o$bo2bo3bo4bo3bo
2bo$b4ob3o4b3ob4o$o2bo14bo2bo$2bo3bo8bo3bo$3b2o12b2o!
With default options it doesn't quite make sense of the front of the ship (10 is a high time period for which its default zero padding is too small). The output would still work, but the partial be truncated at the front. With "--top-y-pad 30" it gets it right:
Code: Select all
$ rlife slices-tool ingest-1gp 3c10-f2b --top-y-pad 30 --w-size MAX p2.rle
...
20260809 15:26:58 [INFO] New aligned slice:
20260809 15:26:58 [INFO] | | | | | | | | ........................ | ........................ | ........................ |
20260809 15:26:58 [INFO] | | | | LLuuuuuuuuuuuuuuuuuuuuRR | ........................ | ........................ | ........................ | ........................ | ........................ | ........................ |
20260809 15:26:58 [INFO] | ........................ | ........................ | ........................ | ........................ | ........................ | ........................ | ........................ | ........................ | ........................ | ........................ |
20260809 15:26:58 [INFO] | ........................ | ........................ | ........................ | ........................ | ........................ | ........................ | ........................ | ........................ | ........................ | ........................ |
20260809 15:26:58 [INFO] | ........................ | ........................ | ........................ | ........................ | ........................ | ........................ | ........................ | ........................ | ........................ | ........................ |
20260809 15:26:58 [INFO] | ........................ | ........................ | ........................ | ........................ | ........................ | ........................ | ........................ | ........................ | ........................ | ........................ |
20260809 15:26:58 [INFO] | ........................ | ........................ | ........................ | ........................ | ........................ | ........................ | ........................ | ........................ | ........................ | ........................ |
20260809 15:26:58 [INFO] | ........................ | ........................ | ........................ | ........................ | ...........**........... | ...........**........... | ...........**........... | ...........**........... | ...........**........... | ...........**........... |
20260809 15:26:58 [INFO] | ........................ | ........................ | ........................ | ..........****.......... | ...........**........... | ..........*..*.......... | ..........*..*.......... | ..........*..*.......... | ..........*..*.......... | ..........*..*.......... |
20260809 15:26:58 [INFO] | ........................ | ........................ | .........******......... | ........*......*........ | ...........**........... | ...........**........... | ...........**........... | .......*...**...*....... | .......**..**..**....... | ......****.**.****...... |
20260809 15:26:58 [INFO] | ...........**........... | ........********........ | ........********........ | ........................ | .......*........*....... | ......**........**...... | ......***......***...... | .....****......****..... | .....*.**......**.*..... | ....**.*.*....*.*.**.... |
20260809 15:26:58 [INFO] | .......****..****....... | .......*.*....*.*....... | .......*.*....*.*....... | ......**........**...... | ......**........**...... | .....*.**......**.*..... | ....**..*......*..**.... | .....*...*....*...*..... | ....**...*....*...**.... | ....****.*....*.****.... |
20260809 15:26:58 [INFO] | .....***.*.**.*.***..... | .....***...**...***..... | ....**.*..****..*.**.... | ....*..*..*..*..*..*.... | ....**.*........*.**.... | ....**.*........*.**.... | .......**......**....... | ....*..**......**..*.... | ........*......*........ | ....**............**.... |
20260809 15:26:58 [INFO] | ....*....*....*....*.... | ....**.*..*..*..*.**.... | ...*...*...**...*...*... | ...*.*....*..*....*.*... | ....*..............*.... | ....**............**.... | ...*................*... | ........................ | ....*..............*.... | ....*..............*.... |
20260809 15:26:58 [INFO] | ...*...*........*...*... | ...**..............**... | ..*..*............*..*.. | ........................ | ........................ | ....**............**.... | ...*................*... | ..***..............***.. | ..*****..........*****.. | ..*....*........*....*.. |
20260809 15:26:58 [INFO] | ...*................*... | ..**................**.. | ........................ | ........................ | ....**............**.... | ....***..........***.... | ...*..*..........*..*... | ...*.***........***.*... | ..**.***........***.**.. | ..*....*........*....*.. |
20260809 15:26:58 [INFO] | ...***............***... | ..**................**.. | ........................ | ...****..........****... | ...*.**..........**.*... | ...*...*........*...*... | ..**.***........***.**.. | .....*..*......*..*..... | ....**..*......*..**.... | .......**......**....... |
20260809 15:26:58 [INFO] | ...*................*... | ...*.**..........**.*... | ..******........******.. | ...**..*........*..**... | ..*...**........**...*.. | ..**....*......*....**.. | ..***..**......**..***.. | ..*....**......**....*.. | ....**...*....*...**.... | ......*..........*...... |
20260809 15:26:58 [INFO] | ......**........**...... | ......*.*......*.*...... | .....**..........**..... | ...*....*......*....*... | ...*.**.**....**.**.*... | ....*...*......*...*.... | ....*..............*.... | ....**.**......**.**.... | ...***............***... | ...*................*... |
20260809 15:26:58 [INFO] | ......***......***...... | ........*......*........ | ......*.**....**.*...... | .....**.**....**.**..... | .....**..........**..... | ....*..............*.... | ....*..*........*..*.... | ....*.**........**.*.... | ....*..............*.... | ........................ |
20260809 15:26:58 [INFO] | .......*........*....... | ......***......***...... | .......**......**....... | ......*.**....**.*...... | ......*.**....**.*...... | .....**.*......*.**..... | .....**.*......*.**..... | .....*..*......*..*..... | ....*...*......*...*.... | ....*..*........*..*.... |
20260809 15:26:58 [INFO] | ........................ | ........................ | ......*..........*...... | ......*..........*...... | .......*........*....... | .......**......**....... | ......***......***...... | .....**.*......*.**..... | .....**.*......*.**..... | .....**.*......*.**..... |
20260809 15:26:58 [INFO] | ........................ | ......*..........*...... | ......*..........*...... | ........................ | ........................ | ........................ | ........................ | .......*........*....... | .......*........*....... | ........*......*........ |
20260809 15:26:58 [INFO] | .....***........***..... | .....*.*........*.*..... | .....****......****..... | ....*...**....**...*.... | ....**............**.... | ...*.*............*.*... | ....*..............*.... | ....*.*..........*.*.... | .....***........***..... | ....**.**......**.**.... |
20260809 15:26:58 [INFO] | .....**.*......*.**..... | ....*...**....**...*.... | ....**..**....**..**.... | ....**............**.... | ...***............***... | ...*..*..........*..*... | ....****........****.... | ....*..*........*..*.... | ...**..*........*..**... | ....**............**.... |
20260809 15:26:58 [INFO] | ....*...**....**...*.... | ....*....*....*....*.... | ........**....**........ | ....*...**....**...*.... | ....**..**....**..**.... | ......*.**....**.*...... | .....**..........**..... | ....*...*......*...*.... | .......**......**....... | ....**..*......*..**.... |
20260809 15:26:58 [INFO] | ....*****......*****.... | ...****..........****... | ...*................*... | ........*......*........ | ...***..**....**..***... | ......*..........*...... | ........**....**........ | .......*........*....... | .....***........***..... | .....*..*......*..*..... |
20260809 15:26:58 [INFO] | ...*...**......**...*... | ....*...*......*...*.... | ...*...*........*...*... | ...**.**........**.**... | ...**.*.*......*.*.**... | ..*.....*......*.....*.. | .....**..........**..... | .....**..........**..... | ......*..........*...... | .....*............*..... |
20260809 15:26:58 [INFO] | ......*..........*...... | .....**..........**..... | ....*.**........**.*.... | ...**.**........**.**... | ..*.....*......*.....*.. | ..*..**.*......*.**..*.. | .....**.**....**.**..... | ........................ | .......*........*....... | .....*.*........*.*..... |
20260809 15:26:58 [INFO] | .....**..........**..... | ....*.*..........*.*.... | ....*.*..........*.*.... | ...**.**........**.**... | ..*...**........**...*.. | ......*.*......*.*...... | ......*..........*...... | .....**.*......*.**..... | .....**..........**..... | ......**........**...... |
20260809 15:26:58 [INFO] | ....**............**.... | ....*..............*.... | ....*..............*.... | ...**..............**... | ......**........**...... | .....*............*..... | .......*........*....... | ......**........**...... | ........*......*........ | .....*............*..... |
20260809 15:26:58 [INFO] | .....*.*........*.*..... | .....*............*..... | ....**............**.... | ....*.*..........*.*.... | ......*..........*...... | ........*......*........ | ......*..........*...... | .....**.*......*.**..... | ....*....*....*....*.... | ........**....**........ |
20260809 15:26:58 [INFO] | .....*.*........*.*..... | .....*............*..... | .....**..........**..... | ....*****......*****.... | ...**.***......***.**... | ...****..*....*..****... | ...*.**.**....**.**.*... | ....******....******.... | .........*....*......... | ........***..***........ |
20260809 15:26:58 [INFO] | ......***......***...... | ......*.**....**.*...... | .......***....***....... | ....*....*....*....*.... | ...*...***....***...*... | ...*.*...*....*...*.*... | ...*.....*....*.....*... | ....**...*....*...**.... | ....*....*....*....*.... | ...***...**..**...***... |
20260809 15:26:58 [INFO] | ........*.*..*.*........ | ........**....**........ | ....**.***....***.**.... | ....**....*..*....**.... | .....*............*..... | ......***......***...... | ......***......***...... | | | |
20260809 15:26:58 [INFO] | ....*..............*.... | ...***............***... | ...*..****....****..*... | | | | | | | |
...
We can have it save this to an intermediate form ("slices") and output a valid input file for recentering:
Code: Select all
$ rlife slices-tool ingest-1gp 3c10-f2b --top-y-pad 30 --w-size MAX p2.rle p2.slices
...
20260809 15:30:12 [INFO] Total of 1 slices.
20260809 15:30:12 [INFO] Saved to "p2.slices".
$ rlife slices-tool to-rc-input 3c10-f2b p2.slices 1gp.in
20260809 15:37:52 [INFO] Just one slice, building special format.
20260809 15:37:52 [INFO] Saved to "1gp.in".
$ cat 1gp.in
| | | | | | | | .......................... | .......................... | .......................... |
| | | | AAAuuuuuuuuuuuuuuuuuuuuBBB | .......................... | .......................... | .......................... | .......................... | .......................... | .......................... |
| .......................... | .......................... | .......................... | .......................... | .......................... | .......................... | .......................... | .......................... | .......................... | .......................... |
| .......................... | .......................... | .......................... | .......................... | .......................... | .......................... | .......................... | .......................... | .......................... | .......................... |
| .......................... | .......................... | .......................... | .......................... | .......................... | .......................... | .......................... | .......................... | .......................... | .......................... |
| .......................... | .......................... | .......................... | .......................... | .......................... | .......................... | .......................... | .......................... | .......................... | .......................... |
| .......................... | .......................... | .......................... | .......................... | .......................... | .......................... | .......................... | .......................... | .......................... | .......................... |
| .......................... | .......................... | .......................... | .......................... | ............**............ | ............**............ | ............**............ | ............**............ | ............**............ | ............**............ |
| .......................... | .......................... | .......................... | ...........****........... | ............**............ | ...........*..*........... | ...........*..*........... | ...........*..*........... | ...........*..*........... | ...........*..*........... |
| .......................... | .......................... | ..........******.......... | .........*......*......... | ............**............ | ............**............ | ............**............ | ........*...**...*........ | ........**..**..**........ | .......****.**.****....... |
| ............**............ | .........********......... | .........********......... | .......................... | ........*........*........ | .......**........**....... | .......***......***....... | ......****......****...... | ......*.**......**.*...... | .....**.*.*....*.*.**..... |
| ........****..****........ | ........*.*....*.*........ | ........*.*....*.*........ | .......**........**....... | .......**........**....... | ......*.**......**.*...... | .....**..*......*..**..... | ......*...*....*...*...... | .....**...*....*...**..... | .....****.*....*.****..... |
| ......***.*.**.*.***...... | ......***...**...***...... | .....**.*..****..*.**..... | .....*..*..*..*..*..*..... | .....**.*........*.**..... | .....**.*........*.**..... | ........**......**........ | .....*..**......**..*..... | .........*......*......... | .....**............**..... |
| .....*....*....*....*..... | .....**.*..*..*..*.**..... | ....*...*...**...*...*.... | ....*.*....*..*....*.*.... | .....*..............*..... | .....**............**..... | ....*................*.... | .......................... | .....*..............*..... | .....*..............*..... |
| ....*...*........*...*.... | ....**..............**.... | ...*..*............*..*... | .......................... | .......................... | .....**............**..... | ....*................*.... | ...***..............***... | ...*****..........*****... | ...*....*........*....*... |
| ....*................*.... | ...**................**... | .......................... | .......................... | .....**............**..... | .....***..........***..... | ....*..*..........*..*.... | ....*.***........***.*.... | ...**.***........***.**... | ...*....*........*....*... |
| ....***............***.... | ...**................**... | .......................... | ....****..........****.... | ....*.**..........**.*.... | ....*...*........*...*.... | ...**.***........***.**... | ......*..*......*..*...... | .....**..*......*..**..... | ........**......**........ |
| ....*................*.... | ....*.**..........**.*.... | ...******........******... | ....**..*........*..**.... | ...*...**........**...*... | ...**....*......*....**... | ...***..**......**..***... | ...*....**......**....*... | .....**...*....*...**..... | .......*..........*....... |
| .......**........**....... | .......*.*......*.*....... | ......**..........**...... | ....*....*......*....*.... | ....*.**.**....**.**.*.... | .....*...*......*...*..... | .....*..............*..... | .....**.**......**.**..... | ....***............***.... | ....*................*.... |
| .......***......***....... | .........*......*......... | .......*.**....**.*....... | ......**.**....**.**...... | ......**..........**...... | .....*..............*..... | .....*..*........*..*..... | .....*.**........**.*..... | .....*..............*..... | .......................... |
| ........*........*........ | .......***......***....... | ........**......**........ | .......*.**....**.*....... | .......*.**....**.*....... | ......**.*......*.**...... | ......**.*......*.**...... | ......*..*......*..*...... | .....*...*......*...*..... | .....*..*........*..*..... |
| .......................... | .......................... | .......*..........*....... | .......*..........*....... | ........*........*........ | ........**......**........ | .......***......***....... | ......**.*......*.**...... | ......**.*......*.**...... | ......**.*......*.**...... |
| .......................... | .......*..........*....... | .......*..........*....... | .......................... | .......................... | .......................... | .......................... | ........*........*........ | ........*........*........ | .........*......*......... |
| ......***........***...... | ......*.*........*.*...... | ......****......****...... | .....*...**....**...*..... | .....**............**..... | ....*.*............*.*.... | .....*..............*..... | .....*.*..........*.*..... | ......***........***...... | .....**.**......**.**..... |
| ......**.*......*.**...... | .....*...**....**...*..... | .....**..**....**..**..... | .....**............**..... | ....***............***.... | ....*..*..........*..*.... | .....****........****..... | .....*..*........*..*..... | ....**..*........*..**.... | .....**............**..... |
| .....*...**....**...*..... | .....*....*....*....*..... | .........**....**......... | .....*...**....**...*..... | .....**..**....**..**..... | .......*.**....**.*....... | ......**..........**...... | .....*...*......*...*..... | ........**......**........ | .....**..*......*..**..... |
| .....*****......*****..... | ....****..........****.... | ....*................*.... | .........*......*......... | ....***..**....**..***.... | .......*..........*....... | .........**....**......... | ........*........*........ | ......***........***...... | ......*..*......*..*...... |
| ....*...**......**...*.... | .....*...*......*...*..... | ....*...*........*...*.... | ....**.**........**.**.... | ....**.*.*......*.*.**.... | ...*.....*......*.....*... | ......**..........**...... | ......**..........**...... | .......*..........*....... | ......*............*...... |
| .......*..........*....... | ......**..........**...... | .....*.**........**.*..... | ....**.**........**.**.... | ...*.....*......*.....*... | ...*..**.*......*.**..*... | ......**.**....**.**...... | .......................... | ........*........*........ | ......*.*........*.*...... |
| ......**..........**...... | .....*.*..........*.*..... | .....*.*..........*.*..... | ....**.**........**.**.... | ...*...**........**...*... | .......*.*......*.*....... | .......*..........*....... | ......**.*......*.**...... | ......**..........**...... | .......**........**....... |
| .....**............**..... | .....*..............*..... | .....*..............*..... | ....**..............**.... | .......**........**....... | ......*............*...... | ........*........*........ | .......**........**....... | .........*......*......... | ......*............*...... |
| ......*.*........*.*...... | ......*............*...... | .....**............**..... | .....*.*..........*.*..... | .......*..........*....... | .........*......*......... | .......*..........*....... | ......**.*......*.**...... | .....*....*....*....*..... | .........**....**......... |
| ......*.*........*.*...... | ......*............*...... | ......**..........**...... | .....*****......*****..... | ....**.***......***.**.... | ....****..*....*..****.... | ....*.**.**....**.**.*.... | .....******....******..... | ..........*....*.......... | .........***..***......... |
| .......***......***....... | .......*.**....**.*....... | ........***....***........ | .....*....*....*....*..... | ....*...***....***...*.... | ....*.*...*....*...*.*.... | ....*.....*....*.....*.... | .....**...*....*...**..... | .....*....*....*....*..... | ....***...**..**...***.... |
| .........*.*..*.*......... | .........**....**......... | .....**.***....***.**..... | .....**....*..*....**..... | ......*............*...... | .......***......***....... | .......***......***....... | | | |
| .....*..............*..... | ....***............***.... | ....*..****....****..*.... | | | | | | | |
$
This sort of works (and does work as an input for a recentering search), but isn't really what you want here. For even symmetry you want to cut the file in half (plus one extra column) and for fixed board searches you want to remove the root labels and insert question marks. Unfortunately the tool just hasn't gotten that much love in terms of such features as I personally feel like I am in a pretty decent place in terms of making input grids so there's not much itch to scratch. I would have said the same before I wrote grid-tool and that would have been an incredible mistake as grid-tool has absolutely revolutionized the space, so I still aspire to move things along ... eventually.
To cut it for even searches I would pipe it through "rlife grid-tool cw", cut off the appropriate number of initial (i.e. left side) rows, and then pipe it back through through "grid-tool ccw". I would do this with my editor, but as a demo it can be shown with a shell one-liner...
Code: Select all
$ cat 1gp.in | rlife grid-tool cw | tail +13 | rlife grid-tool ccw
| | | | | | | | .............. | .............. | .............. |
| | | | uuuuuuuuuuuBBB | .............. | .............. | .............. | .............. | .............. | .............. |
| .............. | .............. | .............. | .............. | .............. | .............. | .............. | .............. | .............. | .............. |
| .............. | .............. | .............. | .............. | .............. | .............. | .............. | .............. | .............. | .............. |
| .............. | .............. | .............. | .............. | .............. | .............. | .............. | .............. | .............. | .............. |
| .............. | .............. | .............. | .............. | .............. | .............. | .............. | .............. | .............. | .............. |
| .............. | .............. | .............. | .............. | .............. | .............. | .............. | .............. | .............. | .............. |
| .............. | .............. | .............. | .............. | **............ | **............ | **............ | **............ | **............ | **............ |
| .............. | .............. | .............. | ***........... | **............ | ..*........... | ..*........... | ..*........... | ..*........... | ..*........... |
| .............. | .............. | ****.......... | ....*......... | **............ | **............ | **............ | **...*........ | **..**........ | **.****....... |
| **............ | *****......... | *****......... | .............. | .....*........ | .....**....... | ....***....... | ....****...... | ....**.*...... | ...*.*.**..... |
| ..****........ | ...*.*........ | ...*.*........ | .....**....... | .....**....... | ....**.*...... | ....*..**..... | ...*...*...... | ...*...**..... | ...*.****..... |
| **.*.***...... | **...***...... | ***..*.**..... | ..*..*..*..... | .....*.**..... | .....*.**..... | ....**........ | ....**..*..... | ....*......... | .......**..... |
| ...*....*..... | ..*..*.**..... | **...*...*.... | ..*....*.*.... | ........*..... | .......**..... | .........*.... | .............. | ........*..... | ........*..... |
| .....*...*.... | ........**.... | .......*..*... | .............. | .............. | .......**..... | .........*.... | ........***... | ......*****... | .....*....*... |
| .........*.... | .........**... | .............. | .............. | .......**..... | ......***..... | ......*..*.... | .....***.*.... | .....***.**... | .....*....*... |
| .......***.... | .........**... | .............. | ......****.... | ......**.*.... | .....*...*.... | .....***.**... | ....*..*...... | ....*..**..... | ....**........ |
| .........*.... | ......**.*.... | .....******... | .....*..**.... | .....**...*... | ....*....**... | ....**..***... | ....**....*... | ...*...**..... | ......*....... |
| .....**....... | ....*.*....... | ......**...... | ....*....*.... | ...**.**.*.... | ....*...*..... | ........*..... | ....**.**..... | .......***.... | .........*.... |
| ....***....... | ....*......... | ...**.*....... | ...**.**...... | ......**...... | ........*..... | .....*..*..... | .....**.*..... | ........*..... | .............. |
| .....*........ | ....***....... | ....**........ | ...**.*....... | ...**.*....... | ....*.**...... | ....*.**...... | ....*..*...... | ....*...*..... | .....*..*..... |
| .............. | .............. | ......*....... | ......*....... | .....*........ | ....**........ | ....***....... | ....*.**...... | ....*.**...... | ....*.**...... |
| .............. | ......*....... | ......*....... | .............. | .............. | .............. | .............. | .....*........ | .....*........ | ....*......... |
| .....***...... | .....*.*...... | ....****...... | ...**...*..... | .......**..... | .......*.*.... | ........*..... | ......*.*..... | .....***...... | ....**.**..... |
| ....*.**...... | ...**...*..... | ...**..**..... | .......**..... | .......***.... | ......*..*.... | .....****..... | .....*..*..... | .....*..**.... | .......**..... |
| ...**...*..... | ...*....*..... | ...**......... | ...**...*..... | ...**..**..... | ...**.*....... | ......**...... | ....*...*..... | ....**........ | ....*..**..... |
| ....*****..... | ......****.... | .........*.... | ....*......... | ...**..***.... | ......*....... | ...**......... | .....*........ | .....***...... | ....*..*...... |
| ....**...*.... | ....*...*..... | .....*...*.... | .....**.**.... | ....*.*.**.... | ....*.....*... | ......**...... | ......**...... | ......*....... | .......*...... |
| ......*....... | ......**...... | .....**.*..... | .....**.**.... | ....*.....*... | ....*.**..*... | ...**.**...... | .............. | .....*........ | .....*.*...... |
| ......**...... | ......*.*..... | ......*.*..... | .....**.**.... | .....**...*... | ....*.*....... | ......*....... | ....*.**...... | ......**...... | .....**....... |
| .......**..... | ........*..... | ........*..... | ........**.... | .....**....... | .......*...... | .....*........ | .....**....... | ....*......... | .......*...... |
| .....*.*...... | .......*...... | .......**..... | ......*.*..... | ......*....... | ....*......... | ......*....... | ....*.**...... | ...*....*..... | ...**......... |
| .....*.*...... | .......*...... | ......**...... | ....*****..... | ....***.**.... | ...*..****.... | ...**.**.*.... | ...******..... | ...*.......... | ..***......... |
| ....***....... | ...**.*....... | ...***........ | ...*....*..... | ...***...*.... | ...*...*.*.... | ...*.....*.... | ...*...**..... | ...*....*..... | ..**...***.... |
| ..*.*......... | ...**......... | ...***.**..... | ..*....**..... | .......*...... | ....***....... | ....***....... | | | |
| ........*..... | .......***.... | ...****..*.... | | | | | | | |
$
Stripping roots and inserting question marks for fixed board search is sort of unavoidably going to involve understanding at least a little about W and/or UWI views (see above).
Finally, about saving/loading state. This is not super well-trodden ground as for my part most searches I do are enormous and I do not want to afford the disk space and wear involved.
All three search subcommands take "--state-file" which will cause them to initially load that state file if it exists and to checkpoint to it after each round of expansion.
There is also rctl (on linux only), which can be used asynchronously to ask a running search to save its state. E.g. if you're only running one rctl target (one search) you should be able to run in the "ars" subdirectory:
Code: Select all
cargo run -p ars_rctl_cli invoke --ep llsss checkpt
The next time the search is at a place it can checkpoint (the end of an expansion round), it should choose a filename and output something like:
Code: Select all
20260809 16:03:34 [INFO] Checkpointed LLSSS state to llsss.20260809-160334.bin in 285.40909ms
There are some other options to disambiguate targets (like "--pid") as well as a "checkpt_to" which takes a specified path.