ConwayLife.com - A community for Conway's Game of Life and related cellular automata
Home  •  LifeWiki  •  Forums  •  Download Golly

Golly suggestions

For general discussion about Conway's Game of Life.

Re: Golly suggestions

Postby KittyTac » October 10th, 2018, 9:34 pm

Here's another thing: Ability to simulate Wolfram rules that are not range-1 2-state ones. It's annoying to use Wolfram Alpha for their analysis.
User avatar
KittyTac
 
Posts: 532
Joined: December 21st, 2017, 9:58 am

Re: Golly suggestions

Postby Redstoneboi » October 11th, 2018, 3:54 am

KittyTac wrote:Here's another thing: Ability to simulate Wolfram rules that are not range-1 2-state ones. It's annoying to use Wolfram Alpha for their analysis.

Explanation
well, golly actually converts elementary wolfram rules into either 2 state asymmetric rule tables or MAP strings
it also can’t run even wolfram rules because of the b0.
since golly only runs 2d rules and instead converts it into a b0 rule, it allows layers below the original pattern to evolve. state 1 cells can’t die either.

Solution
maybe have a “lineLoader” algorithm that runs up to 256 state and range 64 (or whatever) 1d rules, with the height of each cell being the screen’s height.
suggestion: i think 1d tables should either be @LINE, or @WOLFRAM instead of @TABLE
optional: maybe even request a script (please make it .lua) that converts a 1d pattern and a rule into a pattern in a rule where nothing moves.

Suggestion
and while we’re on the topic of adding algorithms, maybe a “blockLoader” that simulates arbitrary state block based cellular automata with 2*2 neighborhoods such as margolus and square4cyclic.
suggestion: block tables should be @BLOCK
maybe even update the margolus patterns?

i guess you can have either of those, and i’d be happy.
it’s more convenient to use these than having to convert them using scripts back and forth with each edit.
Last edited by Redstoneboi on November 4th, 2018, 9:05 am, edited 1 time in total.
c(>^x^<c)~
This is Fluffy the cat.
Fluffy wants to discover new things that everyone likes.
Fluffy likes to watch spaceship guns in Golly.

There’s one problem,

Fluffy doesn’t exist :(
User avatar
Redstoneboi
 
Posts: 295
Joined: May 14th, 2018, 3:57 am

Re: Golly suggestions

Postby KittyTac » October 22nd, 2018, 3:32 am

What about making random fills obey the paste modes?
User avatar
KittyTac
 
Posts: 532
Joined: December 21st, 2017, 9:58 am

Re: Golly suggestions

Postby gameoflifemaniac » November 11th, 2018, 10:31 am

Please add LTL rule tables in Golly 3.3!
Or 3.4.
https://www.youtube.com/watch?v=q6EoRBvdVPQ
One big dirty Oro. Yeeeeeeeeee...
User avatar
gameoflifemaniac
 
Posts: 701
Joined: January 22nd, 2017, 11:17 am
Location: There too

Re: Golly suggestions

Postby wwei23 » November 11th, 2018, 2:51 pm

Please keep betas available.
I don't have much else to say.
User avatar
wwei23
 
Posts: 923
Joined: May 22nd, 2017, 6:14 pm
Location: The (Life?) Universe

Re: Golly suggestions

Postby M. I. Wright » November 11th, 2018, 4:17 pm

gameoflifemaniac wrote:Please add LTL rule tables in Golly 3.3!
Or 3.4.

It would be a nice thing to have, but I don't think a "please" is going to cancel out the proposal's difficulty. Do you have any ideas yourself regarding how LtL ruletables should be implemented?

The larger the neighborhood, the more inviable the current ruletable system (listing all terms of the transition on one line) is. At range 1, with 8 terms max, it's not so difficult to keep track of positioning, but take this range-2 transition on for size:
0,a,0,0,b,c,d,0,0,1,2,0,0,0,0,e,f,g,h,i,j,0,0,0,0,1
...and bigger won't be getting any better. The impracticality of name-bound variables is also highlighted here: can you imagine needing to declare 24, 48, 80 different names for the exact same variable — and, worse, keeping track of these hardly-separate names? It's bad enough with a size-8 neighborhood, and perhaps still manageable at size 24 with range 2, but past that you won't even be able to rely on single-letter variables (as seems to be standard); the ensuing visual and cognitive noise won't make writing these tables much fun.

A compass-direction-based system like Nutshell's obviously won't work here, either, so something totally new will have to do. (I have ideas but considering that this whole thing isn't even under consideration yet I'll refrain)

Symmetries aren't going to be much fun, either, if they stay as is. I assume that they work behind the scenes by expanding each transition under a given set of symmetries into symmetries:none for easy lookup, but this means that LtL permutational symmetry will have to be cleverer: finding permutations of a given sequence gets pretty expensive once it reaches a length of about 10 or 11, but we're looking at 24 or more terms in a single transition napkin! That's an upper bound of 620,448,401,733,239,439,360,000 expanded transitions (assuming each term of the original one is unique, which admittedly is likely not to be the case) for range 2.

Back to writing rules, though: Discord user HactarCE, whom I've hashed out a lot of Nutshell stuff with, has proposed a 2D-transition system -- some variation on which is probably going to be indispensable at range>1. I'll leave it for him to explain if there's interest (both here and on his end), but on a very-basic level -- not showing bindings/mappings or modification of non-center cells or anything -- it could look like this:
*  *  1  *  *
*  1  0  1  *
1  0  a  0  1  ->  3
*  1  0  1  *
*  *  1  *  *
| a = {3, 4, 5}

Consider also Saka's proposal if the whitespace is too much.
gamer54657 wrote:God save us all.
God save humanity.

hgkhjfgh

nutshelltlifeDiscord 'Conwaylife Lounge'
M. I. Wright
 
Posts: 365
Joined: June 13th, 2015, 12:04 pm

Re: Golly suggestions

Postby wwei23 » November 11th, 2018, 4:50 pm

We could order the terms like so:
1  2  3  4  5
6  7  8  9  10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25
User avatar
wwei23
 
Posts: 923
Joined: May 22nd, 2017, 6:14 pm
Location: The (Life?) Universe

Re: Golly suggestions

Postby M. I. Wright » November 11th, 2018, 10:12 pm

If you're talking about flattening a range-2 neighborhood into a one-dimensional transition, as is done currently with range 1, then of course we could do it that way (although I'd hope that the center cell would be 0 rather than 13, because the input cellstate shouldn't be in the middle). Half of the point of my post, though, was that it's wholly impractical to do this at range>1 -- it'd help immensely to put a 2D system into place instead.
gamer54657 wrote:God save us all.
God save humanity.

hgkhjfgh

nutshelltlifeDiscord 'Conwaylife Lounge'
M. I. Wright
 
Posts: 365
Joined: June 13th, 2015, 12:04 pm

Re: Golly suggestions

Postby Extrementhusiast » November 13th, 2018, 1:00 am

While we're talking about rule tables, an easier suggestion could be to add compatibility with an optional extra argument at the end of each row to specify that this row has a different symmetry than the one listed at the top of the file (which would become the default symmetry to use if a row lacks this extra argument, for compatibility with older versions of rule tables). I've lost count of how many times I've used rule tables to look for a specific set of consecutive non-totalistic births/deaths/etc., forcing me to use twenty-seven different transitions with rotate4reflect symmetry, instead of just four (or even three) transitions with permute symmetry, and then multiplying this discrepancy by very roughly around half the number of states (e.g. different colors of marking: no need to distinguish between on/off states any more than they already are).
I Like My Heisenburps! (and others)
User avatar
Extrementhusiast
 
Posts: 1723
Joined: June 16th, 2009, 11:24 pm
Location: USA

Re: Golly suggestions

Postby M. I. Wright » November 13th, 2018, 3:05 am

Plugging: Nutshell, which is usable if you're able to install Python 3.6 or higher, has that feature.

It's a somewhat-clunky operation in the back end, though. I do it by expanding transitions into "symmetries: none" and then recompressing into Golly's most-expressive symmetry type encompassing of all requested symmetries... and that in turn is implemented as a strange abuse of hashing + Python's set datatype, and it works, but I'm not sure if it's too high-level a thing for Golly's format to implement.
gamer54657 wrote:God save us all.
God save humanity.

hgkhjfgh

nutshelltlifeDiscord 'Conwaylife Lounge'
M. I. Wright
 
Posts: 365
Joined: June 13th, 2015, 12:04 pm

Re: Golly suggestions

Postby toroidalet » November 20th, 2018, 1:50 am

Can you please make future versions of Golly store all their layers (at least the initial generation) in a "backup" file?
It would help people from not losing patterns when Golly crashes or has to be quit, or other times such as when one must shut down their computer unexpectedly (this is the most notorious example)

By the way, "permute" symmetry doesn't need to expand to n! (or (n^2-1)! if n is the length of the square) transitions. The program can just count the total number of each state and look up the appropriate transition (also determined by counting).
I have the best signature ever.
User avatar
toroidalet
 
Posts: 871
Joined: August 7th, 2016, 1:48 pm
Location: Somewhere on a planet called "Earth"

Re: Golly suggestions

Postby M. I. Wright » November 20th, 2018, 2:47 am

Of course! That's the obvious solution. However, as far as I can tell, (I don't quite understand everything in ruletable_algo.cpp but it seems on a rough level) Golly does not do that currently -- which is why I said that "LtL permutational symmetry will have to be cleverer".

Seconding the request for automatic saving; it would be nice to have an "autosave every X minutes" setting like in some text editors, along with a "recover previous session" File menu option.

Additionally, a very-long-term request: could some way perhaps be implemented to hook into rule-generator scripts, such as the bundled one that generates Langton's Ant ruletables, directly from the Set Rule... dialog? In the Discord I've made it so that the server bot, Caterer, accepts a rulestring suffixed by two colons then the name of a given rule-family: LLRR::langton, B3S23::genext, etc., and then invokes the accordingly-named ruletable-generator script with that rulestring. This definitely isn't trivial for Golly to do, but if implementable it would make some niche rulespaces a lot more accessible.
gamer54657 wrote:God save us all.
God save humanity.

hgkhjfgh

nutshelltlifeDiscord 'Conwaylife Lounge'
M. I. Wright
 
Posts: 365
Joined: June 13th, 2015, 12:04 pm

Re: Golly suggestions

Postby calcyman » November 20th, 2018, 8:50 am

toroidalet wrote:By the way, "permute" symmetry doesn't need to expand to n! (or (n^2-1)! if n is the length of the square) transitions. The program can just count the total number of each state and look up the appropriate transition (also determined by counting).


As I understand, Golly's 256-state algorithm uses a ruletree internally for speed, so the table needs to be converted into a tree upon loading.

Your suggestion would need a separate algorithm for the 'permute' symmetry that's completely different from the ordinary RuleLoader algorithm.
What do you do with ill crystallographers? Take them to the mono-clinic!
User avatar
calcyman
 
Posts: 1773
Joined: June 1st, 2009, 4:32 pm

Re: Golly suggestions

Postby muzik » December 3rd, 2018, 9:40 am

Can native support for isotropic non-totalistic hexagonal notation be added?
waiting for apgsearch to support one-dimensional rules
muzik
 
Posts: 2855
Joined: January 28th, 2016, 2:47 pm
Location: Scotland

Re: Golly suggestions

Postby muzik » December 6th, 2018, 1:03 pm

...and on that topic, can the remaining apgsearchable rulespaces be supported?

While apgsearch supports higher-range outer-totalistic rules, the notation used for such rules isn't particularly intuitive or easy to understand. I propose that they be notated something like this:

B(birth conditions)/S(survival conditions)/R(n)

Since we can go above 9, we'd have to separate condition numbers using commas. I also propose that ranges could also be implemented to shorten rulestrings, as they could potentially become unwieldy and large. For example, these two would be synonymous:

B7,8,9,10,15,20/S8,9,10,11,12,22,23,24/R2

B7-10,15,20/S8-12,22-24/R2


Since BSFKL can be supported by ruletables, it might be helpful to include a generation script with the official scripts as well.
waiting for apgsearch to support one-dimensional rules
muzik
 
Posts: 2855
Joined: January 28th, 2016, 2:47 pm
Location: Scotland

Re: Golly suggestions

Postby danny » December 6th, 2018, 3:17 pm

I feel like this could all be solved if there was some way to simulate things like ECA not through a script (which takes an insane amount of time to make Golly-friendly), but some sort of 'algorithm creator' in Golly. Then someone could make one for ECA, and BSFKL...and there wouldn't be any more rulespace suggestions to annoy Andrew with :p
I prefer Dani now, but Danny is fine seeing as it's my username and I've already made 4 too many accounts.
User avatar
danny
 
Posts: 770
Joined: October 27th, 2017, 3:43 pm
Location: i love to eat bees

Previous

Return to General Discussion

Who is online

Users browsing this forum: No registered users and 1 guest