JavaLifeSearch

For scripts to aid with computation or simulation in cellular automata.
User avatar
praosylen
Posts: 2443
Joined: September 13th, 2014, 5:36 pm
Location: Pembina University, Home of the Gliders
Contact:

Re: JavaLifeSearch

Post by praosylen » December 30th, 2017, 5:18 pm

The manual appears to mention the existence of "frozen unchecked" cells, which I should be able to create with X + I, but when I try that on my copy, nothing happens when I press "I". Is the problem with my copy of JLS, the manual, or my own misunderstanding?
former username: A for Awesome
praosylen#5847 (Discord)

The only decision I made was made
of flowers, to jump universes to one of springtime in
a land of former winter, where no invisible walls stood,
or could stand for more than a few hours at most...

wildmyron
Posts: 1542
Joined: August 9th, 2013, 12:45 am
Location: Western Australia

Re: JavaLifeSearch

Post by wildmyron » January 4th, 2018, 4:39 am

In case you hadn't figured it out yet, this seems to be an error in the documentation. 'i' and 'I' clear all unchecked cells in the selection, and 'o' and 'O' set all unset cells to unchecked. The frozen / unfrozen state is retained with 'i' and 'o' as indicated in the manual - you just need the opposite operation. As usual, 'Shift' applies the operation to all generations.
The 5S project (Smallest Spaceships Supporting Specific Speeds) is now maintained by AforAmpere. The latest collection is hosted on GitHub and contains well over 1,000,000 spaceships.

Semi-active here - recovering from a severe case of LWTDS.

Sarp
Posts: 221
Joined: March 1st, 2015, 1:28 pm

Re: JavaLifeSearch

Post by Sarp » October 5th, 2018, 5:07 pm

It seems like the web page is broken, are there any alternative links?
WADUFI

User avatar
Apple Bottom
Posts: 1034
Joined: July 27th, 2015, 2:06 pm
Contact:

Re: JavaLifeSearch

Post by Apple Bottom » October 5th, 2018, 5:12 pm

Sarp wrote:It seems like the web page is broken, are there any alternative links?
Here's a ZIP file containing a saved copy of the JAR file for 1.7 and the accompanying manual:
JLS-1.7.zip
JLS 1.7 binary and manual
(623.99 KiB) Downloaded 1074 times
If you speak, your speech must be better than your silence would have been. — Arabian proverb

Catagolue: Apple Bottom • Life Wiki: Apple Bottom • Twitter: @_AppleBottom_

Proud member of the Pattern Raiders!

Sokwe
Moderator
Posts: 2645
Joined: July 9th, 2009, 2:44 pm

Re: JavaLifeSearch

Post by Sokwe » October 5th, 2018, 5:30 pm

Apple Bottom wrote:Here's a ZIP file containing a saved copy of the JAR file for 1.7 and the accompanying manual
Thanks. I've updated the original post to link to your post.
-Matthias Merzenich

User avatar
Entity Valkyrie
Posts: 247
Joined: November 30th, 2017, 3:30 am

Re: JavaLifeSearch

Post by Entity Valkyrie » November 8th, 2018, 11:33 pm

How do I use JavaLifeSearch to find a suitable p3 reflector for this?

Code: Select all

x = 29, y = 25, rule = B3/S23
18bobo$19b2o$19bo6$o$3o$3bo$2b2o11b2o11bo$15b2o9b3o$6b3o17bobo$4b2o20b
o$4b2obob2o$4b4o2bo$5bo4bo$6b4o$6b2o2$27b2o$28bo$25b3o$25bo!
EDIT: This is p51.

wildmyron
Posts: 1542
Joined: August 9th, 2013, 12:45 am
Location: Western Australia

Re: JavaLifeSearch

Post by wildmyron » November 9th, 2018, 2:02 am

Entity Valkyrie wrote:How do I use JavaLifeSearch to find a suitable p3 reflector for this?

Code: Select all

x = 29, y = 25, rule = B3/S23
18bobo$19b2o$19bo6$o$3o$3bo$2b2o11b2o11bo$15b2o9b3o$6b3o17bobo$4b2o20b
o$4b2obob2o$4b4o2bo$5bo4bo$6b4o$6b2o2$27b2o$28bo$25b3o$25bo!
EDIT: This is p51.
I'm not sure this problem is at a stage where JLS can be used to find a solution, but it depends very much on what you are trying to reflect, the timing of that reflection and where it needs to go. If I understand what you are trying to do correctly, then you want to use the p3 reflector to shuttle the glider which knocks out the FNG of the eastern herschel allowing the R-> H progression to work. What you need to do first is work out the timing and output lane of the reflector that's required, and then survey all the known p3 reflectors to see if there's anything that matches. If you find something but it doesn't fit, then you can use JLS to find an oscillator which uses the same mechanism and also fits in the space that is available. If there's nothing that matches then it is going to be very hard to find something starting with just JLS.

If you do want to tackle this problem then the way to do it would be to set up JLS with a period of 51 gen, and manually set the as much of the pattern as possible until you have the input and output gliders defined throughout the interaction. In this case you may need to work forwards from Gen 0 and backwards from the last gen to work out where and when the interaction will take place. In the middle you'll need to leave a number of cells unconstrained (which is where the interaction will take place) and then border that region with cells constrained to be p3. To start with there should be a thin border of p3 cells surrounded by a larger area of Unchecked p3 cells. I tackle these problems by starting with as small an area as possible for the interaction and gradually increase that area when no results are found. You'll see that there are errors where signals (including gliders) come into and go out of the conduits. These errors can be resolved with Unset cells in the last generation.

You can save a lot of time in setting up these searches by pasting in a pattern from Golly into JLS, manually setting the unknown areas throughout the evolution and letting it work out the subsequent generations everywhere else. I've attached a JLS file which sets up this kind of search from an adapted version of the pattern on the Gun Discussion thread (with alternate p3 sparker) combined with the pattern here. With the current setup the search finds 0 solutions after about 3 minutes. Note the Sort order used (in particular "Process all cells in a generation first") and the use of "Use combinations of solutions to prune search" in the Search Options. The later option has no effect on this search as it's set up, but as you expand the search it's a very useful option.

I suspect that even if you manage to find a solution to this problem it's going to be very difficult to make it fit with all the other circuitry you require, for example, there's no way it can coexist with the 2G -> H you used in the pattern from the Gun Discussion thread.

Good Luck
Attachments
B3S23-p3_reflector_for_p51_conduit.zip
Sample JLS setup for p3 reflector
(17.92 KiB) Downloaded 387 times
The 5S project (Smallest Spaceships Supporting Specific Speeds) is now maintained by AforAmpere. The latest collection is hosted on GitHub and contains well over 1,000,000 spaceships.

Semi-active here - recovering from a severe case of LWTDS.

User avatar
Entity Valkyrie
Posts: 247
Joined: November 30th, 2017, 3:30 am

Re: JavaLifeSearch

Post by Entity Valkyrie » November 10th, 2018, 6:27 pm

wildmyron wrote:
Entity Valkyrie wrote:How do I use JavaLifeSearch to find a suitable p3 reflector for this?

Code: Select all

x = 29, y = 25, rule = B3/S23
18bobo$19b2o$19bo6$o$3o$3bo$2b2o11b2o11bo$15b2o9b3o$6b3o17bobo$4b2o20b
o$4b2obob2o$4b4o2bo$5bo4bo$6b4o$6b2o2$27b2o$28bo$25b3o$25bo!
EDIT: This is p51.
I'm not sure this problem is at a stage where JLS can be used to find a solution, but it depends very much on what you are trying to reflect, the timing of that reflection and where it needs to go. If I understand what you are trying to do correctly, then you want to use the p3 reflector to shuttle the glider which knocks out the FNG of the eastern herschel allowing the R-> H progression to work. What you need to do first is work out the timing and output lane of the reflector that's required, and then survey all the known p3 reflectors to see if there's anything that matches. If you find something but it doesn't fit, then you can use JLS to find an oscillator which uses the same mechanism and also fits in the space that is available. If there's nothing that matches then it is going to be very hard to find something starting with just JLS.

If you do want to tackle this problem then the way to do it would be to set up JLS with a period of 51 gen, and manually set the as much of the pattern as possible until you have the input and output gliders defined throughout the interaction. In this case you may need to work forwards from Gen 0 and backwards from the last gen to work out where and when the interaction will take place. In the middle you'll need to leave a number of cells unconstrained (which is where the interaction will take place) and then border that region with cells constrained to be p3. To start with there should be a thin border of p3 cells surrounded by a larger area of Unchecked p3 cells. I tackle these problems by starting with as small an area as possible for the interaction and gradually increase that area when no results are found. You'll see that there are errors where signals (including gliders) come into and go out of the conduits. These errors can be resolved with Unset cells in the last generation.

You can save a lot of time in setting up these searches by pasting in a pattern from Golly into JLS, manually setting the unknown areas throughout the evolution and letting it work out the subsequent generations everywhere else. I've attached a JLS file which sets up this kind of search from an adapted version of the pattern on the Gun Discussion thread (with alternate p3 sparker) combined with the pattern here. With the current setup the search finds 0 solutions after about 3 minutes. Note the Sort order used (in particular "Process all cells in a generation first") and the use of "Use combinations of solutions to prune search" in the Search Options. The later option has no effect on this search as it's set up, but as you expand the search it's a very useful option.

I suspect that even if you manage to find a solution to this problem it's going to be very difficult to make it fit with all the other circuitry you require, for example, there's no way it can coexist with the 2G -> H you used in the pattern from the Gun Discussion thread.

Good Luck
Thanks for the file. I didn't know how to set up JavaLifeSearch until now.

User avatar
77topaz
Posts: 1496
Joined: January 12th, 2018, 9:19 pm

Re: JavaLifeSearch

Post by 77topaz » November 12th, 2018, 2:41 am

Could you please not quote entire page-long posts just to add a single line of response to the bottom?

User avatar
LaundryPizza03
Posts: 2298
Joined: December 15th, 2017, 12:05 am
Location: Unidentified location "https://en.wikipedia.org/wiki/Texas"

Re: JavaLifeSearch

Post by LaundryPizza03 » March 2nd, 2020, 1:45 am

JLS's error detection is buggy when finding spaceships. For example, it prevents me from attempting to extend the following c/5o partial because of the top three sparks:

Code: Select all

x = 19, y = 14, rule = B3/S3
9bo2$7bo3bo$3b2o9b2o$5b2ob3ob2o$b2o3bo5bo3b2o$b2o3bo5bo3b2o$2bo3bo5bo
3bo$bo3bo7bo3bo$2b4o7b4o$2o5b5o5b2o$5bobo3bobo$4b2o7b2o$2bob2o2b3o2b2o
bo!
EDIT: Without the spaceship requirement, do you know why I'm getting only solutions where the rows behind the last functional one disappear after 1 period?

Code: Select all

x = 4, y = 3, rule = B3-q4z5y/S234k5j
2b2o$b2o$2o!
LaundryPizza03 at Wikipedia

wildmyron
Posts: 1542
Joined: August 9th, 2013, 12:45 am
Location: Western Australia

Re: JavaLifeSearch

Post by wildmyron » March 4th, 2020, 10:39 pm

LaundryPizza03 wrote:
March 2nd, 2020, 1:45 am
JLS's error detection is buggy when finding spaceships. For example, it prevents me from attempting to extend the following c/5o partial because of the top three sparks:

Code: Select all

x = 19, y = 14, rule = B3/S3
9bo2$7bo3bo$3b2o9b2o$5b2ob3ob2o$b2o3bo5bo3b2o$b2o3bo5bo3b2o$2bo3bo5bo
3bo$bo3bo7bo3bo$2b4o7b4o$2o5b5o5b2o$5bobo3bobo$4b2o7b2o$2bob2o2b3o2b2o
bo!
This partial seems to work fine for me in JLS, but the search doesn't go very far before it's complete. Here are the settings which need to be adjusted from default to run a search (with the partial in the same orientation as shown above):
  • Edit -> Properties -> Edit field:
    • Columns (width) - 21 (or slightly larger odd value)
    • Rows (height) - some number larger than 18 (50 is reasonable, less is OK, more gets awkward but will be necessary for long ships)
    • Generations (depth) - 5
    • Symmetry - Horizontal mirror
  • Edit -> Properties -> Tiling/translation
    • After the last generation is... Generation 0, shifted -1 cells down
  • Edit -> Properties -> Rule
    • B3/S3 (deselect S2)
  • Select the top 14 rows and press 'a' to set cells to Off.
  • Select the centre 19 columns of the top 14 rows and paste the partial pattern (Edit -> Paste or Ctrl-V)
  • In order to run any reasonable search you also need to change the search order - Search -> Options -> Sorting
    • Area - Vertical
    • (Optional) Start at Column 10 (Should be the centre column [(width - 1) / 2] )
  • Search -> Options -> Processing
    • Display search status on screen - every 1 seconds (Personal preference)
This search won't get far - it ends almost immediately at width 23. If you keep just the top 7 rows of the partial you can run a decent search. (Still no results at width 23 though.)

Personally I find searching for vertically traveling spaceships in JLS / WLS awkward - the defaults are more tailored to leftward traveling ships. To set up such a search you just need to adjust the period, the displacement (set "After the last generation is..." to Generation 0, shifted -x cells to the right, where "x" is the desired displacement), and set symmetry to Vertical mirror (if desired). (And optionally change the sorting options to Start at Row r, where r is the centre row.)
EDIT: Without the spaceship requirement, do you know why I'm getting only solutions where the rows behind the last functional one disappear after 1 period?
I don't understand what you mean - you can't run an oscillator search with this partial...
The 5S project (Smallest Spaceships Supporting Specific Speeds) is now maintained by AforAmpere. The latest collection is hosted on GitHub and contains well over 1,000,000 spaceships.

Semi-active here - recovering from a severe case of LWTDS.

User avatar
LaundryPizza03
Posts: 2298
Joined: December 15th, 2017, 12:05 am
Location: Unidentified location "https://en.wikipedia.org/wiki/Texas"

Re: JavaLifeSearch

Post by LaundryPizza03 » May 12th, 2020, 2:03 am

The spaceship search option is still proving unusably buggy for me. I'm trying to find a glide-symmetric 2c/8d in B368/S35678 by attaching a rear end to a wickstretcher. The spaceship is traveling northwest, so the correct option is to have the pattern shifted up 1 cell and left 1 cell, reflected diagonally backward. But then the ten cells highlighted in red and white at the northwest end of the pattern return an error, despite working exactly as intended. Even when specifying simple translation, it still doesn't work.

Code: Select all

x = 14, y = 14, rule = B368/S35678History
14B$3B4D7B$2B5AC6B$BD8A4B$BD8A4B$BD10A2B$BD10A2B$2BC10AE$3B9A2E$3B8A
3E$5B5A4E$6B3A5E$6B2A6E$8B6E!
That said, JLS works fine for searches that don't involve unknown moving patterns, though I'd still like to build a GUI for custom LLS searches because it's faster and more diverse.

Code: Select all

x = 4, y = 3, rule = B3-q4z5y/S234k5j
2b2o$b2o$2o!
LaundryPizza03 at Wikipedia

wildmyron
Posts: 1542
Joined: August 9th, 2013, 12:45 am
Location: Western Australia

Re: JavaLifeSearch

Post by wildmyron » May 12th, 2020, 9:15 am

LaundryPizza03 wrote:
May 12th, 2020, 2:03 am
The spaceship search option is still proving unusably buggy for me. I'm trying to find a glide-symmetric 2c/8d in B368/S35678 by attaching a rear end to a wickstretcher. The spaceship is traveling northwest, so the correct option is to have the pattern shifted up 1 cell and left 1 cell, reflected diagonally backward. But then the ten cells highlighted in red and white at the northwest end of the pattern return an error, despite working exactly as intended. Even when specifying simple translation, it still doesn't work.

Code: Select all

x = 14, y = 14, rule = B368/S35678History
14B$3B4D7B$2B5AC6B$BD8A4B$BD8A4B$BD10A2B$BD10A2B$2BC10AE$3B9A2E$3B8A
3E$5B5A4E$6B3A5E$6B2A6E$8B6E!
That said, JLS works fine for searches that don't involve unknown moving patterns, though I'd still like to build a GUI for custom LLS searches because it's faster and more diverse.
Unfortunately JLS doesn't fully support diagonal glide reflect spaceships. There was a brief mention of this issue at the end of page 1 of this thread. I'm not sure about the partial you are trying to extend (because you haven't shown it here) but as you note glide reflect with (-1,-1) does work in this rule. The glider in CGoL is glide reflect with (-1,0) and that doesn't work in JLS. Similarly, 2c/8d spaceships could be glide-reflect with (-2,0), and that doesn't work in JLS. It could be that your partial requires (-2,0) rather than (-1,-1).
The 5S project (Smallest Spaceships Supporting Specific Speeds) is now maintained by AforAmpere. The latest collection is hosted on GitHub and contains well over 1,000,000 spaceships.

Semi-active here - recovering from a severe case of LWTDS.

Post Reply