x = 3, y = 23, rule = B3/S23
3o$2bo$3o18$3o$2bo$3o!
x = 3, y = 23, rule = B3/S23
3o$2bo$3o18$3o$2bo$3o!
x = 24, y = 23, rule = B3/S23
9b2o2bo$ob2o6b3o$2obo7bo2$9b2o$9b2o7$22b2o$22bo$20bobo$20b2o6$14b2o$
14b2o!
x = 28, y = 30, rule = LifeHistory
13.2A2.A$6.2A6.3A$5.A.A7.A$5.A$3.A.A7.2A$.3A.2A6.2A$A$.3A.2A$3.A.2A5$
13.D2.2D$14.3D$15.D3$26.2D$11.D14.2D$.D8.2D$.3D5.2D7.2E$.D.D6.D7.2E$
3.D7.D3$16.2C$17.C$14.3C$14.C!
x = 31, y = 29, rule = B3/S23
ob6obo2b4o$o4b2obobo2bo$bobob2ob2obo$5obo5bobo$bobo2bob3o3b2o$2ob3ob2o
b4obo$5bobobo4b2o$bo3bo2b2ob2obo$4bobob2obob3o$ob2obobob2ob4o$3obo2b2o
bob4o$bo4b2o2b2ob3o$5ob5o2bobo$ob3obobo3b2obo$3obobobobobo$5ob2ob3obob
o10$25b3o$26bo2bo$30bo$27bobo!
hkoenig wrote:A suggestion:
When posting "something interesting", please include a short description of what makes it interesting. I look at that RLE and see nothing interesting, because I don't know what I'm supposed to be looking for.
x = 31, y = 29, rule = B3/S23
ob6obo2b4o$o4b2obobo2bo$bobob2ob2obo$5obo5bobo$bobo2bob3o3b2o$2ob3ob2o
b4obo$5bobobo4b2o$bo3bo2b2ob2obo$4bobob2obob3o$ob2obobob2ob4o$3obo2b2o
bob4o$bo4b2o2b2ob3o$5ob5o2bobo$ob3obobo3b2obo$3obobobobobo$5ob2ob3obob
o10$25b3o$26bo2bo$30bo$27bobo!
Entity Valkyrie wrote:What is Cambrian Explosion?
x = 7, y = 6, rule = B3/S23
b5o$o5bo$b5o$3bo$2o3b2o$2o3b2o!
x = 6, y = 2, rule = B367/S245
o4bo$b4o!
Pete-omino wrote:I was just playing around with the rule B367/S245, starting from random fills, and I noticed that this long-period oscillator crops up very frequently:Code: Select allx = 6, y = 2, rule = B367/S245
o4bo$b4o!
Looks a bit like a queen bee (without stabilising blocks), period 168 if I've counted correctly. Is this known about, and if so does it have a name? Just interested.
x = 17, y = 10, rule = B3/S23
b2ob2obo5b2o$11b4obo$2bob3o2bo2b3o$bo3b2o4b2o$o2bo2bob2o3b4o$bob2obo5b
o2b2o$2b2o4bobo2b3o$bo3b5ob2obobo$2bo5bob2o$4bob2o2bobobo!
cvojan wrote:There is a script included with it called "oscar" that can find a spaceship's or oscillator's period, so you don't have to do it yourself)
-- Oscar is an OSCillation AnalyzeR for use with Golly.
--
-- This script uses Gabriel Nivasch's "keep minima" algorithm.
-- For each generation, calculate a hash value for the pattern. Keep all of
-- the record-breaking minimal hashes in a list, with the oldest first.
-- For example, after 5 generations the saved hash values might be:
--
-- 8 12 16 24 25,
--
-- If the next hash goes down to 13 then the list can be shortened:
--
-- 8 12 13.
--
-- If the current hash matches one of the saved hashes, it is highly likely
-- the pattern is oscillating. By keeping a corresponding list of generation
-- counts we can calculate the period. We also keep lists of population
-- counts and bounding boxes to reduce the chance of spurious oscillator
-- detection due to hash collisions. The bounding box info also allows us
-- to detect moving oscillators (spaceships/knightships).
local g = golly()
min = 2147483648
-- initialize lists
local hashlist = {} -- for pattern hash values
local genlist = {} -- corresponding generation counts
local poplist = {} -- corresponding population counts
local boxlist = {} -- corresponding bounding boxes
local t = {} -- corresponding not removing list of pops
local population = tonumber(g.getpop())
-- check if outer-totalistic rule has B0 but not S8
local r = g.getrule()
r = string.match(r, "^(.+):") or r
local hasB0notS8 = r:find("B0") == 1 and r:find("/") > 1 and r:sub(-1,-1) ~= "8"
----------------------------------------------------------------------
local function show_spaceship_speed(period, deltax, deltay, smallestphase)
-- we found a moving oscillator
if deltax == deltay or deltax == 0 or deltay == 0 then
local speed = ""
local speed2 = ""
if deltax == 0 or deltay == 0 then
-- orthogonal spaceship
speed2 = speed2..(deltax + deltay)
if speed2 == "" then
speed2 = 1
end
else
-- diagonal spaceship (deltax == deltay)
speed2 = deltax
if speed2 == "" then
speed2 = 1
end
end
if deltax == deltay then
if period == 1 then
if smallestphase < 15 then
g.show("Diagonal spaceship detected (speed = (1, 1)/1, systematic name "..smallestphase.."P"..period.."H"..speed2.."V"..speed2..")")
else
g.show("Diagonal spaceship detected (speed = (1, 1)/1, systematic name "..smallestphase.."P"..period.."H"..speed2.."V"..speed2..")")
end
else
if smallestphase < 15 then
g.show("Diagonal spaceship detected (speed = ("..speed2..", "..speed2..")/"..period..", systematic name "..smallestphase.."P"..period.."H"..speed2.."V"..speed2..")")
else
g.show("Diagonal spaceship detected (speed = ("..speed2..", "..speed2..")/"..period..", systematic name "..smallestphase.."P"..period.."H"..speed2.."V"..speed2..")")
end
end
else
if period == 1 then
if smallestphase < 15 then
g.show("Orthogonal spaceship detected (speed = (1, 0)/1, systematic name "..smallestphase.."P"..period.."H"..speed2.."V0)")
else
g.show("Orthogonal spaceship detected (speed = (1, 0)/1, systematic name "..smallestphase.."P"..period.."H"..speed2.."V0)")
end
else
if smallestphase < 15 then
g.show("Orthogonal spaceship detected (speed = ("..speed2..", 0)/"..period..", systematic name "..smallestphase.."P"..period.."H"..speed2.."V0)")
else
g.show("Orthogonal spaceship detected (speed = ("..speed2..", 0)/"..period..", systematic name "..smallestphase.."P"..period.."H"..speed2.."V0)")
end
end
end
else
-- deltax != deltay and both > 0
local speed = deltay..", "..deltax
if deltay > deltax then
speed2 = deltay
speed3 = deltax
else
speed2 = deltax
speed3 = deltay
end
if 1 == 1 then
g.show("Knightship detected (speed = ("..speed..")/"..period..", systematic name "..smallestphase.."P"..period.."H"..speed2.."V"..speed3..")")
end
end
end
----------------------------------------------------------------------
local function oscillating()
-- return true if the pattern is empty, stable or oscillating
-- first get current pattern's bounding box
local pbox = g.getrect()
if #pbox == 0 then
g.show("All cells are dead.")
return true
end
local h = g.hash(pbox)
-- determine where to insert h into hashlist
local pos = 1
local listlen = #hashlist
while pos <= listlen do
if h > hashlist[pos] then
pos = pos + 1
elseif h < hashlist[pos] then
-- shorten lists and append info below
for i = 1, listlen - pos + 1 do
table.remove(hashlist)
table.remove(genlist)
table.remove(poplist)
table.remove(boxlist)
end
break
else
-- h == hashlist[pos] so pattern is probably oscillating, but just in
-- case this is a hash collision we also compare pop count and box size
local rect = boxlist[pos]
local population3
if tonumber(g.getpop()) == poplist[pos] and pbox[3] == rect[3] and pbox[4] == rect[4] then
local period = tonumber(g.getgen()) - genlist[pos]
local population3 = tonumber(g.getpop())
if hasB0notS8 and (period % 2) > 0 and
pbox[1] == rect[1] and pbox[2] == rect[2] and
pbox[3] == rect[3] and pbox[4] == rect[4] then
-- ignore this hash value because B0-and-not-S8 rules are
-- emulated by using different rules for odd and even gens,
-- so it's possible to have identical patterns at gen G and
-- gen G+p if p is odd
return false
end
if pbox[1] == rect[1] and pbox[2] == rect[2] and
pbox[3] == rect[3] and pbox[4] == rect[4] then
-- pattern hasn't moved
if period == 1 then
population2 = tonumber(g.getpop())
g.show("Still life detected (cells = "..population2..")")
else
g.show("Oscillator detected (period = "..period..", systematic name "..smallestphase.."P"..period..")")
end
else
local deltax = math.abs(rect[1] - pbox[1])
local deltay = math.abs(rect[2] - pbox[2])
show_spaceship_speed(period, deltax, deltay, smallestphase)
return true
end
else
-- look at next matching hash value or insert if no more
pos = pos + 1
end
end
end
-- store hash/gen/pop/box info at same position in various lists
table.insert(hashlist, pos, h)
table.insert(genlist, pos, tonumber(g.getgen()))
table.insert(poplist, pos, tonumber(g.getpop()))
table.insert(t, pos, tonumber(g.getpop()))
table.insert(boxlist, pos, pbox)
table.sort(t)
smallestphase = t[1]
return false
end
----------------------------------------------------------------------
local function fit_if_not_visible()
-- fit pattern in viewport if not empty and not completely visible
local r = g.getrect()
if #r > 0 and not g.visrect(r) then g.fit() end
end
----------------------------------------------------------------------
g.show("Checking for oscillation... (hit escape to abort)")
local oldsecs = os.clock()
while not oscillating() do
g.run(1)
local newsecs = os.clock()
if newsecs - oldsecs >= 1.0 then -- show pattern every second
oldsecs = newsecs
fit_if_not_visible()
g.update()
end
end
fit_if_not_visible()
x = 4, y = 4, rule = B3/S23
2b2o$3bo$3o$o!
x = 15, y = 20, rule = B3/S23
4bo$4obo$3obobo$5bobo$6bo$5b2o$5b2o3bo$5b2o2bobob2o$13b2o3$7bo2bo$7bo$
6bo4bo$5bobo2b2o$3b2obo3$3bo2bo$5b2o!
#C [[ THEME 6 GRID GRIDMAJOR 0 SUPPRESS THUMBLAUNCH ]]
#C [[ AUTOSTART ]]
x = 53, y = 127, rule = B3/S23
4b2o$4bo2bo$4bo3bo$6b3o$2b2o6b4o$2bob2o4b4o$bo4bo6b3o$2b4o4b2o3bo$o9b
2o$bo3bo$6b3o2b2o2bo$2b2o7bo4bo$13bob2o$10b2o6bo$11b2ob3obo$10b2o3bo2b
o$10bobo2b2o$10bo2bobobo$10b3o6bo$11bobobo3bo$14b2obobo$11bo6b3o2$11bo
9bo$11bo3bo6bo$12bo5b5o$12b3o$16b2o$13b3o2bo$11bob3obo$10bo3bo2bo$11bo
4b2ob3o$13b4obo4b2o$13bob4o4b2o$19bo$20bo2b2o$20b2o$21b5o$25b2o$19b3o
6bo$20bobo3bobo$19bo3bo3bo$19bo3b2o$18bo6bob3o$19b2o3bo3b2o$20b4o2bo2b
o$22b2o3bo$21bo$21b2obo$20bo$19b5o$19bo4bo$18b3ob3o$18bob5o$18bo$20bo$
16bo4b4o$20b4ob2o$17b3o4bo$24bobo$28bo$24bo2b2o$25b3o$22b2o$21b3o5bo$
24b2o2bobo$21bo2b3obobo$22b2obo2bo$24bobo2b2o$26b2o$22b3o4bo$22b3o4bo$
23b2o3b3o$24b2ob2o$25b2o$25bo2$24b2o3b3o$26bo2b2obo$28bo3b2o$29bo2b2o$
33bobo$30b2o2b2o$33b2o$33bobo$35b2o$33bob2o$33b3o3bo$32b2o4b2o$32b3o$
33bobo$34bobo3b3o$34bo6bob2o$38bo6bo$38bo3b2o$35b2o$39b3o$39b3o$39bo2$
39b3o$39b3o$39b3o$39b2o3bo$43b3o$43b2o2bo$44bo3bo$45bobo$44bo2bo2b3o$
43bo2b2o$42bo4b5o$42bo2bob3o$43bo$45bobo$46b2o$47bo$46b3o2$44b2o$47b3o
$43bo2bo$43bo2bo$43bo5bo$42b2ob2obobo$42b2ob2o3bo$43b2obo$44bob2obo!
x = 33, y = 22, rule = B3/S23
bo28bo$obo26bobo$2o27b2o2$30bo$30bo$bo28b3o$b2o22b2o$2o24bo$23b3o$5b2o
16bo$4bo2bo2b2o$4bobo4bo2bo$5bo5bobobo$8b2obo2bo$8bo2bo$5bo4bo$5b5o2$
7bo$6bobo$7bo!
o$o$o$bboo$bbobo$bbbbo$bbbboo
x = 25, y = 21, rule = LifeHistory
2A9.A$A2.3A4.A.A$.2A7.2A$6.A$6.A$.2A5.3D$A2.3A5.A$2A9.2A$10.2A2$15.2A
$14.A2.A2.2A$14.A.A4.A$15.A5.A.2A$18.2A.A.A$18.A2.A2.A$15.A4.A2.2A$
15.5A2$17.2A.A$17.A.2A!
x = 39, y = 39, rule = B3/S23
4b2o$4bo5b2ob2o$6bobo2bobo5b2ob2o$5b2ob2o5bobo2bobo5b2ob2o$14b2ob2o5bo
bo2bobo5b2o$5b2ob2o13b2ob2o5bobo2bo$3bo2bobo5b2ob2o13b2ob2o$3b2o5bobo
2bobo5b2ob2o$9b2ob2o5bobo2bobo5b2ob2o$3b2o13b2ob2o5bobo2bobo$3bo5b2ob
2o13b2ob2o5bo$5bobo2bobo5b2ob2o13b2o$4b2ob2o5bobo2bobo5b2ob2o$13b2ob2o
5bobo2bobo5b2o$4b2ob2o13b2ob2o5bobo2bo$2bo2bobo5b2ob2o13b2ob2o$2b2o5bo
bo2bobo5b2ob2o$8b2ob2o5bobo2bobo5b2ob2o$2b2o13b2ob2o5bobo2bobo$2bo5b2o
b2o13b2ob2o5bo$4bobo2bobo5b2ob2o13b2o$3b2ob2o5bobo2bobo5b2ob2o$12b2ob
2o5bobo2bobo5b2o$3b2ob2o13b2ob2o5bobo2bo$bo2bobo5b2ob2o13b2ob2o$b2o5bo
bo2bobo5b2ob2o$7b2ob2o5bobo2bobo5b2ob2o$b2o13b2ob2o5bobo2bobo$bo5b2ob
2o13b2ob2o5bo$3bobo2bobo5b2ob2o13b2o$2b2ob2o5bobo2bobo5b2ob2o$11b2ob2o
5bobo2bobo5b2o$2b2ob2o13b2ob2o5bobo2bo$o2bobo5b2ob2o13b2ob2o$2o5bobo2b
obo5b2ob2o$6b2ob2o5bobo2bobo5b2ob2o$15b2ob2o5bobo2bobo$24b2ob2o5bo$33b
2o!
x = 16, y = 64, rule = B3/S23
3$3b2o5b2o$4bo5bo$3bo7bo$3bobo3bobo$4bobobobo$6bobo$5bo3bo$5b5o$3b2o5b
2o$2bo2bobobo2bo$2b2obobobob2o$5bobobo$5b2ob2o$3b2o5b2o$4bob3obo$2bo2b
obobo2bo$2b2obo3bob2o$5bo3bo$5bobobo$3b2ob3ob2o$2bobo5bobo$2bo2b5o2bo$
3bobo3bobo$2b2o3bo3b2o$4b7o$2b2o7b2o$3bo2b3o2bo$3bobo3bobo$4bob3obo$2b
obo5bobo$2b2obobobob2o$5bo3bo$5bo3bo$2b2ob2ob2ob2o$2bobo2bo2bobo$5b5o
2$3b3obob3o$2bo3b3o3bo$2bobo5bobo$3bob5obo$5bo3bo$2bo2bobobo2bo$2b3obo
bob3o$6bobo$4b3ob3o$3bo3bo3bo$3bobo3bobo$2b2ob5ob2o$2bo9bo$4b2obob2o$
3b2ob3ob2o2$3b4ob4o$3bo2bobo2bo$6bobo$3bo3bo3bo$2bobo5bobo$3bo7bo!
x = 6, y = 6, rule = B3/S23
5bo$5bo$3b3o$4obo$o2bo$b5o!
testitemqlstudop wrote:17413-gen methuselah, septadekaminno (?), one polypletCode: Select allx = 6, y = 6, rule = B3/S23
5bo$5bo$3b3o$4obo$o2bo$b5o!
x = 8, y = 7, rule = B3/S23
4bo$4bo$3bo$6b2o$5b2o$2o$bo!
x = 69, y = 31, rule = B3/S23
67bo$66bo$66b3o6$50b2o2b2o$50bo4bo$51b4o2$53b4o$52bo4bo$52b2o2b2o2$25b
2o2b2o$25bo4bo$26b4o2$28b4o$27bo4bo$27b2o2b2o2$2o2b2o$o4bo$b4o2$3b4o$
2bo4bo$2b2o2b2o!
x = 183, y = 26, rule = B3/S23
36bo$35bo$35b3o$7bo9bo$bo6bo9b2o$2bo3b3o8b2o$3o4$19bo10bobo54bo$18bo
11b2o56bo5bo$18b3o10bo54b3o4bo$48b2o30b2o11b3o16b2o30b2o30b2o$48bo2b2o
27bo2b2o27bo2b2o27bo2b2o27bo2b2o$50b2obo28b2obo28b2obo28b2obo28b2obo$
49b3obo3b2o22b3obo3b2o22b3obo27b3obo10bo16b3obo$49bo3bobo2bo22bo3bobo
2bo22bo3b2o26bo3b2o9bobo14bo3b2o$19bo30b3obob2o24b3obob2o24b3o29b3o11b
2o16b3o$15bob2o33bobobo27bobobo27bo9bo21bo9bo21bo$13bobo2b2o33bo2bo28b
o2bo2bo34bo31bo$14b2o38b2o30b2o3bobo32bo31bo$91b2o$3b3o$5bo$4bo!
x = 18, y = 13, rule = LifeHistory
13.C2.2C$9.2A3.3C$9.2A4.C3$8.A$6.DC.A$2.2A2.2DA$.A.A$.A$2A5.A6.2A$6.A
.A5.2A$7.A!
x = 6, y = 11, rule = LifeHistory
2A.A$.3A$2.A6$4.C$3.C.C$4.C!
Users browsing this forum: onw and 5 guests