slmake

For scripts to aid with computation or simulation in cellular automata.
AlbertArmStain
Posts: 1268
Joined: January 28th, 2022, 7:18 pm
Location: Planet Z

Re: slmake

Post by AlbertArmStain » May 30th, 2023, 2:47 pm

calcyman wrote:
May 30th, 2023, 10:50 am
The old slmake is a greedy algorithm, and the new version that I'm currently writing (pslmake) is a parallelised beam search with heuristic similar to that in the A* search algorithm, where the cost estimate is based on a linear model fitted on diagnostics produced by the old slmake.
Which is still a greedy algorithm, but not as greedy or slow as slmake. It’s still greedy though.
calcyman wrote:
May 30th, 2023, 10:50 am
I don't see how it's related to travelling salesman? The problem is to find a short path from a single block to the desired pattern in the (infinite) directed graph where each node is a constellation and each directed edge corresponds to a glider collision; this is a pathfinding problem. On the other hand, travelling salesman is about finding a minimum-length path/cycle that visits all nodes of a finite graph with weighted edges, which is a very different sort of problem (NP-complete as a function of the size of the graph, whereas pathfinding is polynomial-time in the size of the graph).
I was referring to a construction arm and finding a minimal path for the construction arm. Is there a route optimization for a 90 degree salvo? What about for a 0 degree single channel construction arm?

AlbertArmStain
Posts: 1268
Joined: January 28th, 2022, 7:18 pm
Location: Planet Z

Re: slmake

Post by AlbertArmStain » June 14th, 2023, 6:00 pm

Does pslmake have a feature where you can specify to construct left to right or vise versa?

User avatar
calcyman
Moderator
Posts: 2938
Joined: June 1st, 2009, 4:32 pm

Re: slmake

Post by calcyman » June 14th, 2023, 6:25 pm

AlbertArmStain wrote:
June 14th, 2023, 6:00 pm
Does pslmake have a feature where you can specify to construct left to right or vise versa?
No, but the natural order is 'back to front' (and because pslmake works backwards, it handles the things at the front to begin with before gradually moving to the back). The left/right ordering is handled by the 'defragmentation' pass which is a postprocessing step, not part of the core algorithm.
What do you do with ill crystallographers? Take them to the mono-clinic!

AlbertArmStain
Posts: 1268
Joined: January 28th, 2022, 7:18 pm
Location: Planet Z

Re: slmake

Post by AlbertArmStain » June 14th, 2023, 7:04 pm

calcyman wrote:
June 14th, 2023, 6:25 pm
AlbertArmStain wrote:
June 14th, 2023, 6:00 pm
Does pslmake have a feature where you can specify to construct left to right or vise versa?
No, but the natural order is 'back to front' (and because pslmake works backwards, it handles the things at the front to begin with before gradually moving to the back). The left/right ordering is handled by the 'defragmentation' pass which is a postprocessing step, not part of the core algorithm.
So that’s why it’s so algorithmically greedy. It could possibly build a section back to front, then move to the next section, unless this is already implemented.

User avatar
Hippo.69
Posts: 285
Joined: July 14th, 2020, 7:35 pm

Re: slmake

Post by Hippo.69 » June 16th, 2023, 11:08 am

AlbertArmStain wrote:
June 14th, 2023, 7:04 pm
So that’s why it’s so algorithmically greedy. It could possibly build a section back to front, then move to the next section, unless this is already implemented.
The order of gliders in the salvo can be permuted in many cases (whole blocks). Minimizing the size of salvo would have exponential number of solutions even when considering just these permutations of one salvo. This is why prefering order of targets mostly for example with slowly decresing x+y reduces number of equivalent salvos.

Final defragmentation chooses among the same upto permutation recipe one which is with high probability among cheapest to invoke by an arm.

Next postprocessing is considering the configurtions of nongliders among collisions be the recipe and replacing each glider in salvo by several options of lines and (phases mod small integer) ... to allow the arm choose cheaper variant of recipe.

What I am planning to do is considering final functional pattern as the goal and creating other clusters not interferring with the pattern not to be a problem. So usually some gliders/levels (destroying these clusters) in the recipe could be skipped and still obtain the same functional pattern.

AlbertArmStain
Posts: 1268
Joined: January 28th, 2022, 7:18 pm
Location: Planet Z

Re: slmake

Post by AlbertArmStain » June 27th, 2023, 10:27 am

Does pslmake have a feature where it will pinpoint the location of the non-spartan objects?

User avatar
EvinZL
Posts: 854
Joined: November 8th, 2018, 4:15 pm
Location: A tungsten pool travelling towards the sun
Contact:

Re: slmake

Post by EvinZL » June 30th, 2023, 1:10 pm

Is pslmake released anywhere?

User avatar
EvinZL
Posts: 854
Joined: November 8th, 2018, 4:15 pm
Location: A tungsten pool travelling towards the sun
Contact:

Re: slmake

Post by EvinZL » July 2nd, 2023, 11:26 am

Doublepost, but here's what seems to be a bug in slmake.

Given this infile.mc:

Code: Select all

x = 114, y = 114, rule = LifeHistory
.A$A.A$.A.A$2.A.A$3.A.A$4.A.A$5.A.A$6.A.A$7.A.A$8.A.A$9.A.A$10.A.A$
11.A.A$12.A.A$13.A.A$14.A.A$15.A.A$16.A.A$17.A.A$18.A.A$19.A.A$20.A.A
$21.A.A$22.A.A$23.A.A$24.A.A$25.A.A$26.A.A$27.A.A$28.A.A$29.A.A$30.A.
A$31.A$32.3A.2A3.A$34.A.A3.A.A$34.A2.A3.A$33.2A3.A11.2A$35.3A12.A.A$
35.A15.2A3$52.2A$44.2A5.A.A$44.A.A5.A$45.A$51.2A$51.A.A$46.2A3.A$46.
2A61$112.A$111.A.A$107.2A.A2.A$107.2A.A.A$111.A!
slmake prints:

Code: Select all

Instruction set AVX2 detected
Loading elbow recipes...
Snarkmaker string = 10762 bytes.
...elbow recipes loaded.
Signature: [ 109 ]
Wrong orientation; flipping pattern.
Calling sparsebuild on initial pattern comprising 109 cells
 -- data/bespoke/blocker-orient1.rle has period 8.
 -- data/bespoke/blocker-orient2.rle has period 8.
 -- data/bespoke/blocker-orient3.rle has period 8.
 -- data/bespoke/eater2-orient1b.mc has period 1.
 -- data/bespoke/eater2-orient1.mc has period 1.
 -- data/bespoke/eater2-orient2.mc has period 1.
 -- data/bespoke/eater2-orient3.mc has period 1.
 -- data/bespoke/figure8-orient1.rle has period 8.
 -- data/bespoke/figure8-orient2.rle has period 8.
 -- data/bespoke/figure8-orient3.rle has period 8.
 -- data/bespoke/mw2g-orient1.mc has period 1.
 -- data/bespoke/mw2g-orient2.mc has period 1.
 -- data/bespoke/mw2g-orient3b.mc has period 1.
 -- data/bespoke/mw2g-orient3c.mc has period 1.
 -- data/bespoke/mw2g-orient3.mc has period 1.
 -- data/bespoke/mw2g-orient4.mc has period 1.
 -- data/bespoke/snarkheart-eater-orient3.rle has period 1.
 -- data/bespoke/snarkheart-orient1.rle has period 1.
 -- data/bespoke/snarkheart-orient2.rle has period 1.
 -- data/bespoke/snarkheart-orient4.rle has period 1.
 -- data/bespoke/xs17-easy.rle has period 1.
 -- data/bespoke/xs17-eater2.rle has period 1.
 -- data/bespoke/xs17-next.rle has period 1.
 -- data/bespoke/xs17-third.rle has period 1.
Reading file data/edgy/xs4_33/xs4_33__xs5_253...
...data/edgy/xs4_33/xs4_33__xs5_253 successfully read.
Reading file data/edgy/xs4_33/xs5_253...
...data/edgy/xs4_33/xs5_253 successfully read.
Reading file data/edgy/xs6_696/xs5_253...
...data/edgy/xs6_696/xs5_253 successfully read.
Reading file data/edgy/xs4_252/xs5_253...
...data/edgy/xs4_252/xs5_253 successfully read.
Reading file data/edgy/xs4_33/xs4_252...
...data/edgy/xs4_33/xs4_252 successfully read.
Obtained 10 dimers/monomers.
4 objects of < 32 cells.
Reading file data/longmove/xs4_33...
...data/longmove/xs4_33 successfully read.
Attempting to construct xs4_33 with 1 gliders (2 recipes)
Reached bailout for strategy 'deep'
Attempting to construct xs4_33 with 2 gliders (3 recipes)
Attempting to construct xs4_33 with 3 gliders (18 recipes)
Attempting to construct xs4_33 with 4 gliders (72 recipes)
Attempting to construct xs4_33 with 5 gliders (382 recipes)
Reached bailout for strategy 'tree'
Increasing bailout to 3
Obtained 10 dimers/monomers.
4 objects of < 32 cells.
Attempting to construct xs4_33 with 1 gliders (2 recipes)
Attempting to construct xs4_33 with 2 gliders (3 recipes)
Reached bailout for strategy 'deep'
Attempting to construct xs4_33 with 3 gliders (18 recipes)
Attempting to construct xs4_33 with 4 gliders (72 recipes)
Attempting to construct xs4_33 with 5 gliders (382 recipes)
Reached bailout for strategy 'tree'
Increasing bailout to 9
Obtained 10 dimers/monomers.
4 objects of < 32 cells.
Attempting to construct xs4_33 with 1 gliders (2 recipes)
Attempting to construct xs4_33 with 2 gliders (3 recipes)
Attempting to construct xs4_33 with 3 gliders (18 recipes)
Reached bailout for strategy 'deep'
Attempting to construct xs4_33 with 4 gliders (72 recipes)
Attempting to construct xs4_33 with 5 gliders (382 recipes)
Attempting to construct xs4_33 with 6 gliders (1185 recipes)
Reached bailout for strategy 'tree'
Increasing bailout to 27
Obtained 10 dimers/monomers.
4 objects of < 32 cells.
Attempting to construct xs4_33 with 1 gliders (2 recipes)
Attempting to construct xs4_33 with 2 gliders (3 recipes)
Attempting to construct xs4_33 with 3 gliders (18 recipes)
Attempting to construct xs4_33 with 4 gliders (72 recipes)
Reached bailout for strategy 'deep'
Attempting to construct xs4_33 with 5 gliders (382 recipes)
Attempting to construct xs4_33 with 6 gliders (1185 recipes)
Attempting to construct xs4_33 with 7 gliders (2238 recipes)
Reached bailout for strategy 'tree'
Increasing bailout to 81
Obtained 10 dimers/monomers.
4 objects of < 32 cells.
Attempting to construct xs4_33 with 1 gliders (2 recipes)
Attempting to construct xs4_33 with 2 gliders (3 recipes)
Attempting to construct xs4_33 with 3 gliders (18 recipes)
Attempting to construct xs4_33 with 4 gliders (72 recipes)
Reached bailout for strategy 'deep'
Attempting to construct xs4_33 with 5 gliders (382 recipes)
Attempting to construct xs4_33 with 6 gliders (1185 recipes)
Attempting to construct xs4_33 with 7 gliders (2238 recipes)
Attempting to construct xs4_33 with 8 gliders (2856 recipes)
Attempting to construct xs4_33 with 9 gliders (3648 recipes)
Reached bailout for strategy 'tree'
Increasing bailout to 243
Obtained 10 dimers/monomers.
4 objects of < 32 cells.
Attempting to construct xs4_33 with 1 gliders (2 recipes)
Attempting to construct xs4_33 with 2 gliders (3 recipes)
Attempting to construct xs4_33 with 3 gliders (18 recipes)
Attempting to construct xs4_33 with 4 gliders (72 recipes)
Attempting to construct xs4_33 with 5 gliders (382 recipes)
Reached bailout for strategy 'deep'
Attempting to construct xs4_33 with 6 gliders (1185 recipes)
Attempting to construct xs4_33 with 7 gliders (2238 recipes)
Attempting to construct xs4_33 with 8 gliders (2856 recipes)
Attempting to construct xs4_33 with 9 gliders (3648 recipes)
Attempting to construct xs4_33 with 10 gliders (4645 recipes)
Attempting to construct xs4_33 with 11 gliders (4056 recipes)
Attempting to construct xs4_33 with 12 gliders (5092 recipes)
Attempting to construct xs4_33 with 13 gliders (6445 recipes)
Reached bailout for strategy 'tree'
Increasing bailout to 729
Obtained 10 dimers/monomers.
4 objects of < 32 cells.
Attempting to construct xs4_33 with 1 gliders (2 recipes)
Attempting to construct xs4_33 with 2 gliders (3 recipes)
Attempting to construct xs4_33 with 3 gliders (18 recipes)
Attempting to construct xs4_33 with 4 gliders (72 recipes)
Attempting to construct xs4_33 with 5 gliders (382 recipes)
Attempting to construct xs4_33 with 6 gliders (1185 recipes)
Reached bailout for strategy 'deep'
Attempting to construct xs4_33 with 7 gliders (2238 recipes)
Attempting to construct xs4_33 with 8 gliders (2856 recipes)
Attempting to construct xs4_33 with 9 gliders (3648 recipes)
Attempting to construct xs4_33 with 10 gliders (4645 recipes)
Attempting to construct xs4_33 with 11 gliders (4056 recipes)
Attempting to construct xs4_33 with 12 gliders (5092 recipes)
Attempting to construct xs4_33 with 13 gliders (6445 recipes)
Attempting to construct xs4_33 with 14 gliders (6549 recipes)
Attempting to construct xs4_33 with 15 gliders (7692 recipes)
Attempting to construct xs4_33 with 16 gliders (8655 recipes)
Attempting to construct xs4_33 with 17 gliders (8928 recipes)
Attempting to construct xs4_33 with 18 gliders (9604 recipes)
Attempting to construct xs4_33 with 19 gliders (10513 recipes)
Reached bailout for strategy 'tree'
Increasing bailout to 2187
Obtained 10 dimers/monomers.
4 objects of < 32 cells.
Attempting to construct xs4_33 with 1 gliders (2 recipes)
Attempting to construct xs4_33 with 2 gliders (3 recipes)
Attempting to construct xs4_33 with 3 gliders (18 recipes)
Attempting to construct xs4_33 with 4 gliders (72 recipes)
Attempting to construct xs4_33 with 5 gliders (382 recipes)
Attempting to construct xs4_33 with 6 gliders (1185 recipes)
Attempting to construct xs4_33 with 7 gliders (2238 recipes)
Reached bailout for strategy 'deep'
Attempting to construct xs4_33 with 8 gliders (2856 recipes)
Attempting to construct xs4_33 with 9 gliders (3648 recipes)
Attempting to construct xs4_33 with 10 gliders (4645 recipes)
Attempting to construct xs4_33 with 11 gliders (4056 recipes)
Attempting to construct xs4_33 with 12 gliders (5092 recipes)
Attempting to construct xs4_33 with 13 gliders (6445 recipes)
Attempting to construct xs4_33 with 14 gliders (6549 recipes)
  • At the start, it says "4 objects of < 32 cells" when there are 5.
  • It can't construct a block, when it should be very easy to do so.
  • Why is it constructing a block first?
I tested it out with only the tub+big sl and it seems to work fine.

User avatar
calcyman
Moderator
Posts: 2938
Joined: June 1st, 2009, 4:32 pm

Re: slmake

Post by calcyman » July 3rd, 2023, 6:38 am

EvinZL wrote:
July 2nd, 2023, 11:26 am
Doublepost, but here's what seems to be a bug in slmake.

Given this infile.mc:

Code: Select all

x = 114, y = 114, rule = LifeHistory
.A$A.A$.A.A$2.A.A$3.A.A$4.A.A$5.A.A$6.A.A$7.A.A$8.A.A$9.A.A$10.A.A$
11.A.A$12.A.A$13.A.A$14.A.A$15.A.A$16.A.A$17.A.A$18.A.A$19.A.A$20.A.A
$21.A.A$22.A.A$23.A.A$24.A.A$25.A.A$26.A.A$27.A.A$28.A.A$29.A.A$30.A.
A$31.A$32.3A.2A3.A$34.A.A3.A.A$34.A2.A3.A$33.2A3.A11.2A$35.3A12.A.A$
35.A15.2A3$52.2A$44.2A5.A.A$44.A.A5.A$45.A$51.2A$51.A.A$46.2A3.A$46.
2A61$112.A$111.A.A$107.2A.A2.A$107.2A.A.A$111.A!
Can you try that but with the input glider shifted SE by, let's say, (5, 5)? It separates gliders from everything else by computing (x & x[8]), so if gliders collide within the first 8 generations, it won't be parsed correctly.
EvinZL wrote:
June 30th, 2023, 1:10 pm
Is pslmake released anywhere?
Not yet: I was abroad this last week and didn't have access to my laptop until today. I need to make some user-friendliness adjustments (such as making everything command-line arguments instead of hardcoded in the source, and including a Python script for downloading pslmake databases).
AlbertArmStain wrote:
June 27th, 2023, 10:27 am
Does pslmake have a feature where it will pinpoint the location of the non-spartan objects?
I don't understand the question; please could you elaborate?
What do you do with ill crystallographers? Take them to the mono-clinic!

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

Re: slmake

Post by dvgrn » July 3rd, 2023, 8:26 am

calcyman wrote:
July 3rd, 2023, 6:38 am
AlbertArmStain wrote:
June 27th, 2023, 10:27 am
Does pslmake have a feature where it will pinpoint the location of the non-spartan objects?
I don't understand the question; please could you elaborate?
I read that more or less as "some easy way to see where pslmake is getting stuck, if it gets stuck".

E.g., have a progress.rle file updated after every reduction, showing the remaining constellation. Could run a script in Golly to monitor that file and update a display when it changes... that would probably not _always_ highlight a problem area clearly, though -- maybe there's a better way to point out the region where pslmake might be working that it's having trouble with.

User avatar
Tawal
Posts: 245
Joined: October 8th, 2023, 7:20 am

Re: slmake

Post by Tawal » October 13th, 2023, 4:26 am

Hi,

I'm on Linux and tried to compile slmake.
I get this error :

Code: Select all

$ ./slsparse.cpp 
Downloading lifelib...
Sous-module 'lifelib' (https://gitlab.com/apgoucher/lifelib.git) enregistré pour le chemin 'lifelib'
Clonage dans '/home/tawal/Term/Test/slmake/lifelib'...
Chemin de sous-module 'lifelib' : 'af0c7910e6a6c8fe276222ef5bcecec3e1495f2f' extrait
Sous-module 'cpads' (https://gitlab.com/hatsya/open-source/cpads.git) enregistré pour le chemin 'lifelib/cpads'
Clonage dans '/home/tawal/Term/Test/slmake/lifelib/cpads'...
Chemin de sous-module 'lifelib/cpads' : '07fea42b10e3a54f4b40f8e7fcc388d5726a446a' extrait
Compiling...
...compiled.
ven. 13 oct. 2023 10:19:11 CEST
Instruction set SSE3 detected
./slsparse.cpp : ligne 10 : 242731 Instruction non permise "$exename" "$@"
ven. 13 oct. 2023 10:19:11 CEST
$
$ ./slsparse
Instruction set SSE3 detected
Instruction non permise
$
Sorry for the French's output.
Instruction non permise = Instruction not allowed

Where's the matter ?
CPU capabilities ? (AMD Athlon X2 QL-62 (2) @ 2.000GHz)
Missing packages ?
Other ?

Thanks to help me.

Edit:
The error seems to be in the execution of slparse, not in the compilation.
My Linux : Debian GNU/Linux 12 (bookworm) x86_64
Alone we go faster … Together we go further …

Avatar's pattern
Possible uses found by Dave Green
Jormungant's explanation and uses

Currently investigating signal collisions … (stand by)

User avatar
confocaloid
Posts: 3032
Joined: February 8th, 2022, 3:15 pm

Re: slmake

Post by confocaloid » October 13th, 2023, 4:51 am

Tawal wrote:
October 13th, 2023, 4:26 am

Code: Select all

Instruction set SSE3 detected
./slsparse.cpp : ligne 10 : 242731 Instruction non permise "$exename" "$@"
Sounds like the program requires some CPU capabilities. On my system it outputs the following:

Code: Select all

Instruction set SSE4.2 detected
Loading elbow recipes...
Snarkmaker string = 10762 bytes.
...elbow recipes loaded.
Signature: [ 252 ] 
Wrong orientation; flipping pattern.
Calling sparsebuild on initial pattern comprising 252 cells
(output trimmed)
127:1 B3/S234c User:Confocal/R (isotropic CA, incomplete)
Unlikely events happen.
My silence does not imply agreement, nor indifference. If I disagreed with something in the past, then please do not construe my silence as something that could change that.

User avatar
Tawal
Posts: 245
Joined: October 8th, 2023, 7:20 am

Re: slmake

Post by Tawal » October 13th, 2023, 5:21 am

Thanks for your response.

But the error you quoted is not very important i think.
It comes from the bash hack at the beginning of the slsparse.ccp file.
I've tried to remove this trick and launch the compilation command directly.
The compilation is right, no errors. It output well a slsparse executable file.
But the execution of the slsparse get this error :

Code: Select all

$ ./slsparse
Instruction set SSE3 detected
Instruction non permise
$
How to verify which CPU capabilities is necessary ? (to be sure ...)

Thanks.

Edit:
Dave's LifeWiki Tutorial wrote:Linux folks will probably be clever enough to adjust the instructions to leave out the Cygwin-related details that they don't need.
I've not the level of cleverness :roll:
Alone we go faster … Together we go further …

Avatar's pattern
Possible uses found by Dave Green
Jormungant's explanation and uses

Currently investigating signal collisions … (stand by)

AlbertArmStain
Posts: 1268
Joined: January 28th, 2022, 7:18 pm
Location: Planet Z

Re: slmake

Post by AlbertArmStain » January 2nd, 2024, 11:49 am

Suggested features for an improved version of Pslmake:
The ability to find spartan components.
Integrating APG’s glider seed script into Pslmake.
Being able to select how optimal the slow salvo will be.
Being able to adjust to multiple channels.

EDIT:
I also want it to have an optional import feature for certain Octohash databases.
Last edited by AlbertArmStain on January 2nd, 2024, 3:29 pm, edited 1 time in total.

User avatar
calcyman
Moderator
Posts: 2938
Joined: June 1st, 2009, 4:32 pm

Re: slmake

Post by calcyman » January 2nd, 2024, 12:17 pm

AlbertArmStain wrote:
January 2nd, 2024, 11:49 am
Suggested features for an improved version of Pslmake:
The ability to find spartan components.
Being able to adjust to multiple channels.
What do these mean, exactly? I don't know what 'spartan components' are; I only know of 'spartan' being used to describe conduits and circuitry, and the methods of finding those are completely different from what pslmake does.

Already, pslmake doesn't make a single-channel assumption: it just generates a slow salvo and it's the responsibility of downstream code to compile that slow salvo for a given construction arm.
Being able to select how optimal the slow salvo will be.
You can control the width of the beam search with the -w argument to pslmake.py:

Code: Select all

    # Optional beam width
    parser.add_argument('-w', '--beamwidth', type=int,
        help='Width of the beam search')
If unspecified, it defaults to 5 times the number of CPU threads.
What do you do with ill crystallographers? Take them to the mono-clinic!

AlbertArmStain
Posts: 1268
Joined: January 28th, 2022, 7:18 pm
Location: Planet Z

Re: slmake

Post by AlbertArmStain » January 2nd, 2024, 3:32 pm

calcyman wrote:
January 2nd, 2024, 12:17 pm
AlbertArmStain wrote:
January 2nd, 2024, 11:49 am
Suggested features for an improved version of Pslmake:
The ability to find spartan components.
What do these mean, exactly? I don't know what 'spartan components' are; I only know of 'spartan' being used to describe conduits and circuitry, and the methods of finding those are completely different from what pslmake does.
I mean the feature to be able to add components to still lifes using common objects for a glider activated seed, no reflectors needed.

User avatar
calcyman
Moderator
Posts: 2938
Joined: June 1st, 2009, 4:32 pm

Re: slmake

Post by calcyman » January 2nd, 2024, 8:18 pm

AlbertArmStain wrote:
January 2nd, 2024, 3:32 pm
calcyman wrote:
January 2nd, 2024, 12:17 pm
AlbertArmStain wrote:
January 2nd, 2024, 11:49 am
Suggested features for an improved version of Pslmake:
The ability to find spartan components.
What do these mean, exactly? I don't know what 'spartan components' are; I only know of 'spartan' being used to describe conduits and circuitry, and the methods of finding those are completely different from what pslmake does.
I mean the feature to be able to add components to still lifes using common objects for a glider activated seed, no reflectors needed.
It's possible to do this by populating data/bespoke with those conversions. For example, it already contains this conversion which converts an eater into an eater-tie-eater:

Code: Select all

x = 58, y = 60, rule = B3/S23
8bo$7bobo$7bobo$8bo3$10b2o$9bo2bo$10b2o4$3bo5bo$b3o4bobo$o7bobo$2o7bo
14$35b3o$35bo$36bo26$55b3o$55bo$56bo!
You just need to drop in an RLE into data/bespoke for every step of whatever object you want to build, and then run the script refresh.sh to build the database of bespoke syntheses from those RLEs.
What do you do with ill crystallographers? Take them to the mono-clinic!

Post Reply