Golly 3.0b1

For general discussion about Conway's Game of Life.
bprentice
Posts: 920
Joined: September 10th, 2009, 6:20 pm
Location: Coos Bay, Oregon

Re: Golly 3.0b1

Post by bprentice » July 2nd, 2017, 4:21 pm

dvgrn wrote:A script with just a dozen lines or so could empty an AllRules folder, then copy all the rule files in your subdirectory structure into it. That script could even be arranged to run when Golly starts, or assign a shortcut key to do a rule refresh. Then you'd do all your rule management in your subdirectories, as you do now... but Golly's Rules folder setting would always point to AllRules, and every rule would all be available to Golly with no fiddling around with settings.
That is a very good suggestion. Thank you.

Brian Prentice

User avatar
muzik
Posts: 5614
Joined: January 28th, 2016, 2:47 pm
Location: Scotland

Re: Golly 3.0b1

Post by muzik » July 5th, 2017, 6:45 pm

On the topic of neighbourhoods, what about a triangular neighbourhood (deltille)?

User avatar
gameoflifeboy
Posts: 474
Joined: January 15th, 2015, 2:08 am

Re: Golly 3.0b1

Post by gameoflifeboy » July 7th, 2017, 2:35 am

I notice that for many of the LtL rules, especially the ones with large neighborhoods, patterns drawn out of one-cell-thick lines usually die out in the next generation. I think these rules would be easier to explore if an option to make thicker lines with the pen tool existed. Perhaps a script could be used for this, but I don't know if the scripting commands can track the position of the mouse as it gets dragged.

Also, can LtL rules be simulated if they have no birth or no survival conditions? It seems strange that the MCell notation would skip this case, but I can't find how the notation supports it.

User avatar
Saka
Posts: 3627
Joined: June 19th, 2015, 8:50 pm
Location: Indonesia
Contact:

Re: Golly 3.0b1

Post by Saka » July 7th, 2017, 2:37 am

gameoflifeboy wrote:I notice that for many of the LtL rules, especially the ones with large neighborhoods, patterns drawn out of one-cell-thick lines usually die out in the next generation. I think these rules would be easier to explore if an option to make thicker lines with the pen tool existed. Perhaps a script could be used for this, but I don't know if the scripting commands can track the position of the mouse as it gets dragged.
++

I also suggest that you should be able to edit RLE comments directly from inside Golly so it is much easier to make a little pattern collection with comments.

Ethanagor
Posts: 80
Joined: March 15th, 2017, 7:34 pm
Location: the Milky Way galaxy

Re: Golly 3.0b1

Post by Ethanagor » July 7th, 2017, 7:06 pm

Possible glitch with 3.0b1: I had a LTL pattern open, and I left my computer for a while. I came back around an hour later and woke my computer up, but when I tried to hit play on the pattern I got an error message saying "Can't create pattern file!" Note that I also had Golly 2.8 open, and this did not happen in that version.

EDIT: I was wrong, Golly 2.8 also did this. It played once before giving the same message...
"It's not easy having a good time. Even smiling makes my face ache." - Frank N. Furter

User avatar
Andrew
Moderator
Posts: 919
Joined: June 2nd, 2009, 2:08 am
Location: Melbourne, Australia
Contact:

Re: Golly 3.0b1

Post by Andrew » July 7th, 2017, 8:39 pm

gameoflifeboy wrote:I notice that for many of the LtL rules, especially the ones with large neighborhoods, patterns drawn out of one-cell-thick lines usually die out in the next generation. I think these rules would be easier to explore if an option to make thicker lines with the pen tool existed. Perhaps a script could be used for this, but I don't know if the scripting commands can track the position of the mouse as it gets dragged.
Golly 3.0 scripts can detect mouse drags -- see move-object.lua and move-selection.lua. It wouldn't be all that hard to modify draw-lines.lua to make thick lines (you could check for certain key events to increase/decrease the line thickness while the script is running). Learn some Lua and give it a go!
Also, can LtL rules be simulated if they have no birth or no survival conditions? It seems strange that the MCell notation would skip this case, but I can't find how the notation supports it.
Not sure why you'd want to do that (the results will be pretty boring) but you can specify -1 for the min and max values. For example: R10,C0,M1,S-1..-1,B-1..-1,NM. Golly only checks that min <= max -- it doesn't check if the numbers are < zero or > total neighborhood.
Use Glu to explore CA rules on non-periodic tilings: DominoLife and HatLife

User avatar
Andrew
Moderator
Posts: 919
Joined: June 2nd, 2009, 2:08 am
Location: Melbourne, Australia
Contact:

Re: Golly 3.0b1

Post by Andrew » July 7th, 2017, 8:45 pm

Saka wrote:I also suggest that you should be able to edit RLE comments directly from inside Golly so it is much easier to make a little pattern collection with comments.
Probably never going to happen. Golly allows you to open a pattern file in your preferred text editor (set in Prefs > File) by ctrl-clicking or right-clicking on the file name displayed in the left panel. If you organize your Golly folder as recommended in Help > Hints and Tips then you can easily get quick access to all your saved patterns.
Use Glu to explore CA rules on non-periodic tilings: DominoLife and HatLife

User avatar
Andrew
Moderator
Posts: 919
Joined: June 2nd, 2009, 2:08 am
Location: Melbourne, Australia
Contact:

Re: Golly 3.0b1

Post by Andrew » July 7th, 2017, 8:50 pm

Ethanagor wrote:Possible glitch with 3.0b1: I had a LTL pattern open, and I left my computer for a while. I came back around an hour later and woke my computer up, but when I tried to hit play on the pattern I got an error message saying "Can't create pattern file!"
I'll need a lot more info:

Which platform (Windows, Mac, Linux)?
Which system version (eg. Windows 7 or Windows 10)?
Was the LtL pattern running when you left the computer?
Was the pattern in a file or did you copy it from the forums and use File > Open Clipboard?
Can you reproduce the error?
Use Glu to explore CA rules on non-periodic tilings: DominoLife and HatLife

Ethanagor
Posts: 80
Joined: March 15th, 2017, 7:34 pm
Location: the Milky Way galaxy

Re: Golly 3.0b1

Post by Ethanagor » July 7th, 2017, 9:27 pm

Andrew wrote:
Ethanagor wrote:Possible glitch with 3.0b1: I had a LTL pattern open, and I left my computer for a while. I came back around an hour later and woke my computer up, but when I tried to hit play on the pattern I got an error message saying "Can't create pattern file!"
I'll need a lot more info:

Which platform (Windows, Mac, Linux)?
Which system version (eg. Windows 7 or Windows 10)?
Was the LtL pattern running when you left the computer?
Was the pattern in a file or did you copy it from the forums and use File > Open Clipboard?
Can you reproduce the error?
Yea, sorry about ambiguity. Here is the info in the order requested:

Windows
Windows 7
No, it was paused, but not in the initial state.
Neither: I had drawn the pattern by hand.
Yes, I tried again to see if it was just a one-time issue and it happened again.
"It's not easy having a good time. Even smiling makes my face ache." - Frank N. Furter

User avatar
Andrew
Moderator
Posts: 919
Joined: June 2nd, 2009, 2:08 am
Location: Melbourne, Australia
Contact:

Re: Golly 3.0b1

Post by Andrew » July 8th, 2017, 8:05 pm

Ethanagor wrote:Windows
Windows 7
No, it was paused, but not in the initial state.
Neither: I had drawn the pattern by hand.
Yes, I tried again to see if it was just a one-time issue and it happened again.
Thanks for that info. It seems to be a Windows-specific problem -- I can't reproduce it on my Mac (nor on my Win7 system, but that might be because it's a VM on my Mac). The error message you see happens when Golly tries to write a pattern file into a temporary folder (for undo/redo), so that is failing for some unknown reason. I can't think of anything I can do in Golly to avoid that, so all I can suggest is that you save an edited pattern in a file before your system goes to sleep.

One experiment you might like to do is to run this script just before your system goes to sleep:

Code: Select all

local g = golly()
g.note(g.getdir("temp"))
That will show you the path of the folder where Golly writes temporary files. Make a note of that folder, or use Explorer to open it. After your system returns from sleep mode and you see that error message, run the script again and see if the path has changed or if there is anything odd about the folder (maybe it no longer exists, or maybe you no longer have write permission).
Use Glu to explore CA rules on non-periodic tilings: DominoLife and HatLife

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

Re: Golly 3.0b1

Post by dvgrn » July 15th, 2017, 2:26 pm

Andrew wrote:
Saka wrote:I also suggest that you should be able to edit RLE comments directly from inside Golly so it is much easier to make a little pattern collection with comments.
Probably never going to happen. Golly allows you to open a pattern file in your preferred text editor (set in Prefs > File) by ctrl-clicking or right-clicking on the file name displayed in the left panel. If you organize your Golly folder as recommended in Help > Hints and Tips then you can easily get quick access to all your saved patterns.
The most awkward part of the current setup is that two of Golly's very useful pattern formats -- mc.gz and rle.gz -- are not editable with a text editor, but it still often happens that I want to add comments to them... like right now, preparing some sizable new patterns for the Golly 3.0 pattern collection.

g.setinfo()?
There's a new g.getinfo() scripting command used by lifeviewer.lua. Might it make sense to include also a g.setinfo() command, to allow comments to be generated by a script? Presumably they would be displayed by the Pattern Info window, and would be saved by any future Save operation.

That would be something of a design change from Golly's current practice, which is that comments are never included in saved files. That behavior took quite a bit of getting used to when I switched over from MCell to Golly. MCell retained comments when a copy of a pattern was saved either in the same format or in a different format. I used to lose comment information, due to saving a slightly edited pattern over a previous pattern with the same name -- before I learned not to do that any more.

Compromise?
I suppose a suitable addition to the glife/gplus module would at least allow scripts to store information that could then be displayed in the Pattern Info window. Write out the current universe to a temporary file, or a permanent location if the script is doing that anyway -- and write out comments at the same time. Then g.open() the file to allow users to retrieve those comments directly by hitting 'i'... at the cost of losing Undo-ability, I guess.

That would be a fairly handy feature, actually. There's currently no good place for a script to store output text, except maybe the clipboard, but that has its own drawbacks. Dumping text to g.note() at the end of a script -- well, it works as long as people know that they can Ctrl+C to get the text out. (At least in Windows -- is that true for Mac and Linux, by the way?) But the dialog gets in the way of the Life universe which sometimes you want to see first... and once you dismiss the dialog that information is gone.

A glife/gplus save_with_comments() function would also mean that scripts could write out relevant comments when they were writing out a lot of files -- e.g., extra information related to search results -- without having to re-invent the wheel each time. This might go well with the proposed addition of a glife function that takes a cell list and returns RLE text. The comment-writer function would need the RLE-generating function anyway.

Current plan
I've added glife/gplus save_with_comments() and cell_list_to_RLE() to my to-do list for Golly 3.0. However, that list is several pages long at the moment, so if anyone wants to take on these projects or has suggestions for how to get them done quickly and easily, please go ahead...!

I'd definitely be in favor of actual g.setinfo() and g.getrle() functions, and the admittedly somewhat painful changes to comment handling that that g.setinfo() would imply. It would be nice if comments could be saved with any output format, including the compressed ones, whereas save_with_comments() will probably only work with RLE. I'm not likely to be able to sort out all the necessary changes to Golly source code in the next month or so, though, so I'll attempt the glife/gplus workaround instead.

User avatar
Andrew
Moderator
Posts: 919
Joined: June 2nd, 2009, 2:08 am
Location: Melbourne, Australia
Contact:

Re: Golly 3.0b1

Post by Andrew » July 15th, 2017, 10:39 pm

dvgrn wrote:There's a new g.getinfo() scripting command used by lifeviewer.lua. Might it make sense to include also a g.setinfo() command, to allow comments to be generated by a script? Presumably they would be displayed by the Pattern Info window, and would be saved by any future Save operation.
Sounds a bit tricky to implement, and possibly unnecessary, given the following...
That would be something of a design change from Golly's current practice, which is that comments are never included in saved files.
That hasn't been the case for quite a few years. Golly *will* save the comments if you save a pattern using the same name as an existing file. See the code at the start of the writepattern routine in gollybase/writepattern.cpp. However, the comments will be lost if you save using a different format (eg. foo.rle -> foo.rle.gz or foo.mc). It wouldn't be that hard to modify the code to check if a file exists with any of the supported extensions (.rle, .rle.gz, .mc, .mc.gz) and extract the comments if so. I'm busy on higher-priority stuff at the moment so feel free to make those changes if you think they would be useful.
A glife/gplus save_with_comments() function would also mean that scripts could write out relevant comments when they were writing out a lot of files ...
Perhaps a nicer alternative would be to add another parameter to the g.save command so that it can include optional comments in the file:

save(filename, format, remember=False, comments="")

Again, the code changes aren't all that complicated. The given comment string could simply be passed into the (suitably modified) writepattern routine.
Use Glu to explore CA rules on non-periodic tilings: DominoLife and HatLife

User avatar
PHPBB12345
Posts: 1096
Joined: August 5th, 2015, 11:55 pm
Contact:

Re: Golly 3.0b1

Post by PHPBB12345 » July 16th, 2017, 11:06 pm

For bigger radius, use The Powder Toy instead.

Code: Select all

@RULE SPRK_simulator
@NEIGHBORHOOD
.XXX.
XXXXX
XXOXX
XXXXX
.XXX.
@TABLE
n_states:2
symmetries:permute
neighborhood:custom

# 0 = empty space
# 1 = METL (life = 0/1)
# 2 = SPRK (life = 4, ctype = METL)
# 3 = SPRK (life = 3, ctype = METL)
# 4 = SPRK (life = 2, ctype = METL)
# 5 = SPRK (life = 1, ctype = METL)
# 6 = METL (life = 4)
# 7 = METL (life = 3)
# 8 = METL (life = 2)

var a = {2,3,4}
var b = {0,1,2,3,4,5,6,7,8}
var c = {0,1,2,3,4,5,6,7,8}
var d = {0,1,2,3,4,5,6,7,8}
var e = {0,1,2,3,4,5,6,7,8}
var f = {0,1,2,3,4,5,6,7,8}
var g = {0,1,2,3,4,5,6,7,8}
var h = {0,1,2,3,4,5,6,7,8}
var i = {0,1,2,3,4,5,6,7,8}
var j = {0,1,2,3,4,5,6,7,8}
var k = {0,1,2,3,4,5,6,7,8}
var l = {0,1,2,3,4,5,6,7,8}
var m = {0,1,2,3,4,5,6,7,8}
var n = {0,1,2,3,4,5,6,7,8}
var o = {0,1,2,3,4,5,6,7,8}
var p = {0,1,2,3,4,5,6,7,8}
var q = {0,1,2,3,4,5,6,7,8}
var r = {0,1,2,3,4,5,6,7,8}
var s = {0,1,2,3,4,5,6,7,8}
var t = {0,1,2,3,4,5,6,7,8}
var u = {0,1,2,3,4,5,6,7,8}

1,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,2
2,u,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,3
3,u,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,4
4,u,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,5
5,u,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,6
6,u,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,7
7,u,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,8
8,u,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,1
Last edited by PHPBB12345 on July 17th, 2017, 9:56 pm, edited 1 time in total.

drc
Posts: 1664
Joined: December 3rd, 2015, 4:11 pm

Re: Golly 3.0b1

Post by drc » July 17th, 2017, 12:59 am

PHPBB12345 wrote:For bigger radius, use The Powder Toy instead.

Code: Select all

@RULE SPRK_simulator
@NEIGHBORHOOD
.XXX.
XXXXX
XXOXX
XXXXX
.XXX.
@TABLE
n_states:2
symmetries:permute
neighborhood:custom

# 0 = empty space
# 1 = METL (life = 0/1)
# 2 = SPRK (life = 4, ctype = METL)
# 3 = SPRK (life = 3, ctype = METL)
# 4 = SPRK (life = 2, ctype = METL)
# 5 = SPRK (life = 1, ctype = METL)
# 6 = METL (life = 4)
# 7 = METL (life = 3)
# 8 = METL (life = 2)

var a = {2,3,4}
var b = {0,1,2,3,4,5,6,7,8}
var c = {0,1,2,3,4,5,6,7,8}
var d = {0,1,2,3,4,5,6,7,8}
var e = {0,1,2,3,4,5,6,7,8}
var f = {0,1,2,3,4,5,6,7,8}
var g = {0,1,2,3,4,5,6,7,8}
var h = {0,1,2,3,4,5,6,7,8}
var i = {0,1,2,3,4,5,6,7,8}
var j = {0,1,2,3,4,5,6,7,8}
var k = {0,1,2,3,4,5,6,7,8}
var l = {0,1,2,3,4,5,6,7,8}
var m = {0,1,2,3,4,5,6,7,8}

1,a,b,c,d,e,f,g,h,i,j,k,l,2
2,m,b,c,d,e,f,g,h,i,j,k,l,3
3,m,b,c,d,e,f,g,h,i,j,k,l,4
4,m,b,c,d,e,f,g,h,i,j,k,l,5
5,m,b,c,d,e,f,g,h,i,j,k,l,6
6,m,b,c,d,e,f,g,h,i,j,k,l,7
7,m,b,c,d,e,f,g,h,i,j,k,l,8
8,m,b,c,d,e,f,g,h,i,j,k,l,1
@NEIGHBORHOOD was a suggestion of mine, not an actual feature.

Bullet51
Posts: 663
Joined: July 21st, 2014, 4:35 am

Re: Golly 3.0b1

Post by Bullet51 » July 17th, 2017, 2:12 am

PHPBB12345 wrote:For bigger radius, use The Powder Toy instead.
The Powder Toy is not a cellular automaton, since it involves action with unbounded distance.
Still drifting.

User avatar
blah
Posts: 311
Joined: April 9th, 2016, 7:22 pm

Re: Golly 3.0b1

Post by blah » July 17th, 2017, 3:43 am

Bullet51 wrote:The Powder Toy is not a cellular automaton, since it involves action with unbounded distance.
What in the definition of a cellular automaton requires the neighbourhood be bounded? Is Rychládrát a CA? You can have arbitrarily large neighbourhoods, so why not allow an infinite neighbourhood? To me, this seems like a subjective definiton, but maybe it makes sense.

I don't think it makes any sense to call The Powder Toy a CA regardless, since it has a predetermined grid size and plenty of dynamics that are far easier to explain on their own (like "sub-frame" technology)
succ

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

Re: Golly 3.0b1

Post by Apple Bottom » July 17th, 2017, 5:21 am

blah wrote:What in the definition of a cellular automaton requires the neighbourhood be bounded? Is Rychládrát a CA? You can have arbitrarily large neighbourhoods, so why not allow an infinite neighbourhood? To me, this seems like a subjective definiton, but maybe it makes sense.
The formal definition on the wiki seems to require bounded neighborhoods, if I'm understanding it correctly: neighborhoods are tuples of elements of Z<sup>n</sup>, and thus finite.

Infinite neighborhoods would be interesting to consider, though; I don't see any reason to not generalize the wiki's definition. What would a CA look like with an infinite-range von Neumann neighborhood?

And I also don't see a reason these shouldn't be called "cellular automaton" anymore. They have cells, the cells have state, and there is a notion of evolution, in which cells state change according to certain well-defined rules, resulting in a new configuration. That sounds like the very model of a modern major gen-- of a CA to me.
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!

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

Re: Golly 3.0b1

Post by dvgrn » July 17th, 2017, 8:19 am

Andrew wrote:Perhaps a nicer alternative would be to add another parameter to the g.save command so that it can include optional comments in the file:

save(filename, format, remember=False, comments="")

Again, the code changes aren't all that complicated. The given comment string could simply be passed into the (suitably modified) writepattern routine.
Thanks! That seems like a more reasonable goal. A cell-list-to-RLE function will still be nice in glife/gplus, but that doesn't have to have anything to do with making comments more workable.

And if a script saves a temporary file with comments, that will make the Pattern Info window an available option for displaying search parameters or whatever other information associated with a pattern. Or would that only work if g.open() is called, which would remove Undo-ability? Guess I'll find out if I get that far --

User avatar
Andrew
Moderator
Posts: 919
Joined: June 2nd, 2009, 2:08 am
Location: Melbourne, Australia
Contact:

Re: Golly 3.0b1

Post by Andrew » July 17th, 2017, 9:50 am

dvgrn wrote:A cell-list-to-RLE function will still be nice in glife/gplus ...
Yep, feel free to add that function (if you do the Python version I'm happy to do the Lua version).
And if a script saves a temporary file with comments, that will make the Pattern Info window an available option for displaying search parameters or whatever other information associated with a pattern. Or would that only work if g.open() is called, which would remove Undo-ability?
Just checked that g.save updates the comments displayed in the Pattern Info window. But I think there's a much nicer solution to display lots of textual info from a script: use the Help window (ie. create a temporary .html file and use g.open to display it).
Use Glu to explore CA rules on non-periodic tilings: DominoLife and HatLife

User avatar
gameoflifemaniac
Posts: 1242
Joined: January 22nd, 2017, 11:17 am
Location: There too

Re: Golly 3.0b1

Post by gameoflifemaniac » July 19th, 2017, 3:40 am

In Golly 3.0 Andrew could add a function to paste in images in multi-state rules, so that it doesn't create a big white rectangle while pasting. For example, pasting a 120,120,120 pixel would give a state 120 cell, or a 243,243,243 pixel would give state 243, and so on.
I was so socially awkward in the past and it will haunt me for the rest of my life.

Code: Select all

b4o25bo$o29bo$b3o3b3o2bob2o2bob2o2bo3bobo$4bobo3bob2o2bob2o2bobo3bobo$
4bobo3bobo5bo5bo3bobo$o3bobo3bobo5bo6b4o$b3o3b3o2bo5bo9bobo$24b4o!

User avatar
Saka
Posts: 3627
Joined: June 19th, 2015, 8:50 pm
Location: Indonesia
Contact:

Re: Golly 3.0b1

Post by Saka » July 19th, 2017, 4:45 am

gameoflifemaniac wrote:In Golly 3.0 Andrew could add a function to paste in images in multi-state rules, so that it doesn't create a big white rectangle while pasting. For example, pasting a 120,120,120 pixel would give a state 120 cell, or a 243,243,243 pixel would give state 243, and so on.
What about for example, 201,151,6?

User avatar
Andrew
Moderator
Posts: 919
Joined: June 2nd, 2009, 2:08 am
Location: Melbourne, Australia
Contact:

Re: Golly 3.0b1

Post by Andrew » July 19th, 2017, 8:21 am

gameoflifemaniac wrote:In Golly 3.0 Andrew could add a function to paste in images in multi-state rules, so that it doesn't create a big white rectangle while pasting. For example, pasting a 120,120,120 pixel would give a state 120 cell, or a 243,243,243 pixel would give state 243, and so on.
It would be very easy to write a script to do that sort of thing using the overlay's load command -- see Help > Overlay. For an example of how to prompt for and load an image file, see the test_scale() routine in overlay-demo.lua.

EDIT: Feel free to modify the following script to do whatever you want:

Code: Select all

local g = golly()
local gp = require "gplus"
local ov = g.overlay

-- initial directory for where to look for image files
local loaddir = g.getdir("app").."Help/images/"

-- prompt user to load a BMP/GIF/PNG/TIFF file
local filetypes = "Image files (*.bmp;*.gif;*.png;*.tiff)|*.bmp;*.gif;*.png;*.tiff"
local filepath = g.opendialog("Load an image file", filetypes, loaddir, "")
if #filepath == 0 then
    g.exit()    -- user hit Cancel
end

g.new("image")
g.setrule("//256")  -- use a Generations rule with 256 states

-- first load the file into a tiny overlay to get the image dimensions
ov("create 1 1")
local imgsize = ov("load 0 0 "..filepath)
local iw, ih = gp.split(imgsize)
iw = tonumber(iw)
ih = tonumber(ih)

-- resize overlay to size of image and reload file
ov("resize "..iw.." "..ih)
ov("load 0 0 "..filepath)

-- examine every pixel in overlay
for y = 0, ih-1 do
    for x = 0, iw-1 do
        local red, green, blue, alpha = gp.split(ov("get "..x.." "..y))
        red = tonumber(red)
        green = tonumber(green)
        blue = tonumber(blue)
        -- set cell state to average of pixel's RGB values
        g.setcell(x, y, math.floor((red+green+blue)/3))
    end
end

ov("delete")
g.fit()
Use Glu to explore CA rules on non-periodic tilings: DominoLife and HatLife

User avatar
gameoflifemaniac
Posts: 1242
Joined: January 22nd, 2017, 11:17 am
Location: There too

Re: Golly 3.0b1

Post by gameoflifemaniac » July 19th, 2017, 10:00 am

Saka wrote:
gameoflifemaniac wrote:In Golly 3.0 Andrew could add a function to paste in images in multi-state rules, so that it doesn't create a big white rectangle while pasting. For example, pasting a 120,120,120 pixel would give a state 120 cell, or a 243,243,243 pixel would give state 243, and so on.
What about for example, 201,151,6?
It would turn the pixel into for example 150,150,150.
I was so socially awkward in the past and it will haunt me for the rest of my life.

Code: Select all

b4o25bo$o29bo$b3o3b3o2bob2o2bob2o2bo3bobo$4bobo3bob2o2bob2o2bobo3bobo$
4bobo3bobo5bo5bo3bobo$o3bobo3bobo5bo6b4o$b3o3b3o2bo5bo9bobo$24b4o!

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

Re: Golly 3.0b1

Post by Apple Bottom » July 22nd, 2017, 2:24 pm

drc mentioned difficulties soup-searching B356/S234k over in the Hacking apgsearch thread.

It turns out that it can actually crash Golly 3.0b1, too:

Code: Select all

Problem signature:
Problem Event Name: APPCRASH
Application Name: Golly.exe
Application Version: 0.0.0.0
Application Timestamp: 5955a2d7
Fault Module Name: Golly.exe
Fault Module Version: 0.0.0.0
Fault Module Timestamp: 5955a2d7
Exception Code: c000041d
Exception Offset: 000000000003573d
OS Version: 6.1.7601.2.1.0.768.3
Locale ID: 1033
Additional Information 1: 8ba8
Additional Information 2: 8ba869f8b6732e414815b268e6af0f1c
Additional Information 3: 7f43
Additional Information 4: 7f43baeaf95c084afabdef7a5a6cd671
Not the most helpful of error messages, though... and unfortunately the crash isn't reliable either. Is there a way to enable crashdumps to be generated on Windows, or is there a special debug build of Golly? I'd be happy to try and hunt this down (emphasis on "try").

(In case it might help, Golly identifies itself as "This is Golly version 3.0b1 (64 bit, OpenGL 4.5 16384)".)
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!

Lode
Posts: 14
Joined: November 26th, 2014, 8:12 am

Re: Golly 3.0b1

Post by Lode » July 23rd, 2017, 12:55 pm

Nice!

One thing I noticed: comparing with 2.7 (from Archlinux AUR install), it seems drawing goes slower in 3.01b (64-bit Linux version). Using the pen tool, drawing a freehand line goes superfast in Golly 2.7, while in 3.01b there is some lag between when the mouse moves and when the pixels appear on screen.

Another thing: WireWorld has a large built-in library of awesome stuff (lots of patterns and rules) on my system, but not all rules that are described here (https://github.com/gollygang/ruletabler ... i/TheRules) are in my built-in library (for example SexyLoop, WWEJ3, and more, are missing). Will those be added, or did I misconfigure something in my system to not have them?

One more thing: I'd love a standard tool that can draw straight lines. Maybe some key combination, like if you click somewhere, and then hold ctrl and click again, it draws a line from the previous point to there. I know there is a python script for lines, but it's very awkward to use. And a standard floodfill tool would be appreciated too...

Thanks!

Post Reply