amling search program principles discussion / brain dump

For scripts to aid with computation or simulation in cellular automata.
amling
Posts: 1228
Joined: April 2nd, 2020, 9:47 pm

Re: amling search program principles discussion / brain dump

Post by amling »

I reran the p3 statorless maxpop 140 search under MDSE V2 as another test/benchmark. Both found all four orientations as expected and produced identical column sizes the entire way.

Last time I believe this had taken ~20 hours and reached VmPeak ~300 GB, although that may have been on a different machine. This time it (MDSE V1) took ~22h and reached VmPeak 328.26 GB while MDSE V2 took ~46h and reached VmPeak 87.40 GB.

87.40 GB is just barely in the range for what I think of as more "normal" computers, e.g. for most (if not all) of the last decade my main personal laptop has had at least 64 GB and I think this search would be doable in 64 GB plus swap, at least if you really wanted it. The internal estimates of memory at that VmPeak were:

Code: Select all

Memory: total 81.15 GB (ss 75.46 MB, bcol 2.64 GB, col 20.34 GB, left_edge 1.61 KB, right_edge 1.61 KB, ss_views 750.45 MB, left_edge_long 8 B, right_edge_long 8 B, closure_left_bcol_long 1.32 GB, closure_right_bcol_long 1.32 GB, left2_bcol_long 1.32 GB, right_bcol_long 1.32 GB, right2_bcol_long 1.32 GB, middle_col_long 12.69 GB, left2_col_long 12.69 GB, right_col_long 12.69 GB, right2_col_long 12.69 GB)
More than half of it is in those last 4x12.69 GB xxx_col_long (middle_col_long through right2_col_long) which is indeed a tough part of expansion. If we were willing to change mid_steps semantics slightly we could have a middle_bcol_long (bcol instead of [j]col) which would save one of the four. I struggle to imagine how to save more than that other than of course MDSE V3. In a hypothetical MDSE V3 we imagine we would save col (20.34 GB) plus all four of those xxx_col_long (4x12.69 GB) and thus might hope to save 75.1 GB, or almost all of it. MDSE V3 is certainly my next big aspiration.

22h -> 46h is a much better ratio than I might have expected from previous benchmarking. For both runs the vast majority of time was in maxpop r2l/l2r_weights which was ~2.4x slower. Next biggest on the V2 side is default pre-partial build_path which was ~3.7x. It falls off pretty rapidly after that. Both of those are just parallel walks over [j]cols so I don't understand why they got such different ratios. I'm not entirely sure what to make of all of it, other than to hope that some of better ratio is due to search bigness rather than just search structure and that maybe other big MDSE V2 searches will do better than in the benchmarking I had before this.
User avatar
NNlk05
Posts: 662
Joined: January 14th, 2026, 8:42 pm
Location: Exploring in the Jungle of the INT Rulespace
Contact:

Re: amling search program principles discussion / brain dump

Post by NNlk05 »

Is zram effective against LLSSS? It works pretty well with qfind, in my experience.
Feci quod potui, faciant meliora potentes.

Code: Select all

x = 10, y = 3, rule = B34twz/S23
b2o4b2o$obo4bobo$2bo4bo!
[[ AUTOSTART AUTOHIDEGUI TRACK 0 -47/270 ZOOM 4 GPS 45 STEP 3 THEME BOOK ]]
https://nnlk05.github.io

=3
amling
Posts: 1228
Joined: April 2nd, 2020, 9:47 pm

Re: amling search program principles discussion / brain dump

Post by amling »

NNlk05 wrote: September 6th, 2026, 12:15 pm Is zram effective against LLSSS? It works pretty well with qfind, in my experience.
I had never even heard of this "zram" before. I don't know enough about qfind's memory representation to extract much meaning from that, although it's interesting to hear.

LLSSS's memory is mostly in "jcols" and outside of that mostly in "bcols".

Under default configuration (MDSE V1 w/o older "jcols V2"), both are just giant blocks of u32 indices into other structures. I would assume they are more or less unpatterned other than remaining within the range of legal values. That is some redundancy as the range of legal values is not generally [0, 2^32), but it's not clear to me if it's enough to be a real win.

EDIT: Thinking more on this I realize that jcols have a little pattern: every other u32 is a "left" index and those are stored ascending and likely have a wealth of adjacent repeats. Every other other u32 is a "right" index and these are stored ascending for a fixed left index which may or may not add up to anything. I think the bottom line here is still "maybe", although it's a little more optimistic.

Under the older "jcols V2", jcols are stored pretty efficiently once they overflow u32s (lower 32 bits in a block of u32s and higher bits generally packed quite carefully in a separate place). As jcols are most of memory I would be very pessimistic about searches that hit that u32 limit benefitting from zram.

Under MDSE V2 it's all BitTrees instead which I suspect are gonna be extremely random-looking and I would be similarly pessimistic.

Of course speculation is no substitute for data. My interest is certainly piqued and I would love to hear how it goes if anyone tries it, but I have enough on my plate that I'm not gonna rush off and do it.
Last edited by amling on September 6th, 2026, 1:04 pm, edited 1 time in total.
User avatar
NNlk05
Posts: 662
Joined: January 14th, 2026, 8:42 pm
Location: Exploring in the Jungle of the INT Rulespace
Contact:

Re: amling search program principles discussion / brain dump

Post by NNlk05 »

amling wrote: September 6th, 2026, 12:37 pm I had never even heard of this "zram" before. I don't know enough about qfind's memory representation to extract much meaning from that, although it's interesting to hear.
https://en.wikipedia.org/wiki/Zram
Feci quod potui, faciant meliora potentes.

Code: Select all

x = 10, y = 3, rule = B34twz/S23
b2o4b2o$obo4bobo$2bo4bo!
[[ AUTOSTART AUTOHIDEGUI TRACK 0 -47/270 ZOOM 4 GPS 45 STEP 3 THEME BOOK ]]
https://nnlk05.github.io

=3
amling
Posts: 1228
Joined: April 2nd, 2020, 9:47 pm

Re: amling search program principles discussion / brain dump

Post by amling »

I've sketched "simple_vv" and "simple_vv_diag" geometries, pushed to codeberg just now as of 2d06e9e4aa72. simple_vv is is U=X, W=Y, e.g. "c6k-1" can be written instead as "simple_vv:-1:-2:6", a hypothetical "c6c-1" could be "simple_vv:-1:-3:6", etc. simple_vv_diag is U=X-Y, W=X+Y, e.g. "c6k-1/U=X-Y/W=X+Y" can be written instead as "simple_vv_diag:-1:-2:6".

I'm not entirely sure what, if anything, we should add to the tutorial about this. It's easy enough to add rows to the table labelled "simple_vv[_diag]:VX:VY:VT" with "Spaceship direction" "custom" and "Search direction" either "south" or "southeast". The problem in my mind is what to say about the difference between named geometries and their simple_vv analogues. It's sort of a mess where some are identical to their counterparts (e.g. c6k-1), some are strictly better (e.g. c2-f2b), some are weirdly slightly different in terms of phase order in each row but probably comparable (e.g. 2c2-f2b), and some are a mix of better and phased differently (e.g. 2c4-f2b). I guess the tutorial-level summary is probably something like "probably prefer named geometries above where available"? Maybe we would just put this all in its own section at the bottom with the other complex topics?
User avatar
LuveelVoom
Posts: 589
Joined: April 27th, 2022, 7:59 pm

Re: amling search program principles discussion / brain dump

Post by LuveelVoom »

How do I do maxpop searches?
amling
Posts: 1228
Joined: April 2nd, 2020, 9:47 pm

Re: amling search program principles discussion / brain dump

Post by amling »

LuveelVoom wrote: September 11th, 2026, 8:08 pm How do I do maxpop searches?
The most recent cut of this explanation is here.

EDIT: It occurs to me that that explanation didn't really address --wao-tile-error-mask. The default is safe in the sense that it shouldn't miss anything but in certain geometries it's going to find the same ships in multiple alignments and depending on circumstances this duplication can be avoided. If you aren't able to complete what you want maybe check back in here with more details (rules, speeds, populations), etc. and we can see if there is anything we can do.
User avatar
LuveelVoom
Posts: 589
Joined: April 27th, 2022, 7:59 pm

Re: amling search program principles discussion / brain dump

Post by LuveelVoom »

I've noticed that many LLSSS searches tend to get stuck for a really long time on the frontend and then complete the rest of the ship relatively quickly. Two questions:

1. How does one start a search from a partial? This would be useful if one already has a wide frontend and wants to do a narrower search below it.

2. I feel like purely using partials might be too constraining as it would be impossible to backtrack on the end of the frontend (unless the frontend is very clearly defined). (I would have to test this to be sure, though). Is there any possibility of a "pseudo-partial" mode where the search starts out with a frontend but is able to backtrack if needed? Does this already exist?

EDIT:
amling wrote: August 31st, 2026, 1:04 pm "@yolo_1gp" might even be tutorial-level, although maybe we come up with a better name first...
Might I suggest "@extend_1gen_partial" or something similar (assuming I'm understanding how it works correctly?)
Last edited by LuveelVoom on September 12th, 2026, 11:22 pm, edited 1 time in total.
amling
Posts: 1228
Joined: April 2nd, 2020, 9:47 pm

Re: amling search program principles discussion / brain dump

Post by amling »

LuveelVoom wrote: September 12th, 2026, 7:27 pm How does one start a search from a partial? This would be useful if one already has a wide frontend and wants to do a narrower search below it.
I think the most recent survey of partial extension tools and techniques is here. Since then I had had some more thoughts and sketched "@yolo_1gp" to try to deal with single generation "partials". Those mad ramblings end here. The short version is probably use '@yolo_1gp("some-file.rle")' as your "start file". It will print out near the top of the search the full multi-generation input grids it has constructed.
LuveelVoom wrote: September 12th, 2026, 7:27 pm I feel like purely using partials might be too constraining as it would be impossible to backtrack on the end of the frontend (unless the frontend is very clearly defined). (I would have to test this to be sure, though). Is there any possibility of a "pseudo-partial" mode where the search starts out with a frontend but is able to backtrack if needed? Does this already exist?
I have nothing so automatic and I think generally feel pretty good about getting by with manually "backtracking" with --top-pad at my own discretion. Fixed board and recentering both generally take --top-pad to extend the search space one W row up. This has always worked with fixed board picture inputs (with question marks) and as of somewhat recently will also work with typical recentering inputs (with no question marks). Should work with either any form of @yolo_1gp.

Please, please, if you do use @yolo_1gp, let me know how it goes. You'll be the first real user and its behaviour is very much up for discussion/improvement.
User avatar
NNlk05
Posts: 662
Joined: January 14th, 2026, 8:42 pm
Location: Exploring in the Jungle of the INT Rulespace
Contact:

Re: amling search program principles discussion / brain dump

Post by NNlk05 »

Can you explain how WAO works?
Feci quod potui, faciant meliora potentes.

Code: Select all

x = 10, y = 3, rule = B34twz/S23
b2o4b2o$obo4bobo$2bo4bo!
[[ AUTOSTART AUTOHIDEGUI TRACK 0 -47/270 ZOOM 4 GPS 45 STEP 3 THEME BOOK ]]
https://nnlk05.github.io

=3
amling
Posts: 1228
Joined: April 2nd, 2020, 9:47 pm

Re: amling search program principles discussion / brain dump

Post by amling »

NNlk05 wrote: September 16th, 2026, 11:59 pm Can you explain how WAO works?
The tutorial summary for simple use: "force (a) live cell(s) in the first row". Slightly more detailed would be to say a cell not matching the background agar which is more or less going to be accurate so long as you're starting with magic grid @bg.

My last best efforts to explain the principles in detail can be found here. The core concepts should be mostly correct although I believe defaults have changed since then as perhaps have some of the finer details of tile error mask. Both the defaults and the mask changes I think were back around here.

If you have a more specific goal I might be able to provide more specific guidance and in general you should not be shy about dumping your plans/commands here for a consult.
User avatar
NNlk05
Posts: 662
Joined: January 14th, 2026, 8:42 pm
Location: Exploring in the Jungle of the INT Rulespace
Contact:

Re: amling search program principles discussion / brain dump

Post by NNlk05 »

Can you please teach me how to do oscillator searches with LLSSS?
Feci quod potui, faciant meliora potentes.

Code: Select all

x = 10, y = 3, rule = B34twz/S23
b2o4b2o$obo4bobo$2bo4bo!
[[ AUTOSTART AUTOHIDEGUI TRACK 0 -47/270 ZOOM 4 GPS 45 STEP 3 THEME BOOK ]]
https://nnlk05.github.io

=3
Sokwe
Moderator
Posts: 3378
Joined: July 9th, 2009, 2:44 pm

Re: amling search program principles discussion / brain dump

Post by Sokwe »

NNlk05 wrote: September 17th, 2026, 6:44 pm Can you please teach me how to do oscillator searches with LLSSS?
I would say for most oscillator searches you are better off using LLS with JLS to set up the search as described here and here. LLSSS should perhaps only be used for oscillators when more accessible programs are insufficient, although I don't know what cases those are. If you are intent on learning how to run an oscillator search in LLSSS (hopefully after you've learned LLS), then look here for an example.

Also, when making a request like this it's good to have an example of what exactly you want to search for. That helps determine what the ideal search program is and allows an example setup to be constructed without needing to invent an example and hope that it's helpful.
-Matthias Merzenich
amling
Posts: 1228
Joined: April 2nd, 2020, 9:47 pm

Re: amling search program principles discussion / brain dump

Post by amling »

NNlk05 wrote: September 17th, 2026, 6:44 pm Can you please teach me how to do oscillator searches with LLSSS?
As Sokwe says, you are almost certainly better off with a different search program.

To LLSSS, oscillators are just spaceships that happen to move an offset of zero and so in general it's just another geometry to it. Humans are often surprised to realize that a pN search includes any "oscillator" of any period dividing N (include p1, i.e. still lifes) for the same reason that a c/2 spaceship would be found at 2c/4. For rules with still lifes this can make search projects difficult to frame, requiring some trick to force a changing cell of some sort. Coupled with performance generally having not been so subjectively great for oscillator geometries (and especially above p4), it's really not worth the fight unless you need some very specific obscure feature that LLSSS includes. I don't really know the state of other search programs so well, but my best guesses would be things like unlimited width searches for negative results, unlimited width searches with maxpop for population bound results, maybe spine_nfa constraint for weird uses, etc.
User avatar
LuveelVoom
Posts: 589
Joined: April 27th, 2022, 7:59 pm

Re: amling search program principles discussion / brain dump

Post by LuveelVoom »

I would like to run a search for c/7d at the next level above the current maximum width, but LLSSS seems to use a different sense of logical width than other search programs. What would the appropriate command be for this?
amling
Posts: 1228
Joined: April 2nd, 2020, 9:47 pm

Re: amling search program principles discussion / brain dump

Post by amling »

LuveelVoom wrote: September 19th, 2026, 12:52 am I would like to run a search for c/7d at the next level above the current maximum width, but LLSSS seems to use a different sense of logical width than other search programs. What would the appropriate command be for this?
I'm not really sure what you're asking. What is "current"? What kind of search are you wanting? Fixed board? Recentering? Asymmetric "down"? Asymmetric f2b? Symmetric f2b?

Recentering's notion of width, mid_steps, is only slightly like a width at all and I don't think is going to have much comparison elsewhere except maybe ikpx. Fixed board's notion, the constant passed to @bg magic grid, is more width-like, but even then a "down" geometry's notion is still sort of weird. A f2b geometry's notion is closest, but is going to be off by a constant for edges that is going to depend on symmetry and the width can only be easily expanded two half diagonals at a time.

If it's this last bit you're asking about, you should be able to figure out the width you're getting by looking at the resulting board and counting. Each increment in @bg input corresponds to adding two half diagonals. You can see my thoughts on how to fake adding one by adding two and using a constraint here and here.

Maybe we could add an automated version of that, like --constraint last_half_diagonal_bg or something? I'd have to think about how to make it work for arbitrary background agars.
User avatar
LuveelVoom
Posts: 589
Joined: April 27th, 2022, 7:59 pm

Re: amling search program principles discussion / brain dump

Post by LuveelVoom »

amling wrote: September 19th, 2026, 11:26 am
LuveelVoom wrote: September 19th, 2026, 12:52 am I would like to run a search for c/7d at the next level above the current maximum width, but LLSSS seems to use a different sense of logical width than other search programs. What would the appropriate command be for this?
I'm not really sure what you're asking. What is "current"? What kind of search are you wanting? Fixed board? Recentering? Asymmetric "down"? Asymmetric f2b? Symmetric f2b?

Recentering's notion of width, mid_steps, is only slightly like a width at all and I don't think is going to have much comparison elsewhere except maybe ikpx. Fixed board's notion, the constant passed to @bg magic grid, is more width-like, but even then a "down" geometry's notion is still sort of weird. A f2b geometry's notion is closest, but is going to be off by a constant for edges that is going to depend on symmetry and the width can only be easily expanded two half diagonals at a time.

If it's this last bit you're asking about, you should be able to figure out the width you're getting by looking at the resulting board and counting. Each increment in @bg input corresponds to adding two half diagonals. You can see my thoughts on how to fake adding one by adding two and using a constraint here and here.

Maybe we could add an automated version of that, like --constraint last_half_diagonal_bg or something? I'd have to think about how to make it work for arbitrary background agars.
Symmetric f2b, both even and odd. I'll just count since it doesn't seem like there's any easy comparison.
amling
Posts: 1228
Joined: April 2nd, 2020, 9:47 pm

Re: amling search program principles discussion / brain dump

Post by amling »

It's certainly not easy, but I thought I would leave an accounting of some of LLSSS's measurement philosophy and especially how it shakes out for typical cases.

Generally applicable in all cases, is that the number passed to '@bg' for fixed board searches is the entire board, as measured in U steps, and that you lose some amount to the edges, whose width is AF2-1 many "columns" (measured in U steps). Additionally, how many effective columns are lost varies depending on the type of edge and geometry.

Perhaps easier to see in orthogonal f2b searches where U=X and with a fully-nondeterministic rule (so "Unique" view can show you exactly what is and isn't fixed). In typical configuration of AF2=3 you lose 2 columns, so a '@bg(7)' search loses 2 columns on each side and has 3 that can vary:

Code: Select all

$ rlife llsss --rule 'B?012345678/S?012345678' c1-f2b '@bg(7)'
...
20260921 10:26:05 [INFO] Unique:
20260921 10:26:05 [INFO] | ....... |
20260921 10:26:05 [INFO] | ....... |
20260921 10:26:05 [INFO] | ..???.. |
...
In diagonal f2b geometries U=X-Y which is two HDs so the board is twice as many half diagonals as the '@bg' number and you lose 4 on each side, so a '@bg(7)' searches loses 8 of 14 and has 6 half diagonals that can vary:

Code: Select all

$ rlife llsss --rule 'B?012345678/S?012345678' c2d-f2b '@bg(7)'
...
20260921 10:27:43 [INFO] Unique:
20260921 10:27:43 [INFO] |            |       .    |
20260921 10:27:43 [INFO] |       ..   |      ...   |
20260921 10:27:43 [INFO] |      ....  |     .....  |
20260921 10:27:43 [INFO] |     ...... |    ......  |
20260921 10:27:43 [INFO] |    ......  |   ....?.   |
20260921 10:27:43 [INFO] |   ....??   |  ....??    |
20260921 10:27:43 [INFO] |  ....??    | ....??     |
20260921 10:27:43 [INFO] | ....??     | ....?      |
20260921 10:27:43 [INFO] |  ....      |  ...       |
20260921 10:27:43 [INFO] |   ..       |   .        |
Now if you want a symmetric search you have to figure out where the line of symmetry falls to figure out how many columns/HDs are lost to duplication...

For orthogonal even/gse it's going to fall between the first and second column, so '@bg(7)' now only loses 1 on the left (first two are duplicates of each other) and has 4 columns that vary independently:

Code: Select all

$ rlife llsss --rule 'B2/S' c1-f2b '@bg(7)' --left-edge even --filters bcaf
...
20260921 10:31:47 [INFO] Unique:
20260921 10:31:47 [INFO] | ....... |
20260921 10:31:47 [INFO] | ....... |
20260921 10:31:47 [INFO] | ?????.. |
...
20260921 10:31:47 [INFO] Firstest:
20260921 10:31:47 [INFO] | ....... |
20260921 10:31:47 [INFO] | ....... |
20260921 10:31:47 [INFO] | **..... |
20260921 10:31:47 [INFO] | ....... |
20260921 10:31:47 [INFO] | ..*.... |
...
For orthogonal gso/odd it places the axis of symmetry on the left-most column so you lose 0 on the left. '@bg(7)' now has 5 independent columns:

Code: Select all

$ rlife llsss c2-f2b '@bg(7)' --left-edge odd --filters bcaf
20260921 10:32:55 [INFO] Unique:
20260921 10:32:55 [INFO] | ....... | ....... |
20260921 10:32:55 [INFO] | ....... | ....... |
20260921 10:32:55 [INFO] | ?????.. |         |
...
20260921 10:32:55 [INFO] Random partial:
20260921 10:32:55 [INFO] |         |  SS     |
20260921 10:32:55 [INFO] | ....... | ....... |
20260921 10:32:55 [INFO] | ....... | ....... |
20260921 10:32:55 [INFO] | *...... | **..... |
20260921 10:32:55 [INFO] | **..... | ..*.... |
20260921 10:32:55 [INFO] | ***.... | ...*... |
20260921 10:32:55 [INFO] | ..**... | ...*... |
20260921 10:32:55 [INFO] | .**.... |         |
...
For diagonal gse it places the axis of symmetry between the second and third HDs so you lose 2 HDs. '@bg(7)' thus has 8 HDs that can vary independently:

Code: Select all

$ rlife llsss --rule 'B?012345678/S?012345678' c4d-f2b '@bg(7)' --left-edge gse
...
20260921 10:36:22 [INFO] Unique:
20260921 10:36:22 [INFO] |            |            |       .    |       .    |
20260921 10:36:22 [INFO] |       ..   |       ..   |      ...   |      ...   |
20260921 10:36:22 [INFO] |      ....  |      ....  |     .....  |     .....  |
20260921 10:36:22 [INFO] |     ...... |     ...... |    ......  |    ......  |
20260921 10:36:22 [INFO] |    ......  |    ......  |   ....?.   |   ....?.   |
20260921 10:36:22 [INFO] |   ....??   |   ....??   |  ....??    |  ....??    |
20260921 10:36:22 [INFO] |  ....??    |  ....??    | ....??     | ....??     |
20260921 10:36:22 [INFO] | ....??     | ....??     | ...??      | ...??      |
20260921 10:36:22 [INFO] |  ..??      |  ..??      |  .??       |  .??       |
20260921 10:36:22 [INFO] |   ??       |   ??       |   ?        |   ?        |
...
$ rlife llsss c4d-f2b '@bg(7)' --left-edge gse --filters bcaf
...
20260921 10:34:39 [INFO] Random partial:
20260921 10:34:39 [INFO] |             |             |        .    |        .    |
20260921 10:34:39 [INFO] |        ..   |        ..   |       ...   |       ...   |
20260921 10:34:39 [INFO] |       ....  |       ....  |      .....  |      .....  |
20260921 10:34:39 [INFO] |      ...... |     S...... |     ....... |    S......  |
20260921 10:34:39 [INFO] |     ....... |    S......  |    .......  |   S......   |
20260921 10:34:39 [INFO] |    .......  |    ......   |   ......*   |   .....*    |
20260921 10:34:39 [INFO] |   .......   |   ......    |  ......*    |  ......     |
20260921 10:34:39 [INFO] |  .....**    |  ......     |  .....*     |  ...**      |
20260921 10:34:39 [INFO] |   ..***     |   ..*.      |   .***      |   .**       |
20260921 10:34:39 [INFO] |    .*.      |    **       |    *.       |    .        |
20260921 10:34:39 [INFO] |     *       |             |             |             |
...
For diagonal odd/gso it places the axis of symmetry on the second HD so you lose 1 HD (first duplicated with third). '@bg(7)' thus has 9 HDs that can vary independently:

Code: Select all

$ rlife llsss --rule 'B?012345678/S?012345678' c4d-f2b '@bg(7)' --left-edge odd
...
20260921 10:37:44 [INFO] Unique:
20260921 10:37:44 [INFO] |            |            |       .    |       .    |
20260921 10:37:44 [INFO] |       ..   |       ..   |      ...   |      ...   |
20260921 10:37:44 [INFO] |      ....  |      ....  |     .....  |     .....  |
20260921 10:37:44 [INFO] |     ...... |     ...... |    ......  |    ......  |
20260921 10:37:44 [INFO] |    ......  |    ......  |   ....?.   |   ....?.   |
20260921 10:37:44 [INFO] |   ....??   |   ....??   |  ....??    |  ....??    |
20260921 10:37:44 [INFO] |  ....??    |  ....??    | ....??     | ....??     |
20260921 10:37:44 [INFO] | ....??     | ....??     | ...??      | ...??      |
20260921 10:37:44 [INFO] |  ..??      |  ..??      |  .??       |  .??       |
20260921 10:37:44 [INFO] |   ??       |   ??       |   ?        |   ?        |
...
$ rlife llsss c4d-f2b '@bg(7)' --left-edge odd --filters bcaf
...
20260921 10:38:13 [INFO] Random partial:
20260921 10:38:13 [INFO] |             |             |        .    |        .    |
20260921 10:38:13 [INFO] |        ..   |        ..   |       ...   |       ...   |
20260921 10:38:13 [INFO] |       ....  |       ....  |      .....  |      .....  |
20260921 10:38:13 [INFO] |      ...... |     S...... |     ......  |    S......  |
20260921 10:38:13 [INFO] |     ......  |    S......  |    ......   |   S......   |
20260921 10:38:13 [INFO] |    ......   |    .....*   |   .....*    |   .....*    |
20260921 10:38:13 [INFO] |   ......    |   .....*    |  ......     |  ....*.     |
20260921 10:38:13 [INFO] |  .....*     |  ....**     |  ...**      |  ...*.      |
20260921 10:38:13 [INFO] |   ..*.      |   ..**      |   .*.       |   .**       |
20260921 10:38:13 [INFO] |    *.       |    **       |    .        |    *        |
...
I think a lot of the reason this is so complicated is that LLSSS wasn't built to be a spaceship finder, even if that's what the influx of new users seem to be mostly using it for. I built it to solve quartermax which was all done with a bunch of weird, weird branch solving searches with complex boundary conditions, where there really is no sensible notion of "how many independent columns/HDs is this search". Any attempts to pretend to be a spaceship finder (symmetric edge implementations, '@bg' magic starting grid, named diagonal f2b geometries, etc.) are afterthoughts and it no doubt shows.

I wonder if we would have better luck making a separate fixed board bcaf spaceship finder subcommand and ripping out all the weird options. If you rip out enough of them, then converting independent column/HD count to board width (and/or last-HD-is-bg constraint) is maybe doable. It's just hard to want to put in the work considering I don't use LLSSS this way and I'm pretty sure LLSSS is not in contention for top search program speed anyway. I'm also not excited about the endless parade of "please add this one more feature to spaceship search mode" issues that are no doubt going to follow.
User avatar
LuveelVoom
Posts: 589
Joined: April 27th, 2022, 7:59 pm

Re: amling search program principles discussion / brain dump

Post by LuveelVoom »

Amling, you have found results like this, where there is a component that connects to a narrower partial, resulting in a ship that is unsearchably wide overall:

Code: Select all

x = 49, y = 44, rule = B3/S23
18bo11bo$17b3o9b3o$19bo9bo$15bob2o11b2obo$15bo4b3o3b3o4bo$14bob3ob3o3b
3ob3obo2$13b3ob4obo3bob4ob3o$13b2o7bo3bo7b2o$13b3o2bob2o5b2obo2b3o2$18b
o2bo5bo2bo$18bo11bo$16b2o2bobo3bobo2b2o$16bo3b3o3b3o3bo$14b2o4bo2bobo
2bo4b2o$12bob2obob2o2bobo2b2obob2obo$11b2obo3bo3bo3bo3bo3bob2o$10bobo
3b2o13b2o3bobo$10b2o8bo7bo8b2o$11bo7b3o5b3o7bo$19b2obo3bob2o$20b3o3b3o
$12b2o7b2o3b2o7b2o$8bo31bo$7b3o29b3o$6bo2b2o27b2o2bo$6bo3b2o25b2o3bo$
6bobob2o25b2obobo$7b3o29b3o$8b2o29b2o$6b2o33b2o$6bobo31bobo$3b3o37b3o
$3bo41bo$b2obo39bob2o$b2o43b2o$o47bo$obo43bobo$obo43bobo$b3o41b3o3$2b
o43bo!
What is the technique you used to do this? In particular, how could I do this for diagonal searches, since all the examples I've been able to find were for orthogonal searches? (I really don't understand much about how LLSSS works, so I would prefer a simple explanation, but a complex one is fine)

You also mentioned some technique for doing (something?) without human intervention here: https://conwaylife.com/forums/viewtopic ... 04#p210404

Is that related to 232P7H3V0-esque searches?
amling
Posts: 1228
Joined: April 2nd, 2020, 9:47 pm

Re: amling search program principles discussion / brain dump

Post by amling »

LuveelVoom wrote: Yesterday, 3:03 pm What is the technique you used to (find 232P7H3V0)?
Ah, what a trip down memory lane... I don't seem to have explained it at the time, but 232P7H3V0 was actually found by LGOL, my own gfind descendant I had written before LLSSS. It has the ability to "recenter" rows (I think called "floating rows" in other programs?) and when used so it is somewhat like LLSSS recentering mode. I even used finding 232P7H3V0 as a test case when I was first writing recentering mode for LLSSS. This is somewhat documented around here, although I don't seem to have shown my work in the form of actual input grids.

I dug through my repository of search artifacts and I did find what was likely the input used although I struggle to remember the historical details of why it doesn't have (didn't need?) roots:

Code: Select all

|              |              |              |              |              | ............ | .....***.... |
|              |              |              | ......*.*... | .....**.*... | ......*..... | .....***.... |
| ....*...*... | ...*...**... | ......***... | .......**... | ......*.*... |              |              |
| ........*... | ............ | ............ |              |              |              |              |
LuveelVoom wrote: Yesterday, 3:03 pm ... for diagonal searches ... all the examples I've been able to find were for orthogonal searches ...
One of LLSSS's strengths is that it is mostly indifferent to geometry and most features have been built respecting that. There are of course counterexamples of features that only work with very limited geometries (skew_gutter ends, @maxpop magic grids, maybe a few more), but I think most tools and techniques discussed for this sort of problem will not care. Manually editting diagonal grids per se is maybe tougher, although in UWI view they are no longer diagonal. Also cutting diagonal grids in half for symmetry is going to be a right mess in terms of getting the axis of symmetry to align on the right HD (mod 2).
LuveelVoom wrote: Yesterday, 3:03 pm You also mentioned some technique for doing (something?) without human intervention here: https://conwaylife.com/forums/viewtopic ... 04#p210404
That post was mostly about pre-reify-autochoke use and tuning and less about getting past the wide front. In both cases (LGOL and LLSSS) I have been starting with that known wide front and looking to do my own completion of the thin branch at its back. It is possible a from-zeros 3c/7 search with pre-reify-autochoke could survive finding that wide front before having to give up and shrink the search width and thus find the ship from scratch, but I have not specifically tried.

If I, Keith Amling, were doing this sort of thing (extending a partial) today, I would construct my own input grids by dumping out seven generations of the known head and painting in some question marks. This sort of thing has been discussed at length above. Unfortunately all efforts to try to automate any of this are sort of useless here between not working with symmetric patterns and not working when the target small connection point has another branch (solvable or otherwise) next to it on the side.

The closest I think I can swing here is something like taking Soba and ripping out the center part to trick ingest-1gp into cutting it how I want. With p1.rle:

Code: Select all

x = 31, y = 42, rule = B3/S23
9bo11bo$7b2ob2o7b2ob2o$7b2ob2o7b2ob2o$6bo3b2o7b2o3bo$6b3o13b3o$9b3ob2o
b2ob3o$5b3o5b2ob2o5b3o$4bo5b2o7b2o5bo$3bo6b2o2bobo2b2o6bo$9b3o2bobo2b
3o$3bo6bo9bo6bo$4b2o5bo7bo5b2o$8b2o2b2o3b2o2b2o$8b5o5b5o$6bo7bobo7bo$
5bo2bo3b3ob3o3bo2bo$2b3o21b3o$2b2ob2obo2bo2bobo2bo2bob2ob2o$2b3o6bo2bo
bo2bo6b3o$2b3o7bo5bo7b3o$2ob2o6b2o5b2o6b2ob2o$4o7b2o5b2o7b4o$11bo7bo$
13bo3bo$4b3o6bo3bo6b3o$6bo17bo$2bo25bo$2bo2bo19bo2bo$4b2o19b2o$2b2ob2o
17b2ob2o$bo2b3o17b3o2bo$3ob2o19b2ob3o$2o27b2o$bob3o19b3obo$5b3o15b3o$
6bo17bo$7b3o11b3o$8b2o11b2o$8bobo9bobo2$10bo9bo$9bo11bo!

Code: Select all

$ rlife mgp-tool ingest-1gp 3c7-f2b p1.rle
20260922 13:10:27 [INFO] Final grid:
20260922 13:10:27 [INFO]    |                                     |                                     |                                     |                                     |                                     | ................................... | ................................... |
20260922 13:10:27 [INFO]    |                                     |                                     |                                     | ................................... | ................................... | ................................... | ................................... |
20260922 13:10:27 [INFO]    | ................................... | ................................... | ................................... | ................................... | ................................... | ...........*...........*........... | ..........***.........***.......... |
20260922 13:10:27 [INFO]    | ................................... | ................................... | ................................... | ...........*...........*........... | ..........***.........***.......... | ..........***.........***.......... | ..........*.*.........*.*.......... |
20260922 13:10:27 [INFO]    | ...........*...........*........... | ...........*...........*........... | ..........***.........***.......... | ..........***.........***.......... | ..........*..*.......*..*.......... | ............*.........*............ | .........*..*.........*..*......... |
20260922 13:10:27 [INFO]    | ..........*.*.........*.*.......... | .........**.**.......**.**......... | .........*...*.......*...*......... | .........*..**.......**..*......... | .........**.............**......... | ........*.**...........**.*........ | .........*.****.....****.*......... |
20260922 13:10:27 [INFO]    | .........**.**.......**.**......... | .........**.**.......**.**......... | ........*.*...*.....*...*.*........ | ........*...*.*.....*.*...*........ | .......**.*...*.....*...*.**....... | ........*....***...***....*........ | .......**....*.*...*.*....**....... |
20260922 13:10:27 [INFO]    | .........*...............*......... | ........*...**.......**...*........ | ........*...**.......**...*........ | .......**.**.**.....**.**.**....... | ..........***.**...**.***.......... | .......*.***.***...***.***.*....... | ........***.**.*...*.**.***........ |
20260922 13:10:27 [INFO]    | .........***..*.....*..***......... | ........***.............***........ | ........***...*.....*...***........ | .......****...*.....*...****....... | ......*.....................*...... | ................................... | ......*........*...*........*...... |
20260922 13:10:27 [INFO]    | .......*.......*...*.......*....... | ...........***.**.**.***........... | .......*...**.***.***.**...*....... | .......*...****.*.*.****...*....... | .......*.*.*****...*****.*.*....... | ......***.****.*...*.****.***...... | ......*.*..**.*.....*.**..*.*...... |
20260922 13:10:27 [INFO]    | ........**..**.**.**.**..**........ | .......***.....**.**.....***....... | .......**..*...**.**...*..**....... | ...........*...........*........... | .......*...*..**...**..*...*....... | ......**.......*...*.......**...... | .....*...**....*...*....**...*..... |
20260922 13:10:27 [INFO]    | ........*.*....*...*....*.*........ | ......*.....**.......**.....*...... | ......***...*****.*****...***...... | ......*.*...**..*.*..**...*.*...... | .......*...***.......***...*....... | ......***..*.**.....**.*..***...... | ......*.*.....*.....*.....*.*...... |
20260922 13:10:27 [INFO]    | .....***.***..**...**..***.***..... | .....*......**..*.*..**......*..... | ..............*.....*.............. | .......*....*.*.....*.*....*....... | .......*....*.........*....*....... | ................................... | .......*....***.....***....*....... |
20260922 13:10:27 [INFO]    | .....**.****.***...***.****.**..... | ...........***..*.*..***........... | ...........*...........*........... | ................................... | ...........***.......***........... | ...........*..*.....*..*........... | ................................... |
20260922 13:10:27 [INFO]    | ......****....**...**....****...... | .....*......*.........*......*..... | ......*....*...........*....*...... | ..........**.*.......*.**.......... | ..........*..**.....**..*.......... | ...........*...........*........... | ...........**.*.....*.**........... |
20260922 13:10:27 [INFO]    | .......*.....**.....**.....*....... | ......**.....*.......*.....**...... | ......*....****.....****....*...... | ..........*****.....*****.......... | .............**.....**............. | .........**..*.*...*.*..**......... | .........**.**.*...*.**.**......... |
20260922 13:10:27 [INFO]    | ...........*..*.....*..*........... | ..........**..**...**..**.......... | ..........*....*...*....*.......... | .........**....*...*....**......... | .........**....*...*....**......... | .........*...***...***...*......... | .........**.**.**.**.**.**......... |
20260922 13:10:27 [INFO]    | ..........***.*.....*.***.......... | ..........*****.....*****.......... | .........**.***.....***.**......... | ............****...****............ | ........*...*...*.*...*...*........ | .......**....*..*.*..*....**....... | ......**........*.*........**...... |
20260922 13:10:27 [INFO]    | .........*.....**.**.....*......... | ........*.......*.*.......*........ | .........**.*...*.*...*.**......... | ......*.***.*.*.*.*.*.*.***.*...... | .....**.***.*.*.*.*.*.*.***.**..... | .....*.**.*.**..*.*..**.*.**.*..... | ....**...*.******.******.*...**.... |
20260922 13:10:27 [INFO]    | ........***.**.**.**.**.***........ | .......*..*...***.***...*..*....... | .....***.......**.**.......***..... | .....***..*.....*.*.....*..***..... | ....*.....**....*.*....**.....*.... | ....**.*...*...*...*...*...*.**.... | .....*.*...**.........**...*.*..... |
20260922 13:10:27 [INFO]    | .....**.**...............**.**..... | ....***.....................***.... | ....*...**....*.*.*.*....**...*.... | ....**..*.......*.*.......*..**.... | ...*....**...............**....*... | ...*.*...**.............**...*.*... | ...*.**...*.............*...**.*... |
20260922 13:10:27 [INFO]    | ....**.**.**.****.****.**.**.**.... | ....**.**.*..*..*.*..*..*.**.**.... | ...*...*...................*...*... | ...**...*....*.......*....*...**... | ...***........*.....*........***... | ...**........*.......*........**... | ...*.*......***.....***......*.*... |
20260922 13:10:27 [INFO]    | ..............**...**.............. | ....***......*..*.*..*......***.... | ...*.........***...***.........*... | .............*.*...*.*............. | ............**.......**............ | ....*.......***.....***.......*.... | ...**.........................**... |
20260922 13:10:27 [INFO]    | .....*.......................*..... | ....***.......*.....*.......***.... | .......*......**...**......*....... | .............*..*.*..*............. | .............*..*.*..*............. | ............**.*...*.**............ | ...............*...*............... |
20260922 13:10:27 [INFO]    | ..**.**......*.......*......**.**.. | ..**.**......**.....**......**.**.. | ..*............*...*............*.. | ......*.......**...**.......*...... | .....*........**...**........*..... | .............***...***............. | ............*...*.*...*............ |
20260922 13:10:27 [INFO]    | ...**........**.....**........**... | ..****.......**.....**.......****.. | ..*..**.....*.........*.....**..*.. | ..*.**.......................**.*.. | ..............*.....*.............. | ......*.......**...**.......*...... | ......**.....*.*...*.*.....**...... |
20260922 13:10:27 [INFO]    | ................................... | .............*.......*............. | ...**........*.......*........**... | ...****......*.......*......****... | ...*..**...................**..*... | ....****...................****.... | ....*..*...................*..*.... |
20260922 13:10:27 [INFO]    | ..............***.***.............. | ...............*...*............... | .......*......*.....*......*....... | .......**.................**....... | ....**..*.................*..**.... | ....**..*.................*..**.... | .......*...................*....... |
20260922 13:10:27 [INFO]    | ......**...................**...... | ......***......*...*......***...... | .......**.................**....... | .......**.................**....... | ......*..*...............*..*...... | .....*.......................*..... | ....**.......................**.... |
20260922 13:10:27 [INFO]    | .......**.................**....... | ........*.................*........ | ........*.................*........ | .......**.................**....... | ................................... | ................................... | ......*.....................*...... |
20260922 13:10:27 [INFO]    | ....***.....................***.... | ....*.........................*.... | ................................... | ......**...................**...... | .....*..*.................*..*..... | .....*.*...................*.*..... | ....**.......................**.... |
20260922 13:10:27 [INFO]    | .....**.....................**..... | ....*..*...................*..*.... | .....***...................***..... | .....**.....................**..... | .....***...................***..... |                                     |                                     |
20260922 13:10:27 [INFO]    | ......*.....................*...... | ......**...................**...... | ....*.........................*.... |                                     |                                     |                                     |                                     |
This cut it where I would want it, but there is no automated means of folding it in half for odd symmetry and due to the sibling branch in the center, there is no automated way to make the recentering input I would want ("picture" mode, i.e. with question marks). I guess for completeness, I would...

Pipe through `rlife grid-tool to-uwi 3c7-f2b`

Code: Select all

| ................................... |
| ................................... |
| ................................... |
| ................................... |
| ................................... |
| ................................... |
| ................................... |
| ................................... |
| ................................... |
| ................................... |
| ................................... |
| ................................... |
| ................................... |
| ................................... |
| ...........*...........*........... |
| ...........*...........*........... |
| ...........*...........*........... |
| ...........*...........*........... |
| ..........***.........***.......... |
| ..........***.........***.......... |
| ..........***.........***.......... |
| ..........*.*.........*.*.......... |
| ..........***.........***.......... |
| ..........***.........***.......... |
| .........**.**.......**.**......... |
| ..........*.*.........*.*.......... |
| ..........*..*.......*..*.......... |
| .........*...*.......*...*......... |
| .........**.**.......**.**......... |
| ............*.........*............ |
| .........*..**.......**..*......... |
| .........**.**.......**.**......... |
| .........*..*.........*..*......... |
| .........**.............**......... |
| ........*.*...*.....*...*.*........ |
| .........*...............*......... |
| ........*.**...........**.*........ |
| ........*...*.*.....*.*...*........ |
| ........*...**.......**...*........ |
| .........*.****.....****.*......... |
| .......**.*...*.....*...*.**....... |
| ........*...**.......**...*........ |
| .........***..*.....*..***......... |
| ........*....***...***....*........ |
| .......**.**.**.....**.**.**....... |
| ........***.............***........ |
| .......**....*.*...*.*....**....... |
| ..........***.**...**.***.......... |
| ........***...*.....*...***........ |
| .......*.......*...*.......*....... |
| .......*.***.***...***.***.*....... |
| .......****...*.....*...****....... |
| ...........***.**.**.***........... |
| ........***.**.*...*.**.***........ |
| ......*.....................*...... |
| .......*...**.***.***.**...*....... |
| ........**..**.**.**.**..**........ |
| ................................... |
| .......*...****.*.*.****...*....... |
| .......***.....**.**.....***....... |
| ......*........*...*........*...... |
| .......*.*.*****...*****.*.*....... |
| .......**..*...**.**...*..**....... |
| ........*.*....*...*....*.*........ |
| ......***.****.*...*.****.***...... |
| ...........*...........*........... |
| ......*.....**.......**.....*...... |
| ......*.*..**.*.....*.**..*.*...... |
| .......*...*..**...**..*...*....... |
| ......***...*****.*****...***...... |
| .....***.***..**...**..***.***..... |
| ......**.......*...*.......**...... |
| ......*.*...**..*.*..**...*.*...... |
| .....*......**..*.*..**......*..... |
| .....*...**....*...*....**...*..... |
| .......*...***.......***...*....... |
| ..............*.....*.............. |
| .....**.****.***...***.****.**..... |
| ......***..*.**.....**.*..***...... |
| .......*....*.*.....*.*....*....... |
| ...........***..*.*..***........... |
| ......*.*.....*.....*.....*.*...... |
| .......*....*.........*....*....... |
| ...........*...........*........... |
| ......****....**...**....****...... |
| ................................... |
| ................................... |
| .....*......*.........*......*..... |
| .......*....***.....***....*....... |
| ...........***.......***........... |
| ......*....*...........*....*...... |
| .......*.....**.....**.....*....... |
| ...........*..*.....*..*........... |
| ..........**.*.......*.**.......... |
| ......**.....*.......*.....**...... |
| ................................... |
| ..........*..**.....**..*.......... |
| ......*....****.....****....*...... |
| ...........*..*.....*..*........... |
| ...........*...........*........... |
| ..........*****.....*****.......... |
| ..........**..**...**..**.......... |
| ...........**.*.....*.**........... |
| .............**.....**............. |
| ..........*....*...*....*.......... |
| ..........***.*.....*.***.......... |
| .........**..*.*...*.*..**......... |
| .........**....*...*....**......... |
| ..........*****.....*****.......... |
| .........**.**.*...*.**.**......... |
| .........**....*...*....**......... |
| .........**.***.....***.**......... |
| .........*.....**.**.....*......... |
| .........*...***...***...*......... |
| ............****...****............ |
| ........*.......*.*.......*........ |
| .........**.**.**.**.**.**......... |
| ........*...*...*.*...*...*........ |
| .........**.*...*.*...*.**......... |
| ........***.**.**.**.**.***........ |
| .......**....*..*.*..*....**....... |
| ......*.***.*.*.*.*.*.*.***.*...... |
| .......*..*...***.***...*..*....... |
| ......**........*.*........**...... |
| .....**.***.*.*.*.*.*.*.***.**..... |
| .....***.......**.**.......***..... |
| .....**.**...............**.**..... |
| .....*.**.*.**..*.*..**.*.**.*..... |
| .....***..*.....*.*.....*..***..... |
| ....***.....................***.... |
| ....**...*.******.******.*...**.... |
| ....*.....**....*.*....**.....*.... |
| ....*...**....*.*.*.*....**...*.... |
| ....**.**.**.****.****.**.**.**.... |
| ....**.*...*...*...*...*...*.**.... |
| ....**..*.......*.*.......*..**.... |
| ....**.**.*..*..*.*..*..*.**.**.... |
| .....*.*...**.........**...*.*..... |
| ...*....**...............**....*... |
| ...*...*...................*...*... |
| ..............**...**.............. |
| ...*.*...**.............**...*.*... |
| ...**...*....*.......*....*...**... |
| ....***......*..*.*..*......***.... |
| ...*.**...*.............*...**.*... |
| ...***........*.....*........***... |
| ...*.........***...***.........*... |
| .....*.......................*..... |
| ...**........*.......*........**... |
| .............*.*...*.*............. |
| ....***.......*.....*.......***.... |
| ...*.*......***.....***......*.*... |
| ............**.......**............ |
| .......*......**...**......*....... |
| ..**.**......*.......*......**.**.. |
| ....*.......***.....***.......*.... |
| .............*..*.*..*............. |
| ..**.**......**.....**......**.**.. |
| ...**.........................**... |
| .............*..*.*..*............. |
| ..*............*...*............*.. |
| ...**........**.....**........**... |
| ............**.*...*.**............ |
| ......*.......**...**.......*...... |
| ..****.......**.....**.......****.. |
| ...............*...*............... |
| .....*........**...**........*..... |
| ..*..**.....*.........*.....**..*.. |
| ................................... |
| .............***...***............. |
| ..*.**.......................**.*.. |
| .............*.......*............. |
| ............*...*.*...*............ |
| ..............*.....*.............. |
| ...**........*.......*........**... |
| ..............***.***.............. |
| ......*.......**...**.......*...... |
| ...****......*.......*......****... |
| ...............*...*............... |
| ......**.....*.*...*.*.....**...... |
| ...*..**...................**..*... |
| .......*......*.....*......*....... |
| ......**...................**...... |
| ....****...................****.... |
| .......**.................**....... |
| ......***......*...*......***...... |
| ....*..*...................*..*.... |
| ....**..*.................*..**.... |
| .......**.................**....... |
| .......**.................**....... |
| ....**..*.................*..**.... |
| .......**.................**....... |
| ........*.................*........ |
| .......*...................*....... |
| ......*..*...............*..*...... |
| ........*.................*........ |
| ....***.....................***.... |
| .....*.......................*..... |
| .......**.................**....... |
| ....*.........................*.... |
| ....**.......................**.... |
| ................................... |
| ................................... |
| .....**.....................**..... |
| ................................... |
| ......**...................**...... |
| ....*..*...................*..*.... |
| ......*.....................*...... |
| .....*..*.................*..*..... |
| .....***...................***..... |
| ......*.....................*...... |
| .....*.*...................*.*..... |
| .....**.....................**..... |
| ......**...................**...... |
| ....**.......................**.... |
| .....***...................***..... |
| ....*.........................*.... |
Chop off the 17 left columns to set it up for odd symmetry:

Code: Select all

| .................. |
| .................. |
| .................. |
| .................. |
| .................. |
| .................. |
| .................. |
| .................. |
| .................. |
| .................. |
| .................. |
| .................. |
| .................. |
| .................. |
| ......*........... |
| ......*........... |
| ......*........... |
| ......*........... |
| .....***.......... |
| .....***.......... |
| .....***.......... |
| .....*.*.......... |
| .....***.......... |
| .....***.......... |
| ....**.**......... |
| .....*.*.......... |
| ....*..*.......... |
| ....*...*......... |
| ....**.**......... |
| .....*............ |
| ....**..*......... |
| ....**.**......... |
| .....*..*......... |
| .......**......... |
| ...*...*.*........ |
| ........*......... |
| ......**.*........ |
| ...*.*...*........ |
| ....**...*........ |
| ...****.*......... |
| ...*...*.**....... |
| ....**...*........ |
| ...*..***......... |
| ..***....*........ |
| ...**.**.**....... |
| .......***........ |
| ..*.*....**....... |
| ..**.***.......... |
| ...*...***........ |
| ..*.......*....... |
| ..***.***.*....... |
| ...*...****....... |
| .**.***........... |
| ..*.**.***........ |
| ...........*...... |
| .***.**...*....... |
| .**.**..**........ |
| .................. |
| .*.****...*....... |
| .**.....***....... |
| ..*........*...... |
| ..*****.*.*....... |
| .**...*..**....... |
| ..*....*.*........ |
| ..*.****.***...... |
| ......*........... |
| ....**.....*...... |
| ...*.**..*.*...... |
| ..**..*...*....... |
| .*****...***...... |
| ..**..***.***..... |
| ..*.......**...... |
| .*..**...*.*...... |
| .*..**......*..... |
| ..*....**...*..... |
| ....***...*....... |
| ...*.............. |
| ..***.****.**..... |
| ...**.*..***...... |
| ...*.*....*....... |
| .*..***........... |
| ...*.....*.*...... |
| .....*....*....... |
| ......*........... |
| ..**....****...... |
| .................. |
| .................. |
| .....*......*..... |
| ...***....*....... |
| ....***........... |
| ......*....*...... |
| ...**.....*....... |
| ...*..*........... |
| ....*.**.......... |
| ....*.....**...... |
| .................. |
| ...**..*.......... |
| ...****....*...... |
| ...*..*........... |
| ......*........... |
| ...*****.......... |
| ..**..**.......... |
| ...*.**........... |
| ...**............. |
| ..*....*.......... |
| ...*.***.......... |
| ..*.*..**......... |
| ..*....**......... |
| ...*****.......... |
| ..*.**.**......... |
| ..*....**......... |
| ...***.**......... |
| .**.....*......... |
| ..***...*......... |
| ..****............ |
| .*.......*........ |
| .**.**.**......... |
| .*...*...*........ |
| .*...*.**......... |
| .**.**.***........ |
| .*..*....**....... |
| .*.*.*.***.*...... |
| .***...*..*....... |
| .*........**...... |
| .*.*.*.***.**..... |
| .**.......***..... |
| ........**.**..... |
| .*..**.*.**.*..... |
| .*.....*..***..... |
| ...........***.... |
| .******.*...**.... |
| .*....**.....*.... |
| .*.*....**...*.... |
| .****.**.**.**.... |
| ..*...*...*.**.... |
| .*.......*..**.... |
| .*..*..*.**.**.... |
| .....**...*.*..... |
| ........**....*... |
| ..........*...*... |
| ..**.............. |
| .......**...*.*... |
| ....*....*...**... |
| .*..*......***.... |
| .......*...**.*... |
| ...*........***... |
| ..***.........*... |
| ............*..... |
| ....*........**... |
| ..*.*............. |
| ...*.......***.... |
| ...***......*.*... |
| ....**............ |
| ..**......*....... |
| ....*......**.**.. |
| ...***.......*.... |
| .*..*............. |
| ...**......**.**.. |
| .............**... |
| .*..*............. |
| ..*............*.. |
| ...**........**... |
| ..*.**............ |
| ..**.......*...... |
| ...**.......****.. |
| ..*............... |
| ..**........*..... |
| .....*.....**..*.. |
| .................. |
| ..***............. |
| ............**.*.. |
| ....*............. |
| .*...*............ |
| ...*.............. |
| ....*........**... |
| .***.............. |
| ..**.......*...... |
| ....*......****... |
| ..*............... |
| ..*.*.....**...... |
| ..........**..*... |
| ...*......*....... |
| ..........**...... |
| ..........****.... |
| .........**....... |
| ..*......***...... |
| ..........*..*.... |
| .........*..**.... |
| .........**....... |
| .........**....... |
| .........*..**.... |
| .........**....... |
| .........*........ |
| ..........*....... |
| ........*..*...... |
| .........*........ |
| ...........***.... |
| ............*..... |
| .........**....... |
| .............*.... |
| ............**.... |
| .................. |
| .................. |
| ...........**..... |
| .................. |
| ..........**...... |
| ..........*..*.... |
| ...........*...... |
| .........*..*..... |
| ..........***..... |
| ...........*...... |
| ..........*.*..... |
| ...........**..... |
| ..........**...... |
| ............**.... |
| ..........***..... |
| .............*.... |
Paint a block of question marks (or in cases with more than one side-by-side section in UWI mode, paint matching blocks) over the incomplete end all the way to the bottom:

Code: Select all

| .................. |
| .................. |
| .................. |
| .................. |
| .................. |
| .................. |
| .................. |
| .................. |
| .................. |
| .................. |
| .................. |
| .................. |
| .................. |
| .................. |
| ......*........... |
| ......*........... |
| ......*........... |
| ......*........... |
| .....***.......... |
| .....***.......... |
| .....***.......... |
| .....*.*.......... |
| .....***.......... |
| .....***.......... |
| ....**.**......... |
| .....*.*.......... |
| ....*..*.......... |
| ....*...*......... |
| ....**.**......... |
| .....*............ |
| ....**..*......... |
| ....**.**......... |
| .....*..*......... |
| .......**......... |
| ...*...*.*........ |
| ........*......... |
| ......**.*........ |
| ...*.*...*........ |
| ....**...*........ |
| ...****.*......... |
| ...*...*.**....... |
| ....**...*........ |
| ...*..***......... |
| ..***....*........ |
| ...**.**.**....... |
| .......***........ |
| ..*.*....**....... |
| ..**.***.......... |
| ...*...***........ |
| ..*.......*....... |
| ..***.***.*....... |
| ...*...****....... |
| .**.***........... |
| ..*.**.***........ |
| ...........*...... |
| .***.**...*....... |
| .**.**..**........ |
| .................. |
| .*.****...*....... |
| .**.....***....... |
| ..*........*...... |
| ..*****.*.*....... |
| .**...*..**....... |
| ..*....*.*........ |
| ..*.****.***...... |
| ......*........... |
| ....**.....*...... |
| ...*.**..*.*...... |
| ..**..*...*....... |
| .*****...***...... |
| ..**..***.***..... |
| ..*.......**...... |
| .*..**...*.*...... |
| .*..**......*..... |
| ..*....**...*..... |
| ....***...*....... |
| ...*.............. |
| ..***.****.**..... |
| ...**.*..***...... |
| ...*.*....*....... |
| .*..***........... |
| ...*.....*.*...... |
| .....*....*....... |
| ......*........... |
| ..**....****...... |
| .................. |
| .................. |
| .....*......*..... |
| ...***....*....... |
| ....***........... |
| ......*....*...... |
| ...**.....*....... |
| ...*..*........... |
| ....*.**.......... |
| ....*.....**...... |
| .................. |
| ...**..*.......... |
| ...****....*...... |
| ...*..*........... |
| ......*........... |
| ...*****.......... |
| ..**..**.......... |
| ...*.**........... |
| ...**............. |
| ..*....*.......... |
| ...*.***.......... |
| ..*.*..**......... |
| ..*....**......... |
| ...*****.......... |
| ..*.**.**......... |
| ..*....**......... |
| ...***.**......... |
| .**.....*......... |
| ..***...*......... |
| ..****............ |
| .*.......*........ |
| .**.**.**......... |
| .*...*...*........ |
| .*...*.**......... |
| .**.**.***........ |
| .*..*....**....... |
| .*.*.*.***.*...... |
| .***...*..*....... |
| .*........**...... |
| .*.*.*.***.**..... |
| .**.......***..... |
| ........**.**..... |
| .*..**.*.**.*..... |
| .*.....*..***..... |
| ...........***.... |
| .******.*...**.... |
| .*....**.....*.... |
| .*.*....**...*.... |
| .****.**.**.**.... |
| ..*...*...*.**.... |
| .*.......*..**.... |
| .*..*..*.**.**.... |
| .....**...*.*..... |
| ........**....*... |
| ..........*...*... |
| ..**.............. |
| .......**...*.*... |
| ....*....*...**... |
| .*..*......?????.. |
| .......*...?????.. |
| ...*.......?????.. |
| ..***......?????.. |
| ...........?????.. |
| ....*......?????.. |
| ..*.*......?????.. |
| ...*.......?????.. |
| ...***.....?????.. |
| ....**.....?????.. |
| ..**......*?????.. |
| ....*......?????.. |
| ...***.....?????.. |
| .*..*......?????.. |
| ...**......?????.. |
| ...........?????.. |
| .*..*......?????.. |
| ..*........?????.. |
| ...**......?????.. |
| ..*.**.....?????.. |
| ..**.......?????.. |
| ...**......?????.. |
| ..*........?????.. |
| ..**.......?????.. |
| .....*.....?????.. |
| ...........?????.. |
| ..***......?????.. |
| ...........?????.. |
| ....*......?????.. |
| .*...*.....?????.. |
| ...*.......?????.. |
| ....*......?????.. |
| .***.......?????.. |
| ..**.......?????.. |
| ....*......?????.. |
| ..*........?????.. |
| ..*.*.....*?????.. |
| ..........*?????.. |
| ...*......*?????.. |
| ..........*?????.. |
| ..........*?????.. |
| .........**?????.. |
| ..*......**?????.. |
| ..........*?????.. |
| .........*.?????.. |
| .........**?????.. |
| .........**?????.. |
| .........*.?????.. |
| .........**?????.. |
| .........*.?????.. |
| ..........*?????.. |
| ........*..?????.. |
| .........*.?????.. |
| ...........?????.. |
| ...........?????.. |
| .........**?????.. |
| ...........?????.. |
| ...........?????.. |
| ...........?????.. |
| ...........?????.. |
| ...........?????.. |
| ...........?????.. |
| ..........*?????.. |
| ..........*?????.. |
| ...........?????.. |
| .........*.?????.. |
| ..........*?????.. |
| ...........?????.. |
| ..........*?????.. |
| ...........?????.. |
| ..........*?????.. |
| ...........?????.. |
| ..........*?????.. |
| ...........?????.. |
Remove the now-disconnected bits of the branch we're overwriting with question marks:

Code: Select all

| .................. |
| .................. |
| .................. |
| .................. |
| .................. |
| .................. |
| .................. |
| .................. |
| .................. |
| .................. |
| .................. |
| .................. |
| .................. |
| .................. |
| ......*........... |
| ......*........... |
| ......*........... |
| ......*........... |
| .....***.......... |
| .....***.......... |
| .....***.......... |
| .....*.*.......... |
| .....***.......... |
| .....***.......... |
| ....**.**......... |
| .....*.*.......... |
| ....*..*.......... |
| ....*...*......... |
| ....**.**......... |
| .....*............ |
| ....**..*......... |
| ....**.**......... |
| .....*..*......... |
| .......**......... |
| ...*...*.*........ |
| ........*......... |
| ......**.*........ |
| ...*.*...*........ |
| ....**...*........ |
| ...****.*......... |
| ...*...*.**....... |
| ....**...*........ |
| ...*..***......... |
| ..***....*........ |
| ...**.**.**....... |
| .......***........ |
| ..*.*....**....... |
| ..**.***.......... |
| ...*...***........ |
| ..*.......*....... |
| ..***.***.*....... |
| ...*...****....... |
| .**.***........... |
| ..*.**.***........ |
| ...........*...... |
| .***.**...*....... |
| .**.**..**........ |
| .................. |
| .*.****...*....... |
| .**.....***....... |
| ..*........*...... |
| ..*****.*.*....... |
| .**...*..**....... |
| ..*....*.*........ |
| ..*.****.***...... |
| ......*........... |
| ....**.....*...... |
| ...*.**..*.*...... |
| ..**..*...*....... |
| .*****...***...... |
| ..**..***.***..... |
| ..*.......**...... |
| .*..**...*.*...... |
| .*..**......*..... |
| ..*....**...*..... |
| ....***...*....... |
| ...*.............. |
| ..***.****.**..... |
| ...**.*..***...... |
| ...*.*....*....... |
| .*..***........... |
| ...*.....*.*...... |
| .....*....*....... |
| ......*........... |
| ..**....****...... |
| .................. |
| .................. |
| .....*......*..... |
| ...***....*....... |
| ....***........... |
| ......*....*...... |
| ...**.....*....... |
| ...*..*........... |
| ....*.**.......... |
| ....*.....**...... |
| .................. |
| ...**..*.......... |
| ...****....*...... |
| ...*..*........... |
| ......*........... |
| ...*****.......... |
| ..**..**.......... |
| ...*.**........... |
| ...**............. |
| ..*....*.......... |
| ...*.***.......... |
| ..*.*..**......... |
| ..*....**......... |
| ...*****.......... |
| ..*.**.**......... |
| ..*....**......... |
| ...***.**......... |
| .**.....*......... |
| ..***...*......... |
| ..****............ |
| .*.......*........ |
| .**.**.**......... |
| .*...*...*........ |
| .*...*.**......... |
| .**.**.***........ |
| .*..*....**....... |
| .*.*.*.***.*...... |
| .***...*..*....... |
| .*........**...... |
| .*.*.*.***.**..... |
| .**.......***..... |
| ........**.**..... |
| .*..**.*.**.*..... |
| .*.....*..***..... |
| ...........***.... |
| .******.*...**.... |
| .*....**.....*.... |
| .*.*....**...*.... |
| .****.**.**.**.... |
| ..*...*...*.**.... |
| .*.......*..**.... |
| .*..*..*.**.**.... |
| .....**...*.*..... |
| ........**....*... |
| ..........*...*... |
| ..**.............. |
| .......**...*.*... |
| ....*....*...**... |
| .*..*......?????.. |
| .......*...?????.. |
| ...*.......?????.. |
| ..***......?????.. |
| ...........?????.. |
| ....*......?????.. |
| ..*.*......?????.. |
| ...*.......?????.. |
| ...***.....?????.. |
| ....**.....?????.. |
| ..**.......?????.. |
| ....*......?????.. |
| ...***.....?????.. |
| .*..*......?????.. |
| ...**......?????.. |
| ...........?????.. |
| .*..*......?????.. |
| ..*........?????.. |
| ...**......?????.. |
| ..*.**.....?????.. |
| ..**.......?????.. |
| ...**......?????.. |
| ..*........?????.. |
| ..**.......?????.. |
| .....*.....?????.. |
| ...........?????.. |
| ..***......?????.. |
| ...........?????.. |
| ....*......?????.. |
| .*...*.....?????.. |
| ...*.......?????.. |
| ....*......?????.. |
| .***.......?????.. |
| ..**.......?????.. |
| ....*......?????.. |
| ..*........?????.. |
| ..*.*......?????.. |
| ...........?????.. |
| ...*.......?????.. |
| ...........?????.. |
| ...........?????.. |
| ...........?????.. |
| ..*........?????.. |
| ...........?????.. |
| ...........?????.. |
| ...........?????.. |
| ...........?????.. |
| ...........?????.. |
| ...........?????.. |
| ...........?????.. |
| ...........?????.. |
| ...........?????.. |
| ...........?????.. |
| ...........?????.. |
| ...........?????.. |
| ...........?????.. |
| ...........?????.. |
| ...........?????.. |
| ...........?????.. |
| ...........?????.. |
| ...........?????.. |
| ...........?????.. |
| ...........?????.. |
| ...........?????.. |
| ...........?????.. |
| ...........?????.. |
| ...........?????.. |
| ...........?????.. |
| ...........?????.. |
| ...........?????.. |
| ...........?????.. |
| ...........?????.. |
| ...........?????.. |
| ...........?????.. |
Add one more column of blanks to the right and add roots "uu...uuRRR" on the top:

Code: Select all

| uuuuuuuuuuuuuuuuRRR |
| ................... |
| ................... |
| ................... |
| ................... |
| ................... |
| ................... |
| ................... |
| ................... |
| ................... |
| ................... |
| ................... |
| ................... |
| ................... |
| ................... |
| ......*............ |
| ......*............ |
| ......*............ |
| ......*............ |
| .....***........... |
| .....***........... |
| .....***........... |
| .....*.*........... |
| .....***........... |
| .....***........... |
| ....**.**.......... |
| .....*.*........... |
| ....*..*........... |
| ....*...*.......... |
| ....**.**.......... |
| .....*............. |
| ....**..*.......... |
| ....**.**.......... |
| .....*..*.......... |
| .......**.......... |
| ...*...*.*......... |
| ........*.......... |
| ......**.*......... |
| ...*.*...*......... |
| ....**...*......... |
| ...****.*.......... |
| ...*...*.**........ |
| ....**...*......... |
| ...*..***.......... |
| ..***....*......... |
| ...**.**.**........ |
| .......***......... |
| ..*.*....**........ |
| ..**.***........... |
| ...*...***......... |
| ..*.......*........ |
| ..***.***.*........ |
| ...*...****........ |
| .**.***............ |
| ..*.**.***......... |
| ...........*....... |
| .***.**...*........ |
| .**.**..**......... |
| ................... |
| .*.****...*........ |
| .**.....***........ |
| ..*........*....... |
| ..*****.*.*........ |
| .**...*..**........ |
| ..*....*.*......... |
| ..*.****.***....... |
| ......*............ |
| ....**.....*....... |
| ...*.**..*.*....... |
| ..**..*...*........ |
| .*****...***....... |
| ..**..***.***...... |
| ..*.......**....... |
| .*..**...*.*....... |
| .*..**......*...... |
| ..*....**...*...... |
| ....***...*........ |
| ...*............... |
| ..***.****.**...... |
| ...**.*..***....... |
| ...*.*....*........ |
| .*..***............ |
| ...*.....*.*....... |
| .....*....*........ |
| ......*............ |
| ..**....****....... |
| ................... |
| ................... |
| .....*......*...... |
| ...***....*........ |
| ....***............ |
| ......*....*....... |
| ...**.....*........ |
| ...*..*............ |
| ....*.**........... |
| ....*.....**....... |
| ................... |
| ...**..*........... |
| ...****....*....... |
| ...*..*............ |
| ......*............ |
| ...*****........... |
| ..**..**........... |
| ...*.**............ |
| ...**.............. |
| ..*....*........... |
| ...*.***........... |
| ..*.*..**.......... |
| ..*....**.......... |
| ...*****........... |
| ..*.**.**.......... |
| ..*....**.......... |
| ...***.**.......... |
| .**.....*.......... |
| ..***...*.......... |
| ..****............. |
| .*.......*......... |
| .**.**.**.......... |
| .*...*...*......... |
| .*...*.**.......... |
| .**.**.***......... |
| .*..*....**........ |
| .*.*.*.***.*....... |
| .***...*..*........ |
| .*........**....... |
| .*.*.*.***.**...... |
| .**.......***...... |
| ........**.**...... |
| .*..**.*.**.*...... |
| .*.....*..***...... |
| ...........***..... |
| .******.*...**..... |
| .*....**.....*..... |
| .*.*....**...*..... |
| .****.**.**.**..... |
| ..*...*...*.**..... |
| .*.......*..**..... |
| .*..*..*.**.**..... |
| .....**...*.*...... |
| ........**....*.... |
| ..........*...*.... |
| ..**............... |
| .......**...*.*.... |
| ....*....*...**.... |
| .*..*......?????... |
| .......*...?????... |
| ...*.......?????... |
| ..***......?????... |
| ...........?????... |
| ....*......?????... |
| ..*.*......?????... |
| ...*.......?????... |
| ...***.....?????... |
| ....**.....?????... |
| ..**.......?????... |
| ....*......?????... |
| ...***.....?????... |
| .*..*......?????... |
| ...**......?????... |
| ...........?????... |
| .*..*......?????... |
| ..*........?????... |
| ...**......?????... |
| ..*.**.....?????... |
| ..**.......?????... |
| ...**......?????... |
| ..*........?????... |
| ..**.......?????... |
| .....*.....?????... |
| ...........?????... |
| ..***......?????... |
| ...........?????... |
| ....*......?????... |
| .*...*.....?????... |
| ...*.......?????... |
| ....*......?????... |
| .***.......?????... |
| ..**.......?????... |
| ....*......?????... |
| ..*........?????... |
| ..*.*......?????... |
| ...........?????... |
| ...*.......?????... |
| ...........?????... |
| ...........?????... |
| ...........?????... |
| ..*........?????... |
| ...........?????... |
| ...........?????... |
| ...........?????... |
| ...........?????... |
| ...........?????... |
| ...........?????... |
| ...........?????... |
| ...........?????... |
| ...........?????... |
| ...........?????... |
| ...........?????... |
| ...........?????... |
| ...........?????... |
| ...........?????... |
| ...........?????... |
| ...........?????... |
| ...........?????... |
| ...........?????... |
| ...........?????... |
| ...........?????... |
| ...........?????... |
| ...........?????... |
| ...........?????... |
| ...........?????... |
| ...........?????... |
| ...........?????... |
| ...........?????... |
| ...........?????... |
| ...........?????... |
| ...........?????... |
| ...........?????... |
Pipe back through `rlife grid-tool from-uwi 3c7-f2b`

Code: Select all

|                     |                     |                     |                     |                     | ................... | ................... |
|                     |                     |                     | ................... | ................... | ................... | ................... |
| uuuuuuuuuuuuuuuuRRR | ................... | ................... | ................... | ................... | ......*............ | ......*............ |
| ................... | ................... | ................... | ......*............ | .....***........... | .....*.*........... | ....**.**.......... |
| ................... | ......*............ | .....***........... | .....***........... | .....*.*........... | ....**.**.......... | ....**.**.......... |
| .....***........... | .....***........... | ....*..*........... | .....*............. | .....*..*.......... | ........*.......... | ....**...*......... |
| ....*...*.......... | ....**..*.......... | .......**.......... | ......**.*......... | ...****.*.......... | ...*..***.......... | .......***......... |
| ...*...*.*......... | ...*.*...*......... | ...*...*.**........ | ..***....*......... | ..*.*....**........ | ..*.......*........ | .**.***............ |
| ....**...*......... | ...**.**.**........ | ..**.***........... | ..***.***.*........ | ..*.**.***......... | .**.**..**......... | .**.....***........ |
| ...*...***......... | ...*...****........ | ...........*....... | ................... | ..*........*....... | ..*....*.*......... | ....**.....*....... |
| .***.**...*........ | .*.****...*........ | ..*****.*.*........ | ..*.****.***....... | ...*.**..*.*....... | ..**..***.***...... | .*..**......*...... |
| .**...*..**........ | ......*............ | ..**..*...*........ | ..*.......**....... | ..*....**...*...... | ..***.****.**...... | .*..***............ |
| .*****...***....... | .*..**...*.*....... | ....***...*........ | ...**.*..***....... | ...*.....*.*....... | ..**....****....... | .....*......*...... |
| ...*............... | ...*.*....*........ | .....*....*........ | ................... | ...***....*........ | ...**.....*........ | ....*.....**....... |
| ......*............ | ................... | ....***............ | ...*..*............ | ................... | ...*..*............ | ..**..**........... |
| ......*....*....... | ....*.**........... | ...**..*........... | ......*............ | ...*.**............ | ...*.***........... | ...*****........... |
| ...****....*....... | ...*****........... | ...**.............. | ..*.*..**.......... | ..*.**.**.......... | .**.....*.......... | .*.......*......... |
| ..*....*........... | ..*....**.......... | ..*....**.......... | ..***...*.......... | .**.**.**.......... | .**.**.***......... | .***...*..*........ |
| ...***.**.......... | ..****............. | .*...*...*......... | .*..*....**........ | .*........**....... | ........**.**...... | ...........***..... |
| .*...*.**.......... | .*.*.*.***.*....... | .*.*.*.***.**...... | .*..**.*.**.*...... | .******.*...**..... | .****.**.**.**..... | .*..*..*.**.**..... |
| .**.......***...... | .*.....*..***...... | .*....**.....*..... | ..*...*...*.**..... | .....**...*.*...... | ..**............... | .*..*......?????... |
| .*.*....**...*..... | .*.......*..**..... | ........**....*.... | .......**...*.*.... | .......*...?????... | ...........?????... | ...*.......?????... |
| ..........*...*.... | ....*....*...**.... | ...*.......?????... | ....*......?????... | ...***.....?????... | ....*......?????... | ...**......?????... |
| ..***......?????... | ..*.*......?????... | ....**.....?????... | ...***.....?????... | ...........?????... | ...**......?????... | ...**......?????... |
| ..**.......?????... | .*..*......?????... | .*..*......?????... | ..*.**.....?????... | ..*........?????... | ...........?????... | ....*......?????... |
| ..*........?????... | ..**.......?????... | ..**.......?????... | ..***......?????... | .*...*.....?????... | .***.......?????... | ..*........?????... |
| .....*.....?????... | ...........?????... | ...*.......?????... | ..**.......?????... | ..*.*......?????... | ...........?????... | ..*........?????... |
| ....*......?????... | ....*......?????... | ...........?????... | ...........?????... | ...........?????... | ...........?????... | ...........?????... |
| ...*.......?????... | ...........?????... | ...........?????... | ...........?????... | ...........?????... | ...........?????... | ...........?????... |
| ...........?????... | ...........?????... | ...........?????... | ...........?????... | ...........?????... | ...........?????... | ...........?????... |
| ...........?????... | ...........?????... | ...........?????... | ...........?????... | ...........?????... | ...........?????... | ...........?????... |
| ...........?????... | ...........?????... | ...........?????... | ...........?????... | ...........?????... |                     |                     |
| ...........?????... | ...........?????... | ...........?????... |                     |                     |                     |                     |
| ...........?????... |                     |                     |                     |                     |                     |                     |
With this as p1.in I would probably choose to run as something like:

Code: Select all

$ rlife llsss-recentering 3c7-f2b p1.in --left-pad 09 --fuzzy-left-edge --right-pad 1 07
Maybe adding more --top-pad if I decided I wanted to allow a few more northward cells to be changeable. I'd like to recover --left-edge odd, but to do that I'd have to do something much more complicated than --fuzzy-left-edge to avoid paying for the sibling branch.

I don't know if any of these details are worth it. Right now you've basically got your choice of (a) learn to love editing grids and invest a ton of time in it, or (b) @yolo_1gp if your setup is simple enough.
User avatar
LuveelVoom
Posts: 589
Joined: April 27th, 2022, 7:59 pm

Re: amling search program principles discussion / brain dump

Post by LuveelVoom »

amling wrote: Yesterday, 4:32 pm I don't know if any of these details are worth it. Right now you've basically got your choice of (a) learn to love editing grids and invest a ton of time in it, or (b) @yolo_1gp if your setup is simple enough.
So for @yolo_1gp I can just throw a partial (in RLE form, or not) into the search? Does it work with symmetry, or will I have to split my partial around the diagonal axis? Does it work with recentering?

Hmm, If I do have to make input grids, I have not the slightest clue how I would extrapolate the orthogonal example to diagonal... this is going to be an interesting experience.

also, difficult post to quote!
amling
Posts: 1228
Joined: April 2nd, 2020, 9:47 pm

Re: amling search program principles discussion / brain dump

Post by amling »

LuveelVoom wrote: Yesterday, 5:29 pm So for @yolo_1gp I can just throw a partial (in RLE form, or not) into the search?
More or less. The code does theoretically have at least one other half-ass file format reader and they're adjudicated by file extension. The bottom line for normal use is name it with ".rle" and make it RLE.
LuveelVoom wrote: Yesterday, 5:29 pm Does it work with symmetry, or will I have to split my partial around the diagonal axis?
It works with symmetry even less than that. Even if your branch doesn't straddle the axis of symmetry you can't halve the pattern (assuming the pattern does straddle the axis somewhere). @yolo_1gp requires the pattern be complete at the top. "slices-tool ingest-1gp" is the previous attempt at solving this sort of problem which tries to handle partials that are incomplete at both ends, but it is a train wreck and a mess of heuristics. I can most of the time coax it into cutting correctly partials that are decently long, but it loses a lot on both ends and it can be very messy to convince it to cut right.

Maybe we would try to teach symmetry to mgp-tool (the code backing @yolo_1gp as a standalone tool)? Even that seems like a hopeless mess of fiddly details about how it works in which geometries, which we would presumably special-case to N orthogonal f2b and NW diagonal f2b only. Even then there are many painful and/or unanswered questions, like how do you even find the axis for GS partials in the general case? How does all of this interact with background agars? Etc.
LuveelVoom wrote: Yesterday, 5:29 pm Does it work with recentering?
Yes, as well as it works anywhere anyway. The mad ramblings I linked above include an example.
LuveelVoom wrote: Yesterday, 5:29 pm Hmm, If I do have to make input grids, I have not the slightest clue how I would extrapolate the orthogonal example to diagonal... this is going to be an interesting experience.
A long time ago I felt a similar despair about complicated geometries. Before I wrote grid-tool to-uwi and from-uwi I had made at most a handful of grids for geometries that were not U=X and W=Y (well, or Y-like like orthogonal f2b or b2f) and each one had been a terrible journey.

After that, things have got a lot better and I think the earlier-linked post really sums it up:
amling wrote: August 9th, 2026, 7:50 pm 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.
To that I might only add that "any editing tools you see fit" is really mostly block mode text editing.
User avatar
LuveelVoom
Posts: 589
Joined: April 27th, 2022, 7:59 pm

Re: amling search program principles discussion / brain dump

Post by LuveelVoom »

Alright, three more questions about grid editing.
1. Suppose I already have the partial and where I want to cut it; can I convert that directly into a grid, then a uwi, then edit that, without having to go through ingest_1gp?
2. Does the question mark section have to be large enough to accommodate the mid-steps I want to search at, or is it ok if it's small? Where should I cut into the partial with it? Should I put it just below the existing known cells or back up slightly to provide space for it to properly position the frontend?
3. Is there any viable way you know about to modify diagonal partials in the same way you modified the orthogonal partials, or am I just screwed (unless I can figure out some messed-up way to trick an AI into building it) (yes, yes, I know... but the pattern is the proof...)

Also, what on earth do the components of the command you proposed do???

(I keep editing this message, but something's unclear and this is a quick one: if I do have a complete partial, but it's symmetric, @yolo_1gp is not able to deal with it? Or is it able to?)

Sorry for pestering you... if this strategy works out, and I find what I'm looking for using it, I'll let you name it :mrgreen:
amling
Posts: 1228
Joined: April 2nd, 2020, 9:47 pm

Re: amling search program principles discussion / brain dump

Post by amling »

LuveelVoom wrote: Yesterday, 6:28 pm Suppose I already have the partial and where I want to cut it; can I convert that directly into a grid, then a uwi, then edit that, without having to go through ingest_1gp?
Depends on what you mean when you say "the partial"...

If you have multiple generations, as period and asterisks, with generations separated by pipes (we should really name this format...), then sure, you can feed any such XYT view through to-uwi. I often find myself starting from an output from another search's log this way.

If you have one generation then no, you're gonna have to do something to guess the intervening generations. You can see up-thread for my lengthy rants about how single generation partials have never made any sense (at least for me and my search programs). Before slices-tool ingest-1gp and mgp-tool and/or if I can't convince them to make sense of a single generation partial, I would dump generations out of golly one at a time and stick them together (usually in a second golly window). It's pretty painful. Somewhere up thread Sokwe had a take on a golly lua script to do this.
LuveelVoom wrote: Yesterday, 6:28 pm Does the question mark section have to be large enough to accommodate the mid-steps I want to search at, or is it ok if it's small? Where should I cut into the partial with it? Should I put it just below the existing known cells or back up slightly to provide space for it to properly position the frontend?
Usually I think of the question marks as placed to censor any CA discontinuities, but then rounded up to a full UVW prism (or aligned rectangles in UWI view), and extended all the way to the bottom of the search. The exact, exact, precise cell placement is not maybe that important as the --xxx-pad arguments (top/left/right) can/will generally be used to expand them outwards if you decide you want to allow more cells to be able to vary.

For recentering the width of the question marks isn't as meaningful as it is for fixed board, but you do probably want to reach at least one unrollable edge. As an example, consider an input like:

Code: Select all

| LLLuuuuuuuuuuuRRR |
| ...*.*.*.*.*.*... |
| ....*.*.*.*.*.... |
| ...*.*.*.*.*.*... |
| ....*.*.*.*.*.... |
| .....*.*.*.*..... |
| ......*.*.*...... |
| .......*.*....... |
| .......???....... |
| .......???....... |
With no pad this is the same as searching with (keeps 2 rows and 2 columns on top/left/right of question marks):

Code: Select all

| uuuuuuu |
| .*.*.*. |
| ..*.*.. |
| ..???.. |
| ..???.. |
mid_steps beyond about 4 aren't going to matter here as the pattern simply cannot get any wider with the roots all unique.

With --right-pad 04 this is:

Code: Select all

| uuuuuuuuuRR |
| .*.*.*..... |
| ..*.*...... |
| ..???????.. |
| ..???????.. |
And again, mid_steps is useless beyond about 8. We did reach the R's but there is no way to combine the 3-grams of columns beyond the board as-is.

Once we reach --right-pad 05...

Code: Select all

| uuuuuuuuuRRR |
| .*.*.*...... |
| ..*.*....... |
| ..????????.. |
| ..????????.. |
Now the right edge 3-gram (RRR) is repeatable and larger mid_steps have space to expand into, but only to the right.

Generally there are a few ways side padding goes:

(*) If you have a symmetry edge you must expand right up to it.

(*) If you want a fixed-style edge (where left edges of patterns are always right there), you can expand it up to wherever. This is sometimes used in branch solving to force leaving clearance on one side or deal with integrating with a neighboring branch.

(*) If you want an open edge (where it can unroll to the entire quarter plane if wanted), you need to reach up to the end of a cycle of repeating columns, as --right-pad 05 does above.
LuveelVoom wrote: Yesterday, 6:28 pm Is there any viable way you know about to modify diagonal partials in the same way you modified the orthogonal partials, or am I just screwed(?)
Generally once they're switched to UWI view they make nice, pretty rectangles? True in any geometry and is the entire point of UWI view. You can see e.g. here for some examples of making diagonal grids by editing rectangles.

Maybe it's worth it to give another, fresher example? Here is a random c/5 ship, truncated (p1.rle):

Code: Select all

x = 28, y = 39, rule = B3/S23
5bo$4b2o2b2o$3bobo2b2o$b2obo3bo$b2o2bo2b2o$o5b2o2bo$4o2bob3o$2b2o3b2o$
5bobo$4b2o2bo$14b3o$7bob2obob2o$10bobobobo$8b2o2bo5bo$9bo6b2o$9b2o5bo
2b2o$17bob3o$14b2ob2ob2o2$17bo$19bo$18bo2b2o$19bobob2o2$20bo3bo$19b2ob
o$19b2o$19b3o$21bo$23bo$21b2o2bo$23b2obo$25bobo2$20b3o$20b3o$20b2o$22b
o$22b3o!
Here it is, turned by mgp-tool into a possible fixed-board input:

Code: Select all

$ rlife mgp-tool ingest-1gp c5d-f2b p1.rle p1.mgp
20260922 16:16:24 [INFO] Saved to "p1.mgp".
$ rlife mgp-tool to-fixed-input c5d-f2b p1.mgp p1.in
20260922 16:16:56 [INFO] Saved to "p1.in".
$ cat p1.in
|                                                  |                                                  |                                                  |                                                  |                                                  |
|                                                  |                                                  |                                                  |                 .                                |                 .                                |
|                 ..                               |                 ..                               |                 ..                               |                ...                               |                ...                               |
|                ....                              |                ....                              |                ....                              |               .....                              |               .....                              |
|               ......                             |               ......                             |               ......                             |              .......                             |              .......                             |
|              ........                            |              ........                            |              ........                            |             .........                            |             .........                            |
|             ..........                           |             ..........                           |             ..........                           |            ...........                           |            ...........                           |
|            ............                          |            ............                          |            ............                          |           .....*.......                          |           ....**.......                          |
|           .....*........                         |           ....**........                         |           ....***.......                         |          .....****......                         |          ....*...**.....                         |
|          .....**..**.....                        |          ......**.**.....                        |          ....*...**......                        |         ....**.*.**......                        |         ....*.....*......                        |
|         .....*.*..**......                       |         ....**.*.*........                       |         ....**...*........                       |        .....**..**........                       |        ....*.**...........                       |
|        ....**.*...*........                      |        ....*..**.*.........                      |        ....*.....*.........                      |       .....*.....*.........                      |       ....**....**.........                      |
|       .....**..*..**........                     |       ....*.**.**.**........                     |       ....*.**....**........                     |      ....**.**....**........                     |      ....*..**....**........                     |
|      .....*.....**..*........                    |      .....*..*.**...*........                    |      ....**..*......*........                    |     .....**...*....*.........                    |     .....*..****..**.........                    |
|     ......****..*.***.........                   |     ......*..*..*...*.........                   |     ........**..*.............                   |    ........*...**.............                   |    .......*...*.*.............                   |
|    .........**...**............                  |    ..........**................                  |    .........**.**..............                  |   .............**..............                  |   ..........*.***..............                  |
|   .............*.*..............                 |   ...........*.*.*..............                 |   ...........*..................                 |  ...........**..................                 |  ............*..................                 |
|  .............**..*..............                |  .............***........*.......                |  .............*****.....**.......                | ..............*****.....**.......                | ................**......**.......                |
| ........................***.......               | ..................**...**.*.......               | ...............*..***...**........               | ..............**....**.*..*.......               | ..............*.....*..**.*.......               |
|  ................*.**.*.**.........              |  ..................**..............              |  .................*.**..**.........              |  ................**.***...*........              |  ................**.*.*............              |
|   ..................*.*.*.*.........             |   ..................*.*.*...........             |   ................*...****..........             |   ................*.................             |   ........................*.........             |
|    ...............**..*.....*........            |    ...............****.*.**..........            |    ................********.*........            |    ...............***.....***........            |    ...............*.*.....*.**.......            |
|     ...............*......**..........           |     ......................****........           |     ..............*..*......***.......           |     ...............*.*.*..***.*.......           |     ..............**......*...........           |
|      ..............**.....*..**........          |      ..............**.....*..*.*.......          |      ....................*...**........          |      .......................*..*.......          |      ...................*...*..*.......          |
|       .....................*.***........         |       ...................*.*............         |       ...................*....*.........         |       ..................***..**.........         |       ..................*.**.**.........         |
|        .................**.**.**.........        |        ...................***..*.........        |        ..................*...............        |        ..................**..............        |        .................*..*.............        |
|         ..................................       |         ..................***.............       |         ..................*.*.............       |         ...................*..............       |         ..................**..............       |
|          ..................*...............      |          ..................................      |          ...................*..............      |          ...................*..............      |          ..................**..............      |
|           ...................*..............     |           ..................*...............     |           ..................**..*...........     |           .................*..*.*...........     |           .................*..*.............     |
|            .................*..**............    |            .................**.***...........    |            .................**.*.*...........    |            .................***.*............    |            .................***.*............    |
|             .................*.*.**...........   |             ..................**.*............   |             ..................................   |             ....................***...........   |             ..................*.**............   |
|              ..................................  |              .................*..**............  |              ....................**............  |              .................*................  |              .................****.............  |
|               ................*...*............. |               ...............***................ |               ...............***...............  |               ...............*.*...............  |               ...............*.*..............   |
|                ..............**.*..............  |                ................................  |                ..............**...............   |                ..............*.*..............   |                .............**...............    |
|                 .............**...............   |                 ............*.................   |                 .............................    |                 .............*...............    |                 .............*.*............     |
|                  ............***.............    |                  ............*.*.............    |                  .............***...........     |                  .............*.*...........     |                  ..........................      |
|                   .............*............     |                   .............**...........     |                   .............**..........      |                   .........................      |                   .............*..........       |
|                    ..............*.........      |                    ............*...........      |                    ............*..........       |                    ...........*..*........       |                    ............*.**......        |
|                     ...........**..*......       |                     ............*..*......       |                     ...........**.**.....        |                     ...........***.*.....        |                     ...........*...*....         |
|                      ............**.*....        |                      ...........***.*....        |                      ...........*...?...         |                      ...........*.*.?...         |                      .............*??..          |
|                       .............*??..         |                       ............**??..         |                       ..........*.*???.          |                       .........***.???.          |                       ........*...????           |
|                        ............????          |                        ........*...????          |                        ........*..????           |                        .......***.????           |                        .......*..????            |
|                         ......***.????           |                         ......*.*.????           |                         ......**.????            |                         .....*..*????            |                         .....*..????             |
|                          .....***????            |                          ....*...????            |                          ....***????             |                          ....*.*????             |                          .....*????              |
|                           ....**????             |                           ....*.????             |                           .....????              |                           .....????              |                           ....????               |
|                            ....????              |                            ....????              |                            ....???               |                            ....???               |                            ....??                |
|                             ....??               |                             ....??               |                             ....?                |                             ....?                |                             ....                 |
|                              ....                |                              ....                |                              ...                 |                              ...                 |                              ..                  |
|                               ..                 |                               ..                 |                               .                  |                               .                  |                                                  |
$
Horrible, right? CA neighborhoods are obvious and intuitive and diagonal geometry is not. Now feed through to-uwi:

Code: Select all

$ rlife grid-tool to-uwi c5d-f2b < p1.in
| ................. | ................. |
| ................. | ................. |
| ................. | ................. |
| ................. | ................. |
| ................. | ................. |
| ................. | ................. |
| ................. | ................. |
| ................. | ................. |
| ................. | ................. |
| ................. | ................. |
| .........*....... | .......*..*...... |
| ........***.*.... | .......******.... |
| .......******.... | .......******.... |
| .......*******... | .......*..*.*.... |
| .......*.*...*... | .......*..*.*.... |
| .......*.*..*.... | .......*..*.*.... |
| .......*.*..*.... | ..........*...... |
| .........*...*... | .......*..**..... |
| .........*..**... | .........****.... |
| .......*.*.*..... | .........*....... |
| ........*........ | .......*.*...*... |
| .........*.*..... | ........**...*... |
| ........**...*... | .......**.*..*... |
| ............**... | ........*.*.**... |
| .........*....*.. | .......**...**... |
| ........*....**.. | .........*..**... |
| ........*.***.*.. | .......*.*.*.*... |
| ........*...*.... | ..........*.**... |
| .......*....*.... | .......**.*...... |
| .........**.*.... | .......*......... |
| ..........***.... | .......*.*....... |
| ..........*.*.... | .......**........ |
| .........**.*.... | .......**...*.... |
| .........**.*.... | .......**...*.... |
| .........**.*.... | .......*.*..*.... |
| ........*.**..... | .......*.*..*.... |
| ........*........ | .........*.**.... |
| ........*........ | .........****.... |
| .......**...*.... | ........**..*.... |
| .......*....*.... | .......**...*.... |
| ............*.... | .......**........ |
| ............*.... | ........*........ |
| .........*....... | .........*....... |
| .........*....... | ................. |
| .........*....... | .........*....... |
| ........*........ | .........*....... |
| .........*....... | ................. |
| .........*....... | ................. |
| ........*........ | .........*....... |
| ........*........ | ........**....... |
| .........*....... | ........*........ |
| .........*....... | ........*........ |
| ........*.*...... | .......*.*....... |
| ........*.*...... | .......*.*....... |
| ..........*...... | .........*....... |
| ........**....... | .......*.**...... |
| ........**....... | .......*.*....... |
| .......**.*...... | .......*..*...... |
| ........*.*...... | ........*..*..... |
| .......*......... | ........*...*.... |
| .......*..*.*.... | .......**.***.... |
| .......*.**.**... | .......**.***.... |
| .........**.**... | .......*.*.**.... |
| .............*... | .......*......... |
| ............**... | ........*****.... |
| ...........***... | ........*........ |
| ..........**.*... | ................. |
| ..........***.... | ................. |
| .............*... | ................. |
| .............*... | ..........**..... |
| ............*.... | .........*..*.... |
| ...........*..... | ................. |
| ...........*..... | ................. |
| ................. | ...........*..... |
| ............*.... | ...........*..... |
| ...........*..... | ...........*..... |
| ...........*..... | .........*.*..... |
| ..........*...... | ........*.***.... |
| .........*.**.... | .........***..... |
| .........*.*..... | .........*..*.... |
| .........*....... | .........*.**.... |
| ............*.... | ........*...*.... |
| .........*..*.... | ..........*...... |
| .........**.*.... | .........**.*.... |
| ..........*..*... | ............*.... |
| ..........*.*.... | .........*.*..... |
| .........**.*.... | ..........**..... |
| .........*..**... | ..........***.... |
| .............*... | .........**...... |
| .........**...... | ............*.... |
| .........*..*.... | .........*.*..... |
| ..........*..*... | .........*.*..... |
| ..........*.*.... | ...........**.... |
| ............**... | ................. |
| .........*..**... | .........*....... |
| ............*.... | ........**....... |
| .........*..*.... | ........**....... |
| .........*....... | ........**....... |
| ................. | ........*........ |
| ................. | ........**....... |
| ................. | ........*........ |
| .........*....... | ........*........ |
| .........*....... | ........*........ |
| .........**...... | ................. |
| .........**...... | ................. |
| ..........*...... | .........*....... |
| .........**...... | .........*....... |
| ..........**..... | .........**...... |
| ...........*..... | .......****...... |
| .........*....... | .......*......... |
| .......**........ | .......**.*...... |
| ......*.*..*..... | ......***.*...... |
| .......**..*..... | ......**..*...... |
| .......*..*...... | ........*.*...... |
| .......*.**...... | .......**........ |
| ......**...*..... | ......*.*.*...... |
| ......*...*...... | ......*.***...... |
| ..........*...... | ......*.*........ |
| ........*..*..... | ..........*...... |
| ..........*...... | ......*...*...... |
| .......*..*...... | ......*.......... |
| .......*......... | .......*......... |
| .......*......... | ......*.......... |
| ................. | ......*.......... |
| ................. | ......**......... |
| ................. | .....*.*......... |
| ......**......... | ......*.......... |
| ......**......... | .....*........... |
| ................. | ................. |
| ......*.......... | .....*........... |
| ......**......... | .....*........... |
| ......*.......... | .....*........... |
| ......*.......... | ................. |
| ......**......... | .....*........... |
| ....*..*......... | .....*........... |
| ...*..*.......... | ..*****.......... |
| ..***.*.......... | ..**...*......... |
| ..****.*......... | ..**..**......... |
| ..*.**........... | ......**......... |
| ................. | ..**...*......... |
| ..***............ | ....****......... |
| ..*.*.*.......... | ..*...**......... |
| ...*..*.......... | ..**..**......... |
| ...**............ | ......**......... |
| ..??????......... | ..??????......... |
| ..??????......... | ..??????......... |
| ..??????......... | ..??????......... |
| ..??????......... | ..??????......... |
| ..??????......... | ..??????......... |
| ..??????......... | ..??????......... |
| ..??????......... | ..??????......... |
| ..??????......... | ..??????......... |
| ..??????......... | ..??????......... |
| ..??????......... | ..??????......... |
Now the CA neighborhoods are absolutely unintelligible, but the geometry is easy. W (direction of search, SE in XYT view) is down the screen, U (side-to-side direction, NE/SW in XYT view) is right/left. The entire nonblank file is matching rectangles, as are the question marks.
LuveelVoom wrote: Yesterday, 6:28 pm (I)f I do have a complete partial, but it's symmetric, @yolo_1gp is not able to deal with it?
I'm not 100% sure what "complete" means there, but it almost doesn't matter. @yolo_1gp is not in any way able to understand symmetry. It could ingest it in preparation to run it as an asymmetric search, but that's it. You can lift the generated input grid (which is incidentally symmetric) from the beginning of such a search's log (or use mgp-tool directly to unwind what @yolo_1gp is doing) and fold it in half yourself, but that's about as good as it's gonna get with existing code.
LuveelVoom wrote: Yesterday, 6:28 pm Also, what on earth do the components of the command you proposed do???
Which command? I must have put up a dozen today alone...
LuveelVoom wrote: Yesterday, 6:28 pm Sorry for pestering you... if this strategy works out, and I find what I'm looking for using it, I'll let you name it :mrgreen:
Surely if I didn't like teaching LLSSS one on one in this thread, I would structure my life differently somehow. I appreciate the thought/offer, but I generally leave the naming of patterns to those more interested in such things. To me the joy is mostly in the existence of the pattern, not in its name. I would be interested in hearing how it goes, whether or not it works out.

If you want to do me a favor, try to remember what you are experiencing right now and then help me refine this process for the next poor sucker that comes along asking about grid editing. Or help me figure out what tools we could possibly write to make this easier. I am just so very bad at teaching and UX.
User avatar
LuveelVoom
Posts: 589
Joined: April 27th, 2022, 7:59 pm

Re: amling search program principles discussion / brain dump

Post by LuveelVoom »

amling wrote: Yesterday, 7:42 pm
LuveelVoom wrote: Yesterday, 6:28 pm Suppose I already have the partial and where I want to cut it; can I convert that directly into a grid, then a uwi, then edit that, without having to go through ingest_1gp?
If you have multiple generations, as period and asterisks, with generations separated by pipes (we should really name this format...), then sure, you can feed any such XYT view through to-uwi. I often find myself starting from an output from another search's log this way.
Thank goodness, I do. Is there a tool to convert RLE to XYT?
amling wrote: Yesterday, 7:42 pm (Massive section explaining geometries)
I, uh, kind of understand this, at least the second part. I'll try it.
amling wrote: Yesterday, 7:42 pm
LuveelVoom wrote: Yesterday, 6:28 pm Also, what on earth do the components of the command you proposed do???
Which command? I must have put up a dozen today alone...
"$ rlife llsss-recentering 3c7-f2b p1.in --left-pad 09 --fuzzy-left-edge --right-pad 1 07"
amling wrote: Yesterday, 7:42 pm
LuveelVoom wrote: Yesterday, 6:28 pm Sorry for pestering you... if this strategy works out, and I find what I'm looking for using it, I'll let you name it :mrgreen:
Surely if I didn't like teaching LLSSS one on one in this thread, I would structure my life differently somehow. I appreciate the thought/offer, but I generally leave the naming of patterns to those more interested in such things. To me the joy is mostly in the existence of the pattern, not in its name. I would be interested in hearing how it goes, whether or not it works out.

If you want to do me a favor, try to remember what you are experiencing right now and then help me refine this process for the next poor sucker that comes along asking about grid editing. Or help me figure out what tools we could possibly write to make this easier. I am just so very bad at teaching and UX.
Alright :) The ideal tool would be something that takes in a full set of consecutive partial generations (Although not everyone will have this, most people will), strips the bottom section (the part that is damaged by the rules imposing themselves) in some way (perhaps by a specific user command of some sort), then converts into the proper format, takes in user input on how to expand the partial et cetera...

If I understood LLSSS thoroughly, I would be happy to help figure out how to make it more intuitive. Sadly, I don't, and at the moment I don't have the time to go through and comprehend it. I'll try and do that at some point, though, and get back to you when I do.

If I had to recommend one single thing to make these explanations easier to understand, the current code blocks that, uh, (whatever the forum platform is called) uses, are extremely bad at visualizing the geometries and slices and so on. Perhaps LLSSS could have some option to output the diagrams you currently make (I assume you make them using some option in LLSSS, or extract them from the log somehow?) in a format that can be seen in LifeViewer, such as using LifeHistory or some other multistate rule.

I don't want to bother you with a thousand feature requests though, so consider these thoughts and not pleas.
Last edited by LuveelVoom on September 22nd, 2026, 10:02 pm, edited 1 time in total.
Post Reply