amling search program principles discussion / brain dump

For scripts to aid with computation or simulation in cellular automata.
User avatar
MDA
Posts: 231
Joined: June 8th, 2026, 12:18 pm
Location: In Haven (B3-ry4acenqt5eir6-ek/S2-a3-a4nq5aeknr6-ak)
Contact:

Re: amling search program principles discussion / brain dump

Post by MDA »

What does the frequently mentioned “pre-reify-autochoke” option do?
My website (a database of Life objects, WIP).
GlidINT has been released!

Code: Select all

x = 5, y = 17, rule = B3-ry4acenqt5eir6-ek/S2-a3-a4nq5aeknr6-akHistory
C$2C$.2C$2C11$.3D$3.D$2.3D!
[[ STOP 72 ]]
amling
Posts: 1208
Joined: April 2nd, 2020, 9:47 pm

Re: amling search program principles discussion / brain dump

Post by amling »

MDA wrote: August 20th, 2026, 9:06 am What does the frequently mentioned “pre-reify-autochoke” option do?
The shortest version is it truncates the search to try to keep it from using too much memory. There are a lot more details up thread about how the internals work, but from a user perspective pick a memory amount and you're off to the races, except...

(*) Your search is now approximate and will not necessarily find what it would have without the option.

(*) Its estimate of memory sizes is not so great for complex reasons. Best to consider the amount you specify a fuzzy sliding bigness scale and figure out what you can afford empirically. I think I have usually run it with a limit of 24 GB on a box with 64 GB e.g.

(*) Depending on the rest of your arguments it can get stuck in a weird sort of "pyramidal" failure mode where partials keep getting wider and wider but are clearly too big to ever work out. This is especially a problem with unlimited width searches (mid_steps=XX). You might want to keep an eye on partials as it goes and give up on the search if they're looking sufficiently bad.
amling
Posts: 1208
Joined: April 2nd, 2020, 9:47 pm

Re: amling search program principles discussion / brain dump

Post by amling »

amling wrote: August 12th, 2026, 1:09 pm
amling wrote: August 11th, 2026, 7:30 pm (recentering MDSE V2 MVP)
There are definitely still big perf issues left before I move on to the real benchmarking, but I think I have ideas about how to address most of them.
I have moved on to the first couple rounds of serious benchmarking and it's maybe in the range of what was expected.

Originally MDSE V1 searches had been hurt pretty badly by the abstraction and the required changes in some algorithms, but as I was playing with it I worked out a different way to do the MDSE V2 BitTree parallelization that is both quite a bit faster for itself and also might recover a bunch of that abstraction cost for MDSE V1.

On my current branch I've applied the trick in only a few select places and already the improvements from it are huge. For the last, biggest recentering search this round ran...

MDSE V1 was very slightly faster than on master: 425s -> 414s, although it's not super clear if this is variance. It is believable that it is improvement, as on master there were definitely some abstraction costs already paid (as part of shared code with fixed board that was migrated to MDSE stuff earlier).

MDSE V2 is not great, but not as bad as I had worried it would be and much better than earlier (unposted) rounds of benchmarking: 414s -> 2924s (~7.06x). Improvement in maximum memory observed at any point is similar to fixed board work: 6.33 GB -> 1.73 GB (~3.66x better).

I think it is likely that both of these will get even better once I apply the new BitTree parallelization everywhere as this round of benchmarking was just testing individually migrating the two most expensive users of BitTree parallelization.

I am undecided if I will pause this to go do these BitTree improvements directly on master first, while carefully benchmarking fixed board MDSE V2 or if I will just blaze on and include all those improvements in this recentering MDSE V2 work. The former is definitely the right and paranoid thing to do, but I am pretty excited about recentering MDSE V2.
User avatar
LaundryPizza03
Posts: 2623
Joined: December 15th, 2017, 12:05 am
Location: Unidentified location "https://en.wikipedia.org/wiki/Texas"

Re: amling search program principles discussion / brain dump

Post by LaundryPizza03 »

amling wrote: August 17th, 2026, 1:56 pm
LaundryPizza03 wrote: August 16th, 2026, 4:49 pm
amling wrote: August 14th, 2026, 10:56 am I'm not sure exactly why you want to search this way, but if you expand your motivations we might have other ideas that could help. I assume you think there are interesting partials that "tilt" (viewed from the W=Y angle of c5k-1) this way and you're running "fixed board" searches (i.e. "llsss" subcommand) which are obligated to follow W strictly. Recentering searches would cover patterns that tilt, although it widens the search space to any kind of tilting, and might take slightly wider mid_steps than you might think, due to all that tilting.
Two ships found by Josh Ball in 2011 in closely related rules have this orientation, as do the known (2,1)c/5 ships in B35/S34. It is likely that some rules favor knightships whose long axis is closer to orthogonal than the direction of propagation, while others favor knightships whose long axis is closer to diagonal.
That's sort of what I suggested, and an overwhelming reason to do something other than search with fixed board c5k-1. From my experience with LLSSS I really think c5k-1 recentering is the best choice, but you are of course free to chase (and advocate for) others...
LaundryPizza03 wrote: August 16th, 2026, 4:49 pm Is AF2 a variable in the build file or an environment variable?
(2) c5k-1/W=X+Y/U=X-Y fixed board last completed board width 12 (so pattern width 8, although these are essentially twice as big as the above with U=X) in 3.88 GB:

Code: Select all

x = 311, y = 60, rule = B36/S3458History
F61.F61.F61.F61.F12.B48.F$F61.F13.B47.F12.2B47.F12.2B47.F11.3B47.F$F
12.2B47.F12.3B46.F11.4B46.F11.4B46.F10.5B46.F$F11.4B46.F11.5B45.F10.
6B45.F10.6B45.F9.7B45.F$F10.6B45.F10.7B44.F9.8B44.F9.8B44.F8.9B44.F$F
9.8B44.F9.9B43.F8.10B43.F8.10B43.F7.11B43.F$F8.10B43.F8.11B42.F7.12B
42.F7.12B42.F6.13B42.F$F7.12B42.F7.13B41.F6.14B41.F6.14B41.F5.7BA7B
41.F$F6.14B41.F6.15B40.F5.7BA8B40.F5.6B3A2BA4B40.F4.6B3AB2A5B40.F$F5.
9BA6B40.F5.6B3AB2A5B39.F4.7B3AB3A4B39.F4.6B2ABAB2A5B39.F3.6B2A2BAB2A
5B39.F$F4.6B4AB3A4B39.F4.5B5AB3A5B38.F3.7B4AB2A6B38.F3.6B5ABA7B38.F2.
6B2AB5A7B38.F$F3.6B6AB2A5B38.F3.6BA14B37.F2.7B2A5B2A6B37.F2.6B3A2BAB
2A7B37.F.7BABA4B3A6B37.F$F2.7B2AB7A5B37.F2.6B2ABA6BA6B36.F.7B2A2BA12B
36.F.7B2A6BABA6B36.F.6B2A2B3AB2A8B36.F$F.8BABABAB3A7B36.F2.7BAB2A13B
35.F2.7BAB2A4B2A7B35.F2.6B2AB2AB3A9B35.F2.5B3AB2ABABA9B35.F$F2.6B2A2B
3AB2A8B35.F3.5B2A2B3A2B2A8B34.F3.7B7A10B34.F3.5BABAB5ABA8B34.F3.5B5AB
AB2A9B34.F$F3.5BAB2A2B4A9B34.F4.10B2ABA10B33.F4.4B3ABAB2ABA10B33.F4.
5B2AB2A2B3A9B33.F4.4B3AB5ABA9B33.F$F4.9BABAB2A9B33.F5.4BABA2B2AB2A10B
32.F5.9B2AB2A10B32.F5.4BA4B2AB3A9B32.F5.5BABAB2A3B2A8B32.F$F5.4BABABA
BABA2BA8B32.F6.11BA12B31.F6.8BA2B2ABA9B31.F6.7B2A2B4A9B31.F6.7B3ABA2B
A9B31.F$F6.7BA4B3A9B31.F7.6BA3B5A9B30.F7.7BABAB5A8B30.F7.6BA3B2AB3ABA
6B30.F7.5B2A2B2A2B3AB2A5B30.F$F7.5BAB3A2BABA9B30.F8.6B2A3BAB2A2BA6B
29.F8.6BABAB2A2B4A6B29.F8.5BA3B2ABAB4A6B29.F8.4BABAB5A3B2A6B29.F$F8.
5B2A2B2A2B2AB3A5B29.F9.4B2A2B2AB3AB4A5B28.F9.5BA2B2AB3ABABA6B28.F9.4B
A3B2AB5A8B28.F9.8B2AB2A4BA6B28.F$F9.7B2AB9A5B28.F10.5B3ABA3B4A7B27.F
10.4BAB2ABABABABA8B27.F10.6B2A3BABAB2A7B27.F10.6B2A2B6A8B27.F$F10.6BA
2B4A11B27.F11.8BA3B4A8B26.F11.5BA6B2ABA8B26.F11.4BABA5B2A10B26.F11.9B
2ABA2BA8B26.F$F11.7B2ABAB5A7B26.F12.7BABAB3A10B25.F12.11BABA10B25.F
12.8B2AB3A10B25.F12.8B2AB3A10B25.F$F12.8B2A2BA11B25.F13.7B2A3BA11B24.
F13.6B4AB3A10B24.F13.7B3A3BA10B24.F13.7B3A14B24.F$F13.7B2AB3A11B24.F
14.6B4ABA12B23.F14.6BA2B4A11B23.F14.5B2A2BA2BA11B23.F14.5B2A6BA10B23.
F$F14.7B5A12B23.F15.6B5A13B22.F15.6BAB3A13B22.F15.5BA2BA3BA11B22.F15.
4BABABAB4A10B22.F$F15.5B2A6B2A9B22.F16.5BA3B2AB2A10B21.F16.5BA3B2AB2A
10B21.F16.6B3ABAB2A10B21.F16.7B3A2B3A9B21.F$F16.7BA2B4A10B21.F17.5BA
3B4A11B20.F17.7B6A11B20.F17.7BA3B3A10B20.F17.7BA3B2A11B20.F$F17.6B4A
2B2A10B20.F18.6B3A2B3A10B19.F18.7B2ABABA11B19.F18.7BA2BA13B19.F18.6BA
BABA13B19.F$F18.7BA3B3A10B19.F19.6BA2B3A12B18.F19.6BAB2A14B18.F19.6BA
B2A14B18.F19.8B3A13B18.F$F19.7BA2BA13B18.F20.5B2A2B3A12B17.F20.6BABA
2BA12B17.F20.6B3A15B17.F20.6BAB2A2BA11B17.F$F20.6B5A13B17.F21.6B5A13B
16.F21.6B2ABA14B16.F21.6B2A2B3A11B16.F21.7B2A2BABA10B16.F$F21.9B2A2BA
10B16.F22.5BAB5A12B15.F22.6BA3B3A11B15.F22.5B2A4BABABA8B15.F22.5B2A3B
2A3BA8B15.F$F22.7B2AB2A12B15.F23.6B2AB3A2BA9B14.F23.6B3A2BAB3A8B14.F
23.6B3AB2AB4A7B14.F23.6B6AB5A6B14.F$F23.6BA3BA2B3ABA6B14.F24.5BA2B2A
2B3ABA7B13.F24.6BABABAB3AB2A6B13.F24.5B6ABAB3A7B13.F24.5BA4BA2BA2B2A
6B13.F$F24.6B13A5B13.F25.7B5AB4A7B12.F25.6B4A3B3A8B12.F25.6B4A3B4A7B
12.F25.6BA2B2AB5A7B12.F$F25.10BA2BA3BA6B12.F26.4BA3B5A11B11.F26.8BA4B
A10B11.F26.6BA8BA8B11.F26.5B2AB3A2B4A7B11.F$F26.5BABAB2AB3A9B11.F27.
8B5A3BA7B10.F27.11B3ABA8B10.F27.8B6ABA8B10.F27.9B5AB2A7B10.F$F27.7B5A
4B2A6B10.F28.6B3A2B2AB2A8B9.F28.7B3ABAB4A7B9.F28.8B2ABAB2ABA7B9.F28.
8BAB2ABA10B9.F$F28.9B3A2B2A8B9.F29.7BABA3B2A9B8.F29.7BABABAB3A8B8.F
29.7BABA5BA8B8.F29.7B3ABA12B8.F$F29.7B2A4B2A9B8.F30.7B2ABAB2A10B7.F
30.6B3A3B2A10B7.F30.7B2ABAB2A10B7.F30.8BA2BA5B2A5B7.F$F30.8B2AB2A11B
7.F31.5BAB2ABA7BA5B6.F31.7BAB2A3BA2BA6B6.F31.5B3A2BA4B4A5B6.F31.6B2A
2B2AB6A5B6.F$F31.6B3AB3A2BAB3A4B6.F32.6B4AB4AB2A6B5.F32.5B2A2B2AB2AB
3A6B5.F32.7B6AB4A6B5.F32.7BAB4ABA4BA4B5.F$F32.7B2AB2AB5A6B5.F33.6B2A
3B2A2B3A6B4.F33.10BA4B4A5B4.F33.5B4AB2A3B5A4B4.F33.6BABA2BA3B4A5B4.F$
F33.9B6A9B4.F34.5B2AB4AB2A2B2A5B3.F34.5B2A2B3ABA2B3A5B3.F34.7BAB2A4BA
2BA5B3.F34.4BA2B4A2BABA2BA5B3.F$F34.5BA2BA2BA2B6A4B3.F35.7BA4B6A6B2.F
35.5BAB2A5B4A6B2.F35.4BA2B2AB2AB2A2B2A5B2.F35.5BA4BAB3AB2A6B2.F$F35.
5BAB7AB2ABA5B2.F36.5BAB2AB3A4B2A5B.F36.6B2A2BA2BABABA6B.F36.5B5A2B2AB
A7B2.F36.6B4A2B4A7B2.F$F36.8B3ABAB4A6B.F37.7BAB4A3BA6B.F37.7BABA2B2A
3BA4B2.F37.6BA2BA2B3A6B3.F37.6B4A4BA6B3.F$F37.7BABA2B4A6B2.F38.6B3AB
3A8B2.F38.7B2AB2A2B2A4B3.F38.6B3AB6ABAB4.F38.6B5ABA2BA3B4.F$F38.5B2A
2BA4B2A4B3.F39.7BABA3B2A4B3.F39.6B2ABA3B2AB2A4.F39.6B9ABA5.F39.5B5A4B
3A5.F$F39.7BA2B2A2BA2BA4.F40.4B2A2B9A4.F40.6BAB3A2B2AB5.F40.6BA2B2A2B
2A6.F40.6B2A4B3A6.F$F40.5BA3B2A3BAB5.F41.6BAB4A3B5.F41.4B2A3B2A3B6.F
41.5BABAB3AB7.F41.4BA3BAB2AB7.F$F41.4BAB2A3B2AB6.F42.4BA2B6A6.F42.5BA
2BA2BA7.F42.4BA2B3AB8.F42.5B3A3B8.F$F42.9BABA7.F43.5B4ABA7.F43.6BA3B
8.F43.6BABA9.F43.5B3AB9.F$F43.6B2ABA8.F44.6BABA8.F44.4B3AB9.F44.5BAB
10.F44.4BABA10.F$F44.5BABA9.F45.4B2AB9.F45.6B10.F45.4BA11.F45.5B11.F$
F45.5BA10.F46.5B10.F46.4B11.F46.3B12.F46.3B12.F$F46.4B11.F47.3B11.F
47.2B12.F47.B13.F47.B13.F$F47.2B12.F48.B12.F61.F61.F61.F!
One iffy idea is we could only offer specific choices of U and W that enforce the sufficiency and appropriateness of AF2=3. Maybe something like "vv_orth:K:N:M" -> V=(K, N, M), U=X, W=Y and "vv_diag:K:N:M" -> V=(K, N, M), U=X-Y, W=X+Y? Exact syntax probably TBD. With these choices of UW, the CA neighborhood current generation always fits w/in a U neighborhood of 3 and I believe the future cell should as well so long as we require max(|K|, |N|) <= |M| and thus the generational staggering is by at most 1 X and 1 Y. With this, something like "vv_orth:-1:-2:5" might be more intuitive than "c5k-1" and you'd be able to use "vv_diag:-1:-2:5" instead of "c5k-1/W=X+Y/U=X-Y".
I couldn't reproduce this. I got:

Code: Select all

./rlife llsss --rule 'B36/S3458' --left-edge bg --ends bg --filters bcaf c5k-1/W=X+Y/U=X-Y '@bg(12)' > output.txt

20260821 01:39:23 [INFO] |                      |                      |                      |                      |            .         |
20260821 01:39:23 [INFO] |                      |             .        |            ..        |            ..        |           ...        |
20260821 01:39:23 [INFO] |            ..        |            ...       |           ....       |           ....       |          .....       |
20260821 01:39:23 [INFO] |           ....       |           .....      |          ......      |          ......      |         .......      |
20260821 01:39:23 [INFO] |          ......      |          .......     |         ........     |         ........     |        .........     |
20260821 01:39:23 [INFO] |         ........     |         .........    |        ..........    |        ..........    |       ...........    |
20260821 01:39:23 [INFO] |        ..........    |        ...........   |       ............   |       ............   |      .............   |
20260821 01:39:23 [INFO] |       ............   |       .............  |      ..............  |      ..............  |     ...............  |
20260821 01:39:23 [INFO] |      ..............  |      ............... |     ...............  |     ...............  |    ......*........   |
20260821 01:39:23 [INFO] |     ...............  |     ...............  |    ......*........   |    .....***.......   |   ......**.......    |
20260821 01:39:23 [INFO] |    ......*........   |    .....***.......   |   ......***......    |   ......**.......    |  ......***.***..     |
20260821 01:39:23 [INFO] |   ......***..*...    |   ......***......    |  .......*.......     |  .......*..****.     | ..........*....      |
20260821 01:39:23 [INFO] |  ........**.....     |  ........****..*     | .........*.****      | ..........*....      | ..........*...       |
20260821 01:39:23 [INFO] | .........*.*.*.      |  ........*.**.*      |  .........*...       |  ........**..*       |  .........*..        |
20260821 01:39:23 [INFO] |  .........*.*.       |   .........***       |   ........**.        |   .........**        |   .........*         |
20260821 01:39:23 [INFO] |   ...........        |    .........*        |    .........         |    ........*         |    ........          |
20260821 01:39:23 [INFO] |    .........         |     ........         |     .......          |     .......          |     ......           |
20260821 01:39:23 [INFO] |     .......          |      ......          |      .....           |      .....           |      ....            |
20260821 01:39:23 [INFO] |      .....           |       ....           |       ...            |       ...            |       ..             |
20260821 01:39:23 [INFO] |       ...            |        ..            |        .             |        .             |                      |
20260821 01:39:23 [INFO] |        .             |                      |                      |                      |                      |
What was your command? Was I supposed to run (2) with AF2 = 3? That suggestion about new syntax sounds cool.

EDIT: Yes, it required AF2 = 3. Maximum RAM usage = 21.84 GB, maximum depth = 71[4]:

Code: Select all

x = 441, y = 86, rule = B36/S3458History
F87.F87.F87.F87.F13.B73.F$F87.F14.B72.F13.2B72.F13.2B72.F12.3B72.F$F
13.2B72.F13.3B71.F12.4B71.F12.4B71.F11.5B71.F$F12.4B71.F12.5B70.F11.
6B70.F11.6B70.F10.7B70.F$F11.6B70.F11.7B69.F10.8B69.F10.8B69.F9.9B69.
F$F10.8B69.F10.9B68.F9.10B68.F9.10B68.F8.11B68.F$F9.10B68.F9.11B67.F
8.12B67.F8.12B67.F7.13B67.F$F8.12B67.F8.13B66.F7.14B66.F7.5BA8B66.F6.
5B3A2BA4B66.F$F7.6BA7B66.F7.7BA7B65.F6.5B3AB2A5B65.F6.5B3AB3A4B65.F5.
5B2ABAB2A5B65.F$F6.5B3AB2A5B65.F6.4B4AB3A5B64.F5.4B5AB3A5B64.F5.5B4AB
2A6B64.F4.5B5ABA7B64.F$F5.5B2A2BAB2A5B64.F5.4B6AB2A6B63.F4.5BA14B63.F
4.5B2A5B2A6B63.F3.5B3A2BAB2A7B63.F$F4.5B2AB5A7B63.F4.5B2AB7A6B62.F3.
5B2ABA6BA6B62.F3.5B2A2BA12B62.F2.6B2A6BABA6B62.F$F3.6BABA4B3A6B62.F3.
6BABABAB3A8B61.F2.7BAB2A13B61.F2.7BAB2A4B2A7B61.F.7B2AB2AB3A9B61.F$F
2.6B2A2B3AB2A8B61.F2.6B2A2B3AB2A9B60.F.7B2A2B3A2B2A8B60.F.9B7A10B60.F
.7BABAB5ABA8B60.F$F.7B3AB2ABABA9B60.F2.6BAB2A2B4A10B59.F2.12B2ABA10B
59.F2.6B3ABAB2ABA10B59.F2.7B2AB2A2B3A9B59.F$F2.7B5ABAB2A9B59.F3.10BAB
AB2A10B58.F3.6BABA2B2AB2A10B58.F3.11B2AB2A10B58.F3.6BA4B2AB3A9B58.F$F
3.6B3AB5ABA9B58.F4.5BABABABABA2BA9B57.F4.13BA12B57.F4.10BA2B2ABA9B57.
F4.9B2A2B4A9B57.F$F4.7BABAB2A3B2A8B57.F5.8BA4B3A10B56.F5.8BA3B5A9B56.
F5.9BABAB5A8B56.F5.8BA3B2AB3ABA6B56.F$F5.9B3ABA2BA9B56.F6.6BAB3A2BABA
10B55.F6.8B2A3BAB2A2BA6B55.F6.8BABAB2A2B4A6B55.F6.7BA3B2ABAB4A6B55.F$
F6.7B2A2B2A2B3AB2A5B55.F7.6B2A2B2A2B2AB3A6B54.F7.6B2A2B2AB3AB4A5B54.F
7.7BA2B2AB3ABABA6B54.F7.6BA3B2AB5A8B54.F$F7.6BABAB5A3B2A6B54.F8.8B2AB
9A6B53.F8.7B3ABA3B4A7B53.F8.6BAB2ABABABABA8B53.F8.8B2A3BABAB2A7B53.F$
F8.10B2AB2A4BA6B53.F9.7BA2B4A12B52.F9.10BA3B4A8B52.F9.7BA6B2ABA8B52.F
9.6BABA5B2A10B52.F$F9.8B2A2B6A8B52.F10.8B2ABAB5A8B51.F10.9BABAB3A10B
51.F10.13BABA10B51.F10.10B2AB3A10B51.F$F10.11B2ABA2BA8B51.F11.9B2A2BA
12B50.F11.9B2A3BA11B50.F11.8B4AB3A10B50.F11.9B3A3BA10B50.F$F11.10B2AB
3A10B50.F12.8B2AB3A12B49.F12.8B4ABA12B49.F12.8BA2B4A11B49.F12.7B2A2BA
2BA11B49.F$F12.9B3A14B49.F13.8B5A13B48.F13.8B5A13B48.F13.8BAB3A13B48.
F13.7BA2BA3BA11B48.F$F13.7B2A6BA10B48.F14.6B2A6B2A10B47.F14.7BA3B2AB
2A10B47.F14.7BA3B2AB2A10B47.F14.8B3ABAB2A10B47.F$F14.6BABABAB4A10B47.
F15.8BA2B4A11B46.F15.7BA3B4A11B46.F15.9B6A11B46.F15.9BA3B3A10B46.F$F
15.9B3A2B3A9B46.F16.7B4A2B2A11B45.F16.8B3A2B3A10B45.F16.9B2ABABA11B
45.F16.9BA2BA13B45.F$F16.9BA3B2A11B45.F17.8BA3B3A11B44.F17.8BA2B3A12B
44.F17.8BAB2A6BA7B44.F17.8BAB2A5B3A6B44.F$F17.8BABABA6BA6B44.F18.8BA
2BA5BA8B43.F18.7B2A2B3A2B3A7B43.F18.8BABA2BA2B3A7B43.F18.8B3A5B2A8B
43.F$F18.10B3A4B2A7B43.F19.7B5A3B3A8B42.F19.8B4A3B5A6B42.F19.8B5A2BA
3B2A5B42.F19.8B2AB2A2B4AB2A4B42.F$F19.8BABA4B2AB2A6B42.F20.9BA4B2AB3A
6B41.F20.7BABA6B4A6B41.F20.8B3AB3ABA2B2A5B41.F20.7B2A2B4A2B4A5B41.F$F
20.9BA2BA2B4AB2A4B41.F21.8B2A2B4A2B3A5B40.F21.8B5A2BAB3A6B40.F21.8BAB
2ABABA3B3A4B40.F21.8BAB6A3B2A5B40.F$F21.7B2A2BA4B5A5B40.F22.6B3AB2AB
2AB2A8B39.F22.6B4ABAB5AB3A4B39.F22.6BA4BAB5A2BA5B39.F22.6BA3B2AB2AB2A
B2A5B39.F$F22.6BA2B2A3B2A2B4A4B39.F23.6BA6B4A2B3A4B38.F23.5B2AB4ABA2B
A3BA5B38.F23.5B2AB4AB5AB2A5B38.F23.9B3A2B2ABAB2A5B38.F$F23.13B2AB2AB
3A4B38.F24.7BA2BAB2AB2A3BA5B37.F24.12B2AB4AB2A4B37.F24.12B5ABABA5B37.
F24.8BA3B2A2BABA7B37.F$F24.8B4A2B2AB4A5B37.F25.9B2A2B2ABA2BA6B36.F25.
8B2AB4A3BA7B36.F25.9B2A3B2A2BA7B36.F25.10B2A2B2AB2A7B36.F$F25.10BAB2A
2B3A7B36.F26.8B5A3BA9B35.F26.8B5AB2ABA8B35.F26.8BA3BA3BA9B35.F26.7B2A
5B2A10B35.F$F26.8B5AB4A8B35.F27.8BA4BA2BA9B34.F27.7B4A15B34.F27.7BA3B
A2BA11B34.F27.10B2A3B2A9B34.F$F27.9B4AB2A10B34.F28.8B4AB2A11B33.F28.
8B4ABABA10B33.F28.10B2A2BABA9B33.F28.10B2ABABA10B33.F$F28.11BA3BA10B
33.F29.8BAB2A3BA10B32.F29.7B2AB2A2BABA9B32.F29.7B5A2BA11B32.F29.8BA2B
A2BA11B32.F$F29.10B3A2B2A9B32.F30.10BA3B2A10B31.F30.9B2ABAB2A10B31.F
30.8B6ABA10B31.F30.8BAB4A12B31.F$F30.11BAB3A10B31.F31.10B3ABA11B30.F
31.9B6ABA9B30.F31.9BAB2AB3ABA7B30.F31.9BA2B5ABA7B30.F$F31.10B4AB2A9B
30.F32.9BAB2AB3A9B29.F32.8B2ABAB6A7B29.F32.8B2ABABAB5A6B29.F32.9B5AB
4A7B29.F$F32.8B3A3B3AB2A6B29.F33.8BAB5AB3A7B28.F33.9B2ABABAB3A7B28.F
33.9B2ABABA3BA7B28.F33.9B3AB3A2BA7B28.F$F33.9B2A6B2A7B28.F34.8B2ABABA
2B2A8B27.F34.8B4AB2AB2A8B27.F34.8B2ABABAB4A7B27.F34.8B4ABA2B3A7B27.F$
F34.10BAB4A2B2A6B27.F35.9BAB4A2B2A7B26.F35.9B6A2BA8B26.F35.9B4ABABA9B
26.F35.7BA4B3ABA9B26.F$F35.7B2AB2AB2AB3A7B26.F36.8B3A3B2ABA8B25.F36.
8BA2BABA12B25.F36.7B5ABABA10B25.F36.8BA2B2AB2ABA8B25.F$F36.10BAB5A9B
25.F37.8B3A15B24.F37.7B2AB3AB4A8B24.F37.9B2ABAB4A8B24.F37.10BA3B3A9B
24.F$F37.10B3AB3A9B24.F38.8B2AB2A2B2A9B23.F38.10B3AB3A9B23.F38.7BABA
2BABA11B23.F38.9BA4B2A10B23.F$F38.9B2A2B2AB2A8B23.F39.7B4ABAB2A10B22.
F39.7B4A3B3A9B22.F39.8BA5B2A10B22.F39.8BAB2A2B2A10B22.F$F39.8BA3BAB2A
10B22.F40.10BA2B2A11B21.F40.7B4ABA7BA5B21.F40.6B2AB2AB3A11B21.F40.10B
ABABA2B4A5B21.F$F40.9BA4B2A3B2A5B21.F41.10B6A2B3A5B20.F41.8BAB5A2B3A
6B20.F41.8BAB4AB6A5B20.F41.7B3A3BAB3AB3A4B20.F$F41.9B2A3BAB5A5B20.F
42.7B3A3BA2B2ABA6B19.F42.8BABA2BAB3ABA6B19.F42.8B3A2BABA3B2A5B19.F42.
7B2A4B4A2B2A5B19.F$F42.8B2A2BA2BA2B4A4B19.F43.7B3A4BA2B3A6B18.F43.6B
2ABA2BA2B5A6B18.F43.7B3A2B2AB2A2BA6B18.F43.6B2ABA2B5AB3A5B18.F$F43.8B
A3B2ABA10B18.F44.7B2A2B2A6BA6B17.F44.7B7A2B3A7B17.F44.5BA2B3AB3AB3A7B
17.F44.8B2A2B7A7B17.F$F44.6B2A2B3ABAB2A2BA5B17.F45.6BA2B3A2BA11B16.F
45.5B3AB3A14B16.F45.5BA5BA2B2AB2A7B16.F45.8B2ABA2B2AB2A7B16.F$F45.7B
3A2BA13B16.F46.5B3ABAB3A4BA7B15.F46.5B3ABA2BABABAB2A6B15.F46.9BA2BA4B
A8B15.F46.9BA2BA3B2A8B15.F$F46.7B3ABA2B5A7B15.F47.5B4A5B5A7B14.F47.4B
5AB3AB2A2BA7B14.F47.4BA3B2AB2AB3AB2A6B14.F47.8B2ABABABABA8B14.F$F47.
9BA4BAB3A7B14.F48.8BA3B6A8B13.F48.5B2A6BA3BA8B13.F48.5B2A2BA3BA4BA7B
13.F48.6BABABAB2A2BAB2A6B13.F$F48.7B3A5BA2BA7B13.F49.7BA6BA11B12.F49.
6BABA3BABABA9B12.F49.5BA7BABA2BA7B12.F49.4BA9BA3BA7B12.F$F49.13B2A2BA
8B12.F50.6BA8BA10B11.F50.16B3A7B11.F50.14BAB4A6B11.F50.16B3A7B11.F$F
50.16BABA7B11.F51.15B4A7B10.F51.13BAB4A7B10.F51.12BA2BA2BA7B10.F51.
12BAB2A2BA7B10.F$F51.14B5A7B10.F52.12B3AB2A8B9.F52.11B2A3B2A8B9.F52.
11B4A2B2A7B9.F52.10B4A12B9.F$F52.11B2AB2ABA8B9.F53.10B5A11B8.F53.10BA
3BABA9B8.F53.10BA15B8.F53.10B2ABA12B8.F$F53.10B2ABA12B8.F54.9B2AB2A2B
A9B7.F54.8B2A16B7.F54.8B2ABA14B7.F54.8B4AB4A9B7.F$F54.12B5A9B7.F55.8B
8A10B6.F55.8B9A9B6.F55.8B9ABA7B6.F55.7B10ABA7B6.F$F55.8BA3B6A8B6.F56.
12B2A2B2A8B5.F56.7BA2BAB2AB4A7B5.F56.10BAB8A6B5.F56.8BABA4B4ABA5B5.F$
F56.7BA3B6AB2A6B5.F57.7BA6BAB2A8B4.F57.13BABAB2AB2A4B4.F57.9BAB2A2BA
2BAB2A4B4.F57.9BAB3ABA4B2A4B4.F$F57.8B4AB5A3BA4B4.F58.8B4A2B3AB4A4B3.
F58.8B2A4B7A5B3.F58.7B2A3B3A4B2A5B3.F58.7B3A2B4A3B2A5B3.F$F58.9BA2B2A
2B2AB3A4B3.F59.6B2A3B2A2B4ABA5B2.F59.6B2A3B3AB3A2B2A4B2.F59.6B4A2B2A
2BA2B2A5B2.F59.6BABA2B4A2BA2B2A4B2.F$F59.7B3A2BA2BA2B3A5B2.F60.6B3AB
5A2B3A6B.F60.6B3A3B8A5B2.F60.6B2A4BA4B3ABA2B3.F60.7BA2BABABA3B2ABA2B
3.F$F60.7B5A2B2A4B2A3B2.F61.5B2AB4AB2ABA2B2A3B2.F61.5BA5B4AB2AB2A2B3.
F61.4B2A2BAB4A5B3A4.F61.5BABAB7AB2ABAB4.F$F61.7B2ABA3BABAB3A2B3.F62.
5B5A2B2A2B2AB3A3.F62.4B4A2B10AB4.F62.5BA2BA2B2AB6A5.F62.5BA2BA6B2A2BA
5.F$F62.9B6A2B2ABA4.F63.8B4A3B2AB2A4.F63.7B6A6B5.F63.4B3AB5A2B3A6.F
63.5BA2BA6BA2B6.F$F63.5B2ABA2B6ABA5.F64.5BAB2AB8A5.F64.12BA4B6.F64.7B
6A3B7.F64.4BA2B3A2BA3B7.F$F64.4BAB3A7BA6.F65.5B10AB6.F65.5B7A3B7.F65.
6B4AB2AB8.F65.11B2AB8.F$F65.8BA6B7.F66.7BA4BAB7.F66.5BAB4A2B8.F66.4B
3AB3AB9.F66.5BA2BABAB9.F$F66.6BABA2B2A8.F67.7B5A8.F67.6B4AB9.F67.5B2A
B2A10.F67.5B2A3B10.F$F67.6B2AB2A9.F68.6BAB2A9.F68.6B3A10.F68.6BAB11.F
68.4BAB2A11.F$F68.4B3A2B10.F69.4B2A2B10.F69.5BAB11.F69.4B2A12.F69.6B
12.F$F69.7B11.F70.5BA11.F70.4BA12.F70.4B13.F70.4B13.F$F70.4BA12.F71.
4B12.F71.3B13.F71.2B14.F71.2B14.F$F71.3B13.F72.2B13.F72.B14.F87.F87.F
$F72.B14.F87.F87.F87.F87.F!

Code: Select all

x = 4, y = 3, rule = B3-q4z5y/S234k5j
2b2o$b2o$2o!
LaundryPizza03 at Wikipedia
amling
Posts: 1208
Joined: April 2nd, 2020, 9:47 pm

Re: amling search program principles discussion / brain dump

Post by amling »

amling wrote: August 20th, 2026, 11:03 am I worked out a different way to do the MDSE V2 BitTree parallelization that is both quite a bit faster for itself and also might recover a bunch of that abstraction cost for MDSE V1.

...

I am undecided if I will pause this to go do these BitTree improvements directly on master first, while carefully benchmarking fixed board MDSE V2 or if I will just blaze on and include all those improvements in this recentering MDSE V2 work. The former is definitely the right and paranoid thing to do, but I am pretty excited about recentering MDSE V2.
I decided to do the right thing and the benchmarking results for fixed board are pretty good.

All numbers below are running B2/S c4-f2b from-zeros WCAF with increasing fixed board sizes. All times are in seconds and are median of 3.

t00 is master more or less as is (restricted pre-partial to just default to match MDSE V2). t01 through t14 are various incremental stages of applying the above improvement in a lot of places. I has started some benchmarking of them all but they were all improvements so the intermediates are removed in the real testing. t15, t16, and t17 are further minor-ish improvements to MDSE V2 code only. "a" is MDSE V1 and "b" is MDSE V2.

MDSE V1:

Code: Select all

w    t00a             t14a
--   --------------   --------------
15   2.179208181      1.007434166
16   2.875594136      1.302892788
17   3.956280419      1.771833358
18   5.98756925       2.640478987
19   8.231122597      3.649683159
20   11.36092886      4.949035301
21   14.765383972     6.34875466
22   19.313468837     8.270978591
23   24.908903481     11.103043977
24   35.539961516     16.417803006
25   49.229686364     24.33542167
26   75.541339587     40.015836081
27   114.429039934    67.391332504
28   184.074805606    117.783865081
29   331.023048504    231.734868122
30   603.291741762    507.55242579
31   1247.145129192   1075.122406816
I've dropped t15a, t16a, and t17a since they aren't meaningfully different code-wise and time-wise (mostly, I assume any difference are measurement error or chaotic optimizer issues as the changed code really isn't reached). In small searches this is a huge improvement but as the searches get bigger the improvement is less proportionally. This is sort of the reverse of how measuring the MDSE V1 abstraction costs was initially so probably not too surprising.

MDSE V2:

Code: Select all

w    t00b              t14b             t15b             t16b             t17b
--   ---------------   --------------   --------------   --------------   --------------
15   8.34755326        7.488296993      6.838683892      6.802047733      6.086685523
16   12.810014796      10.959642307     9.556171621      9.567457675      8.653356853
17   19.015609011      15.440844852     13.367917942     13.31346855      12.079003029
18   30.835210797      23.737452585     20.845525997     20.781878316     18.743904404
19   48.008849383      34.556772462     30.269942216     30.315771567     27.035340056
20   74.790069972      49.766158535     43.716533629     43.720936008     39.469225559
21   108.407010824     65.775157123     57.698048042     57.672994997     52.511038723
22   156.549511165     85.677147641     75.365748499     74.831471549     68.173491667
23   229.658624219     110.059844096    96.783188291     97.70416224      89.131594655
24   359.801061886     156.447870808    140.67437087     141.474644703    129.969696171
25   548.356217567     214.695963981    196.835687017    199.050854133    185.6005181
26   875.775567749     323.78530892     298.78451286     300.386058051    282.534150749
27   1385.376489109    493.296616248    462.361162117    461.746778216    441.293895805
28   2219.45450617     760.837976668    720.920902428    722.401446057    701.665939959
29   3600.961788436    1234.485896604   1177.274911798   1161.019270254   1149.780993929
30   5864.655853535    2067.658987429   1962.652514863   1970.841163291   1946.088951201
31   10010.539056965   3669.823864984   3577.70969575    3617.600395892   3489.65372984
t00 -> t14 is a serious improvement at all ranges and reading the delta between t00 and t14 it's to many different phases, which is sort of unsurprising as this speedup affects all BitTree parallel walks which is to say nearly all the code and all the time.

t14 -> t15 is a bit better. t15 -> t16 is debatable. I'm reasonably sure LLVM would have been making this optimization itself anyway so I assume the difference is all down to measurement variance. It's also eclipsed/obviated by t17 which is an improvement whether read against t15 or t16.

Benchmarking has started width 32 but I'm killing it given that I've got my answers. What it had completed so far is consistent with the above:

Code: Select all

W32 t00a r1 2659.092897134
W32 t00b r1 17044.752456975
W32 t14a r1 2278.895740369
W32 t14b r1 6722.226462973
W32 t15a r1 2299.891029545
W32 t15b r1 6433.183640297
W32 t16a r1 2275.771338316
I guess in the end it's maybe a lot of data and a lot of work to say what I already was pretty sure of, namely that it's improvments all around and a very serious one for MDSE V2. It's all pushed to codeberg master as of f3d22f9a8bf2 (just now).

I'm going to go back to recentering MDSE V2, namely getting that branch caught up (and deconflicted) with master and probably soon onto more serious benchmarking.
User avatar
NNlk05
Posts: 573
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 »

NNlk05 wrote: August 4th, 2026, 1:22 am I don't understand all the talk about "lattices" and "u, w, and v". Can you explain this in more layman terms?

A more layman explaination of LLSSS will also be nice.
Clairafiction: I can handle high-school math and some higher math. Do this change anything?
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: 1208
Joined: April 2nd, 2020, 9:47 pm

Re: amling search program principles discussion / brain dump

Post by amling »

Returning to recentering MDSE V2 things are looking a lot better in the next round of benchmarking with those earlier improvements now already on master.

t0 is master. t1 is with the new code added. t2a is with recentering MDSE V2 compiled in. t2b is actually using it. All times in seconds, median of 3.

Code: Select all

s    t0               t1               t2a              t2b               t2a/t0               t2b/t2a
--   --------------   --------------   --------------   ---------------   ------------------   ------------------
15   1.340860976      1.394426038      1.393702196      34.125260112      1.0394084255905736   24.485331378497733
16   1.810937972      1.890041911      1.865934135      45.502568924      1.0303688827835789   24.385945929436573
17   2.706555958      2.814817803      2.840063616      70.737871289      1.0493275070132506   24.907143238090057
18   3.798068983      3.962791589      3.955266689      84.793641284      1.0413888496242725   21.43816029392399
19   6.183206132      6.45743634       6.453668593      130.085739057     1.0437414595642014   20.15686693272383
20   10.684258988     11.145561577     11.168876611     188.530425374     1.0453580939533849   16.879981034826745
21   19.404050066     20.344117747     20.320542976     254.755717593     1.0472320421191803   12.536855825845036
22   42.838578253     44.778114142     44.5696634       519.039114579     1.040409491108141    11.64556954179286
23   87.607207463     91.411266331     101.266106607    816.932792419     1.1559106783510786   8.067188714871849
24   185.706734462    239.402327972    253.251024354    1444.418131401    1.3637148113539264   5.703503609059285
25   481.70584704     541.255260932    544.359362473    2551.960014812    1.1300659226330658   4.68800610541272
26   1103.869292769   1184.308674572   1191.378579793   4906.157432465    1.079275044244131    4.118050731881915
27   3820.41101496    4018.575655719   4073.693565176   18036.823244034   1.066297199234374    4.42763378134819
t1 and t2a are mostly comparable with t2a unsurprisingly slightly worse. t0 -> t2a (abstraction cost) is hopefully like 5-7% for big searches although mid_steps=23 through 25 did weirdly poorly. t2a -> t2b (actual MDSE V2) is hopefully like ~5x for big searches.

When I stopped it, the next size up had already completed one round:

Code: Select all

28 t0 11838.329711326
28 t1 12151.951237179
28 t2a 12491.613575158
28 t2b 80851.526588821
t0 -> t2a is as expected but t2a -> t2b is somewhat worse (~6.4x). It seems to have had a very bad time in build_steps for LlsssMonitorDefaultPartial and in particular had relatively low CPU utilization (like only ~1400% on a 40 proc box). This is maybe due to those tree pre-chunking changes and I have some vague ideas about it but it's sort of a low priority to figure it out.

Instead I have a great deal of mostly-simpler ideas driven by the profiler data that came out of these runs and I'm gonna start a round of benchmarking of all of them first.
User avatar
MDA
Posts: 231
Joined: June 8th, 2026, 12:18 pm
Location: In Haven (B3-ry4acenqt5eir6-ek/S2-a3-a4nq5aeknr6-ak)
Contact:

Re: amling search program principles discussion / brain dump

Post by MDA »

What parameters would I pass LLSSS if I wanted to find a camelship? How could I extend a partial?
My website (a database of Life objects, WIP).
GlidINT has been released!

Code: Select all

x = 5, y = 17, rule = B3-ry4acenqt5eir6-ek/S2-a3-a4nq5aeknr6-akHistory
C$2C$.2C$2C11$.3D$3.D$2.3D!
[[ STOP 72 ]]
amling
Posts: 1208
Joined: April 2nd, 2020, 9:47 pm

Re: amling search program principles discussion / brain dump

Post by amling »

MDA wrote: August 29th, 2026, 2:40 am What parameters would I pass LLSSS if I wanted to find a camelship?
You have the same difficulties as knight-wise searches, but not even the named geometry shorthands like KcNk-1 to help you. Right now you would have to write a "raw" geometry like "raw:1:0:0:-1:-3:6:0:1:0" for something analogous to c6k-1, but camel-wise. Maybe some day we'll do something like the "vv_orth" stuff discussed above and it could be "vv_orth:-1:-3:6". We could also conceivably add aliases like c6c-1 but at some point there are just too many slopes/animals and it seems like a losing battle.

I guess my current inclination is to pick a better name for "vv_orth" (and possibly "vv_diag") and ship it (them). It's probably even understandable enough to make it to the tutorial.
MDA wrote: August 29th, 2026, 2:40 am How could I extend a partial?
You can read (far) above for the state of the art, but the tools just aren't there to make it anything resembling approachable. I may post more thoughts on this in a bit...
amling
Posts: 1208
Joined: April 2nd, 2020, 9:47 pm

Re: amling search program principles discussion / brain dump

Post by amling »

As recently prompted, I was thinking a bit more about ingest-1gp. A lot of its difficulty arises from being so very general. In particular, if we require that the background agars agree between right/left and we insist the partial be complete at the front it all gets a lot easier. We can run half as many generations (just to V's T component) and truncate from the back based only on CA checks that fail to wrap around on the last generation. It's much easier to cut the result since we just want the half space of correctness in front of the "first" error (first in W build order).

It is also convenient to require zero or B0 agar so we don't have to figure out how to interpret extending your finite rectangle cut out of an infinite plane pattern (the partial situated in the agar) with the agar. This assumption is presumably possible to unwind by analyzing the edges of your rectangular bounding box (this isn't right if you somehow have the partial in a diamond of agar or such). For now I've cut all this out and only handle zero/B0 to do this prototyping faster.

It's somewhat simpler code and options (no guessing pads) and a lot, lot faster to run (no weird maximum area correct box algo). As written it interprets what it gets and outputs a format I'm probably gonna call "multi-generation partial", i.e. all generations and with one overlap (analogous to two rows) of agar padding on top, left, and right sides. If we like the ingester behavior we would presumably go on to write conversions from this to fixed board search input, to recentering search inputs, etc.

As sketched, here is it taking that 3c/10 partial:

Code: Select all

x = 22, y = 41, rule = B3/S23
10b2o$10b2o$10b2o$6bo8bo$5b2o8b2o$3b2obo8bob2o$3bo14bo2$3b2o12b2o$2bob
2o10b2obo$bo3b2o8b2o3bo$2bob2ob2o4b2ob2obo$4b2o10b2o$5bob2o4b2obo$6bo
8bo2$3b2o12b2o$2b3o12b3o$3b2o2b2o4b2o2b2o$2b3o2b2o4b2o2b3o$2b2obobo6bo
bob2o$bo5bo6bo5bo$bo3b2o8b2o3bo$5b2o8b2o$5bo10bo$2b2ob3o6b3ob2o$2bo3b
3o4b3o3bo$4bo12bo$bo3bo10bo3bo$o20bo$bob2o2b2o4b2o2b2obo$3b2obo2bo2bo
2bob2o$2b2obo10bob2o$2b2obobo6bobob2o$7b2o4b2o$5b4o4b4o$bo2bo3bo4bo3bo
2bo$b4ob3o4b3ob4o$o2bo14bo2bo$2bo3bo8bo3bo$3b2o12b2o!

Code: Select all

$ rlife mgp-tool ingest-1gp 3c10-f2b p1-3c10.rle
20260829 14:42:31 [INFO] Loaded file:
20260829 14:42:31 [INFO]    |           **           |
20260829 14:42:31 [INFO]    |           **           |
20260829 14:42:31 [INFO]    |           **           |
20260829 14:42:31 [INFO]    |       *        *       |
20260829 14:42:31 [INFO]    |      **        **      |
20260829 14:42:31 [INFO]    |    ** *        * **    |
20260829 14:42:31 [INFO]    |    *              *    |
20260829 14:42:31 [INFO]    |                        |
20260829 14:42:31 [INFO]    |    **            **    |
20260829 14:42:31 [INFO]    |   * **          ** *   |
20260829 14:42:31 [INFO]    |  *   **        **   *  |
20260829 14:42:31 [INFO]    |   * ** **    ** ** *   |
20260829 14:42:31 [INFO]    |     **          **     |
20260829 14:42:31 [INFO]    |      * **    ** *      |
20260829 14:42:31 [INFO]    |       *        *       |
20260829 14:42:31 [INFO]    |                        |
20260829 14:42:31 [INFO]    |    **            **    |
20260829 14:42:31 [INFO]    |   ***            ***   |
20260829 14:42:31 [INFO]    |    **  **    **  **    |
20260829 14:42:31 [INFO]    |   ***  **    **  ***   |
20260829 14:42:31 [INFO]    |   ** * *      * * **   |
20260829 14:42:31 [INFO]    |  *     *      *     *  |
20260829 14:42:31 [INFO]    |  *   **        **   *  |
20260829 14:42:31 [INFO]    |      **        **      |
20260829 14:42:31 [INFO]    |      *          *      |
20260829 14:42:31 [INFO]    |   ** ***      *** **   |
20260829 14:42:31 [INFO]    |   *   ***    ***   *   |
20260829 14:42:31 [INFO]    |     *            *     |
20260829 14:42:31 [INFO]    |  *   *          *   *  |
20260829 14:42:31 [INFO]    | *                    * |
20260829 14:42:31 [INFO]    |  * **  **    **  ** *  |
20260829 14:42:31 [INFO]    |    ** *  *  *  * **    |
20260829 14:42:31 [INFO]    |   ** *          * **   |
20260829 14:42:31 [INFO]    |   ** * *      * * **   |
20260829 14:42:31 [INFO]    |        **    **        |
20260829 14:42:31 [INFO]    |      ****    ****      |
20260829 14:42:31 [INFO]    |  *  *   *    *   *  *  |
20260829 14:42:31 [INFO]    |  **** ***    *** ****  |
20260829 14:42:31 [INFO]    | *  *              *  * |
20260829 14:42:31 [INFO]    |   *   *        *   *   |
20260829 14:42:31 [INFO]    |    **            **    |
20260829 14:42:31 [INFO] Final grid:
20260829 14:42:31 [INFO]    |                            |                            |                            |                            |                            |                            |                            | .......................... | .......................... | .......................... |
20260829 14:42:31 [INFO]    |                            |                            |                            |                            | .......................... | .......................... | .......................... | .......................... | .......................... | .......................... |
20260829 14:42:31 [INFO]    | .......................... | .......................... | .......................... | .......................... | .......................... | .......................... | .......................... | .......................... | .......................... | ...........****........... |
20260829 14:42:31 [INFO]    | .......................... | .......................... | .......................... | .......................... | .......................... | .......................... | .......................... | .......................... | ..........******.......... | .........*......*......... |
20260829 14:42:31 [INFO]    | ............**............ | ............**............ | ............**............ | ............**............ | ............**............ | ............**............ | ............**............ | .........********......... | .........********......... | .......................... |
20260829 14:42:31 [INFO]    | ............**............ | ...........*..*........... | ...........*..*........... | ...........*..*........... | ...........*..*........... | ...........*..*........... | ........****..****........ | ........*.*....*.*........ | ........*.*....*.*........ | .......**........**....... |
20260829 14:42:31 [INFO]    | ............**............ | ............**............ | ............**............ | ........*...**...*........ | ........**..**..**........ | .......****.**.****....... | ......***.*.**.*.***...... | ......***...**...***...... | .....**.*..****..*.**..... | .....*..*..*..*..*..*..... |
20260829 14:42:31 [INFO]    | ........*........*........ | .......**........**....... | .......***......***....... | ......****......****...... | ......*.**......**.*...... | .....**.*.*....*.*.**..... | .....*....*....*....*..... | .....**.*..*..*..*.**..... | ....*...*...**...*...*.... | ....*.*....*..*....*.*.... |
20260829 14:42:31 [INFO]    | .......**........**....... | ......*.**......**.*...... | .....**..*......*..**..... | ......*...*....*...*...... | .....**...*....*...**..... | .....****.*....*.****..... | ....*...*........*...*.... | ....**..............**.... | ...*..*............*..*... | .......................... |
20260829 14:42:31 [INFO]    | .....**.*........*.**..... | .....**.*........*.**..... | ........**......**........ | .....*..**......**..*..... | .........*......*......... | .....**............**..... | ....*................*.... | ...**................**... | .......................... | .......................... |
20260829 14:42:31 [INFO]    | .....*..............*..... | .....**............**..... | ....*................*.... | .......................... | .....*..............*..... | .....*..............*..... | ....***............***.... | ...**................**... | .......................... | ....****..........****.... |
20260829 14:42:31 [INFO]    | .......................... | .....**............**..... | ....*................*.... | ...***..............***... | ...*****..........*****... | ...*....*........*....*... | ....*................*.... | ....*.**..........**.*.... | ...******........******... | ....**..*........*..**.... |
20260829 14:42:31 [INFO]    | .....**............**..... | .....***..........***..... | ....*..*..........*..*.... | ....*.***........***.*.... | ...**.***........***.**... | ...*....*........*....*... | .......**........**....... | .......*.*......*.*....... | ......**..........**...... | ....*....*......*....*.... |
20260829 14:42:31 [INFO]    | ....*.**..........**.*.... | ....*...*........*...*.... | ...**.***........***.**... | ......*..*......*..*...... | .....**..*......*..**..... | ........**......**........ | .......***......***....... | .........*......*......... | .......*.**....**.*....... | ......**.**....**.**...... |
20260829 14:42:31 [INFO]    | ...*...**........**...*... | ...**....*......*....**... | ...***..**......**..***... | ...*....**......**....*... | .....**...*....*...**..... | .......*..........*....... | ........*........*........ | .......***......***....... | ........**......**........ | .......*.**....**.*....... |
20260829 14:42:31 [INFO]    | ....*.**.**....**.**.*.... | .....*...*......*...*..... | .....*..............*..... | .....**.**......**.**..... | ....***............***.... | ....*................*.... | .......................... | .......................... | .......*..........*....... | .......*..........*....... |
20260829 14:42:31 [INFO]    | ......**..........**...... | .....*..............*..... | .....*..*........*..*..... | .....*.**........**.*..... | .....*..............*..... | .......................... | .......................... | .......*..........*....... | .......*..........*....... | .......................... |
20260829 14:42:31 [INFO]    | .......*.**....**.*....... | ......**.*......*.**...... | ......**.*......*.**...... | ......*..*......*..*...... | .....*...*......*...*..... | .....*..*........*..*..... | ......***........***...... | ......*.*........*.*...... | ......****......****...... | .....*...**....**...*..... |
20260829 14:42:31 [INFO]    | ........*........*........ | ........**......**........ | .......***......***....... | ......**.*......*.**...... | ......**.*......*.**...... | ......**.*......*.**...... | ......**.*......*.**...... | .....*...**....**...*..... | .....**..**....**..**..... | .....**............**..... |
20260829 14:42:31 [INFO]    | .......................... | .......................... | .......................... | ........*........*........ | ........*........*........ | .........*......*......... | .....*...**....**...*..... | .....*....*....*....*..... | .........**....**......... | .....*...**....**...*..... |
20260829 14:42:31 [INFO]    | .....**............**..... | ....*.*............*.*.... | .....*..............*..... | .....*.*..........*.*..... | ......***........***...... | .....**.**......**.**..... | .....*****......*****..... | ....****..........****.... | ....*................*.... | .........*......*......... |
20260829 14:42:31 [INFO]    | ....***............***.... | ....*..*..........*..*.... | .....****........****..... | .....*..*........*..*..... | ....**..*........*..**.... | .....**............**..... | ....*...**......**...*.... | .....*...*......*...*..... | ....*...*........*...*.... | ....**.**........**.**.... |
20260829 14:42:31 [INFO]    | .....**..**....**..**..... | .......*.**....**.*....... | ......**..........**...... | .....*...*......*...*..... | ........**......**........ | .....**..*......*..**..... | .......*..........*....... | ......**..........**...... | .....*.**........**.*..... | ....**.**........**.**.... |
20260829 14:42:31 [INFO]    | ....***..**....**..***.... | .......*..........*....... | .........**....**......... | ........*........*........ | ......***........***...... | ......*..*......*..*...... | ......**..........**...... | .....*.*..........*.*..... | .....*.*..........*.*..... | ....**.**........**.**.... |
20260829 14:42:31 [INFO]    | ....**.*.*......*.*.**.... | ...*.....*......*.....*... | ......**..........**...... | ......**..........**...... | .......*..........*....... | ......*............*...... | .....**............**..... | .....*..............*..... | .....*..............*..... | ....**..............**.... |
20260829 14:42:31 [INFO]    | ...*.....*......*.....*... | ...*..**.*......*.**..*... | ......**.**....**.**...... | .......................... | ........*........*........ | ......*.*........*.*...... | ......*.*........*.*...... | ......*............*...... | .....**............**..... | .....*.*..........*.*..... |
20260829 14:42:31 [INFO]    | ...*...**........**...*... | .......*.*......*.*....... | .......*..........*....... | ......**.*......*.**...... | ......**..........**...... | .......**........**....... | ......*.*........*.*...... | ......*............*...... | ......**..........**...... | .....*****......*****..... |
20260829 14:42:31 [INFO]    | .......**........**....... | ......*............*...... | ........*........*........ | .......**........**....... | .........*......*......... | ......*............*...... | .......***......***....... | .......*.**....**.*....... | ........***....***........ | .....*....*....*....*..... |
20260829 14:42:31 [INFO]    | .......*..........*....... | .........*......*......... | .......*..........*....... | ......**.*......*.**...... | .....*....*....*....*..... | .........**....**......... | .........*.*..*.*......... | .........**....**......... | .....**.***....***.**..... | .....**....*..*....**..... |
20260829 14:42:31 [INFO]    | ....**.***......***.**.... | ....****..*....*..****.... | ....*.**.**....**.**.*.... | .....******....******..... | ..........*....*.......... | .........***..***......... | .....*..............*..... | ....***............***.... | ....*..****....****..*.... | ...**.*............*.**... |
20260829 14:42:31 [INFO]    | ....*...***....***...*.... | ....*.*...*....*...*.*.... | ....*.....*....*.....*.... | .....**...*....*...**..... | .....*....*....*....*..... | ....***...**..**...***.... | ....***.*........*.***.... | ....****.*......*.****.... | ...**...**......**...**... | ...***.*..........*.***... |
20260829 14:42:31 [INFO]    | ......*............*...... | .......***......***....... | .......***......***....... | .......*.*......*.*....... | ....***.***....***.***.... | ...*..***.*....*.***..*... | ...*....*.**..**.*....*... | ..*...*.*.*....*.*.*...*.. | ....*.....*....*.....*.... | ...***....*....*....***... |
20260829 14:42:31 [INFO]    | ...*...*..........*...*... | .......................... | ...*...**........**...*... | ...**....*......*....**... | ...**...*........*...**... | ...*..***........***..*... | ..****..**......**..****.. | .....*.**.*....*.**.*..... | .....*....*....*....*..... | .........**....**......... |
20260829 14:42:31 [INFO]    | ..*....................*.. | ..***.*............*.***.. | ...**.**..........**.**... | ...**................**... | ..*..*..............*..*.. | ..*..*..............*..*.. | ..***...*........*...***.. | .....*.***......***.*..... | .......*.*......*.*....... | .....*.*.**....**.*.*..... |
20260829 14:42:31 [INFO]    | ...*.**..**....**..**.*... | ....****.**....**.****.... | ....*.**..*....*..**.*.... | ...**..*..........*..**... | ...*..*............*..*... | ...*...*..........*...*... | ...*...*..........*...*... | .......................... | ....*.**.*......*.**.*.... |                            |
20260829 14:42:31 [INFO]    | .....**.*..*..*..*.**..... | ........***....***........ | .....*....*....*....*..... | .....**............**..... | ....****..........****.... | ....****..........****.... |                            |                            |                            |                            |
20260829 14:42:31 [INFO]    | ....**.*..........*.**.... | .......*..........*....... | .......................... |                            |                            |                            |                            |                            |                            |                            |
Or some c/4d B0 partial from somewhere up thread, ingested in c4d-f2b:

Code: Select all

x = 27, y = 27, rule = B023/S0125
6bobobo$6bobobo$8b4obo$7b2ob2o2bo$7bo2bob3o$7bob2o2bobo$2o9bob2ob2o$3b
3o3bob5o$4o8b2o3bo$2bo2bobo6bo$6o7bo$2b2o2b2o11bobo$4bo2b2o3bo4bo2bo3b
obo$2bob5obo3bob2o7bo$3b2ob2obo3b2obo5b2o$5bobo11b2o$6bo6b2o3bob2o$6bo
bo3b2o5b3o$16bobobo$11bo3bobobo$12bo2b4o$11bo4b2o$14bo$14bo$12bo$13bo$
12bo!

Code: Select all

$ rlife mgp-tool ingest-1gp --rule 'B023/S0125' --agar b0 c4d-f2b p2-c4d-oca.rle
20260829 14:42:39 [INFO] Loaded file:
20260829 14:42:39 [INFO]    |       * * *                 |
20260829 14:42:39 [INFO]    |       * * *                 |
20260829 14:42:39 [INFO]    |         **** *              |
20260829 14:42:39 [INFO]    |        ** **  *             |
20260829 14:42:39 [INFO]    |        *  * ***             |
20260829 14:42:39 [INFO]    |        * **  * *            |
20260829 14:42:39 [INFO]    | **         * ** **          |
20260829 14:42:39 [INFO]    |    ***   * *****            |
20260829 14:42:39 [INFO]    | ****        **   *          |
20260829 14:42:39 [INFO]    |   *  * *      *             |
20260829 14:42:39 [INFO]    | ******       *              |
20260829 14:42:39 [INFO]    |   **  **           * *      |
20260829 14:42:39 [INFO]    |     *  **   *    *  *   * * |
20260829 14:42:39 [INFO]    |   * ***** *   * **       *  |
20260829 14:42:39 [INFO]    |    ** ** *   ** *     **    |
20260829 14:42:39 [INFO]    |      * *           **       |
20260829 14:42:39 [INFO]    |       *      **   * **      |
20260829 14:42:39 [INFO]    |       * *   **     ***      |
20260829 14:42:39 [INFO]    |                 * * *       |
20260829 14:42:39 [INFO]    |            *   * * *        |
20260829 14:42:39 [INFO]    |             *  ****         |
20260829 14:42:39 [INFO]    |            *    **          |
20260829 14:42:39 [INFO]    |               *             |
20260829 14:42:39 [INFO]    |               *             |
20260829 14:42:39 [INFO]    |             *               |
20260829 14:42:39 [INFO]    |              *              |
20260829 14:42:39 [INFO]    |             *               |
20260829 14:42:39 [INFO] Final grid:
20260829 14:42:39 [INFO]    |                                    |                                    |                                    |                                    |
20260829 14:42:39 [INFO]    |                                    |                                    |                   *                |                   .                |
20260829 14:42:39 [INFO]    |                   **               |                   ..               |                  ***               |                  ...               |
20260829 14:42:39 [INFO]    |                  ****              |                  ....              |                 *****              |                 .....              |
20260829 14:42:39 [INFO]    |                 ******             |                 ......             |                *******             |                .......             |
20260829 14:42:39 [INFO]    |                ********            |                ........            |               *********            |               .........            |
20260829 14:42:39 [INFO]    |               **********           |               ..........           |              ***********           |              ...........           |
20260829 14:42:39 [INFO]    |              ************          |              ............          |             *************          |             .............          |
20260829 14:42:39 [INFO]    |             **************         |             ..............         |            ***************         |            ...............         |
20260829 14:42:39 [INFO]    |            ****************        |            ................        |           *****..*..*******        |           .................        |
20260829 14:42:39 [INFO]    |           ****..*.*..*******       |           ......*.*.........       |          ******.*..**..*****       |          .....*.*.*.........       |
20260829 14:42:39 [INFO]    |          *******.*.**********      |          ........***.*.......      |         *******.*.*..********      |         ......*.*.*..........      |
20260829 14:42:39 [INFO]    |         ********.....*..******     |         ..........**.*........     |        ********.*..*.*********     |        .........****.*........     |
20260829 14:42:39 [INFO]    |        *******.*...*.***.******    |        .........****...........    |       **********...*.**.*******    |       .........**.**..*........    |
20260829 14:42:39 [INFO]    |       **********...**...********   |       ..........****.**.........   |      ***********.......*.*******   |      ..........*..*.***.........   |
20260829 14:42:39 [INFO]    |      ***********........*.*******  |      ............*****.*.........  |     ************.*......*.*******  |     ...........*.**..*.*.........  |
20260829 14:42:39 [INFO]    |     ****.**.*******...*..**.****** |     ............*..******......... |    ************.*..*.....********* |    .....**.........*.**.**........ |
20260829 14:42:39 [INFO]    |    *****.*******.**...*...*.****** |    ...............*..****......... |   *****....***.*.**......********  |   .........***...*.*****.........  |
20260829 14:42:39 [INFO]    |   *******.....*.*.**...*..*******  |   ......*..**.*...*.***.*........  |  ******.***...*.***..**.********   |  .......****........**...*......   |
20260829 14:42:39 [INFO]    |  *******.*....**.*.**.*.***.****   |  ........*.***.....*.*..........   | ********.....*.*****..**..*****    | ..........*..*.*......*........    |
20260829 14:42:39 [INFO]    | *********.....***.**.*.*....***    | ........******.**..............    | *******..*.....*****.**..**.**     | ........******.......*........     |
20260829 14:42:39 [INFO]    |  *******.*.**...*****.**.**..*     |  ........******..*.**.*..**...     |  ******.*.**..*..*******.***.      |  .........**..**...........*.      |
20260829 14:42:39 [INFO]    |   ******.*..*....*.*.**.*..**      |   ...........**.*..*..*....*.      |   *******..........**.**.*.*       |   ..........*..**...*....*..       |
20260829 14:42:39 [INFO]    |    *********......*.***.****       |    ......**.******....*....*       |    *****.***....*.**..*****        |    .......*.*****.*...*.**.        |
20260829 14:42:39 [INFO]    |     ******.*..**.*.***.*...        |     ........*.***..***.....        |     ****.***....*******.*.         |     .......**.**.*...**.*.         |
20260829 14:42:39 [INFO]    |      *****.*....*.**..**.*         |      ........***..........         |      ******.*....*.***.**          |      ........*.*.........          |
20260829 14:42:39 [INFO]    |       *****.**...*..**..*          |       ........***........          |       ******.*..*....***           |       ........*......**.           |
20260829 14:42:39 [INFO]    |        ******.*..*.*.*.*           |        ............*....           |        ******.***.****.            |        .......*.*...**.            |
20260829 14:42:39 [INFO]    |         **********.*.*.            |         ...........*...            |         ************.*             |         ..............             |
20260829 14:42:39 [INFO]    |          *****..*...**             |          ...........**             |          *********.**              |          ..........*.              |
20260829 14:42:39 [INFO]    |           *********.*              |           ...........              |           *********.               |           ..........               |
20260829 14:42:39 [INFO]    |            *********               |            .........               |            ********                |            ........                |
20260829 14:42:39 [INFO]    |             *******                |             .......                |             ******                 |             ......                 |
20260829 14:42:39 [INFO]    |              *****                 |              .....                 |              ****                  |              ....                  |
20260829 14:42:39 [INFO]    |               ***                  |               ...                  |               **                   |               ..                   |
20260829 14:42:39 [INFO]    |                *                   |                .                   |                                    |                                    |
Or some leaning 2c5-f2b partial chosen to be a weird example:

Code: Select all

x = 17, y = 21, rule = B3/S23
14bo$13bobo$12b2ob2o$15b2o$14bo$11b4o$10b2o2bo$9bo2b2o$8b5o$8bobo$8bob
2o$8bobo$10bob2o$10bo$9b3o2$8bo$6b3o$b2o$ob2o2b2o$o2bo3b7o!

Code: Select all

$ rlife mgp-tool ingest-1gp 2c5-f2b p3-2c5.rle
20260829 14:42:48 [INFO] Loaded file:
20260829 14:42:48 [INFO]    |               *   |
20260829 14:42:48 [INFO]    |              * *  |
20260829 14:42:48 [INFO]    |             ** ** |
20260829 14:42:48 [INFO]    |                ** |
20260829 14:42:48 [INFO]    |               *   |
20260829 14:42:48 [INFO]    |            ****   |
20260829 14:42:48 [INFO]    |           **  *   |
20260829 14:42:48 [INFO]    |          *  **    |
20260829 14:42:48 [INFO]    |         *****     |
20260829 14:42:48 [INFO]    |         * *       |
20260829 14:42:48 [INFO]    |         * **      |
20260829 14:42:48 [INFO]    |         * *       |
20260829 14:42:48 [INFO]    |           * **    |
20260829 14:42:48 [INFO]    |           *       |
20260829 14:42:48 [INFO]    |          ***      |
20260829 14:42:48 [INFO]    |                   |
20260829 14:42:48 [INFO]    |         *         |
20260829 14:42:48 [INFO]    |       ***         |
20260829 14:42:48 [INFO]    |  **               |
20260829 14:42:48 [INFO]    | * **  **          |
20260829 14:42:48 [INFO]    | *  *   *******    |
20260829 14:42:48 [INFO] Final grid:
20260829 14:42:48 [INFO]    |                |                |                | .............. | .............. |
20260829 14:42:48 [INFO]    | .............. | .............. | .............. | .............. | .............. |
20260829 14:42:48 [INFO]    | .............. | .............. | .............. | .........*.... | ........***... |
20260829 14:42:48 [INFO]    | .........*.... | .........*.... | ........***... | ........***... | ........*.*... |
20260829 14:42:48 [INFO]    | ........*.*... | .......**.**.. | .......*..*... | ........*..... | ........*..*.. |
20260829 14:42:48 [INFO]    | .......**.**.. | .......**..... | ..........**.. | .........***.. | ..........*... |
20260829 14:42:48 [INFO]    | ..........**.. | ........*..*.. | .........*.... | ........**.... | ........*..... |
20260829 14:42:48 [INFO]    | .........*.... | .......*.*.... | .......*.*.... | ......*..*.... | .....***.*.... |
20260829 14:42:48 [INFO]    | ......****.... | .....***.**... | .....*.*.**... | ....**.*...... | ....*..**..... |
20260829 14:42:48 [INFO]    | .....**..*.... | .....*...*.... | ....**.*.**... | ....**.*...... | ....**........ |
20260829 14:42:48 [INFO]    | ....*..**..... | ...*....*..... | ....*..***.... | ..........*... | ...*..*....... |
20260829 14:42:48 [INFO]    | ...*****...... | ...*...**..... | ...**..**..... | ...**.*....... | ...*.......... |
20260829 14:42:48 [INFO]    | ...*.*........ | ..**...*...... | .......**..... | ..*........... | ....**.*...... |
20260829 14:42:48 [INFO]    | ...*.**....... | ..**.**....... | ..**.*.*...... | ....*..**..... | ...*.*.*...... |
20260829 14:42:48 [INFO]    | ...*.*........ | .....*.*...... | .....*........ | ....*.*....... | .....*.*...... |
20260829 14:42:48 [INFO]    | .....*.**..... | .....*........ | .............. | .............. | .....*........ |
20260829 14:42:48 [INFO]    | .....*........ | .......*...... | ....*......... | .....*........ | ....*......... |
20260829 14:42:48 [INFO]    | ....***....... | ....***....... | ....*.*....... | ...**......... | ..*........... |
20260829 14:42:48 [INFO]    | .............. | ....**........ | ...*..*....... | ..****........ |                |
20260829 14:42:48 [INFO]    | ...*.......... | ...*.......... |                |                |                |
I think the conversion to fixed board search input is pretty straight-forward: the question marks should match the U envelope of background mismatches in the last W overlap worth of rows and I would generate one W overlap worth of them for clairty, e.g. for that 2c/5 example I would say it should look like:

Code: Select all

|                |                |                | .............. | .............. |
| .............. | .............. | .............. | .............. | .............. |
| .............. | .............. | .............. | .........*.... | ........***... |
| .........*.... | .........*.... | ........***... | ........***... | ........*.*... |
| ........*.*... | .......**.**.. | .......*..*... | ........*..... | ........*..*.. |
| .......**.**.. | .......**..... | ..........**.. | .........***.. | ..........*... |
| ..........**.. | ........*..*.. | .........*.... | ........**.... | ........*..... |
| .........*.... | .......*.*.... | .......*.*.... | ......*..*.... | .....***.*.... |
| ......****.... | .....***.**... | .....*.*.**... | ....**.*...... | ....*..**..... |
| .....**..*.... | .....*...*.... | ....**.*.**... | ....**.*...... | ....**........ |
| ....*..**..... | ...*....*..... | ....*..***.... | ..........*... | ...*..*....... |
| ...*****...... | ...*...**..... | ...**..**..... | ...**.*....... | ...*.......... |
| ...*.*........ | ..**...*...... | .......**..... | ..*........... | ....**.*...... |
| ...*.**....... | ..**.**....... | ..**.*.*...... | ....*..**..... | ...*.*.*...... |
| ...*.*........ | .....*.*...... | .....*........ | ....*.*....... | .....*.*...... |
| .....*.**..... | .....*........ | .............. | .............. | .....*........ |
| .....*........ | .......*...... | ....*......... | .....*........ | ....*......... |
| ....***....... | ....***....... | ....*.*....... | ...**......... | ..*........... |
| .............. | ....**........ | ...*..*....... | ..****........ | ..?????....... |
| ...*.......... | ...*.......... | ..?????....... | ..?????....... | ..?????....... |
| ..?????....... | ..?????....... | ..?????....... | ..?????....... |                |
| ..?????....... | ..?????....... |                |                |                |
The converter would probably also take top/left/right pad to allow padding with additional background agar (for top/left/right pad of actual search to expand into).

Recentering is a tougher question. There is the similar sort of thing with question marks:

Code: Select all

|                  |                  |                  | ................ | ................ |
| LLLuuuuuuuuuuRRR | ................ | ................ | ................ | ................ |
| ................ | ................ | ................ | ..........*..... | ..........*..... |
| ................ | ..........*..... | .........***.... | .........*.*.... | ........**.**... |
| .........***.... | .........***.... | .........*.*.... | ........**.**... | ........**...... |
| ........*..*.... | .........*...... | .........*..*... | ...........**... | .........*..*... |
| ...........**... | ..........***... | ...........*.... | ..........*..... | ........*.*..... |
| ..........*..... | .........**..... | .........*...... | .......****..... | ......***.**.... |
| ........*.*..... | .......*..*..... | ......***.*..... | ......**..*..... | ......*...*..... |
| ......*.*.**.... | .....**.*....... | .....*..**...... | .....*..**...... | ....*....*...... |
| .....**.*.**.... | .....**.*....... | .....**......... | ....*****....... | ....*...**...... |
| .....*..***..... | ...........*.... | ....*..*........ | ....*.*......... | ...**...*....... |
| ....**..**...... | ....**.*........ | ....*........... | ....*.**........ | ...**.**........ |
| ........**...... | ...*............ | .....**.*....... | ....*.*......... | ......*.*....... |
| ...**.*.*....... | .....*..**...... | ....*.*.*....... | ......*.**...... | ......*......... |
| ......*......... | .....*.*........ | ......*.*....... | ......*......... | ........*....... |
| ................ | ................ | ......*......... | .....***........ | .....***........ |
| .....*.......... | ......*......... | .....*.......... | ................ | .....**......... |
| .....*.*........ | ....**.......... | ...*............ | ....*........... | ....*........... |
| ....*..*........ | ...****......... | ...?????........ | ...?????........ | ...?????........ |
| ...?????........ | ...?????........ | ...?????........ | ...?????........ | ...?????........ |
| ...?????........ | ...?????........ |                  |                  |                  |
I guess we'd leave it to users to decide left/right pad? I don't think I like this, even if recentering theoretically supports it. More likely, what we think of typical recentering behaviour is no question marks, i.e. just slap roots on and multiply up the side agar so it can cycle:

Code: Select all

|                  |                  |                  | ................ | ................ |
| LLLuuuuuuuuuuRRR | ................ | ................ | ................ | ................ |
| ................ | ................ | ................ | ..........*..... | ..........*..... |
| ................ | ..........*..... | .........***.... | .........*.*.... | ........**.**... |
| .........***.... | .........***.... | .........*.*.... | ........**.**... | ........**...... |
| ........*..*.... | .........*...... | .........*..*... | ...........**... | .........*..*... |
| ...........**... | ..........***... | ...........*.... | ..........*..... | ........*.*..... |
| ..........*..... | .........**..... | .........*...... | .......****..... | ......***.**.... |
| ........*.*..... | .......*..*..... | ......***.*..... | ......**..*..... | ......*...*..... |
| ......*.*.**.... | .....**.*....... | .....*..**...... | .....*..**...... | ....*....*...... |
| .....**.*.**.... | .....**.*....... | .....**......... | ....*****....... | ....*...**...... |
| .....*..***..... | ...........*.... | ....*..*........ | ....*.*......... | ...**...*....... |
| ....**..**...... | ....**.*........ | ....*........... | ....*.**........ | ...**.**........ |
| ........**...... | ...*............ | .....**.*....... | ....*.*......... | ......*.*....... |
| ...**.*.*....... | .....*..**...... | ....*.*.*....... | ......*.**...... | ......*......... |
| ......*......... | .....*.*........ | ......*.*....... | ......*......... | ........*....... |
| ................ | ................ | ......*......... | .....***........ | .....***........ |
| .....*.......... | ......*......... | .....*.......... | ................ | .....**......... |
| .....*.*........ | ....**.......... | ...*............ | ....*........... | ....*........... |
| ....*..*........ | ...****......... |                  |                  |                  |
amling
Posts: 1208
Joined: April 2nd, 2020, 9:47 pm

Re: amling search program principles discussion / brain dump

Post by amling »

I cleaned up the assumption of zero/B0 so this works with other agars subject to typical agar smallness constraints. For example, this 2c3-f2b zebra stripes partial:

Code: Select all

x = 30, y = 49, rule = B3/S23
30o2$30o2$30o2$30o2$12o4b14o2$11o6b13o$11bo4bo$12o4b14o$10b8o$8o4bo2bo
4b10o$8bo3bo2bo3bo$8o12b10o$9bo8bo$10o8b12o$10bo6bo$12o4b14o2$9o3b4o3b
11o$13b2o$8o12b10o$8bo10bo$10o8b12o$10bo6bo$11o6b13o$11bo4bo$10o3b2o3b
12o$13b2o$8o12b10o$8bo10bo$9o10b11o$9bo8bo$11o6b13o$11bo4bo$12o4b14o$
10b8o$8o4bo2bo4b10o2$30o2$30o2$30o2$30o!

Code: Select all

$ rlife mgp-tool ingest-1gp --agar 'horizontal-stripes' 2c3-f2b p4-2c3-zebra.rle
20260829 16:07:17 [INFO] Loaded file:
20260829 16:07:17 [INFO]    | ****************************** |
20260829 16:07:17 [INFO]    |                                |
20260829 16:07:17 [INFO]    | ****************************** |
20260829 16:07:17 [INFO]    |                                |
20260829 16:07:17 [INFO]    | ****************************** |
20260829 16:07:17 [INFO]    |                                |
20260829 16:07:17 [INFO]    | ****************************** |
20260829 16:07:17 [INFO]    |                                |
20260829 16:07:17 [INFO]    | ************    ************** |
20260829 16:07:17 [INFO]    |                                |
20260829 16:07:17 [INFO]    | ***********      ************* |
20260829 16:07:17 [INFO]    |            *    *              |
20260829 16:07:17 [INFO]    | ************    ************** |
20260829 16:07:17 [INFO]    |           ********             |
20260829 16:07:17 [INFO]    | ********    *  *    ********** |
20260829 16:07:17 [INFO]    |         *   *  *   *           |
20260829 16:07:17 [INFO]    | ********            ********** |
20260829 16:07:17 [INFO]    |          *        *            |
20260829 16:07:17 [INFO]    | **********        ************ |
20260829 16:07:17 [INFO]    |           *      *             |
20260829 16:07:17 [INFO]    | ************    ************** |
20260829 16:07:17 [INFO]    |                                |
20260829 16:07:17 [INFO]    | *********   ****   *********** |
20260829 16:07:17 [INFO]    |              **                |
20260829 16:07:17 [INFO]    | ********            ********** |
20260829 16:07:17 [INFO]    |         *          *           |
20260829 16:07:17 [INFO]    | **********        ************ |
20260829 16:07:17 [INFO]    |           *      *             |
20260829 16:07:17 [INFO]    | ***********      ************* |
20260829 16:07:17 [INFO]    |            *    *              |
20260829 16:07:17 [INFO]    | **********   **   ************ |
20260829 16:07:17 [INFO]    |              **                |
20260829 16:07:17 [INFO]    | ********            ********** |
20260829 16:07:17 [INFO]    |         *          *           |
20260829 16:07:17 [INFO]    | *********          *********** |
20260829 16:07:17 [INFO]    |          *        *            |
20260829 16:07:17 [INFO]    | ***********      ************* |
20260829 16:07:17 [INFO]    |            *    *              |
20260829 16:07:17 [INFO]    | ************    ************** |
20260829 16:07:17 [INFO]    |           ********             |
20260829 16:07:17 [INFO]    | ********    *  *    ********** |
20260829 16:07:17 [INFO]    |                                |
20260829 16:07:17 [INFO]    | ****************************** |
20260829 16:07:17 [INFO]    |                                |
20260829 16:07:17 [INFO]    | ****************************** |
20260829 16:07:17 [INFO]    |                                |
20260829 16:07:17 [INFO]    | ****************************** |
20260829 16:07:17 [INFO]    |                                |
20260829 16:07:17 [INFO]    | ****************************** |
20260829 16:07:17 [INFO] Final grid:
20260829 16:07:17 [INFO]    |                  |                  | ................ |
20260829 16:07:17 [INFO]    | **************** | **************** | **************** |
20260829 16:07:17 [INFO]    | ................ | ................ | .......**....... |
20260829 16:07:17 [INFO]    | *******..******* | ******....****** | *****......***** |
20260829 16:07:17 [INFO]    | ................ | ................ | .....*....*..... |
20260829 16:07:17 [INFO]    | *****......***** | *****......***** | *****......***** |
20260829 16:07:17 [INFO]    | .....*....*..... | .....*....*..... | .....*....*..... |
20260829 16:07:17 [INFO]    | ******....****** | ******....****** | ****...**...**** |
20260829 16:07:17 [INFO]    | ................ | ....********.... | .......**....... |
20260829 16:07:17 [INFO]    | ***...****...*** | **....*..*....** | **............** |
20260829 16:07:17 [INFO]    | .......**....... | ..*...*..*...*.. | ..*..........*.. |
20260829 16:07:17 [INFO]    | **............** | **............** | ***..........*** |
20260829 16:07:17 [INFO]    | ..*..........*.. | ...*........*... | ...*........*... |
20260829 16:07:17 [INFO]    | ****........**** | ****........**** | *****......***** |
20260829 16:07:17 [INFO]    | ....*......*.... | ....*......*.... | .....*....*..... |
20260829 16:07:17 [INFO]    | *****......***** | ******....****** | ******....****** |
20260829 16:07:17 [INFO]    | .....*....*..... | ................ | ....********.... |
20260829 16:07:17 [INFO]    | ****...**...**** | ***...****...*** | **....*..*....** |
20260829 16:07:17 [INFO]    | .......**....... | .......**....... | ..*...*..*...*.. |
20260829 16:07:17 [INFO]    | **............** | **............** | **............** |
20260829 16:07:17 [INFO]    | ..*..........*.. | ..*..........*.. | ...*........*... |
20260829 16:07:17 [INFO]    | ***..........*** | ****........**** | ****........**** |
20260829 16:07:17 [INFO]    | ...*........*... | ....*......*.... | ....*......*.... |
20260829 16:07:17 [INFO]    | *****......***** | *****......***** | ******....****** |
20260829 16:07:17 [INFO]    | .....*....*..... | .....*....*..... | ................ |
20260829 16:07:17 [INFO]    | ******....****** | ****...**...**** | ***...****...*** |
20260829 16:07:17 [INFO]    | ....********.... | .......**....... | .......**....... |
20260829 16:07:17 [INFO]    | **....*..*....** | **............** | **............** |
20260829 16:07:17 [INFO]    | ..*...*..*...*.. | ..*..........*.. | ..*..........*.. |
20260829 16:07:17 [INFO]    | **............** | ***..........*** | ****........**** |
20260829 16:07:17 [INFO]    | ...*........*... | ...*........*... | ....*......*.... |
20260829 16:07:17 [INFO]    | ****........**** | *****......***** | *****......***** |
20260829 16:07:17 [INFO]    | ....*......*.... | .....*....*..... | .....*....*..... |
20260829 16:07:17 [INFO]    | ******....****** | ******....****** |                  |
$
I also sketched a to-fixed-input subsubcommand:

Code: Select all

$ rlife mgp-tool ingest-1gp --agar 'horizontal-stripes' 2c3-f2b p4-2c3-zebra.rle p4-2c3-zebra.mgp
...
20260829 16:07:53 [INFO] Saved to "p4-2c3-zebra.mgp".
$ rlife mgp-tool to-fixed-input --agar 'horizontal-stripes' 2c3-f2b p4-2c3-zebra.mgp
20260829 16:08:06 [INFO] Final grid:
20260829 16:08:06 [INFO]    |                  |                  | ................ |
20260829 16:08:06 [INFO]    | **************** | **************** | **************** |
20260829 16:08:06 [INFO]    | ................ | ................ | .......**....... |
20260829 16:08:06 [INFO]    | *******..******* | ******....****** | *****......***** |
20260829 16:08:06 [INFO]    | ................ | ................ | .....*....*..... |
20260829 16:08:06 [INFO]    | *****......***** | *****......***** | *****......***** |
20260829 16:08:06 [INFO]    | .....*....*..... | .....*....*..... | .....*....*..... |
20260829 16:08:06 [INFO]    | ******....****** | ******....****** | ****...**...**** |
20260829 16:08:06 [INFO]    | ................ | ....********.... | .......**....... |
20260829 16:08:06 [INFO]    | ***...****...*** | **....*..*....** | **............** |
20260829 16:08:06 [INFO]    | .......**....... | ..*...*..*...*.. | ..*..........*.. |
20260829 16:08:06 [INFO]    | **............** | **............** | ***..........*** |
20260829 16:08:06 [INFO]    | ..*..........*.. | ...*........*... | ...*........*... |
20260829 16:08:06 [INFO]    | ****........**** | ****........**** | *****......***** |
20260829 16:08:06 [INFO]    | ....*......*.... | ....*......*.... | .....*....*..... |
20260829 16:08:06 [INFO]    | *****......***** | ******....****** | ******....****** |
20260829 16:08:06 [INFO]    | .....*....*..... | ................ | ....********.... |
20260829 16:08:06 [INFO]    | ****...**...**** | ***...****...*** | **....*..*....** |
20260829 16:08:06 [INFO]    | .......**....... | .......**....... | ..*...*..*...*.. |
20260829 16:08:06 [INFO]    | **............** | **............** | **............** |
20260829 16:08:06 [INFO]    | ..*..........*.. | ..*..........*.. | ...*........*... |
20260829 16:08:06 [INFO]    | ***..........*** | ****........**** | ****........**** |
20260829 16:08:06 [INFO]    | ...*........*... | ....*......*.... | ....*......*.... |
20260829 16:08:06 [INFO]    | *****......***** | *****......***** | ******....****** |
20260829 16:08:06 [INFO]    | .....*....*..... | .....*....*..... | ................ |
20260829 16:08:06 [INFO]    | ******....****** | ****...**...**** | ***...****...*** |
20260829 16:08:06 [INFO]    | ....********.... | .......**....... | .......**....... |
20260829 16:08:06 [INFO]    | **....*..*....** | **............** | **............** |
20260829 16:08:06 [INFO]    | ..*...*..*...*.. | ..*..........*.. | ..*..........*.. |
20260829 16:08:06 [INFO]    | **............** | ***..........*** | ****........**** |
20260829 16:08:06 [INFO]    | ...*........*... | ...*........*... | ....*......*.... |
20260829 16:08:06 [INFO]    | ****........**** | *****......***** | *****......***** |
20260829 16:08:06 [INFO]    | ....*......*.... | .....*....*..... | .....*....*..... |
20260829 16:08:06 [INFO]    | ******....****** | ******....****** | ****????????**** |
20260829 16:08:06 [INFO]    | ....????????.... | ....????????.... | ....????????.... |
20260829 16:08:06 [INFO]    | ****????????**** | ****????????**** |                  |
$
to-fixed-input also takes top/left/right pad as sugggested and can take an optional file name to output to. With this all written I think the end-to-end workflow for the fixed board asymmetric case is shaping up:

Code: Select all

$ rlife mgp-tool ingest-1gp 2c5-f2b p3-2c5.rle p3-2c5.mgp
...
20260829 16:09:25 [INFO] Saved to "p3-2c5.mgp".
$ rlife mgp-tool to-fixed-input 2c5-f2b p3-2c5.mgp --top-pad 20 --left-pad 4 --right-pad 4 p3-2c5.in
20260829 16:10:07 [INFO] Saved to "p3-2c5.in".
$ cat p3-2c5.in
|                        |                        |                        | ...................... | ...................... |
| ...................... | ...................... | ...................... | ...................... | ...................... |
| ...................... | ...................... | ...................... | ...................... | ...................... |
| ...................... | ...................... | ...................... | ...................... | ...................... |
| ...................... | ...................... | ...................... | ...................... | ...................... |
| ...................... | ...................... | ...................... | ...................... | ...................... |
| ...................... | ...................... | ...................... | .............*........ | ............***....... |
| .............*........ | .............*........ | ............***....... | ............***....... | ............*.*....... |
| ............*.*....... | ...........**.**...... | ...........*..*....... | ............*......... | ............*..*...... |
| ...........**.**...... | ...........**......... | ..............**...... | .............***...... | ..............*....... |
| ..............**...... | ............*..*...... | .............*........ | ............**........ | ............*......... |
| .............*........ | ...........*.*........ | ...........*.*........ | ..........*..*........ | .........***.*........ |
| ..........****........ | .........***.**....... | .........*.*.**....... | ........**.*.......... | ........*..**......... |
| .........**..*........ | .........*...*........ | ........**.*.**....... | ........**.*.......... | ........**............ |
| ........*..**......... | .......*....*......... | ........*..***........ | ..............*....... | .......*..*........... |
| .......*****.......... | .......*...**......... | .......**..**......... | .......**.*........... | .......*.............. |
| .......*.*............ | ......**...*.......... | ...........**......... | ......*............... | ........**.*.......... |
| .......*.**........... | ......**.**........... | ......**.*.*.......... | ........*..**......... | .......*.*.*.......... |
| .......*.*............ | .........*.*.......... | .........*............ | ........*.*........... | .........*.*.......... |
| .........*.**......... | .........*............ | ...................... | ...................... | .........*............ |
| .........*............ | ...........*.......... | ........*............. | .........*............ | ........*............. |
| ........***........... | ........***........... | ........*.*........... | .......**............. | ......*............... |
| ...................... | ........**............ | .......*..*........... | ......****............ | ......?????........... |
| .......*.............. | .......*.............. | ......?????........... | ......?????........... | ......?????........... |
| ......?????........... | ......?????........... | ......?????........... | ......?????........... |                        |
| ......?????........... | ......?????........... |                        |                        |                        |
$ rlife llsss 2c5-f2b p3-2c5.in --left-pad 01 --right-pad 01
...
20260829 16:10:56 [INFO] Firstest:
20260829 16:10:56 [INFO] |             |             |             | .....*.*... | ....**..... |
20260829 16:10:56 [INFO] | .....*..... | ........... | .....**.... | ....*..*... | ...****.... |
20260829 16:10:56 [INFO] | ...*....... | ....*...... | ....*...... | ...**...... | .....*..... |
20260829 16:10:56 [INFO] | ...*..*.... | ..***...... | ...**...... | ...**...... | ..*..*..... |
20260829 16:10:56 [INFO] | ...*....... | ........... | ..*........ | ...**...... | ........... |
20260829 16:10:56 [INFO] | ........... | ...*.*..... | .....*..... | ....*.*.... | ...**.**... |
20260829 16:10:56 [INFO] | ...****.... | ....****... | ...*.*.*... | .....*.**.. | .......*... |
20260829 16:10:56 [INFO] | ......**... | ...*...*... | ....**.**.. | ....**..... | ....**..... |
20260829 16:10:56 [INFO] | ...*...*... | .......*... | .......**.. | .....*..... | .......*... |
20260829 16:10:56 [INFO] | ......*.... | ......**... | ......**... | .....****.. | .....***... |
20260829 16:10:56 [INFO] | ....*..*... | .....*..... | ....**..... | ...**...... | ....*****.. |
20260829 16:10:56 [INFO] | ....*...... | ....**..... | ...**.*.*.. |             |             |
20260829 16:10:56 [INFO] | ...**...... |             |             |             |             |
...
You could maybe cut out some more of these epicycles and try to shove this all into a starting magic grid, but I think you're gonna unavoidably lose important options. E.g. there is nowhere reasonable to hang the padding you could pass to to-fixed-input and I think you really want it.

For now I've pushed this rather raw cut to codeberg as 20260829-mgp-tool-01 and the adventurous could conceivably check it out and take it for a spin. I will want a little more time to think on it, but my inclination is probably to figure out to-rc-input and then check it in to start baking.
amling
Posts: 1208
Joined: April 2nd, 2020, 9:47 pm

Re: amling search program principles discussion / brain dump

Post by amling »

As I thought about it more I realized that left/right pad are almost the only options here and certainly the only common ones. There is also "shift_idx" used to wrangle phasing choice in geometries with more than one bit per tile, but maybe that sort of picky concern is best left for fancier grid management tools and we can just take whatever alignment we get unshifted in a hypothetical starting magic grid.

I've sketched "@yolo_1gp" magic grids so you can run partial extension searches in one shot with no weird intermediate files, so long as you don't need to be too fancy about it. I've also rigged it to print out the generated grids for some starting magic grids to help see what is happening with them.

Code: Select all

$ rlife llsss 2c5-f2b '@yolo_1gp("p3-2c5.rle")'
20260830 10:41:48 [INFO] Start file magic grid generated:
20260830 10:41:48 [INFO] |                |                |                | .............. | .............. |
20260830 10:41:48 [INFO] | .............. | .............. | .............. | .............. | .............. |
20260830 10:41:48 [INFO] | .............. | .............. | .............. | .........*.... | ........***... |
20260830 10:41:48 [INFO] | .........*.... | .........*.... | ........***... | ........***... | ........*.*... |
20260830 10:41:48 [INFO] | ........*.*... | .......**.**.. | .......*..*... | ........*..... | ........*..*.. |
20260830 10:41:48 [INFO] | .......**.**.. | .......**..... | ..........**.. | .........***.. | ..........*... |
20260830 10:41:48 [INFO] | ..........**.. | ........*..*.. | .........*.... | ........**.... | ........*..... |
20260830 10:41:48 [INFO] | .........*.... | .......*.*.... | .......*.*.... | ......*..*.... | .....***.*.... |
20260830 10:41:48 [INFO] | ......****.... | .....***.**... | .....*.*.**... | ....**.*...... | ....*..**..... |
20260830 10:41:48 [INFO] | .....**..*.... | .....*...*.... | ....**.*.**... | ....**.*...... | ....**........ |
20260830 10:41:48 [INFO] | ....*..**..... | ...*....*..... | ....*..***.... | ..........*... | ...*..*....... |
20260830 10:41:48 [INFO] | ...*****...... | ...*...**..... | ...**..**..... | ...**.*....... | ...*.......... |
20260830 10:41:48 [INFO] | ...*.*........ | ..**...*...... | .......**..... | ..*........... | ....**.*...... |
20260830 10:41:48 [INFO] | ...*.**....... | ..**.**....... | ..**.*.*...... | ....*..**..... | ...*.*.*...... |
20260830 10:41:48 [INFO] | ...*.*........ | .....*.*...... | .....*........ | ....*.*....... | .....*.*...... |
20260830 10:41:48 [INFO] | .....*.**..... | .....*........ | .............. | .............. | .....*........ |
20260830 10:41:48 [INFO] | .....*........ | .......*...... | ....*......... | .....*........ | ....*......... |
20260830 10:41:48 [INFO] | ....***....... | ....***....... | ....*.*....... | ...**......... | ..*........... |
20260830 10:41:48 [INFO] | .............. | ....**........ | ...*..*....... | ..****........ | ..?????....... |
20260830 10:41:48 [INFO] | ...*.......... | ...*.......... | ..?????....... | ..?????....... | ..?????....... |
20260830 10:41:48 [INFO] | ..?????....... | ..?????....... | ..?????....... | ..?????....... |                |
20260830 10:41:48 [INFO] | ..?????....... | ..?????....... |                |                |                |
...
20260830 10:41:48 [INFO] Firstest:
20260830 10:41:48 [INFO] |           |           |           | ....*.*.. | ...**.... |
20260830 10:41:48 [INFO] | ....*.... | ......... | ....**... | ...*..*.. | ..****... |
20260830 10:41:48 [INFO] | ..*...... | ...*..... | ...*..... | ..**..... | ....*.... |
20260830 10:41:48 [INFO] | ..*..*... | ...***... | ..**..... | ..**..... | ......... |
20260830 10:41:48 [INFO] | ....**... | ...*..... | ...*.*... | ...*.*... |           |
20260830 10:41:48 [INFO] | ....***.. | ......*.. |           |           |           |
...
There is also a 3-argument version for fixed board that takes left and right pads so you can widen it. Note both extra "1, 0" args to pad generated grid and also --left-pad 1 to then expand question marks into it on the left.

Code: Select all

$ rlife llsss 2c5-f2b '@yolo_1gp("p3-2c5.rle", 1, 0)' --left-pad 1
20260830 10:43:05 [INFO] Start file magic grid generated:
20260830 10:43:05 [INFO] |                 |                 |                 | ............... | ............... |
20260830 10:43:05 [INFO] | ............... | ............... | ............... | ............... | ............... |
20260830 10:43:05 [INFO] | ............... | ............... | ............... | ..........*.... | .........***... |
20260830 10:43:05 [INFO] | ..........*.... | ..........*.... | .........***... | .........***... | .........*.*... |
20260830 10:43:05 [INFO] | .........*.*... | ........**.**.. | ........*..*... | .........*..... | .........*..*.. |
20260830 10:43:05 [INFO] | ........**.**.. | ........**..... | ...........**.. | ..........***.. | ...........*... |
20260830 10:43:05 [INFO] | ...........**.. | .........*..*.. | ..........*.... | .........**.... | .........*..... |
20260830 10:43:05 [INFO] | ..........*.... | ........*.*.... | ........*.*.... | .......*..*.... | ......***.*.... |
20260830 10:43:05 [INFO] | .......****.... | ......***.**... | ......*.*.**... | .....**.*...... | .....*..**..... |
20260830 10:43:05 [INFO] | ......**..*.... | ......*...*.... | .....**.*.**... | .....**.*...... | .....**........ |
20260830 10:43:05 [INFO] | .....*..**..... | ....*....*..... | .....*..***.... | ...........*... | ....*..*....... |
20260830 10:43:05 [INFO] | ....*****...... | ....*...**..... | ....**..**..... | ....**.*....... | ....*.......... |
20260830 10:43:05 [INFO] | ....*.*........ | ...**...*...... | ........**..... | ...*........... | .....**.*...... |
20260830 10:43:05 [INFO] | ....*.**....... | ...**.**....... | ...**.*.*...... | .....*..**..... | ....*.*.*...... |
20260830 10:43:05 [INFO] | ....*.*........ | ......*.*...... | ......*........ | .....*.*....... | ......*.*...... |
20260830 10:43:05 [INFO] | ......*.**..... | ......*........ | ............... | ............... | ......*........ |
20260830 10:43:05 [INFO] | ......*........ | ........*...... | .....*......... | ......*........ | .....*......... |
20260830 10:43:05 [INFO] | .....***....... | .....***....... | .....*.*....... | ....**......... | ...*........... |
20260830 10:43:05 [INFO] | ............... | .....**........ | ....*..*....... | ...****........ | ...?????....... |
20260830 10:43:05 [INFO] | ....*.......... | ....*.......... | ...?????....... | ...?????....... | ...?????....... |
20260830 10:43:05 [INFO] | ...?????....... | ...?????....... | ...?????....... | ...?????....... |                 |
20260830 10:43:05 [INFO] | ...?????....... | ...?????....... |                 |                 |                 |
...
20260830 10:43:07 [INFO] Firstest:
20260830 10:43:07 [INFO] |            |            |            | .....*.*.. | ....**.... |
20260830 10:43:07 [INFO] | .....*.... | .......... | .....**... | ....*..*.. | ...****... |
20260830 10:43:07 [INFO] | ...*...... | ....*..... | ....*..... | ...**..... | .......... |
20260830 10:43:07 [INFO] | ...*..*... | ..***..... | ...**..... | ...***.... | ..*..*.... |
20260830 10:43:07 [INFO] | ...*..*... | .......... | ....*..... | ...**..... | .......... |
20260830 10:43:07 [INFO] | .......... | ....*..... | .......... | ....**.... | ...***.... |
20260830 10:43:07 [INFO] | ...*.*.... | ....*..... | ....**.... | .......... | .......... |
20260830 10:43:07 [INFO] | ....*..... | ...**..... | .......... | ....**.... | ....**.... |
20260830 10:43:07 [INFO] | ...*...... | ...***.... | .....*.... | .....*.... | ....***... |
20260830 10:43:07 [INFO] | ....*.*... | ....*..... | ....*.*... | ......*... | ..*....... |
20260830 10:43:07 [INFO] | ...**.*... | ..*...**.. | ......*... |            |            |
20260830 10:43:07 [INFO] | ..**.*.*.. |            |            |            |            |
...
I decided recentering inputs should be the non-question-mark version and "@yolo_1gp" works there as well:

Code: Select all

$ rlife llsss-recentering 2c5-f2b '@yolo_1gp("p3-2c5.rle")' 06
20260830 10:44:44 [INFO] Start file magic grid generated:
20260830 10:44:44 [INFO] |                  |                  | LLLuuuuuuuuuuRRR | ................ | ................ |
20260830 10:44:44 [INFO] | ................ | ................ | ................ | ................ | ................ |
20260830 10:44:44 [INFO] | ................ | ................ | ................ | ..........*..... | .........***.... |
20260830 10:44:44 [INFO] | ..........*..... | ..........*..... | .........***.... | .........***.... | .........*.*.... |
20260830 10:44:44 [INFO] | .........*.*.... | ........**.**... | ........*..*.... | .........*...... | .........*..*... |
20260830 10:44:44 [INFO] | ........**.**... | ........**...... | ...........**... | ..........***... | ...........*.... |
20260830 10:44:44 [INFO] | ...........**... | .........*..*... | ..........*..... | .........**..... | .........*...... |
20260830 10:44:44 [INFO] | ..........*..... | ........*.*..... | ........*.*..... | .......*..*..... | ......***.*..... |
20260830 10:44:44 [INFO] | .......****..... | ......***.**.... | ......*.*.**.... | .....**.*....... | .....*..**...... |
20260830 10:44:44 [INFO] | ......**..*..... | ......*...*..... | .....**.*.**.... | .....**.*....... | .....**......... |
20260830 10:44:44 [INFO] | .....*..**...... | ....*....*...... | .....*..***..... | ...........*.... | ....*..*........ |
20260830 10:44:44 [INFO] | ....*****....... | ....*...**...... | ....**..**...... | ....**.*........ | ....*........... |
20260830 10:44:44 [INFO] | ....*.*......... | ...**...*....... | ........**...... | ...*............ | .....**.*....... |
20260830 10:44:44 [INFO] | ....*.**........ | ...**.**........ | ...**.*.*....... | .....*..**...... | ....*.*.*....... |
20260830 10:44:44 [INFO] | ....*.*......... | ......*.*....... | ......*......... | .....*.*........ | ......*.*....... |
20260830 10:44:44 [INFO] | ......*.**...... | ......*......... | ................ | ................ | ......*......... |
20260830 10:44:44 [INFO] | ......*......... | ........*....... | .....*.......... | ......*......... | .....*.......... |
20260830 10:44:44 [INFO] | .....***........ | .....***........ | .....*.*........ | ....**.......... | ...*............ |
20260830 10:44:44 [INFO] | ................ | .....**......... | ....*..*........ | ...****......... |                  |
20260830 10:44:44 [INFO] | ....*........... | ....*........... |                  |                  |                  |
...
20260830 10:44:45 [INFO] Thinnest partial:
20260830 10:44:45 [INFO] |                |                | LLuuuuuuuuuuRR | .............. | .............. |
20260830 10:44:45 [INFO] | .............. | .............. | .............. | .............. | .............. |
20260830 10:44:45 [INFO] | .............. | .............. | .............. | .........*.... | ........***... |
20260830 10:44:45 [INFO] | .........*.... | .........*.... | ........***... | ........***... | ........*.*... |
20260830 10:44:45 [INFO] | ........*.*... | .......**.**.. | .......*..*... | ........*..... | ........*..*.. |
20260830 10:44:45 [INFO] | .......**.**.. | .......**..... | ..........**.. | .........***.. | ..........*... |
20260830 10:44:45 [INFO] | ..........**.. | ........*..*.. | .........*.... | ........**.... | ........*..... |
20260830 10:44:45 [INFO] | .........*.... | .......*.*.... | .......*.*.... | ......*..*.... | .....***.*.... |
20260830 10:44:45 [INFO] | ......****.... | .....***.**... | .....*.*.**... | ....**.*...... | ....*..**..... |
20260830 10:44:45 [INFO] | .....**..*.... | .....*...*.... | ....**.*.**... | ....**.*...... | ....**........ |
20260830 10:44:45 [INFO] | ....*..**..... | ...*....*..... | ....*..***.... | ..........*... | ...*..*....... |
20260830 10:44:45 [INFO] | ...*****...... | ...*...**..... | ...**..**..... | ...**.*....... | ...*.......... |
20260830 10:44:45 [INFO] | ...*.*........ | ..**...*...... | .......**..... | ..*........... | ....**.*...... |
20260830 10:44:45 [INFO] | ...*.**....... | ..**.**....... | ..**.*.*...... | ....*..**..... | ...*.*.*...... |
20260830 10:44:45 [INFO] | ...*.*........ | .....*.*...... | .....*........ | ....*.*....... | .....*.*...... |
20260830 10:44:45 [INFO] | .....*.**..... | .....*........ | .............. | .............. | .....*........ |
20260830 10:44:45 [INFO] | .....*........ | .......*...... | ....*......... | .....*........ | ....*......... |
20260830 10:44:45 [INFO] | ....***....... | ....***....... | ....*.*....... | ...**......... | ..*........... |
20260830 10:44:45 [INFO] | .............. | ....**........ | ...*..*....... | ..****........ | ..*..*........ |
20260830 10:44:45 [INFO] | ...*.......... | ...*.......... | ..**.......... | ....*......... | ....**........ |
20260830 10:44:45 [INFO] | ...***........ | ..**.......... | ..**.......... | .............. | ....***....... |
20260830 10:44:45 [INFO] | ...*.......... | ...*.*........ | ...*.*........ |                |                |
20260830 10:44:45 [INFO] | ......*....... |                |                |                |                |
...
The current cut of the code retains all the separate mgp-tool stuff (ingest-1gp, to-fixed-input, and to-rc-input subsubcommands) and is pushed to codeberg as 20260830-mgp-tool-04.

If we don't think of any obvious changes in the next few days I will probably dump it all on master and let it bake. TBD what sort of polishing to do before taking a crack at writing the "extending a partial" tutorial and which exact version of the workflow to take ("@yolo_1gp" magic grid or mgp_tool ingest-1gp+to-xxx-input?).
amling
Posts: 1208
Joined: April 2nd, 2020, 9:47 pm

Re: amling search program principles discussion / brain dump

Post by amling »

amling wrote: August 11th, 2026, 2:39 pm Adding an option to print RLEs directly and fixing up the few outputs of them to respect it is easy and I will almost certainly do so. Making it the default I might need some time to come to terms with.
I've sketched a cut of reworking a bunch of the logging stuff to do this. For now I will try changing it, but I would not consider it guaranteed to stick. Those naked lines make my skin absolutely crawl...

Code: Select all

$ rlife llsss-recentering-wao 2c5-f2b '@bg' 04
...
20260831 09:10:38 [INFO] Last thinnest partial RLE:
x = 51, y = 5, rule = LifeHistory
F9.F9.F9.F.7B.F.7B.F$F.7B.F.7B.F.7B.F.7B.F.7B.F$F.7B.F.7B.F.7B.F.3BA
3B.F.2B3A2B.F$F.3BA3B.F.3B2A2B.F.2B3A2B.F.2B3A2B.F.4BA2B.F$F.3B2A2B.F
.2B2A3B.F.3BA3B.F9.F9.F!
...
While I was in there I added a LLSSS_LOG_TIMESTAMPS which can be used to change the format or remove the timestamps entirely. Formats are per chrono's strftime.

Code: Select all

$ rlife llsss-recentering-wao 2c5-f2b '@bg' 04 --llsss-env 'LLSSS_LOG_TIMESTAMPS=format:%c'
...
Mon Aug 31 09:13:51 2026 [INFO] Total: 307.381063ms (1.98865s user, 113.972ms sys)
Mon Aug 31 09:13:51 2026 [INFO] Final results: 0 normal
Mon Aug 31 09:13:51 2026 [INFO] Done
$ rlife llsss-recentering-wao 2c5-f2b '@bg' 04 --llsss-env 'LLSSS_LOG_TIMESTAMPS=format:%+'
...
2026-08-31T09:13:57.353070035-07:00 [INFO] Total: 309.807553ms (2.045524s user, 157.669ms sys)
2026-08-31T09:13:57.353075199-07:00 [INFO] Final results: 0 normal
2026-08-31T09:13:57.353077039-07:00 [INFO] Done
$ rlife llsss-recentering-wao 2c5-f2b '@bg' 04 --llsss-env LLSSS_LOG_TIMESTAMPS=none
...
[INFO] Total: 291.960437ms (1.887849s user, 194.887ms sys)
[INFO] Final results: 0 normal
[INFO] Done
$
This is all pushed to codeberg master as of 3fb26d551406.
amling
Posts: 1208
Joined: April 2nd, 2020, 9:47 pm

Re: amling search program principles discussion / brain dump

Post by amling »

I've shipped mgp-tool and @yolo_1gp more or less as written above (just pushed to codeberg now, as of 776acd18858b):

Code: Select all

x = 21, y = 21, rule = B25/S24
b2ob2o4bo$4o3bobo$b2obo5bo$3bob2obo$3obo$bo2b2o$7bob2o$4bo6bo$7b2obobo
bo3bo$11b2ob2obo$7bo3bo3bo$7bo2b3o3b2o$5bob3ob2o3b2o$8bo2b3o$8b3o$8b3o
2bo2bo$11b2ob2o$7b3ob2ob2obo$10bobo3bo$9bo4bo5bo$9bob3o3bo!

Code: Select all

$ cat p1.rle
x = 21, y = 21, rule = B25/S24
b2ob2o4bo$4o3bobo$b2obo5bo$3bob2obo$3obo$bo2b2o$7bob2o$4bo6bo$7b2obobo
bo3bo$11b2ob2obo$7bo3bo3bo$7bo2b3o3b2o$5bob3ob2o3b2o$8bo2b3o$8b3o$8b3o
2bo2bo$11b2ob2o$7b3ob2ob2obo$10bobo3bo$9bo4bo5bo$9bob3o3bo!
$ rlife llsss-recentering --rule 'B25/S24' c3k-1 '@yolo_1gp("p1.rle")' 20
20260831 09:53:43 [INFO] Start file magic grid generated:
20260831 09:53:43 [INFO] |                            |                            | LLLuuuuuuuuuuuuuuuuuuuuRRR |
20260831 09:53:43 [INFO] | LLLuuuuuuuuuuuuuuuuuuuuRRR | LLLuuuuuuuuuuuuuuuuuuuuRRR | .......................... |
20260831 09:53:43 [INFO] | .......................... | .......................... | .......................... |
20260831 09:53:43 [INFO] | .......................... | .......................... | ....*...*................. |
20260831 09:53:43 [INFO] | .......................... | ....*****................. | ...*.**..****............. |
20260831 09:53:43 [INFO] | ....**.**....*............ | ....**.*.*.**............. | ...*.**.**................ |
20260831 09:53:43 [INFO] | ...****...*.*............. | .........*.**.*........... | ...*...*.................. |
20260831 09:53:43 [INFO] | ....**.*.....*............ | ....*.*................... | ...*****.*................ |
20260831 09:53:43 [INFO] | ......*.**.*.............. | ....***...*.*............. | .....*..*................. |
20260831 09:53:43 [INFO] | ...***.*.................. | ...*...**.*............... | .......***.*.............. |
20260831 09:53:43 [INFO] | ....*..**................. | .......***.***............ | .......*.**.*............. |
20260831 09:53:43 [INFO] | ..........*.**............ | ......*..*.*.**........... | ........*.***...*......... |
20260831 09:53:43 [INFO] | .......*......*........... | .........*.....**......... | ........*..*.**.*****..... |
20260831 09:53:43 [INFO] | ..........**.*.*.*...*.... | ............***..*.**..... | ........******....*.**.... |
20260831 09:53:43 [INFO] | ..............**.**.*..... | .........*..*.*......*.... | ........*....*..*...***... |
20260831 09:53:43 [INFO] | ..........*...*...*....... | .........*.*...*...*.*.... | ........*..*......*.**.... |
20260831 09:53:43 [INFO] | ..........*..***...**..... | ...........*.*.**..*.*.... | ...........**..***.***.... |
20260831 09:53:43 [INFO] | ........*.***.**...**..... | ...........*.*....*..*.... | ............*..*..*.***... |
20260831 09:53:43 [INFO] | ...........*..***......... | .........*...****..**..... | ...........**.***..***.... |
20260831 09:53:43 [INFO] | ...........***............ | ...........*.*...*........ | .........*....*..****..... |
20260831 09:53:43 [INFO] | ...........***..*..*...... | ..........*..*..*......... | ..........*..**.**.*...... |
20260831 09:53:43 [INFO] | ..............**.**....... | ...........********.*..... | ...........*.**...*....... |
20260831 09:53:43 [INFO] | ..........***.**.**.*..... | ...........**..**.*....... |                            |
...
20260831 09:53:45 [INFO] Last thinnest partial RLE:
x = 94, y = 34, rule = B25/S24History
F30.F30.F.28B.F$F.28B.F.28B.F.28B.F$F.28B.F.28B.F.3BA3BA20B.F$F.28B.F
.3B5A20B.F.2BAB2A2B4A16B.F$F.3B2AB2A4BA15B.F.3B2ABABAB2A16B.F.2BAB2AB
2A19B.F$F.2B4A3BABA16B.F.8BAB2ABA14B.F.2BA3BA21B.F$F.3B2ABA5BA15B.F.
3BABA22B.F.2B5ABA19B.F$F.5BAB2ABA17B.F.3B3A3BABA16B.F.4BA2BA20B.F$F.
2B3ABA21B.F.2BA3B2ABA18B.F.6B3ABA17B.F$F.3BA2B2A20B.F.6B3AB3A15B.F.6B
AB2ABA16B.F$F.9BAB2A15B.F.5BA2BABAB2A14B.F.7BAB3A3BA12B.F$F.6BA6BA14B
.F.8BA5B2A12B.F.7BA2BAB2AB5A8B.F$F.9B2ABABABA3BA7B.F.11B3A2BAB2A8B.F.
7B6A4BAB2A7B.F$F.13B2AB2ABA8B.F.8BA2BABA6BA7B.F.7BA4BA2BA3B3A6B.F$F.
9BA3BA3BA10B.F.8BABA3BA3BABA7B.F.7BA2BA6BAB2A7B.F$F.9BA2B3A3B2A8B.F.
10BABAB2A2BABA7B.F.10B2A2B3AB3A7B.F$F.7BAB3AB2A3B2A8B.F.10BABA4BA2BA
7B.F.11BA2BA2BAB3A6B.F$F.10BA2B3A12B.F.8BA3B4A2B2A8B.F.10B2AB3A2B3A7B
.F$F.10B3A15B.F.10BABA3BA11B.F.8BA4BA2B4A8B.F$F.10B3A2BA2BA9B.F.9BA2B
A2BA12B.F.9BA2B2AB2ABA9B.F$F.13B2AB2A10B.F.10B8ABA8B.F.10BAB2A3BA10B.
F$F.9B3AB2AB2ABA8B.F.10B2A2B2ABA10B.F.10B2ABA2BABABA7B.F$F.12BABA3BA
9B.F.9BA4BA3B2A8B.F.9B2AB3A5BA7B.F$F.11BA4BA5BA5B.F.10B2A5B3A8B.F.10B
ABA3B2A4BA5B.F$F.11BAB3A3BA8B.F.10B2A5B2AB3A5B.F.10BA2BABA5BA6B.F$F.
12BABA2BA3BA6B.F.10BABABABABABAB2A4B.F.10BAB3ABA5BA5B.F$F.11B2ABA7BAB
A3B.F.10B5ABABABABA5B.F.9B3A3BAB2A9B.F$F.11B2A2BA3BA2BA5B.F.14BA3BAB
2A6B.F.10BA3BA2BA10B.F$F.11B2A6BA8B.F.16B2AB3A6B.F.10BAB3AB2A3B2A5B.F
$F.11B2A4B2A3B2A4B.F.10B3A2BA3B2A3BA3B.F.9BAB2AB2ABA3BABA4B.F$F.12BA
2B3A3B2ABA3B.F.10B2A3BA3B3ABA4B.F.10BA4BAB2A9B.F$F.10BABAB3ABA2B2A5B.
F.9BA2BABA2B6AB2A2B.F.9B5ABAB3ABA3BA2B.F$F.9BA3BABA2BA3BA2BA2B.F.10B
2A5BA6BA3B.F.8B3AB2ABA5BA6B.F$F.13BAB3AB2A2BA4B.F30.F30.F!
...
$

Code: Select all

x = 94, y = 34, rule = B25/S24History
F30.F30.F.28B.F$F.28B.F.28B.F.28B.F$F.28B.F.28B.F.3BA3BA20B.F$F.28B.F
.3B5A20B.F.2BAB2A2B4A16B.F$F.3B2AB2A4BA15B.F.3B2ABABAB2A16B.F.2BAB2AB
2A19B.F$F.2B4A3BABA16B.F.8BAB2ABA14B.F.2BA3BA21B.F$F.3B2ABA5BA15B.F.
3BABA22B.F.2B5ABA19B.F$F.5BAB2ABA17B.F.3B3A3BABA16B.F.4BA2BA20B.F$F.
2B3ABA21B.F.2BA3B2ABA18B.F.6B3ABA17B.F$F.3BA2B2A20B.F.6B3AB3A15B.F.6B
AB2ABA16B.F$F.9BAB2A15B.F.5BA2BABAB2A14B.F.7BAB3A3BA12B.F$F.6BA6BA14B
.F.8BA5B2A12B.F.7BA2BAB2AB5A8B.F$F.9B2ABABABA3BA7B.F.11B3A2BAB2A8B.F.
7B6A4BAB2A7B.F$F.13B2AB2ABA8B.F.8BA2BABA6BA7B.F.7BA4BA2BA3B3A6B.F$F.
9BA3BA3BA10B.F.8BABA3BA3BABA7B.F.7BA2BA6BAB2A7B.F$F.9BA2B3A3B2A8B.F.
10BABAB2A2BABA7B.F.10B2A2B3AB3A7B.F$F.7BAB3AB2A3B2A8B.F.10BABA4BA2BA
7B.F.11BA2BA2BAB3A6B.F$F.10BA2B3A12B.F.8BA3B4A2B2A8B.F.10B2AB3A2B3A7B
.F$F.10B3A15B.F.10BABA3BA11B.F.8BA4BA2B4A8B.F$F.10B3A2BA2BA9B.F.9BA2B
A2BA12B.F.9BA2B2AB2ABA9B.F$F.13B2AB2A10B.F.10B8ABA8B.F.10BAB2A3BA10B.
F$F.9B3AB2AB2ABA8B.F.10B2A2B2ABA10B.F.10B2ABA2BABABA7B.F$F.12BABA3BA
9B.F.9BA4BA3B2A8B.F.9B2AB3A5BA7B.F$F.11BA4BA5BA5B.F.10B2A5B3A8B.F.10B
ABA3B2A4BA5B.F$F.11BAB3A3BA8B.F.10B2A5B2AB3A5B.F.10BA2BABA5BA6B.F$F.
12BABA2BA3BA6B.F.10BABABABABABAB2A4B.F.10BAB3ABA5BA5B.F$F.11B2ABA7BAB
A3B.F.10B5ABABABABA5B.F.9B3A3BAB2A9B.F$F.11B2A2BA3BA2BA5B.F.14BA3BAB
2A6B.F.10BA3BA2BA10B.F$F.11B2A6BA8B.F.16B2AB3A6B.F.10BAB3AB2A3B2A5B.F
$F.11B2A4B2A3B2A4B.F.10B3A2BA3B2A3BA3B.F.9BAB2AB2ABA3BABA4B.F$F.12BA
2B3A3B2ABA3B.F.10B2A3BA3B3ABA4B.F.10BA4BAB2A9B.F$F.10BABAB3ABA2B2A5B.
F.9BA2BABA2B6AB2A2B.F.9B5ABAB3ABA3BA2B.F$F.9BA3BABA2BA3BA2BA2B.F.10B
2A5BA6BA3B.F.8B3AB2ABA5BA6B.F$F.13BAB3AB2A2BA4B.F30.F30.F!

Code: Select all

$ rlife llsss --rule 'B25/S24' c3k-1 '@yolo_1gp("p1.rle", 0, 1)' --left-pad 03 --right-pad 03
20260831 09:58:36 [INFO] Start file magic grid generated:
20260831 09:58:36 [INFO] |                           |                           | ......................... |
20260831 09:58:36 [INFO] | ......................... | ......................... | ......................... |
20260831 09:58:36 [INFO] | ......................... | ......................... | ...*...*................. |
20260831 09:58:36 [INFO] | ......................... | ...*****................. | ..*.**..****............. |
20260831 09:58:36 [INFO] | ...**.**....*............ | ...**.*.*.**............. | ..*.**.**................ |
20260831 09:58:36 [INFO] | ..****...*.*............. | ........*.**.*........... | ..*...*.................. |
20260831 09:58:36 [INFO] | ...**.*.....*............ | ...*.*................... | ..*****.*................ |
20260831 09:58:36 [INFO] | .....*.**.*.............. | ...***...*.*............. | ....*..*................. |
20260831 09:58:36 [INFO] | ..***.*.................. | ..*...**.*............... | ......***.*.............. |
20260831 09:58:36 [INFO] | ...*..**................. | ......***.***............ | ......*.**.*............. |
20260831 09:58:36 [INFO] | .........*.**............ | .....*..*.*.**........... | .......*.***...*......... |
20260831 09:58:36 [INFO] | ......*......*........... | ........*.....**......... | .......*..*.**.*****..... |
20260831 09:58:36 [INFO] | .........**.*.*.*...*.... | ...........***..*.**..... | .......******....*.**.... |
20260831 09:58:36 [INFO] | .............**.**.*..... | ........*..*.*......*.... | .......*....*..*...***... |
20260831 09:58:36 [INFO] | .........*...*...*....... | ........*.*...*...*.*.... | .......*..*......*.**.... |
20260831 09:58:36 [INFO] | .........*..***...**..... | ..........*.*.**..*.*.... | ..........**..***.***.... |
20260831 09:58:36 [INFO] | .......*.***.**...**..... | ..........*.*....*..*.... | ...........*..*..*.***... |
20260831 09:58:36 [INFO] | ..........*..***......... | ........*...****..**..... | ..........**.***..***.... |
20260831 09:58:36 [INFO] | ..........***............ | ..........*.*...*........ | ........*....*..****..... |
20260831 09:58:36 [INFO] | ..........***..*..*...... | .........*..*..*......... | .........*..**.**.*...... |
20260831 09:58:36 [INFO] | .............**.**....... | ..........********.*..... | ..........*.**...*....... |
20260831 09:58:36 [INFO] | .........***.**.**.*..... | ..........**..**.*....... | .........???????????..... |
20260831 09:58:36 [INFO] | .........???????????..... | .........???????????..... | .........???????????..... |
20260831 09:58:36 [INFO] | .........???????????..... | .........???????????..... |                           |
...
20260831 09:58:36 [INFO] Last firstest partial RLE:
x = 73, y = 9, rule = B25/S24History
F23.F23.F.5BA2B2AB2ABA6B.F$F.9B2AB2A7B.F.6B8ABA5B.F.6BAB2A3BA7B.F$F.
5B3AB2AB2ABA5B.F.6B2A2B2ABA7B.F.6B2ABA2BABABA4B.F$F.8BABA3BA6B.F.5BA
4BA3B2A5B.F.5B2AB3A3B2A5B.F$F.7BA4BA8B.F.6B2A4BAB3A4B.F.2B3AB2A13B.F$
F.3BA2BA2BAB2A2BABA3B.F.2B2A2B4AB5A5B.F.3B2A2BABA11B.F$F.3B7A5B2A4B.F
.4BA5BA3BA6B.F.2BABABAB2ABAB2ABA4B.F$F.2BA2B2AB3A2B4A4B.F.5B4ABABA2BA
5B.F.5BABAB2A2B2ABA4B.F$F.10B2A6BA2B.F.5B3AB7A5B.F23.F!
...
$

Code: Select all

x = 73, y = 9, rule = B25/S24History
F23.F23.F.5BA2B2AB2ABA6B.F$F.9B2AB2A7B.F.6B8ABA5B.F.6BAB2A3BA7B.F$F.
5B3AB2AB2ABA5B.F.6B2A2B2ABA7B.F.6B2ABA2BABABA4B.F$F.8BABA3BA6B.F.5BA
4BA3B2A5B.F.5B2AB3A3B2A5B.F$F.7BA4BA8B.F.6B2A4BAB3A4B.F.2B3AB2A13B.F$
F.3BA2BA2BAB2A2BABA3B.F.2B2A2B4AB5A5B.F.3B2A2BABA11B.F$F.3B7A5B2A4B.F
.4BA5BA3BA6B.F.2BABABAB2ABAB2ABA4B.F$F.2BA2B2AB3A2B4A4B.F.5B4ABABA2BA
5B.F.5BABAB2A2B2ABA4B.F$F.10B2A6BA2B.F.5B3AB7A5B.F23.F!
The longer version using mgp-tool:

Code: Select all

$ rlife mgp-tool ingest-1gp --rule 'B25/S24' c3k-1 p1.rle p1.mgp
20260831 09:55:40 [INFO] Saved to "p1.mgp".
$ cat p1.mgp
|                          |                          | ........................ |
| ........................ | ........................ | ........................ |
| ........................ | ........................ | ...*...*................ |
| ........................ | ...*****................ | ..*.**..****............ |
| ...**.**....*........... | ...**.*.*.**............ | ..*.**.**............... |
| ..****...*.*............ | ........*.**.*.......... | ..*...*................. |
| ...**.*.....*........... | ...*.*.................. | ..*****.*............... |
| .....*.**.*............. | ...***...*.*............ | ....*..*................ |
| ..***.*................. | ..*...**.*.............. | ......***.*............. |
| ...*..**................ | ......***.***........... | ......*.**.*............ |
| .........*.**........... | .....*..*.*.**.......... | .......*.***...*........ |
| ......*......*.......... | ........*.....**........ | .......*..*.**.*****.... |
| .........**.*.*.*...*... | ...........***..*.**.... | .......******....*.**... |
| .............**.**.*.... | ........*..*.*......*... | .......*....*..*...***.. |
| .........*...*...*...... | ........*.*...*...*.*... | .......*..*......*.**... |
| .........*..***...**.... | ..........*.*.**..*.*... | ..........**..***.***... |
| .......*.***.**...**.... | ..........*.*....*..*... | ...........*..*..*.***.. |
| ..........*..***........ | ........*...****..**.... | ..........**.***..***... |
| ..........***........... | ..........*.*...*....... | ........*....*..****.... |
| ..........***..*..*..... | .........*..*..*........ | .........*..**.**.*..... |
| .............**.**...... | ..........********.*.... | ..........*.**...*...... |
| .........***.**.**.*.... | ..........**..**.*...... |                          |
$ rlife mgp-tool to-rc-input c3k-1 p1.mgp p1-rc.in
cargo run mgp-tool to-rc-input c3k-1 p1.mgp p1-rc.in
20260831 09:56:15 [INFO] Saved to "p1-rc.in".
$ cat p1-rc.in
|                             |                             | AAAuuuuuuuuuuuuuuuuuuuuuBBB |
| AAAuuuuuuuuuuuuuuuuuuuuuBBB | AAAuuuuuuuuuuuuuuuuuuuuuBBB | ........................... |
| ........................... | ........................... | ........................... |
| ........................... | ........................... | ........................... |
| ........................... | .....*...*................. | ....**.**....*............. |
| .....*****................. | ....*.**..****............. | ...****...*.*.............. |
| .....**.*.*.**............. | ....*.**.**................ | ....**.*.....*............. |
| ..........*.**.*........... | ....*...*.................. | ......*.**.*............... |
| .....*.*................... | ....*****.*................ | ...***.*................... |
| .....***...*.*............. | ......*..*................. | ....*..**.................. |
| ....*...**.*............... | ........***.*.............. | ..........*.**............. |
| ........***.***............ | ........*.**.*............. | .......*......*............ |
| .......*..*.*.**........... | .........*.***...*......... | ..........**.*.*.*...*..... |
| ..........*.....**......... | .........*..*.**.*****..... | ..............**.**.*...... |
| .............***..*.**..... | .........******....*.**.... | ..........*...*...*........ |
| ..........*..*.*......*.... | .........*....*..*...***... | ..........*..***...**...... |
| ..........*.*...*...*.*.... | .........*..*......*.**.... | ........*.***.**...**...... |
| ............*.*.**..*.*.... | ............**..***.***.... | ...........*..***.......... |
| ............*.*....*..*.... | .............*..*..*.***... | ...........***............. |
| ..........*...****..**..... | ............**.***..***.... | ...........***..*..*....... |
| ............*.*...*........ | ..........*....*..****..... | ..............**.**........ |
| ...........*..*..*......... | ...........*..**.**.*...... | ..........***.**.**.*...... |
| ............********.*..... | ............*.**...*....... |                             |
$ rlife mgp-tool to-fixed-input c3k-1 p1.mgp p1-fixed.in --right-pad 01
20260831 09:59:53 [INFO] Saved to "p1-fixed.in".
$ cat p1-fixed.in
|                            |                            | .......................... |
| .......................... | .......................... | .......................... |
| .......................... | .......................... | .......................... |
| .......................... | ....*...*................. | ...**.**....*............. |
| ....*****................. | ...*.**..****............. | ..****...*.*.............. |
| ....**.*.*.**............. | ...*.**.**................ | ...**.*.....*............. |
| .........*.**.*........... | ...*...*.................. | .....*.**.*............... |
| ....*.*................... | ...*****.*................ | ..***.*................... |
| ....***...*.*............. | .....*..*................. | ...*..**.................. |
| ...*...**.*............... | .......***.*.............. | .........*.**............. |
| .......***.***............ | .......*.**.*............. | ......*......*............ |
| ......*..*.*.**........... | ........*.***...*......... | .........**.*.*.*...*..... |
| .........*.....**......... | ........*..*.**.*****..... | .............**.**.*...... |
| ............***..*.**..... | ........******....*.**.... | .........*...*...*........ |
| .........*..*.*......*.... | ........*....*..*...***... | .........*..***...**...... |
| .........*.*...*...*.*.... | ........*..*......*.**.... | .......*.***.**...**...... |
| ...........*.*.**..*.*.... | ...........**..***.***.... | ..........*..***.......... |
| ...........*.*....*..*.... | ............*..*..*.***... | ..........***............. |
| .........*...****..**..... | ...........**.***..***.... | ..........***..*..*....... |
| ...........*.*...*........ | .........*....*..****..... | .............**.**........ |
| ..........*..*..*......... | ..........*..**.**.*...... | .........***.**.**.*...... |
| ...........********.*..... | ...........*.**...*....... | .........????????????..... |
| .........????????????..... | .........????????????..... | .........????????????..... |
| .........????????????..... | .........????????????..... |                            |
$
As always, I would very much love to hear others' experience using these. My perspective is no doubt warped, but to me they both seem pretty smooth. "@yolo_1gp" might even be tutorial-level, although maybe we come up with a better name first...
amling
Posts: 1208
Joined: April 2nd, 2020, 9:47 pm

Re: amling search program principles discussion / brain dump

Post by amling »

amling wrote: August 27th, 2026, 3:35 pm (MDSE V2 recentering benchmarking)

Instead I have a great deal of mostly-simpler ideas driven by the profiler data that came out of these runs and I'm gonna start a round of benchmarking of all of them first.
I finished testing these ideas, keeping some and tossing others. This round of benchmarking has the same structure as the previous (t0/t1/t2a/t2b):

Code: Select all

s    t0                t1                t2a               t2b               t2a/t0               t2b/t2a
--   ---------------   ---------------   ---------------   ---------------   ------------------   ------------------
15   1.340563188       1.404108989       1.410762094       22.572581876      1.052365234722528    16.00027529234139
16   1.809091494       1.89056321        1.886851017       31.502878209      1.0429826370075233   16.696007223234837
17   2.818287169       2.868295472       2.801486137       48.850993232      0.9940385663374532   17.437528098680005
18   3.815355461       3.926640596       3.905793123       60.813609037      1.0237036006014224   15.5701050009248
19   6.49263363        6.387530521       6.372141972       93.696991878      0.981441790055232    14.704159494517931
20   10.82450128       10.833624011      10.849409562      139.732353686     1.0023011020420889   12.879258810121046
21   19.482811107      19.489794459      19.543313115      198.270495894     1.003105404434079    10.145183405050306
22   52.849393801      43.725884958      43.307122756      399.352639309     0.8194440776193076   9.221407793794649
23   90.995893768      88.785561347      89.44456165       651.536606175     0.982951625026562    7.284250648177893
24   202.169239932     188.859197582     188.265712        1165.184436939    0.9312282722303528   6.18904220296365
25   401.704805553     419.731946275     424.33367503      2050.840689607    1.0563320855618052   4.833084928887644
26   938.140792022     981.206607503     945.409300619     3952.682811019    1.0077477801400512   4.180922282477028
27   3290.016011764    3696.127693237    3697.290917772    14380.672123427   1.1237911622775454   3.8895159843393774
Incomplete mid_steps=28:

Code: Select all

28 t0 10557.783173065
28 t1 10896.949260129
28 t2a 11226.484935935
28 t2b 67135.728348667
The variance is just so high that I wonder if this median-of-3 is not enough to flatten it. Consider what happened for mid_steps=27 (ordered by execution):

Code: Select all

27 t0 3266.524920504
27 t1 3508.679980456
27 t2a 3459.387901801
27 t2b 14380.672123427
27 t0 3290.016011764
27 t1 3696.127693237
27 t2a 3697.290917772
27 t2b 14366.166895548
27 t0 3677.125761193
27 t1 3881.749414494
27 t2a 3844.816319728
27 t2b 14400.201312828
For t0, t1, and t2a the second rep is higher than the first and the third is higher than the second. This makes me wonder if there is some time-of-day variation in performance or something.

Anyway, it's probably something like +10% for abstraction and 5x-7x for actual MDSE V2. I'm taking it, merged into master and pushed to codeberg as of d6bc00af01d0. At this point the slightly-less-adventurous-than-before could comment in those mains and run searches but they're pretty slow and a few features are still missing.

I took a quick inventory of features missing from the MDSE V2 mains:

(*) --pre-partials for all four (fixed board, recentering, recentering WAO, wrap_hax). I have ideas about catching most of them up except for wrap_hax "cycle" which is hopeless. I will probably eventually either delete it or do the same messy stuff I did with --ends to allow MDSE V1 and MDSE V2 to have different available implementations.

(*) Fixed board --pre-reify-autochoke. This is the same sort of algorithm issue as the unique --pre-partials and is likely fixable.

(*) Recentering (and recentering WAO) --pre-reify-autochoke. This I think is easy and will probably be along shortly.

(*) --partials for all but wrap_hax. This is "turninator" which is a huge mess I have forgotten the details of and SRV2. SRV2 I have taken a look at fixing a few times and was defeated each time.

(*) A few weird --ends for all but wrap_hax. This is proj001 and proj002 stuff only. I could not fix them trivially and immediately when I did the original MDSE V2 work and they're just so uncommon that it's hard to want to put in the effort to figure it out.

I will likely make a quick pass through this stuff to see if I can recover any of it. After that the next big move might be taking a crack at MDSE V3...
User avatar
LuveelVoom
Posts: 506
Joined: April 27th, 2022, 7:59 pm

Re: amling search program principles discussion / brain dump

Post by LuveelVoom »

What's the performance/memory/other metrics improvement from this time last year? Is there a set of benchmarks?
OCA primer (WIP): User:LuveelVoom/A_Primer_On_OCA
My rules: viewtopic.php?f=11&t=6843
YBOCAD: viewtopic.php?f=11&t=7036
Discord user: LuveelVoom
amling
Posts: 1208
Joined: April 2nd, 2020, 9:47 pm

Re: amling search program principles discussion / brain dump

Post by amling »

amling wrote: September 3rd, 2026, 10:18 am (MDSE V2 features)

I will likely make a quick pass through this stuff to see if I can recover any of it.
It wasn't too bad to recover --pre-partials (all but wrap_hax "cycle") and --pre-reify-autochoke for both fixed board and recentering. --partials (specifically SRV2) still eludes me but that is the only remaining semi-common feature not supported with MDSE V2. Pushed just now as of 7a698017dc4e.
amling
Posts: 1208
Joined: April 2nd, 2020, 9:47 pm

Re: amling search program principles discussion / brain dump

Post by amling »

LuveelVoom wrote: September 3rd, 2026, 1:45 pm Is there a set of benchmarks?
Nope. I'm just some guy plonking away in my free time and I have not taken the time to do something so detailed and responsible. When I am making changes that I think are likely to affect performance I will try to run what I think are some typical searches and compare before and after, but it's all ad hoc.
LuveelVoom wrote: September 3rd, 2026, 1:45 pm What's the performance/memory/other metrics improvement from this time last year?
As such, I have no way to know that. If you take the time yourself to build an old and new version and run test searches to compare I would love to hear your detailed report.
User avatar
LuveelVoom
Posts: 506
Joined: April 27th, 2022, 7:59 pm

Re: amling search program principles discussion / brain dump

Post by LuveelVoom »

amling wrote: September 3rd, 2026, 4:45 pm If you take the time yourself to build an old and new version and run test searches to compare I would love to hear your detailed report.
I'm not sure how to build both an old and new version; it's been so long since I last touched CA that I've forgotten all of my computer skills :cry: . I have an old version from mid June 2025. If I can figure it out (or if someone provides a tutorial) to install the modern build in a separate area, I'll try running some test searches. Can you think of a few distinct areas of the program that would hit different optimizations? If not, that's fine. I'll run some no-recentering and recentering searches at a few different periods. Something like c/6 no-recentering, (2,1)c/5 recentering, etc...

Oh man, I'm gonna have to figure out again how to even run searches in the first place. Back to the tutorial page I go!
OCA primer (WIP): User:LuveelVoom/A_Primer_On_OCA
My rules: viewtopic.php?f=11&t=6843
YBOCAD: viewtopic.php?f=11&t=7036
Discord user: LuveelVoom
amling
Posts: 1208
Joined: April 2nd, 2020, 9:47 pm

Re: amling search program principles discussion / brain dump

Post by amling »

amling wrote: September 3rd, 2026, 4:41 pm
amling wrote: September 3rd, 2026, 10:18 am (MDSE V2 features)

I will likely make a quick pass through this stuff to see if I can recover any of it.
It wasn't too bad to recover --pre-partials (all but wrap_hax "cycle") and --pre-reify-autochoke for both fixed board and recentering. --partials (specifically SRV2) still eludes me but that is the only remaining semi-common feature not supported with MDSE V2. Pushed just now as of 7a698017dc4e.
I gave up on turninator (deleted) and got SRV2 fixed up (pushed just now as of 0b8ff78b266b). At this point all reasonably common features should be working, although MDSE V2 still isn't enabled by default (commands have to be commented in in src/entry.rs).
User avatar
LuveelVoom
Posts: 506
Joined: April 27th, 2022, 7:59 pm

Re: amling search program principles discussion / brain dump

Post by LuveelVoom »

I have a fairly bonkers idea: I'm gonna grab the html of all the threads about LLSSS that I can find (mainly this and the other one) as well as the LLSSS codebase and train an LLM on them, not to modify the code or anything, but rather to make a program that produces more efficient LLSSS command-line prompts than I could do myself without having to go ask amling for details on specific obscure subcommands.

Do you think this will work, or am I digging myself into a rabbit hole?
OCA primer (WIP): User:LuveelVoom/A_Primer_On_OCA
My rules: viewtopic.php?f=11&t=6843
YBOCAD: viewtopic.php?f=11&t=7036
Discord user: LuveelVoom
amling
Posts: 1208
Joined: April 2nd, 2020, 9:47 pm

Re: amling search program principles discussion / brain dump

Post by amling »

LuveelVoom wrote: Yesterday, 2:34 pm I have a fairly bonkers idea: I'm gonna grab the html of all the threads about LLSSS that I can find (mainly this and the other one) as well as the LLSSS codebase and train an LLM on them, not to modify the code or anything, but rather to make a program that produces more efficient LLSSS command-line prompts than I could do myself without having to go ask amling for details on specific obscure subcommands.

Do you think this will work, or am I digging myself into a rabbit hole?
I will try to avoid writing a thousand word philosophy essay about my cynicism and summarize it to: I am extremely pessimistic about anything LLMs produce that cannot be strictly and excruciatingly verified, independently. Of course if you get help making up commands and then find a pattern with them, the pattern is its own testable artifact whose origin story is irrelevant. I would be less optimistic about this approach being a good way to reach your own correct human understanding. I would not rely on anything like this to try to reach a negative result (i.e. an exhaustive proof that a pattern of some type does not exist). I would be extremely careful to delineate anything you think you know because of some words your LLM spat out from anything you learned from other sources which is a specific version of a very good general rule of always tracking why you believe things.
User avatar
LuveelVoom
Posts: 506
Joined: April 27th, 2022, 7:59 pm

Re: amling search program principles discussion / brain dump

Post by LuveelVoom »

amling wrote: Yesterday, 5:36 pm I will try to avoid writing a thousand word philosophy essay about my cynicism and summarize it to: I am extremely pessimistic about anything LLMs produce that cannot be strictly and excruciatingly verified, independently. Of course if you get help making up commands and then find a pattern with them, the pattern is its own testable artifact whose origin story is irrelevant.
That's the goal.
amling wrote: Yesterday, 5:36 pm I would be less optimistic about this approach being a good way to reach your own correct human understanding. (...) I would be extremely careful to delineate anything you think you know because of some words your LLM spat out from anything you learned from other sources which is a specific version of a very good general rule of always tracking why you believe things.
I'm not gonna claim to understand LLSSS, because I don't understand LLSSS; it is an extremely complex program and I congratulate you for somehow writing it. If I need to understand why the AI chose some specific thing, I'll search for it in the forum thread rather than asking the AI and falling victim to circular misinformation. And I'm definitely gonna try to avoid using any of the info it gave me to explain things to other people. Eventually, I will attempt to understand the basics of how it works, but right now I have other work to do and I want to find spaceships.

In fact, if you are particularly worried about misinformation being spread, I will keep notes on how I learned what subcomponents of the program did what, and make sure to not reference any that I learned about through the AI without checking them first.
amling wrote: Yesterday, 5:36 pm I would not rely on anything like this to try to reach a negative result (i.e. an exhaustive proof that a pattern of some type does not exist).
Not planning on doing this. I don't have the computing power to find useful negative results anyway, unless LLSSS has gotten a hell of a lot better since I last used it.


Update 1: Currently, the results of this test are very disappointing. It gave me a couple of shell commands to put the output in a different place, added -pre-reify-autochoke, set it to only use performance cores, and then did a normal search. I suspect this will really be only helpful if I'm trying to do something which doesn't seem well-documented, for example:
Screenshot 2026-09-04 at 3.05.03 PM.png
Screenshot 2026-09-04 at 3.05.03 PM.png (18 KiB) Viewed 61 times
Update 2: I asked it to do a knightwise search instead of an orthogonal one, and it used the wrong geometry. Erm... yeah, no.

I'm going to declare this project a failure.

PS. Is there an easy way to convert the outputs of LLSSS into RLE?
OCA primer (WIP): User:LuveelVoom/A_Primer_On_OCA
My rules: viewtopic.php?f=11&t=6843
YBOCAD: viewtopic.php?f=11&t=7036
Discord user: LuveelVoom
amling
Posts: 1208
Joined: April 2nd, 2020, 9:47 pm

Re: amling search program principles discussion / brain dump

Post by amling »

LuveelVoom wrote: Yesterday, 5:41 pm Is there an easy way to convert the outputs of LLSSS into RLE?
Uh, sort of depends on what you mean by "output", "convert", and "easy".

grid-tool subsubcommand to-lh can convert that common grids format to a "History" RLE, e.g.:

Code: Select all

$ cat 1.raw
| *.* | .*. |
| .*. | *.* |
| *.* | .*. |
$ rlife grid-tool to-lh < 1.raw
x = 13, y = 3, rule = LifeHistory
F.ABA.F.BAB.F$F.BAB.F.ABA.F$F.ABA.F.BAB.F!
$

Code: Select all

x = 13, y = 3, rule = LifeHistory
F.ABA.F.BAB.F$F.BAB.F.ABA.F$F.ABA.F.BAB.F!
At the very end of the search fixed-board "first" [pre-]partials and recentering "thinnest" [pre-]partials redo their (previous) last output similarly (in "History" RLE):

Code: Select all

$ rlife llsss-recentering-wao --rule 'B2/S' 2c5-f2b '@bg' 15
...
20260904 21:34:49 [INFO] Thinnest partial:
20260904 21:34:49 [INFO] |                   |                   | ZZZZZZZZZZZZZZZZZ | ................. | ................. |
20260904 21:34:49 [INFO] | ................. | ................. | ................. | ................. | ................. |
20260904 21:34:49 [INFO] | ................. | ................. | ................. | ................. | ..........*.*.... |
20260904 21:34:49 [INFO] | ...........*..... | ......*..*..*.... | .....*.......*... | ......*...***.... | .....*.**........ |
20260904 21:34:49 [INFO] | ......****.*..... | .....*.......*... | ......*...**..... | ....*...**....... | ...*...*....*.... |
20260904 21:34:49 [INFO] | ....*....*..**... | ...........*..... | .....*.**....**.. | ....*....**...... | .....*........... |
20260904 21:34:49 [INFO] | .....*........... | ..*...**.*.*..*.. | .....*......*.... | ...*..........*.. | ..*..*..*....*... |
20260904 21:34:49 [INFO] | ..**...**...**... | .....*...*....... | ...**..*......... | ..*..*...**.*.... | ...*....*........ |
20260904 21:34:49 [INFO] | ...*..**.*....... | ....*............ | ...*...**.**..... | .....**..*..*.... | ...*....*.....*.. |
20260904 21:34:49 [INFO] | .............**.. | ..*..**.*.*.*.... | ...**........*... |                   |                   |
...
20260904 21:34:49 [INFO] Last thinnest partial RLE:
x = 101, y = 10, rule = B2/SHistory
F19.F19.F19.F.17B.F.17B.F$F.17B.F.17B.F.17B.F.17B.F.17B.F$F.17B.F.17B
.F.17B.F.17B.F.10BABA4B.F$F.11BA5B.F.6BA2BA2BA4B.F.5BA7BA3B.F.6BA3B3A
4B.F.5BAB2A8B.F$F.6B4ABA5B.F.5BA7BA3B.F.6BA3B2A5B.F.4BA3B2A7B.F.3BA3B
A4BA4B.F$F.4BA4BA2B2A3B.F.11BA5B.F.5BAB2A4B2A2B.F.4BA4B2A6B.F.5BA11B.
F$F.5BA11B.F.2BA3B2ABABA2BA2B.F.5BA6BA4B.F.3BA10BA2B.F.2BA2BA2BA4BA3B
.F$F.2B2A3B2A3B2A3B.F.5BA3BA7B.F.3B2A2BA9B.F.2BA2BA3B2ABA4B.F.3BA4BA
8B.F$F.3BA2B2ABA7B.F.4BA12B.F.3BA3B2AB2A5B.F.5B2A2BA2BA4B.F.3BA4BA5BA
2B.F$F.13B2A2B.F.2BA2B2ABABABA4B.F.3B2A8BA3B.F19.F19.F!
...
$

Code: Select all

x = 101, y = 10, rule = B2/SHistory
F19.F19.F19.F.17B.F.17B.F$F.17B.F.17B.F.17B.F.17B.F.17B.F$F.17B.F.17B
.F.17B.F.17B.F.10BABA4B.F$F.11BA5B.F.6BA2BA2BA4B.F.5BA7BA3B.F.6BA3B3A
4B.F.5BAB2A8B.F$F.6B4ABA5B.F.5BA7BA3B.F.6BA3B2A5B.F.4BA3B2A7B.F.3BA3B
A4BA4B.F$F.4BA4BA2B2A3B.F.11BA5B.F.5BAB2A4B2A2B.F.4BA4B2A6B.F.5BA11B.
F$F.5BA11B.F.2BA3B2ABABA2BA2B.F.5BA6BA4B.F.3BA10BA2B.F.2BA2BA2BA4BA3B
.F$F.2B2A3B2A3B2A3B.F.5BA3BA7B.F.3B2A2BA9B.F.2BA2BA3B2ABA4B.F.3BA4BA
8B.F$F.3BA2B2ABA7B.F.4BA12B.F.3BA3B2AB2A5B.F.5B2A2BA2BA4B.F.3BA4BA5BA
2B.F$F.13B2A2B.F.2BA2B2ABABABA4B.F.3B2A8BA3B.F19.F19.F!
Is one of those two what you're asking after?
User avatar
LuveelVoom
Posts: 506
Joined: April 27th, 2022, 7:59 pm

Re: amling search program principles discussion / brain dump

Post by LuveelVoom »

amling wrote: Today, 12:38 am
LuveelVoom wrote: Yesterday, 5:41 pm Is there an easy way to convert the outputs of LLSSS into RLE?
Is one of those two what you're asking after?
to-lh is exactly what I want, thanks!
OCA primer (WIP): User:LuveelVoom/A_Primer_On_OCA
My rules: viewtopic.php?f=11&t=6843
YBOCAD: viewtopic.php?f=11&t=7036
Discord user: LuveelVoom
Post Reply