What I'd like to see in Golly

For general discussion about Conway's Game of Life.
Axaj
Posts: 232
Joined: September 26th, 2009, 12:23 am

What I'd like to see in Golly

Post by Axaj » December 20th, 2009, 12:03 pm

Now, I don't want to overwhelm Andrew, but I have had some ideas (plus things I've seen floating around) that I think may be worthy to add to Golly (which, by the way, is my favorite CA program). If anyone else wants to contribute to the list, feel free.

Additions to the Rule Table format
-Margolus neighborhood support
-Mathematical functions
-Ability to designate a bound or unbound variable
-Hexagonal lattice support

Additions to Golly
-Support for Torus or Klein Bottle
-Multiple rows of states for many-state rules
Last edited by Axaj on May 21st, 2010, 4:20 pm, edited 1 time in total.
Image

knightlife
Posts: 566
Joined: May 31st, 2009, 12:08 am

Re: What I'd like to see in Golly

Post by knightlife » December 20th, 2009, 3:08 pm

Some of what you ask for can be done with a script called make-ruletree.py which allows you to include functions in Python to describe your new CA rules. I have tried it, and it is quite nice to use Python statements instead of creating a complex ruletable. Try the example that Andrew posted here. It is in the "Hexagonal life" thread under "General Discussion".

Axaj
Posts: 232
Joined: September 26th, 2009, 12:23 am

Re: What I'd like to see in Golly

Post by Axaj » December 20th, 2009, 10:19 pm

Yeah, I put Hexagonal neighborhood last for that reason. However, emulated Margolus neighborhood rules are very annoying to use.
Image

ebcube
Posts: 124
Joined: February 27th, 2010, 2:11 pm

Re: What I'd like to see in Golly

Post by ebcube » April 26th, 2010, 5:07 pm

Is there any way to define rules for Moore/vonNeumann neighborhoods with a range higher than 1?

(as in http://mathworld.wolfram.com/MooreNeighborhood.html)

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

Re: What I'd like to see in Golly

Post by calcyman » April 27th, 2010, 1:48 am

Is there any way to define rules for Moore/vonNeumann neighborhoods with a range higher than 1?
Not directly, but adding extra states can emulate large-neighbourhood rules.
What do you do with ill crystallographers? Take them to the mono-clinic!

User avatar
Tim Hutton
Posts: 64
Joined: May 20th, 2010, 7:30 am
Contact:

Re: What I'd like to see in Golly

Post by Tim Hutton » May 20th, 2010, 8:50 am

An update on where we are with Golly now:

Axaj:
Rule Table Format:

- Margolus neighborhood: there's emulateMargolus.py in Golly 2.1. (This script will be replaced by RuleTableToTree.py in 2.2 and later, see recent post on golly-test mailing list, and here:
http://code.google.com/p/ruletablerepos ... ki/RoadMap )
- Nested variables: do you mean e.g. var a={0,1,2} var b={a,3,4} ? Golly 2.2 and later support this, again see a recent post.
- Mathematical functions: make-ruletree.py now supports this, as mentioned.
- Bound/unbound vars: we still only support bound variables. The best place to discuss this is here:
http://code.google.com/p/ruletablerepos ... dVariables
- Hexagonal neighborhood: now supported via RuleTableToTree.py in 2.2 and later.

Golly:

- Torus/Klein bottle: Yes, wraparound has been on the TODO list for a while.
- Multiple rows of states: You mean in the status bar? Yes, good idea. I'll put it on the TODO list.

Axaj: "emulated Margolus neighborhood rules are very annoying to use"

Could you give more details, so we can think of a way to improve it? Calling RuleTableToTree.py (or EmulateMargolus.py) is a slightly annoying step to have to do, but the alternative has Golly load Margolus rule tables automatically, and there's a problem with that approach as discussed here:
https://sourceforge.net/mailarchive/for ... golly-test
The emulation approach itself is also annoying of course (because the user needs export.py and import.py in order to make changes) but that's unavoidable as far as I can see, unless we had Golly support Margolus natively (isn't going to happen unless we come up with lots of amazing rules for it).

ebcube: "Is there any way to define rules for Moore/vonNeumann neighborhoods with a range higher than 1?"

You can *define* them... :) See Moore_radius2 here:
http://code.google.com/p/ruletablerepos ... ki/RoadMap
I had a look at emulating Moore_radius2 by splitting each cell into 4, as mentioned by calcyman. It needs of course N^4 states for an N-state CA: 2 -> 16, 3 -> 81, 4 -> 256. And that causes difficulty in producing a complete rule tree: traversing the whole input space even for N=2 is costly. Converting rule table transitions to a rule tree the quick way (as in RuleTableToTree) is also problematic: a Moore_radius2 CA with permute symmetry (as is usually wanted) means that there are *many* different rule combinations to consider. To see what I mean, compare with the square-splitting code in EmulateTriangular.py here:
http://golly.cvs.sourceforge.net/viewvc ... iew=markup
Some rare rules might be possible to support through emulation but in general I don't think it's going to work very well.
Another possibility is to extend ruletable_algo to support the emulation scheme for permute symmetry only but I'm loath to do this (for the moment at least) because it would be a hack and would cause the same problems as would supporting Margolus emulation natively, as linked above.
We could make another algorithm to support certain rule definitions, e.g. Bugs="R5,C0,M1,S34..58,B34..45,NM", as in MCell. But again it would have to use the emulation approach and so in fact Bugs isn't possible because it's got range 5.
So realistically I think Moore_radius2 and higher will have to wait until Golly's hashlife supports them natively. And the only way *that* can currently happen is if we come up with a pressing need for it and then pester Tom Rokicki enough. :) Some CA I'd love to see implemented include the larger-range ones here:
http://psoup.math.wisc.edu/mcell/rullex_cycl.html
and here:
http://psoup.math.wisc.edu/mcell/rullex_lgtl.html (in particular the work of Kellie Michele Evans)
Any more examples we can add to make the case stronger?

Tim

Axaj
Posts: 232
Joined: September 26th, 2009, 12:23 am

Re: What I'd like to see in Golly

Post by Axaj » May 20th, 2010, 10:25 am

Tim Hutton wrote:- Margolus neighborhood: there's emulateMargolus.py in Golly 2.1. (This script will be replaced by RuleTableToTree.py in 2.2 and later, see recent post on golly-test mailing list, and here:
http://code.google.com/p/ruletablerepos ... ki/RoadMap )
[s]So is it going to be native support or emulated in the Moore neighborhood.[/s] Scratch that, I saw the post.
- Nested variables: do you mean e.g. var a={0,1,2} var b={a,3,4} ? Golly 2.2 and later support this, again see a recent post.
Yes, that's what I mean. Unfortunately, I have yet to see any trace of 2.2. And can you link me to that post?
- Mathematical functions: make-ruletree.py now supports this, as mentioned.
Mentioned where?
- Bound/unbound vars: we still only support bound variables. The best place to discuss this is here:
http://code.google.com/p/ruletablerepos ... dVariables
Alright, I'll be checking there.
- Hexagonal neighborhood: now supported via RuleTableToTree.py in 2.2 and later.
[s]On a hexagonal lattice, or emulated on a square lattice?[/s] Scratch that, I saw the post.
- Torus/Klein bottle: Yes, wraparound has been on the TODO list for a while.
- Multiple rows of states: You mean in the status bar? Yes, good idea. I'll put it on the TODO list.
Alright, I've got that cleared up now.
Axaj: "emulated Margolus neighborhood rules are very annoying to use"

Could you give more details, so we can think of a way to improve it? Calling RuleTableToTree.py (or EmulateMargolus.py) is a slightly annoying step to have to do, but the alternative has Golly load Margolus rule tables automatically, and there's a problem with that approach as discussed here:
https://sourceforge.net/mailarchive/for ... golly-test
The emulation approach itself is also annoying of course (because the user needs export.py and import.py in order to make changes) but that's unavoidable as far as I can see, unless we had Golly support Margolus natively (isn't going to happen unless we come up with lots of amazing rules for it).
The annoying thing I find is that it is hard to edit patterns with the emulated rules.
ebcube: "Is there any way to define rules for Moore/vonNeumann neighborhoods with a range higher than 1?"

You can *define* them... :) See Moore_radius2 here:
http://code.google.com/p/ruletablerepos ... ki/RoadMap
I had a look at emulating Moore_radius2 by splitting each cell into 4, as mentioned by calcyman. It needs of course N^4 states for an N-state CA: 2 -> 16, 3 -> 81, 4 -> 256. And that causes difficulty in producing a complete rule tree: traversing the whole input space even for N=2 is costly. Converting rule table transitions to a rule tree the quick way (as in RuleTableToTree) is also problematic: a Moore_radius2 CA with permute symmetry (as is usually wanted) means that there are *many* different rule combinations to consider. To see what I mean, compare with the square-splitting code in EmulateTriangular.py here:
http://golly.cvs.sourceforge.net/viewvc ... iew=markup
Some rare rules might be possible to support through emulation but in general I don't think it's going to work very well.
Another possibility is to extend ruletable_algo to support the emulation scheme for permute symmetry only but I'm loath to do this (for the moment at least) because it would be a hack and would cause the same problems as would supporting Margolus emulation natively, as linked above.
We could make another algorithm to support certain rule definitions, e.g. Bugs="R5,C0,M1,S34..58,B34..45,NM", as in MCell. But again it would have to use the emulation approach and so in fact Bugs isn't possible because it's got range 5.
So realistically I think Moore_radius2 and higher will have to wait until Golly's hashlife supports them natively. And the only way *that* can currently happen is if we come up with a pressing need for it and then pester Tom Rokicki enough. :) Some CA I'd love to see implemented include the larger-range ones here:
http://psoup.math.wisc.edu/mcell/rullex_cycl.html
and here:
http://psoup.math.wisc.edu/mcell/rullex_lgtl.html (in particular the work of Kellie Michele Evans)
Any more examples we can add to make the case stronger?

Tim
I think if MCell has >1 ranges, so should Golly.
Image

User avatar
Tim Hutton
Posts: 64
Joined: May 20th, 2010, 7:30 am
Contact:

Re: What I'd like to see in Golly

Post by Tim Hutton » May 21st, 2010, 7:21 am

Axaj wrote:
- Nested variables: do you mean e.g. var a={0,1,2} var b={a,3,4} ? Golly 2.2 and later support this, again see a recent post.
Yes, that's what I mean. Unfortunately, I have yet to see any trace of 2.2. And can you link me to that post?
Golly 2.2 should be coming out in a couple of months. Until then you can build it yourself from the source code:
https://sourceforge.net/scm/?type=cvs&group_id=139354

Here's the post where we discussed nested variables:
https://sourceforge.net/mailarchive/for ... golly-test
Axaj wrote:
- Mathematical functions: make-ruletree.py now supports this, as mentioned.
Mentioned where?
knightlife mentioned it earlier in this thread.

Axaj
Posts: 232
Joined: September 26th, 2009, 12:23 am

Re: What I'd like to see in Golly

Post by Axaj » May 21st, 2010, 4:20 pm

Alright, thanks for clearing this up.
Image

User avatar
Extrementhusiast
Posts: 1966
Joined: June 16th, 2009, 11:24 pm
Location: USA

Re: What I'd like to see in Golly

Post by Extrementhusiast » May 25th, 2010, 12:47 am

Noticed a glitch: In QuickLife and HashLife (and maybe other modes, I haven't tried), the paste selection (in the red frame before specifying a location) does not flip colors if the rest of the board is flipped in color.
I Like My Heisenburps! (and others)

User avatar
iconmaster
Posts: 42
Joined: July 2nd, 2009, 7:22 pm

Re: What I'd like to see in Golly

Post by iconmaster » May 28th, 2010, 8:49 pm

You need a simple Weighted Life format, like MCell has. And, maybe, Larger Than Life format?
Last edited by iconmaster on June 21st, 2010, 11:57 am, edited 1 time in total.

User avatar
ssaamm
Posts: 125
Joined: June 4th, 2010, 9:43 pm

Re: What I'd like to see in Golly

Post by ssaamm » June 16th, 2010, 11:39 am

One little thing I'd love, is for Golly to SHUT UP. I'm so tired of it beeping every time I zoom in and can't go further, even though I know I couldn't of and didn't intend to. Or when I click the screen when it is zoomed out too much to draw. Really, I don't mind being told that I can't zoom in further, but the beeping is just awful.

Keiji
Posts: 58
Joined: May 11th, 2010, 5:32 pm

Re: What I'd like to see in Golly

Post by Keiji » June 16th, 2010, 12:15 pm

That. It would also be nice if it didn't show a million consecutive message boxes when you try to load an invalid ruletable file. Put all the errors in one box. And don't irreversibly erase the pattern when that happens.
Image
This is why signature character limits are pointless.

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

Re: What I'd like to see in Golly

Post by calcyman » June 16th, 2010, 12:59 pm

One little thing I'd love, is for Golly to SHUT UP.
One solution is to simply disconnect the speakers.
What do you do with ill crystallographers? Take them to the mono-clinic!

doccolinni
Posts: 25
Joined: May 18th, 2010, 11:36 pm

Re: What I'd like to see in Golly

Post by doccolinni » June 16th, 2010, 1:42 pm

calcyman wrote:
One little thing I'd love, is for Golly to SHUT UP.
One solution is to simply disconnect the speakers.
I.e. no listening to music (on the PC) while doing stuff with Golly.

Ntsimp
Posts: 46
Joined: June 8th, 2010, 9:11 am

Re: What I'd like to see in Golly

Post by Ntsimp » June 16th, 2010, 5:03 pm

My Golly makes no noise (version 2.1 in Linux).

User avatar
ssaamm
Posts: 125
Joined: June 4th, 2010, 9:43 pm

Re: What I'd like to see in Golly

Post by ssaamm » June 16th, 2010, 8:21 pm

Geez, do I need to be any more specific?
On windows, and while listening to music, the unnecessary beeping that golly does is very annoying.
Is there really a need for denial that this happens, or suggestions that I probably would've done already unless I was stupid?
Thanks.

doccolinni
Posts: 25
Joined: May 18th, 2010, 11:36 pm

Re: What I'd like to see in Golly

Post by doccolinni » June 17th, 2010, 3:09 pm

What I'd most like to see in Golly is multi-threading. Could the hashlife algorithm be modified to be threaded?

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

Re: What I'd like to see in Golly

Post by calcyman » June 18th, 2010, 2:47 am

Could the hashlife algorithm be modified to be threaded?
That's what Tom Rokicki is working on at the moment.
What do you do with ill crystallographers? Take them to the mono-clinic!

doccolinni
Posts: 25
Joined: May 18th, 2010, 11:36 pm

Re: What I'd like to see in Golly

Post by doccolinni » June 19th, 2010, 3:54 pm

calcyman wrote:That's what Tom Rokicki is working on at the moment.
Nice. I hope it's also possible to make other algorithms (Quicklife, Generations etc.) threaded.

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

Re: What I'd like to see in Golly

Post by calcyman » June 19th, 2010, 4:41 pm

Nice. I hope it's also possible to make other algorithms (Quicklife, Generations etc.) threaded.
JvN, RuleTable, RuleTree and Generations are all HashLife algorithms, so the same principles apply. QuickLife is similar to the algorithm used in Life32, and should be easier than HashLife to parallelise.
What do you do with ill crystallographers? Take them to the mono-clinic!

Batmanifestdestiny
Posts: 54
Joined: June 9th, 2010, 3:53 pm

Re: What I'd like to see in Golly

Post by Batmanifestdestiny » June 20th, 2010, 7:38 pm

One thing I'd like to see would be the option of making a random soup. It might already be in there, but I haven't found it, so just like a "random soup" button in the control menu would be nice.

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

Re: What I'd like to see in Golly

Post by calcyman » June 21st, 2010, 2:47 am

There's a 'random fill', which fills the selection randomly at a predetermined density.
What do you do with ill crystallographers? Take them to the mono-clinic!

Batmanifestdestiny
Posts: 54
Joined: June 9th, 2010, 3:53 pm

Re: What I'd like to see in Golly

Post by Batmanifestdestiny » June 21st, 2010, 10:48 am

Oh, I didn't know that! Thanks!

User avatar
iconmaster
Posts: 42
Joined: July 2nd, 2009, 7:22 pm

Re: What I'd like to see in Golly

Post by iconmaster » June 21st, 2010, 12:01 pm

I think it would be cool to have a Census functiuon, like WinLife32 has.
Golly is better than MCell or WinLife32, but I have to keep all 3 because of these 'unique' featues of them.

Post Reply