A Broader Audience for Cellular Automata

For general discussion about Conway's Game of Life.
Dylan Chen
Posts: 114
Joined: March 27th, 2020, 8:07 am
Contact:

Re: A Broader Audience for Cellular Automata

Post by Dylan Chen » December 16th, 2020, 2:42 am

I have been thinking the topic of "Broader Audience" &"CA Coin" for quite a while. Here is a post written in Discord CGoL. I repost it here, in the forum. For future those who were interested in this topic, it maybe easy for them to search (via keyword)

0、Bitcoin has been widely criticized due to its computing resources waste in mining process. It seems promising to replace the Hash-calculating with other meaningful subject such as science-related problems. There have been discussion regarding "CAcoin" since 2014. A huge amount of effort have been made by Calcyman and the community(APGsearch lifecoin-branch).
1、Does the meaningless Hash-mining process really meaning less?
One vital feature of currency is it means the same to everyone. A Lipstick Coin may be valued by lipstick enthusiasts, how much would it be accepted by the outsider? The prime coin which indeed has a practical use of calculating prime number, Launched early in 2013, now have the market value thousandth of Bitcoin at pathetic 0.04USD/coin.
In fact, it is the meaningless(non-interest-related) Hash process that make Bitcoin prosperous. No participator gain extra benefits from it, everyone enjoy the same, thus it could be commonly accepted.
2、What the community really want from "CAcoin"?
Not for a single time that the topic "Broader Audience for CA" has been raised. If money can be made from researching CA or at least the cost of calculating get covered, it would be a huge incentive for more people join in.
Currently, the primary cost/limitation of our community is computing resources. Within the community circle, everything is fine. Genius software programs shared and open-sourced to everyone. Precious knowledge on wikipage and forum are accessible to everyone. Any question raise would be explained immediately. It is not money, but joy and satisfaction we pursuit.
Things changed when we need resources outside the circle. We cannot persuade Cloud computing provider without money or credit card. "Broader Audience" can bring their passion and recognition, can't help much with the money.
Essential point of trade is property right, commodity can be keep private to the payer. Keeping new CGoL discovery secret or making new pattern private to certain one who paid, is not going to work well. As well as most of us won't agree to that, since share and devote is carved in the community genes.
3、What would happen when CA searching is profitable?
What could we(our community) do when that happen.
If someday CA can have a usage in National Defense (nuclear weapon system encryption e.g.),what would happen then.
Tools should not be the limit.
Whether your obstacle is a script, an stdin, or Linux environment computing resouces.
check New rules thread for help.

Hunting
Posts: 4395
Joined: September 11th, 2017, 2:54 am

Re: A Broader Audience for Cellular Automata

Post by Hunting » December 16th, 2020, 3:19 am

Dylan Chen wrote:
December 16th, 2020, 2:42 am
APGsearch lifecoin-branch
Wait is it done?

User avatar
otismo
Posts: 1201
Joined: August 18th, 2010, 1:41 pm
Location: Florida
Contact:

Re: A Broader Audience for Cellular Automata

Post by otismo » December 21st, 2020, 5:11 pm

the whole idea of cyber-coin is that INFORMATION is the measurement of wealth and the store of value :

"Knowledge is Power"

"Wealth of Information"

when Information transmutes to Intelligence wealth is amplified/leveraged

when CA overlays of our own Universe come into being

IT'S JACKPOT TIME !
"One picture is worth 1000 words; but one thousand words, carefully crafted, can paint an infinite number of pictures."
- autonomic writing
forFUN : http://viropet.com
Art Gallery : http://cgolart.com
Video WebSite : http://conway.life

User avatar
otismo
Posts: 1201
Joined: August 18th, 2010, 1:41 pm
Location: Florida
Contact:

Re: A Broader Audience for Cellular Automata

Post by otismo » January 30th, 2021, 11:38 pm

so the 50th came and went

JHC - RIP in April

NYT article December 29

not much done to promote to a wider audience...

I think we should profile ourselves

and then target the people who fit our profile
"One picture is worth 1000 words; but one thousand words, carefully crafted, can paint an infinite number of pictures."
- autonomic writing
forFUN : http://viropet.com
Art Gallery : http://cgolart.com
Video WebSite : http://conway.life

User avatar
pzq_alex
Posts: 792
Joined: May 1st, 2021, 9:00 pm
Location: tell me if you know

Re: A Broader Audience for Cellular Automata

Post by pzq_alex » July 19th, 2021, 11:57 pm

One of the main issues is that newcomers (and outsiders) generally have a different preference for patterns/rules than the insiders.

An incomplete list of the "nooby" things:
  • Colliding random gliders into a delicately constructed pattern (e.g. primer, spacefiller, even metapixels) (see this for an example);
  • Turning off a cell in the middle of a spacefiller;
  • Checking how random numbers/letters, when put into the Life universe, evolve;
  • Other random stuff that is even more nooby than gustavo6046's early work.
\sum_{n=1}^\infty H_n/n^2 = \zeta(3)

How much of current CA technology can I redevelop "on a desert island"?

User avatar
pcallahan
Posts: 845
Joined: April 26th, 2013, 1:04 pm

Re: A Broader Audience for Cellular Automata

Post by pcallahan » July 20th, 2021, 10:32 am

pzq_alex wrote:
July 19th, 2021, 11:57 pm
One of the main issues is that newcomers (and outsiders) generally have a different preference for patterns/rules than the insiders.

An incomplete list of the "nooby" things:
Well, a lot of people like seeing things blow up. Consider the popularity of building implosions. This could at least be a gateway for those who may later become interested in how anyone can make patterns that don't blow up.

Spacefiller destruction is also at least a little bit interesting because the approximate wavefront is predictable and produces different (approximate) polygons of debris depending on where it intersects the boundaries.

ColorfulGabrielsp138
Posts: 288
Joined: March 29th, 2021, 5:45 am

Re: Accelerating spaceships

Post by ColorfulGabrielsp138 » July 22nd, 2021, 5:10 am

pcallahan wrote:You can't make a living at it, and even the recognition comes from a very small group.
Stamp collections may be one of the only patterns that may gain copyright.

Code: Select all

x = 21, y = 21, rule = LifeColorful
11.E$10.3E$10.E.2E$13.E4$2.2B$.2B$2B$.2B15.2D$19.2D$18.2D$17.2D4$7.C$
7.2C.C$8.3C$9.C!
I have reduced the glider cost of quadratic growth to eight and probably to seven. Looking for conduits...

pew
Posts: 17
Joined: May 8th, 2020, 7:58 pm

Re: A Broader Audience for Cellular Automata

Post by pew » July 26th, 2021, 3:50 am

Being a lurker of the forums, one thing I might add is that noobs (not that I exclude myself from such a category) are often shot down, if I'm being honest, quite apathetically, when making posts regarding a "new" pattern/idea, that turns out to be rediscovered. And this is often the case with a newcomer's first post as they tend to not be very knowledgeable yet. Whether this is a significant deterrent or a beneficial filter I can't say, but it does make the forums seem like a gatekeeped community.

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

Re: A Broader Audience for Cellular Automata

Post by Sokwe » July 26th, 2021, 7:09 am

pew wrote:
July 26th, 2021, 3:50 am
Being a lurker of the forums, one thing I might add is that noobs (not that I exclude myself from such a category) are often shot down, if I'm being honest, quite apathetically, when making posts regarding a "new" pattern/idea, that turns out to be rediscovered. And this is often the case with a newcomer's first post as they tend to not be very knowledgeable yet. Whether this is a significant deterrent or a beneficial filter I can't say, but it does make the forums seem like a gatekeeped community.
This is definitely something I worry about. It's tricky to be encouraging while still explaining that something is already known. There's simply a huge barrier to entry for finding new patterns in Life. For this reason, I appreciate the Other Cellular automata board, as interesting new discoveries there are more accessible to new users. Unfortunately, you can often end up talking to yourself if there aren't enough users interested in your favorite CA. I also don't know whether new users would rather play around with Life or with other CA.

I don't know when or how I learned about Conway's Game of Life, but my first Life rediscovery was the clean tub-based superstring supports. This was years before the forums existed. A few years ago I found a set of handwritten notes from that time listing the objects in the periodic output for different superstring lengths. Back then, the only way to communicate with the Life community was to email one of the existing members or to post on comp.theory.cell-automata, but I was too timid for that, and it rarely yielded encouraging results, as can been seen in this message with no replies from 18 years ago by our very own Otismo.

The creation of the wiki and forums are what expanded the community so substantially. I don't think I exaggerate when I say that these forums rescued the hobby from near certain death. It just seemed like such a better way to share Life patterns than previous methods. I wonder if expansions to other platforms could have a similar effect. Do other platforms provide something new that would help draw in and retain new users? The Discord channel is popular with our current users, and maybe it helps with retention, but I'm not sure if it's drawing in many new users.
-Matthias Merzenich

User avatar
silversmith
Posts: 323
Joined: June 15th, 2020, 6:20 pm
Location: Pennsylvania, USA, Earth, Sector 5ff63D6
Contact:

Re: A Broader Audience for Cellular Automata

Post by silversmith » October 18th, 2021, 1:31 pm

pcallahan wrote:
October 18th, 2021, 10:47 am
The question in my mind is just whether the market exists at all. Personally, I think there's a viable means to getting more CA in popular culture, but it's a lot of work and investment. It would require evangelizing the interest, potentially at an initial loss, by offering educational programs with hands on experience in CA search and design. This is IMO at least as interesting as building Lego or Arduino robots, but there is simply a much larger community for these (including school programs and summer camps), not only out of intrinsic interest but other incidental factors.
I think one of the major problems/considerations with popularizing CA is that many of the most interesting aspects of CA require significant knowledge to fully appreciate. On the other hand, Lego and Arduino can be used to make robots and mechanisms which are intrinsically interesting. This is much easier to present compared to how many CAs “encode” or represent something which is interesting, the main exception being the complex, evolving structures which look interesting by themselves.

I think one of the best ways would be a community based web application based on sharing interesting patterns, somewhat like the social media apps Pinterest and Instagram. However, making a social app is an immense undertaking, and is by no means an easy option.
A simulator with the tools I couldn’t find elsewhere: https://www.silversimulations.com/caplayer/
Documentation:https://github.com/teraxtech/caplayer

User avatar
pcallahan
Posts: 845
Joined: April 26th, 2013, 1:04 pm

Re: A Broader Audience for Cellular Automata

Post by pcallahan » October 18th, 2021, 3:14 pm

silversmith wrote:
October 18th, 2021, 1:31 pm
I think one of the best ways would be a community based web application based on sharing interesting patterns, somewhat like the social media apps Pinterest and Instagram. However, making a social app is an immense undertaking, and is by no means an easy option.
Would it be possible to get something going in Roblox? I admit I know little about that platform. A couple of years ago, Michael (simsim314) mentioned it, and that's an idea I like a lot better than NFTs.

My son (who just started college) has done a little bit of Minecraft (and said his high school friends think Roblox is for younger kids). He told me that he has seen CGoL show up there as well, though I don't remember exactly how. I think possibly as a way to create resources that you can hack if you know CGoL rules. It was not a very deep application, but it was there.

User avatar
silversmith
Posts: 323
Joined: June 15th, 2020, 6:20 pm
Location: Pennsylvania, USA, Earth, Sector 5ff63D6
Contact:

Re: A Broader Audience for Cellular Automata

Post by silversmith » October 18th, 2021, 6:50 pm

pcallahan wrote:
October 18th, 2021, 3:14 pm
Would it be possible to get something going in Roblox? I admit I know little about that platform. A couple of years ago, Michael (simsim314) mentioned it, and that's an idea I like a lot better than NFTs.
I have a younger relative who enjoys roblox, and as a result I have gained some knowledge on how it works. In terms of ease of implementation and potential audience size, roblox is great. However keep in mind the vast majority of the roblox players are between 5 and 14 years old. For CA, anything greater than 8 years old is a reasonable target audience, assuming the game can attract the computer-minded among them.

When it comes to roblox the making a game is relatively easy. The hard part is presenting it. Unless it is about a trending topic, a successful game will need to have image, advertising, gameplay and youth appeal down to a science. Clickbait and deceptive tactics are the average baseline for Roblox, along with a large majority of player dedicated to 1% of the games.
A simulator with the tools I couldn’t find elsewhere: https://www.silversimulations.com/caplayer/
Documentation:https://github.com/teraxtech/caplayer

User avatar
Tropylium
Posts: 421
Joined: May 31st, 2011, 7:12 pm
Location: Finland

Re: A Broader Audience for Cellular Automata

Post by Tropylium » October 19th, 2021, 9:07 am

Sokwe wrote:
July 26th, 2021, 7:09 am
There's simply a huge barrier to entry for finding new patterns in Life.
Correct for new "engineering-compatible" patterns, which seem to require either programming chops or encyclopedic knowledge of pattern construction techniques. On the other hand, so far there exists almost zero community interest in GoL as a medium of artistic expression. E.g. the creation of interesting still lifes is pretty accessible, and e.g. novel p2 oscillators or welds of existing objects are not very hard to create either. A really broader audience would almost certainly translate into more interest in this kind of topics.

If you look at some usual construction set like Lego, most things done in it by hobbyists are similarly not really feats of engineering but rather in the range of sculpture and architecture.

One idea in this range I've had for a while would be to start a "CA art blog" cataloguing gifs of interesting spaceships, oscillators, natural still lifes etc. — and most likely not just from Life but indeed from a variety of other CA.

User avatar
pcallahan
Posts: 845
Joined: April 26th, 2013, 1:04 pm

Re: A Broader Audience for Cellular Automata

Post by pcallahan » October 19th, 2021, 10:57 am

Tropylium wrote:
October 19th, 2021, 9:07 am
On the other hand, so far there exists almost zero community interest in GoL as a medium of artistic expression.
And not just art in the aesthetic sense, but hobby projects. Converting a digital state machine to a Life pattern is an engaging activity, though it is unlikely to break any new ground by itself. If there were user-friendly CAD tools, this is something a naive user might be interested in doing. Initially the output is a glider stream (usually), but it can be transformed into other things: larger space ships, marquee output. These become more accessible as less explanation is needed, so for example, a decimal read-out could be added to a binary numerical computer (along with the appropriate binary-decimal converter). This would all be packaged as a library instead of expecting new users to come up with it themselves.

We used to worry about patterns getting enormous, but today there are many patterns that are best viewed at subpixel resolution. You could even do simple raster graphics. The fact that you can zoom in and see Life patterns at work is also fun, though maybe not interesting enough to work on by hand. If a platform like this existed in a usable enough form, I'm nearly certain it would draw attention.

At another level (as discussed before) you can generate slow syntheses and build something like a 2D nanotech platform. I'm not sure how much compute power that takes, but it would be unlike any other simulated world (which has to fake the interactions instead of having its own physics).

There was already discussion about having intentional Life challenges that could have a known answer but still be the basis of a competition. Tie-ins to maker projects would also be interesting, I think, though maybe that's just the quirk of a few people. E.g., 3D representations of Life animations can make interesting physical artifacts.

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

Re: A Broader Audience for Cellular Automata

Post by dvgrn » October 19th, 2021, 11:21 am

pcallahan wrote:
October 19th, 2021, 10:57 am
Tropylium wrote:
October 19th, 2021, 9:07 am
On the other hand, so far there exists almost zero community interest in GoL as a medium of artistic expression.
And not just art in the aesthetic sense, but hobby projects...
So that's what I've been doing all this time! Herschel-based megacircuitry like the Exploratorium or the upcoming weekender|doo-dah converter aren't exactly what I'd venture to call "art". Especially for big glider-synch circuits like the various glider-to-spaceship converters, the layout is based on functional considerations, mostly minimizing the bounding box, without any particular attention paid to aesthetics per se. And Herschel conduits are wonderful and all, but they're pretty much irredeemably lumpy and awkward.

I do like the way these large circuits look when they're busy converting gliders, though! And they fit very nicely under the label "hobby projects".

However, I've never had much success in stirring up community interest in this particular hobby, with a few notable exceptions like Goldtiger997 who has mastered all of the relevant toolkits. Apparently most people find the initial learning curve to be painfully steep.

I've been thinking again recently about what "user-friendly CAD tools" would look like -- pull up a complex piece of circuitry and just drag the pieces around, I suppose, and have the program do any necessary rephasing or welds on the fly. It would be a great thing to have, but it's a daunting task to design something that really works well. The last attempt that I know of was Paul Chapman's original conception of a "Glue" tool, back in the mid-2000s.

User avatar
pcallahan
Posts: 845
Joined: April 26th, 2013, 1:04 pm

Re: A Broader Audience for Cellular Automata

Post by pcallahan » October 19th, 2021, 11:45 am

dvgrn wrote:
October 19th, 2021, 11:21 am
Herschel-based megacircuitry like the Exploratorium or the upcoming weekender|doo-dah converter aren't exactly what I'd venture to call "art".
You've also added a lot of presentation to it, which may not qualify as fine art (future generations can decide) but are definitely beyond something like building a crystal radio from a kit.

Added: I think Exploratorium is exactly what the name implies. It's museum curation. That requires a lot of work, and though individuals do make their own little museums as a hobby, it may not be a very common one.

Another hobby angle I was thinking of was stamp collecting or coin collecting (this was a mental leap away from Exploratorium to more primitive collections of Life patterns). The real hobbies, like any kind of collecting, are motivated by relative scarcity, not just making a nice display. Maybe if we could invent a game like Magic the Gathering in which different CGoL patterns have some game value (ideally intrinsic to Life rules) it would be possible to use blockchain to regulate frequency of patterns within the game, circling back to the NFT idea, but in a specific context rather than a real market.

hkoenig
Posts: 258
Joined: June 20th, 2009, 11:40 am

Re: A Broader Audience for Cellular Automata

Post by hkoenig » October 19th, 2021, 11:20 pm

dvgrn wrote:I've been thinking again recently about what "user-friendly CAD tools" would look like -- pull up a complex piece of circuitry and just drag the pieces around, I suppose, and have the program do any necessary rephasing or welds on the fly. It would be a great thing to have, but it's a daunting task to design something that really works well. The last attempt that I know of was Paul Chapman's original conception of a "Glue" tool, back in the mid-2000s.
For one thing, you would need to stop thinking in terms of bitpatterns and instead work with objects that consist of bitpatterns and nested sub-objects.

Over the years I've experimented with that idea, and have written my own tools which attempt to build upon that. For example, when working with a construction/collision, the editor partitions the array into a set of objects, mostly Gliders and the target objects. These can be transformed (rotation/reflection/translation,phased) with a single command, or dragged and dropped from a toolbar/palette.

Maybe someday I should start on a Herschel track editor, as that seems like a good candidate for something like this. You'd need to specify how the parts can be joined, and do all the validation to make sure the user immediately knows if it's going to work, and how. Think SnapCircuits or Lego or some other construction set.

But all that takes quite a bit of time to get working right. Maybe start with something simple, like Callahan's stable object Tiles, or Squiggles.

But if you want a broader audience, then you need to write tools with actual interfaces that encourage and restrict the actions of the user without making them responsible for all the fiddly parts. You also need to make it as visual as possible. No scripting language (at least at first), and most of all no keyboard entry. And you need to support the devices most likely to reach the widest audience-- tablets like the iPad, and WindowsPC. (If you do your iPad app right, you get the MacOS version with little extra effort.)

(I haven't been paying attention-- is there any sort of Life library suitable for use on the iPad/MacOS? One compatible with XCode and Swift and SwiftUI and Swift Packages? That would be a required step in getting something like this started. If someone is serious about doing that, and would like some pointers, you are welcome to contact me privately...)

User avatar
pcallahan
Posts: 845
Joined: April 26th, 2013, 1:04 pm

Re: A Broader Audience for Cellular Automata

Post by pcallahan » October 20th, 2021, 11:35 am

hkoenig wrote:
October 19th, 2021, 11:20 pm
Maybe someday I should start on a Herschel track editor, as that seems like a good candidate for something like this. You'd need to specify how the parts can be joined, and do all the validation to make sure the user immediately knows if it's going to work, and how. Think SnapCircuits or Lego or some other construction set.
This would be great (assuming it was visual and user friendly, as you said). I remember having a similar idea a very long time ago when the components would have consisted of p30 glider guns and buckaroos. Timing would have been trickier, but doable. This could still be of interest to a beginner or someone who just wanted to build Rube Goldberg machines.

Components that were a little unpredictable, such as stateful reflectors that may output at a different direction on alternate hits, or periodically (e.g. every 30 steps) would be interesting provided they predictably did not blow up. It would be a little like a pinball machine. (Could you make a CGoL pinball machine somehow stipulating that the entering or rebounding glider didn't make the bumpers explode?)

I think there's unexplored potential here mostly because this group's focus has been discovery rather than invention. That doesn't mean it's the only focus. I think a safe construction toolkit could be hugely entertaining, though it would need to be packaged attractively.

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

Re: A Broader Audience for Cellular Automata

Post by dvgrn » October 20th, 2021, 12:36 pm

pcallahan wrote:
October 20th, 2021, 11:35 am
I think there's unexplored potential here mostly because this group's focus has been discovery rather than invention. That doesn't mean it's the only focus. I think a safe construction toolkit could be hugely entertaining, though it would need to be packaged attractively.
It would be especially awesome if the editor was good enough to be worthwhile for non-beginners as well as beginners to use. I've wanted a Life editor that could do grouping and ungrouping for a couple of decades now.

That was the motivation for writing the recognizer script that writes out slightly higher-level descriptions of patterns like this. Farther back, it was also the motivation for fiddling around with your Xlife #I format back in 2006. #I format also came up in the Project von Neumann discussion a couple of years ago.

I should maybe mention that for the last couple of years, LifeViewer has supported a version of the recognizer script's output as a pattern format, like so:

Code: Select all

x = 1, y = 1, rule = B3/S23
!
#C Pattern bounding box is (2842, 3959) to (6235, 7661)
#C MAXGRIDSIZE 14 gives a 16384x16384 grid from (-8192, -8192) to (8191, 8191)
#C So pattern appears in bottom right corner
#C [[ MAXGRIDSIZE 14 ]]
#C Lua script converted to LifeViewer SCRIPT commands:
[[
RLE splitter_weld2 13bo$12bobo$12bobo$13bo2$2o$bo$bobo$2b2o3$23b2o$23bo$21bobo$21b2o3$6bob2o$4b3ob2o$3bo$4b3ob2o$6bobo$6bobo$7bo$30b2o$25b2o2bo2bo$10b2o13bobo2b2o$9bobo16b2o$9bo19bo$8b2o16bo2bob2o$25bobob2obo$26bobo$27bo2b2o$28b2ob3o$34bo$13b2o13b2ob3o$13bo14b2obo$14bo$13b2o5b2o$12bo7b2o$12bo$11b2obo$10bo2b2o$10b2o3$33b2o$33b2o5$18bo$17bobo$17bobo$18bo$15b3o$15bo! -13 0
RLE splitter_welded 7b2o$7bo$7bo20b2o$7bobo18bo$8b2o16bobo$13bo12b2o$12bobo$12bobo$13bo2$2o$bo$bobo$2b2o3$23b2o$23bo$21bobo$21b2o3$6bob2o$4b3ob2o$3bo$4b3ob2o$6bobo$6bobo$7bo$30b2o$25b2o2bo2bo$10b2o13bobo2b2o$9bobo16b2o$9bo19bo$8b2o16bo2bob2o$25bobob2obo$26bobo$27bo2b2o$28b2ob3o$34bo$28b2ob3o$28b2obo2$20b2o$11b2o7b2o$12bo$12bobo$13b2o4$33b2o$33b2o5$18bo$17bobo$17bobo$18bo$15b3o$15bo! -7 0
RLE splitter 10b2o11bo$10b2o10bobo$22bobo2b2o3bo$21b2ob2o2bo2bobo$25bobo3bobo$21b2obo2b4obo$21b2obobo3bo$25bobo3bo$26bobo3bo$27bo3b2o$46bo$44b3o$43bo$18b2o23b2o$18b2o$3b2o$2bo2bo$bob2o$bo$2o$15b2o38b2o$15bo38bo2bo$16b3o36b2o$18bo11b2o$31bo$28b3o6bob2o17b2o$28bo6b3ob2o17bo$34bo24b3o$35b3ob2o20bo$37bobo$37bobo$38bo10b2o$49bo$50b3o$52bo! -10 0
RLE A1_welded 22bob2o$22b2obo$26b2o$28bo$28bo$26bob2o$26b2o2bo$29b2o4$32bo$8bo21b3o$8b3o18bo$11bo17b2o$10b2o5$9b2o$8bobo$8bo$7b2o3$3b2o$2bo2bo2b2o$3b2o2bobo$5b2o16b2o$5bo17bo$2b2obo2bo15b3o$2bob2obobo16bo$6bobo$3b2o2bo$b3ob2o$o$b3ob2o$3bob2o2$13b2o$13b2o7b2o$22bo$20bobo$20b2o4$2o$2o5$16bo$15bobo$15bobo$16bo$17b3o$19bo! -22 0
RLE A1 28b2o$28bo$26bobo$26b2o5$32bo$8bo21b3o$8b3o18bo$11bo17b2o$10b2o5$9b2o$8bobo$8bo$7b2o3$3b2o$2bo2bo2b2o$3b2o2bobo$5b2o16b2o$5bo17bo$2b2obo2bo15b3o$2bob2obobo16bo$6bobo$3b2o2bo$b3ob2o$o$b3ob2o$3bob2o2$13b2o$13b2o7b2o$22bo$20bobo$20b2o4$2o$2o5$16bo$15bobo$15bobo$16bo$17b3o$19bo! -28 0
RLE A2C4_weld3 15bo11bo$15b3o7b3o$18bo5bo$17b2o5b2o8$9b2o20b2o$9b2o20b2o8$3b2o$2bo2bo2b2o$3b2o2bobo$5b2o16b2o$5bo17bo3bo$2b2obo2bo15b4o$2bob2obobo$6bobo$3b2o2bo$b3ob2o$o$b3ob2o$3bob2o2$13b2o$13b2o7b2o$22bo$20bobo$20b2o4$2o$2o5$16bo$15bobo$15bobo$16bo$17b3o$19bo! -15 0
RLE A2C4_weld2 15bo11bo$15b3o7b3o$18bo5bo$17b2o5b2o8$9b2o20b2o$9b2o20b2o8$3b2o$2bo2bo2b2o$3b2o2bobo$5b2o16b2o$5bo17bo$2b2obo2bo15b3o$2bob2obobo16bo$6bobo$3b2o2bo$b3ob2o$o$b3ob2o$3bob2o2$13b2o$13b2o7b2o$22bo$20bobo$20b2o4$2o$2o5$16bo$15bobo$15bob3o$16bo3bo$12b2o5bo$12bo2bo$14b2o$15bo$13bo$13b2o! -15 0
RLE A2C4_welded 15bo11bob2o$15b3o7b3ob2o$18bo5bo$17b2o5b2o8$9b2o20b2o$9b2o20b2o8$3b2o$2bo2bo2b2o$3b2o2bobo$5b2o16b2o$5bo17bo$2b2obo2bo15b3o$2bob2obobo16bo$6bobo$3b2o2bo$b3ob2o$o$b3ob2o$3bob2o2$13b2o$13b2o7b2o$22bo$20bobo$20b2o4$2o$2o5$16bo$15bobo$15bobo$16bo$17b3o$19bo! -15 0
RLE A2C4 15bo11bo$15b3o7b3o$18bo5bo$17b2o5b2o8$9b2o20b2o$9b2o20b2o8$3b2o$2bo2bo2b2o$3b2o2bobo$5b2o16b2o$5bo17bo$2b2obo2bo15b3o$2bob2obobo16bo$6bobo$3b2o2bo$b3ob2o$o$b3ob2o$3bob2o2$13b2o$13b2o7b2o$22bo$20bobo$20b2o4$2o$2o5$16bo$15bobo$15bobo$16bo$17b3o$19bo! -15 0
RLE B1 52bo$50b3o$49bo$49b2o3$33b2o14b2o$34bo14bobo$34bobo13bo$35b2o8$25bo$23b3o$7bo14bo$7b3o12b2o$10bo$9b2o$53bo$52bobo$10b2o41b2o$10b2o4$30b2o$30b2o3$3b2o37b2o$2bo2bo2b2o33bo$3b2o2bobo30b3o$5b2o16b2o15bo$5bo17bo$2b2obo2bo15b3o$2bob2obobo16bo$6bobo$3b2o2bo$b3ob2o$o$b3ob2o$3bob2o2$13b2o$13b2o7b2o$22bo$20bobo$20b2o4$2o$2o5$16bo$15bobo$15bobo$16bo$17b3o$19bo! -52 0
RLE B2_welded 41b2o$33bo7b2o31b2o$33b3o38bobo$36bo38b2o$35b2o2$27b2o$28bo$28bobo$18bo10b2o$16b3o$15bo57b2o$2bo12b2o56bo$3bo70b3o$3bo72bo$2ob2o$obo2bo$3b2o$18b2o$18b2o31b2o$52bo$41b2o6b3o$41b2o2b2o2bo$27bo3b2o12bobobo$26bobo3bo14bob2o$25bobo3bo15bo$21b2obobo3bo15b2o$21b2obo2b4obo$25bobo3bobo$21b2ob2o2bo2bobo$22bobo2b2o3bo$10b2o10bobo$10b2o11bo! -41 0
RLE B2 18b2o9b2o$19bo9bobo$19bobo8b2o$20b2o21$12b2o$11bobo$8bo2bo$8b4o2$6b4o$6bo3bo$9b2o3$10b2o19b2o$10b2o19b2o5$28b2o$28bobo$30bo$3b2o25b2o$2bo2bo2b2o$3b2o2bobo$5b2o16b2o$5bo17bo$2b2obo2bo15b3o$2bob2obobo16bo$6bobo$3b2o2bo$b3ob2o$o$b3ob2o$3bob2o2$13b2o$13b2o7b2o$22bo$20bobo$20b2o4$2o$2o5$16bo$15bobo$15bobo$16bo$17b3o$19bo! -18 0
RLE B2_weld2 9b2o11bo$9b2o10bobo$21bobo2b2o3bo$20b2ob2o2bo2bobo$24bobo3bobo$20b2obo2b4obo$20b2obobo3bo15b2o$24bobo3bo15bo$25bobo3bo14bob2o$26bo3b2o12bobobo$40b2o2b2o2bo$40b2o6b3o$51bo$17b2o31b2o$17b2o$2b2o$bo2bo$ob2o$o74bo$o72b3o$2o12b2o56bo$14bo57b2o$15b3o$17bo10b2o$27bobo$27bo$26b2o2$34b2o$35bo38b2o$32b3o38bobo$32bo7b2o31b2o$40b2o! -9 0
RLE C1_welded 33b2o$33bo$35bo$13bob2o14b5o$10b2obo2bo13bo$10b2ob2obobo12b3o$15bob2o15bo$15bo15b4o$13b3o10b2o3bo3b2o$12bo13b2o4b3o2bo$12b2o20bob2o$34bo$33b2o3$25b2o$25bo$2b2o22b3o$bobo5b2o17bo$bo7b2o$2o2$14bo$10b2obobo$9bobobobo$6bo2bobobobob2o$6b4ob2o2bo2bo$10bo4b2o$8bobo$8b2o! -33 0
RLE C1 33b2o$33bo$35bo$15b2o14b5o$13bo2bo13bo$13b2obobo12b3o$15bob2o15bo$15bo15b4o$13b3o10b2o3bo3b2o$12bo13b2o4b3o2bo$12b2o20bob2o$34bo$33b2o3$25b2o$25bo$2b2o22b3o$bobo5b2o17bo$bo7b2o$2o2$14bo$10b2obobo$9bobobobo$6bo2bobobobob2o$6b4ob2o2bo2bo$10bo4b2o$8bobo$8b2o! -33 0
RLE C2_welded 26b2o$27bo$27bobo$17bo10b2o$15b3o$14bo$2o12b2o$o48b2o$o48b2o$ob2o$bo2bo$2b2o$17b2o$17b2o4$26bo3b2o$25bobo3bo$24bobo3bo$20b2obobo3bo$20b2obo2b4obo$24bobo3bobo6b2o$20b2ob2o2bo2bobo6b2o$21bobo2b2o3bo$9b2o10bobo$9b2o11bo! -26 0
RLE C2 27b2o$28bo$28bobo$18bo10b2o$16b3o$15bo$15b2o$2o48b2o$bo48b2o$bob2o$2bo2bo$3b2o$18b2o$18b2o4$27bo3b2o$26bobo3bo$25bobo3bo$21b2obobo3bo$21b2obo2b4obo$25bobo3bobo6b2o$21b2ob2o2bo2bobo6b2o$22bobo2b2o3bo$10b2o10bobo$10b2o11bo! -27 0
RLE C3 52b2o$52bo$50bobo$33b2o15b2o$34bo$34bobo17bo$35b2o15b3o$51bo$27b2o22b2o$28bo$28bobo$18bo10b2o$16b3o$15bo36b2o$15b2o35bobo$2o52bo$bo52b2o$bob2o$2bo2bo$3b2o$18b2o$18b2o2$41b2o$41b2o2b2o$27bo3b2o12bobo$26bobo3bo14bo$25bobo3bo15b2o$21b2obobo3bo$21b2obo2b4obo$25bobo3bobo$21b2ob2o2bo2bobo$22bobo2b2o3bo$10b2o10bobo$10b2o11bo! -52 0
RLE C3_welded 32bo11b2o$31bobo10b2o$23bo3b2o2bobo$22bobo2bo2b2ob2o$22bobo3bobo$23bob4o2bob2o$25bo3bobob2o$7b2o15bo3bobo$8bo14bo3bobo$8bobo12b2o3bo$9b2o2b2o$13b2o2$36b2o$36b2o$51b2o$50bo2bo$51b2obo$2o52bo$bo52bo$bobo35b2o12b2o$2b2o36bo$37b3o$25b2o10bo$25bobo$27bo$3b2o22b2o$4bo$b3o15b2o$bo17bobo$21bo$4b2o15b2o$3bobo$3bo$2b2o! -32 0
RLE D1 2o$bo$bobo$2b2o7$b2o4b2o$b2o4b2o4$6b2o$2b2o2b2o$bobo$bo12b2o$2o11bobo$13bo$12b2o5$14b2o$13bobo$13bo$12b2o$11bo$11b3o$14bo$13b2o6$11b2o$11b2o$35b2o$35bobo$37bo$37b2o4$11b2o$10bo2bo2b2o$11b2o2bobo$13b2o$13bo$10b2obo2bo$10bob2obobo$14bobo$11b2o2bo$9b3ob2o$8bo$9b3ob2o$11bob2o2$21b2o$21b2o7b2o$30bo$28bobo$28b2o4$8b2o$8b2o5$24bo$23bobo$23bobo$24bo$25b3o$27bo 0 0
RLE D2_welded 15bo11bo$15b3o7b3o$18bo5bo$17b2o5b2o8$9b2o20b2o$9b2o20b2o8$3b2o$2bo2bo2b2o$3b2o2bobo$5b2o16b2o$5bo17bo$2b2obo2bo15b3o$2bob2obobo16bo$6bobo$3b2o2bo$b3ob2o$o$b3ob2o$3bob2o2$13b2o$13b2o7b2o$22bo$20bobo$20b2o4$2o$2o5$16bo$15bobo$15bobo$16bo3bo$17b4o! -15 0
RLE D2 41b2o$41b2o4$52b2o$27b2o23bo$28bo21bobo$28bobo19b2o$18bo10b2o$16b3o$15bo$15b2o$2o$bo48b2o$bob2o45bobo$2bo2bo46bo$3b2o47b2o$18b2o$18b2o3$41b2o$27bo3b2o8b2o$26bobo3bo$25bobo3bo$21b2obobo3bo$21b2obo2b4obo$25bobo3bobo$21b2ob2o2bo2bobo$22bobo2b2o3bo$10b2o10bobo$10b2o11bo! -41 0
RLE weld_m 89bo$78b2o7b3o$73bo5bo6bo$73b3o3bobo4b2o$76bo3b2o$75b2o2$100bo$98b3o$97bo$97b2o$34b2o$b2o31b2o7bo$obo38b3o52b2o$2o38bo55b2o$40b2o2$48b2o$48bo$46bobo29b2o$46b2o10bo20bo$58b3o15b3o$2b2o57bo14bo26b2o$3bo56b2o12bobo21b2o2bo2bo$3o70bobo22bobo2b2o$o72bobobo2bo2b2o16b2o$72b2obob4o3bo17bo$71bo2bo6b3o15bo2bob2o$72b2o5bo2bo15bobob2obo$57b2o20b2o3bo14bobo$24b2o31b2o24b2o15bo2b2o$24bo76b2ob3o$25b3o6b2o71bo$27bo2b2o2b2o65b2ob3o$27bobobo12b2o3bo51b2obo$26b2obo14bo3bobo$29bo15bo3bobo41b2o$29b2o15bo3bobob2o28b2o7b2o$44bob4o2bob2o29bo$43bobo3bobo33bobo$43bobo2bo2b2ob2o30b2o$44bo3b2o2bobo$52bobo10b2o$53bo11b2o$106b2o$106b2o5$91bo$90bobo$90bobo$91bo$88b3o$88bo! -89 0
RLE snark 9b2o$8bobo$2b2o4bo$o2bo2b2ob4o$2obobobobo2bo$3bobobobo$3bobob2o$4bo2$17b2o$8b2o7bo$8b2o5bobo$15b2o7$5b2o$6bo$3b3o$3bo! -9 0
RLE snark_v2 13bo$11b3o$10bo$10b2o3$18b2o$19bo$19bob2o$11b2o4b3o2bo$11b2o3bo3b2o$16b4o$2b2o15bo$bobo12b3o$bo13bo$2o14b5o$20bo$16b2o$16b2o! -13 0
RLE snark_welded 2b4o$2bo3bo$5b2o7$15b2o$8b2o5bobo$8b2o7bo$17b2o2$4bo$3bobob2o$3bobobobo$2obobobobo2bo$o2bo2b2ob4o$2b2o4bo$8bobo$9b2o! -2 0
RLE rectifier 25bob2o$25b2obo2$23b5o$23bo4bo2b2o$26bo2bo2bo$26b2obobo$23bo5bob2o$22bobo4bo$22bo2bo2b2o$23b2o9$15b2o$15b2o8$b2o22b2o$o2bo21bo$b2o23b3o$28bo6$18b2o$18bo$19b3o$21bo! -25 0
RLE weekender_to_glider 18bo$16b3o$15bo$2o13b2o$2o5$25bo$23b3o$22bo$22b2o$2o$2o6$12b2o$12b2o$26b2o$26b2o$30b2o$30b2o14$6b2o$6bobo$7bo12$25bo$23b3o$22bo$22b2o7$27b2o$27bo$25bobo$25b2o3$11b2o$10bobo$10bo$9b2o3$27b2obo$27bob2o2$20b2o$20b2o14$31bo$29b3o$28bo$28b2o10$8b2o$8b2o9$23b2o$23b2o! -18 0
RLE GtoGandMWSS 19bo$17b3o$16bo$15bobo$15bobo$16bo5$2o$2o4$20b2o$20bobo$22bo$13b2o7b2o$13b2o2$3bob2o$b3ob2o$o$b3ob2o$3b2o2bo$6bobo$2bob2obobo16bo$2b2obo2bo15b3o$5bo17bo$5b2o16b2o$3b2o2bobo$2bo2bo2b2o$3b2o3$5b2o$6bo$6bobo$7b2o3$24b2o$7b2o15b2o$6bobo$6bo$5b2o4$24b2o$25bo$25bobo$26b2o4$9b2o26b2o$8bobo25bo2bo$8bo18bo9b2o$7b2o7b2o8bobo$16b2o8b2o15$37b2o$37b2o9$4b2o$4b2o4$9b2o$9b2o$5b2o$5b2o$46b2o$46b2o$11b2o27b2o$11b2o27b2o3$42b2o$35b2o5b2o$35b2o! -19 0
RLE GtoGandMWSS2 80bo11b2o$79bobo10b2o$71bo3b2o2bobo$70bobo2bo2b2ob2o$56b2o12bobo3bobo$57bo13bob4o2bob2o$57bobo13bo3bobob2o$58b2o12bo3bobo$39b2o30bo3bobo$32b2o5b2o30b2o3bo$32b2o3$34b2o17b2o29b2o$34b2o17bo30b2o$28b2o21bobo45b2o$28b2o21b2o45bo2bo$99b2obo$102bo$102b2o$87b2o$88bo$59b2o24b3o$59b2o11b2o11bo$72bo$73b3o$75bo3$25b2o$26bo$26bobo$27b2o3$9b2o$8bo2bo$9b2o9bo$19bobo$20b2o5$28b2o$28b2o14b2o$44bo$45b3o$47bo2$38bo$36b3o$35bo$35b2o$9b2o$9b2o9$42b2o$42b2o4$37b2o$37b2o$41b2o$41b2o$2o$2o$6b2o27b2o$6b2o27b2o3$4b2o$4b2o5b2o$11b2o! -80 0
RLE GtoMWSS 11b2o$4b2o5b2o$4b2o3$6b2o27b2o$6b2o27b2o$2o$2o$41b2o$41b2o$37b2o$37b2o4$42b2o$42b2o9$9b2o$9b2o$35b2o$35bo$36b3o$38bo2$47bo$45b3o$44bo$28b2o14b2o$28b2o5$20b2o$19bobo$9b2o9bo$8bo2bo$9b2o$47b2o$42b2o2bo2bo$27b2o13bobo2b2o$26bobo16b2o$26bo19bo$25b2o16bo2bob2o$42bobob2obo$43bobo$44bo2b2o$45b2ob3o$51bo$45b2ob3o$45b2obo2$37b2o$28b2o7b2o$29bo$29bobo$30b2o4$50b2o$50b2o5$35bo$34bobo$34bobo$35bo$32b3o$32bo! -11 0
RLE MWSStoG45 2o$obob2obo$2bobob2o$2b2o3$5b2o$5b2o! 0 0
RLE MWSStoG135 2o15b2o$bo15bo3bo$bobo11bobo2bobo$2b2o11b2o3bobo$9bo9b2ob3o$8bobo14bo$8bobo8b2ob3o$9bo9b2obo3$20b2o2b2o$20bobo2bo$22bobo$6b2o13b2ob2o$7bo14bo$4b3o13bobo$4bo15b2o! 0 0
RLE eater 2b2o$bobo$bo$2o! -2 0
RLE weekender 5bo4bo$5bo4bo$5bo4bo$3b10o$2bobo6bobo$6bo2bo$b2o4b2o4b2o$3o10b3o$obo10bobo$3o10b3o! -5 0
RLE Snarkeaterweld o$b2o$2bo! 0 0
RLE glider 2o$b2o$o! 0 0
PASTE GtoMWSS 6214 3921
PASTE MWSStoG135 4597 3948 SWAPXY
PASTE glider[1] 4594 3959 SWAPXY
PASTE GtoGandMWSS 4554 3991
PASTE MWSStoG135 6214 4003
PASTE GtoMWSS 6220 4067 SWAPXYFLIP
PASTE GtoGandMWSS2 4517 4031
PASTE MWSStoG135 6138 4067 SWAPXYFLIP
PASTE GtoMWSS 2849 4085 RCCW
PASTE MWSStoG135 2931 4085 RCCW
PASTE snark 4527 4078 SWAPXYFLIP
PASTE GtoGandMWSS 4502 4086
PASTE A2C4 3071 4109 FLIPX
PASTE GtoMWSS 6173 4162 SWAPXYFLIP
PASTE GtoGandMWSS2 4465 4126
PASTE GtoMWSS 2895 4180 RCCW
PASTE MWSStoG45 6060 4142
PASTE snark 3011 4158 RCCW
PASTE snark 4574 4155 FLIPX
PASTE snark 4606 4155 FLIPX
PASTE snark 4638 4155 FLIPX
PASTE snark 4670 4155 FLIPX
PASTE snark 4746 4155 FLIPX
PASTE splitter 4472 4167 RCW
PASTE snark 4867 4158 FLIPX
PASTE MWSStoG45 3054 4174 FLIP
PASTE snark 4590 4194 FLIP
PASTE snark 4622 4194 FLIP
PASTE snark 4654 4194 FLIP
PASTE snark 4135 4173
PASTE snark 4265 4173
PASTE snark 4323 4173
PASTE snark 4736 4188 FLIPX
PASTE snark 4708 4216 FLIP
PASTE snark 4597 4195 FLIPX
PASTE snark 4550 4202 FLIPX
PASTE snark 4294 4225 FLIPY
PASTE snark 4140 4205
PASTE splitter 4470 4239 FLIPY
PASTE C2 4856 4233 FLIP
PASTE snark 4576 4224 SWAPXY
PASTE snark 4111 4226 RCCW
PASTE snark 4808 4240 FLIP
PASTE snark 4529 4231 SWAPXY
PASTE splitter 4422 4234 SWAPXY
PASTE splitter 4155 4244 RCW
PASTE snark 4321 4234
PASTE snark 4200 4261 FLIPY
PASTE snark 4292 4255 RCCW
PASTE snark 4669 4263 SWAPXY
PASTE C2 2989 4292 FLIP
PASTE snark 4427 4300 FLIPY
PASTE snark 4816 4287
PASTE splitter 4173 4299 RCW
PASTE snark 4787 4308 RCCW
PASTE snark 3328 4310
PASTE snark 4459 4318
PASTE snark 3299 4331 RCCW
PASTE snark 4430 4339 RCCW
PASTE splitter 4214 4377 RCW
PASTE snark_welded 4879 4405 RCCW
PASTE splitter 4858 4414 SWAPXY
PASTE A1 5806 4460 FLIPY
PASTE snark 4855 4426 RCW
PASTE snark 4448 4423
PASTE snark 4826 4447 FLIP
PASTE B1 3286 4516 FLIP
PASTE snark 4404 4459 RCCW
PASTE splitter 4267 4467 RCW
PASTE snark 4841 4466 RCW
PASTE snark 4812 4487 FLIP
PASTE splitter 4824 4485 SWAPXY
PASTE snark 4823 4502 RCW
PASTE snark 4794 4523 FLIP
PASTE splitter 4303 4540 RCW
PASTE A2C4 3939 4608 FLIPY
PASTE splitter 4777 4569 SWAPXY
PASTE B2_weld2 3961 4563
PASTE A2C4 3923 4594 RCW
PASTE snark 4770 4602 SWAPXYFLIP
PASTE B1 4117 4647 RCW
PASTE splitter 4345 4619 RCW
PASTE snark 4749 4631 FLIPY
PASTE C2 3925 4636 FLIP
PASTE A2C4 4669 4664 FLIP
PASTE snark 4734 4620 SWAPXYFLIP
PASTE snark 3874 4623 RCCW
PASTE C3 3825 4667 RCW
PASTE C2 4000 4651 RCW
PASTE snark 4713 4649 FLIPY
PASTE splitter 4744 4639 SWAPXY
PASTE snark_welded 3951 4631
PASTE D1 3862 4634
PASTE snark 3663 4668 FLIPY
PASTE A1 4984 4674 SWAPXY
PASTE B2 4190 4670 RCW
PASTE C3 5062 4711 SWAPXY
PASTE snark 3612 4673
PASTE C2 3992 4702 FLIP
PASTE A1 4630 4733 FLIP
PASTE splitter 4382 4693 RCW
PASTE B2 4894 4703 SWAPXY
PASTE D1 3916 4688
PASTE C1 5141 4721 FLIP
PASTE B2 3679 4769 FLIP
PASTE C1 4080 4727 RCW
PASTE C1 3872 4725 FLIPY
PASTE snark_welded 4018 4697
PASTE splitter 4708 4712 SWAPXY
PASTE C2 5100 4734 FLIPY
PASTE snark_welded 3891 4714 SWAPXY
PASTE C2 5024 4745 SWAPXY
PASTE snark 5133 4718
PASTE A2C4 4824 4734 SWAPXY
PASTE B1 4216 4778 RCW
PASTE A1 3857 4783 FLIPY
PASTE snark_welded 5074 4729 FLIPX
PASTE C2 4054 4759 FLIP
PASTE C1 3917 4767 FLIPY
PASTE D1 3979 4746
PASTE C1 4136 4780 RCW
PASTE snark_welded 4080 4754
PASTE splitter 4418 4766 RCW
PASTE splitter 4682 4775 SWAPXY
PASTE A1 5198 4821 FLIP
PASTE snark_welded 3945 4768 SWAPXY
PASTE C3 4938 4823 SWAPXY
PASTE C2 5036 4798 FLIPY
PASTE snark 3511 4797 FLIPY
PASTE B1 3918 4844 FLIPY
PASTE A2C4 4265 4799 RCW
PASTE C2 4111 4813 FLIP
PASTE snark_welded 5010 4793 FLIPX
PASTE C1 3980 4825 FLIPY
PASTE C1 4198 4839 RCW
PASTE D1 4037 4808
PASTE snark_welded 4137 4808
PASTE A1 4806 4839 SWAPXY
PASTE C2 4893 4848 SWAPXY
PASTE C2 4975 4847 FLIPY
PASTE snark_welded 4008 4826 SWAPXY
PASTE splitter 4454 4839 RCW
PASTE C2 5032 4853 RCCW
PASTE C2 4164 4862 FLIP
PASTE C2 4272 4863 RCW
PASTE snark_welded 4949 4842 FLIPX
PASTE snark 5467 4851 SWAPXYFLIP
PASTE splitter 4641 4853 SWAPXY
PASTE B1 3972 4911 FLIPY
PASTE A2C4 5058 4863 SWAPXY
PASTE A2C4 4761 4865 SWAPXY
PASTE snark 5415 4859 SWAPXYFLIP
PASTE A2C4 4673 4866 SWAPXY
PASTE A1 4332 4881 RCW
PASTE snark_welded 4190 4857
PASTE C3 4047 4899 FLIPY
PASTE snark 5394 4888 FLIPY
PASTE C2 4922 4899 FLIPY
PASTE snark_welded 5037 4879 RCW
PASTE D1 5014 4879 FLIPX
PASTE D1 4189 4880 SWAPXY
PASTE splitter 5411 4918 FLIP
PASTE snark_welded 4066 4888 SWAPXY
PASTE C1 4843 4920 SWAPXY
PASTE C2 4152 4917 SWAPXYFLIP
PASTE snark_welded 4896 4894 FLIPX
PASTE splitter 3590 4934 FLIPY
PASTE B1 5077 4968 FLIP
PASTE C2 4315 4929 RCW
PASTE C2 4099 4929 FLIPY
PASTE A1 4391 4931 RCW
PASTE snark_welded 4269 4909
PASTE splitter 4501 4923 RCW
PASTE A2C4 4003 4968 FLIPY
PASTE C2 4877 4943 FLIPY
PASTE C1 4789 4955 SWAPXY
PASTE splitter 3652 4959 FLIPY
PASTE C3 4674 4979 SWAPXY
PASTE D1 4960 4932 FLIPX
PASTE C2 5032 4961 FLIP
PASTE B2 4600 4956 SWAPXY
PASTE snark_welded 4851 4938 FLIPX
PASTE snark_welded 4147 4943 SWAPXY
PASTE C2 4206 4972 SWAPXYFLIP
PASTE splitter 4573 4958 SWAPXY
PASTE B2 4472 4969 RCW
PASTE C2 4286 4980 FLIP
PASTE snark_welded 4985 4959 RCW
PASTE C2 4830 4985 FLIPY
PASTE B2 4080 5036 FLIPY
PASTE C2 4363 4990 RCW
PASTE splitter 3731 5001 FLIPY
PASTE C1 4174 4998 FLIPY
PASTE eater 4493 4969 FLIPX
PASTE snark_welded 4312 4975
PASTE splitter 5281 5011 FLIP
PASTE snark_welded 4804 4980 FLIPX
PASTE A2C4 5045 5036 FLIP
PASTE C2 4978 5014 FLIP
PASTE D1 4898 4994 FLIPX
PASTE snark_welded 4201 4998 SWAPXY
PASTE B2 4152 5073 FLIPY
PASTE D1 4223 4999
PASTE splitter 3810 5043 FLIPY
PASTE snark_welded 4931 5012 RCW
PASTE B2 4536 5032 RCW
PASTE C2 4351 5043 FLIP
PASTE C3 4444 5073 RCW
PASTE splitter 5193 5062 FLIP
PASTE C2 4917 5060 FLIP
PASTE C2 4752 5061 FLIPY
PASTE A2C4 4991 5089 FLIP
PASTE snark_welded 4377 5038
PASTE B2 4530 5063 SWAPXY
PASTE splitter 3886 5082 FLIPY
PASTE splitter 4503 5065 SWAPXY
PASTE snark_welded 4726 5056 FLIPX
PASTE C1 4233 5090 FLIPY
PASTE splitter 5121 5097 FLIP
PASTE B2 4909 5140 FLIP
PASTE C2 4649 5094 SWAPXY
PASTE C2 4795 5091 RCCW
PASTE snark_welded 4869 5074 RCW
PASTE C2 4323 5098 SWAPXYFLIP
PASTE snark_welded 4252 5079 SWAPXY
PASTE C2 4418 5103 FLIP
PASTE A1 4216 5150 FLIPY
PASTE C2 4846 5120 FLIP
PASTE splitter 3970 5129 FLIPY
PASTE snark_welded 4444 5098
PASTE splitter 5049 5132 FLIP
PASTE C2 4271 5126 FLIPY
PASTE eater 4511 5111
PASTE snark_welded 4800 5117 RCW
PASTE B1 5794 5183 FLIP
PASTE snark_welded 4318 5124 SWAPXY
PASTE C2 4662 5148 FLIPY
PASTE C2 4379 5154 SWAPXYFLIP
PASTE B2 4471 5159 SWAPXY
PASTE snark_welded 4636 5143 FLIPX
PASTE splitter 4965 5179 FLIP
PASTE splitter 4064 5186 FLIPY
PASTE C2 4714 5176 RCCW
PASTE A2C4 4351 5168 RCW
PASTE A1 4859 5211 FLIP
PASTE C1 4557 5192 SWAPXY
PASTE C2 4767 5188 FLIP
PASTE A2C4 4242 5217 FLIPY
PASTE A1_welded 4410 5171
PASTE splitter 4126 5211 FLIPY
PASTE snark_welded 4374 5180 SWAPXY
PASTE B2 4312 5268 FLIPY
PASTE B2 4761 5270 FLIP
PASTE C2 4584 5225 FLIPY
PASTE splitter 4873 5234 FLIP
PASTE snark 4726 5206
PASTE splitter 4198 5246 FLIPY
PASTE snark_welded 4558 5220 FLIPX
PASTE C1 4678 5224 FLIPX
PASTE eater 4244 5238 RCCW
PASTE C2 4635 5264 RCCW
PASTE splitter 4350 5246
PASTE eater 4396 5254 SWAPXY
PASTE C3_welded 4695 5255
PASTE C2_welded 4429 5265
PASTE splitter 4770 5300 FLIP
PASTE snark_welded 4490 5283 RCCW
PASTE A1_welded 4383 5279
PASTE B2 4817 5281 FLIPX
PASTE C2 4495 5309 RCW
PASTE splitter 4275 5284
PASTE eater 4724 5292 SWAPXYFLIP
PASTE snark 4647 5294
PASTE C1 4609 5302 FLIPX
PASTE B1 4679 5378 FLIP
PASTE splitter 4913 5311 FLIPX
PASTE eater 4867 5319 RCW
PASTE A1 4315 5319
PASTE splitter 4192 5330
PASTE C1_welded 4400 5336
PASTE snark_welded 4425 5353 RCCW
PASTE A2C4 4897 5344 FLIPX
PASTE C2 4430 5379 RCW
PASTE C1_welded 4796 5355 FLIPX
PASTE splitter 4999 5360 FLIPX
PASTE splitter 4121 5364
PASTE A2C4_welded 4222 5365
PASTE snark_welded 4732 5392 SWAPXYFLIP
PASTE B1 4978 5389 FLIPX
PASTE C2 4727 5418 SWAPXY
PASTE snark_welded 4371 5410 RCCW
PASTE B1 4155 5396
PASTE C3 4353 5398
PASTE snark 4524 5407
PASTE C2 4376 5436 RCW
PASTE snark 4601 5421 FLIPX
PASTE snark_welded 4473 5444 FLIPY
PASTE splitter 4023 5425
PASTE snark 4548 5439 RCW
PASTE snark_welded 4812 5446 SWAPXYFLIP
PASTE splitter 5108 5432 FLIPX
PASTE C3 4831 5435 FLIPX
PASTE snark 4494 5460 FLIPY
PASTE C2 4447 5439 FLIPX
PASTE D1 4841 5526 FLIP
PASTE C1 4278 5448
PASTE snark 4572 5458 SWAPXY
PASTE snark_welded 4311 5471 RCCW
PASTE A2C4_weld2 4470 5459
PASTE A2C4_welded 4053 5460
PASTE snark 4495 5469 SWAPXY
PASTE D1 4715 5498 SWAPXYFLIP
PASTE splitter 3947 5464
PASTE A1 5083 5466 FLIPX
PASTE A2C4 4157 5484 SWAPXYFLIP
PASTE C2 4316 5497 RCW
PASTE D2_welded 4535 5489 SWAPXYFLIP
PASTE snark 4622 5485 RCW
PASTE B1 4571 5484 RCCW
PASTE splitter 5200 5487 FLIPX
PASTE snark_welded 4407 5509 FLIPY
PASTE C1_welded 4636 5497 RCCW
PASTE B1 3981 5496
PASTE C2 4381 5504 FLIPX
PASTE snark_welded 4233 5523 RCCW
PASTE splitter_welded 4472 5511
PASTE snark_welded 4729 5534 FLIP
PASTE A1 5175 5521 FLIPX
PASTE D1 4204 5603 FLIPY
PASTE snark_welded 4877 5539 SWAPXYFLIP
PASTE C2 4953 5527 FLIPX
PASTE splitter 3845 5529
PASTE A2C4 4104 5546 SWAPXYFLIP
PASTE C3 4422 5532 SWAPXYFLIP
PASTE C2 4755 5529
PASTE splitter 5286 5536 FLIPX
PASTE C2 4872 5565 SWAPXY
PASTE A2C4 4476 5561 SWAPXYFLIP
PASTE B2 3857 5562
PASTE B2 5284 5563 FLIPX
PASTE snark_welded 4327 5587 FLIPY
PASTE C2 5055 5572 FLIPX
PASTE splitter 4575 5631 RCCW
PASTE C2 4301 5582 FLIPX
PASTE eater 4583 5585 FLIPY
PASTE C3 4701 5589 RCCW
PASTE snark_welded 4181 5605 RCCW
PASTE splitter 3742 5595
PASTE splitter 5385 5598 FLIPX
PASTE splitter 4448 5651 SWAPXYFLIP
PASTE C3 4010 5601
PASTE C2 4186 5631 RCW
PASTE B1 4604 5610 RCCW
PASTE snark_welded 4959 5625 SWAPXYFLIP
PASTE A2C4 5121 5626 RCCW
PASTE snark_welded 4808 5632 FLIP
PASTE A2C4 4319 5616
PASTE D1 4888 5661 SWAPXYFLIP
PASTE C2 4954 5651 SWAPXY
PASTE B2 5383 5625 FLIPX
PASTE B1 4419 5630 SWAPXYFLIP
PASTE A1 3782 5630
PASTE B1 2775 5685 SWAPXY
PASTE splitter 3657 5643
PASTE MWSStoG135 2876 5662 FLIPY
PASTE C2 3857 5650
PASTE A2C4 5233 5675 RCCW
PASTE snark_welded 4112 5676 RCCW
PASTE snark_welded 4257 5682 FLIPY
PASTE splitter 5488 5664 FLIPX
PASTE snark 2914 5675 SWAPXYFLIP
PASTE D1 4177 5711 RCCW
PASTE B1 3691 5675
PASTE C2 4117 5702 RCW
PASTE MWSStoG135 2922 5693 FLIPY
PASTE snark_welded 4874 5702 FLIP
PASTE snark_welded 5031 5700 SWAPXYFLIP
PASTE splitter 4645 5738 RCCW
PASTE snark 2885 5712 FLIPY
PASTE C1 4772 5697 RCCW
PASTE D1 4954 5731 SWAPXYFLIP
PASTE A1 5463 5698 FLIPX
PASTE C2 5026 5726 SWAPXY
PASTE eater 4356 5706 FLIPY
PASTE splitter 3559 5704
PASTE splitter_weld2 4361 5707
PASTE splitter 5569 5708 FLIPX
PASTE C3 5349 5710 FLIPX
PASTE B1 4674 5717 RCCW
PASTE C2 4258 5745 SWAPXYFLIP
PASTE C2 3805 5731
PASTE snark_welded 4960 5761 FLIP
PASTE B2 4356 5755 SWAPXYFLIP
PASTE A2C4 5553 5741 FLIPX
PASTE snark_welded 5114 5759 SWAPXYFLIP
PASTE snark_welded 4029 5760 RCCW
PASTE splitter 5646 5748 FLIPX
PASTE snark_welded 4170 5772 FLIPY
PASTE weekender 4557 5756
PASTE C2 4986 5756
PASTE D1 5143 5839 FLIP
PASTE C2 4034 5786 RCW
PASTE D1 4090 5801 RCCW
PASTE C3 4809 5775 RCCW
PASTE A2C4 3724 5794 SWAPXYFLIP
PASTE B1 5625 5777 FLIPX
PASTE splitter 4706 5836 RCCW
PASTE C1 5419 5785 FLIPX
PASTE A2C4 4739 5820 RCCW
PASTE splitter 4313 5860 SWAPXYFLIP
PASTE splitter 5744 5809 FLIPX
PASTE snark_welded 4078 5835 FLIPY
PASTE snark_welded 3955 5838 RCCW
PASTE snark_welded 5193 5841 SWAPXYFLIP
PASTE C1 5496 5825 FLIPX
PASTE C2 4052 5830 FLIPX
PASTE C1 4205 5834 SWAPXYFLIP
PASTE B2 5742 5836 FLIPX
PASTE C2 3960 5864 RCW
PASTE D1 5222 5921 FLIP
PASTE B1 3487 5842
PASTE B2 4286 5862 SWAPXYFLIP
PASTE C2 4885 5879 RCCW
PASTE splitter 4755 5922 RCCW
PASTE splitter 5843 5871 FLIPX
PASTE splitter 3349 5877
PASTE C1 5603 5877 FLIPX
PASTE weekender[2] 4557 5886
PASTE snark_welded 3999 5913 FLIPY
PASTE A1 4789 5897 RCCW
PASTE snark_welded 3881 5914 RCCW
PASTE splitter 4254 5956 SWAPXYFLIP
PASTE snark_welded 5273 5923 SWAPXYFLIP
PASTE C2 3973 5908 FLIPX
PASTE A2C4 5712 5927 RCCW
PASTE C1 4132 5916 SWAPXYFLIP
PASTE C2 3886 5940 RCW
PASTE D1 5302 6003 FLIP
PASTE C2 3472 5940
PASTE A1 3360 5941
PASTE B2 4227 5958 SWAPXYFLIP
PASTE splitter 3235 5954
PASTE splitter 4810 6014 RCCW
PASTE snark_welded 5332 5979 SWAPXYFLIP
PASTE snark_welded 3226 5975 FLIPX
PASTE D1 5361 6059 FLIP
PASTE snark_welded 3924 6013 FLIPY
PASTE snark_welded 5193 6016 FLIP
PASTE splitter 4195 6052 SWAPXYFLIP
PASTE D1 3844 6042 RCCW
PASTE C2 4051 6029 SWAPXYFLIP
PASTE D1 5273 6045 SWAPXYFLIP
PASTE weekender[4] 4557 6016
PASTE MWSStoG135 6193 6044 FLIP
PASTE B1 4166 6031 SWAPXYFLIP
PASTE snark_welded 5403 6048 SWAPXYFLIP
PASTE C2 3377 6036
PASTE D1 5432 6128 FLIP
PASTE snark_welded 3835 6072 FLIPY
PASTE MWSStoG135 6146 6069 FLIP
PASTE GtoMWSS 6267 6067 RCW
PASTE A2C4 5982 6059 FLIPX
PASTE snark 6177 6061 FLIPX
PASTE C2 3809 6067 FLIPX
PASTE snark_welded 5266 6089 FLIP
PASTE splitter 6086 6077 FLIPX
PASTE D1 5346 6118 SWAPXYFLIP
PASTE snark_welded 3696 6100 RCCW
PASTE snark_welded 6095 6098
PASTE C2 3701 6126 RCW
PASTE splitter 4123 6161 SWAPXYFLIP
PASTE snark_welded 5478 6126 SWAPXYFLIP
PASTE D1 5507 6206 FLIP
PASTE snark_welded 3753 6152 FLIPY
PASTE A2C4_weld3 4009 6133
PASTE snark_welded 5339 6164 FLIP
PASTE C1 5090 6148 RCCW
PASTE B2_welded 4061 6145
PASTE C2 3727 6147 FLIPX
PASTE weekender[6] 4557 6146
PASTE B1 5003 6157 RCCW
PASTE D1 5419 6193 SWAPXYFLIP
PASTE C2 5918 6185 FLIPX
PASTE C2 3941 6223 SWAPXYFLIP
PASTE snark_welded 3678 6227 FLIPY
PASTE splitter 4061 6260 SWAPXYFLIP
PASTE snark_welded 5441 6237 FLIP
PASTE snark 3620 6239 FLIP
PASTE C2 3652 6222 FLIPX
PASTE A2C4 5147 6224 FLIPX
PASTE splitter 5035 6276 RCCW
PASTE C2 5467 6232
PASTE A2C4 4038 6258 SWAPXYFLIP
PASTE A1 5069 6251 RCCW
PASTE weekender[1] 4557 6278
PASTE snark_welded 5520 6309 FLIP
PASTE splitter 4008 6350 SWAPXYFLIP
PASTE A2C4 3865 6301
PASTE C2 5546 6304
PASTE splitter 5084 6362 RCCW
PASTE B1 3979 6329 SWAPXYFLIP
PASTE B1 5113 6341 RCCW
PASTE C2 5201 6366 RCCW
PASTE snark_welded 5605 6386 FLIP
PASTE snark 5664 6397 FLIPY
PASTE C2 5631 6381
PASTE C1 3837 6396 SWAPXYFLIP
PASTE splitter 3942 6453 SWAPXYFLIP
PASTE weekender[3] 4557 6408
PASTE splitter 5156 6471 RCCW
PASTE A2C4 3919 6451 SWAPXYFLIP
PASTE C1 5265 6440 RCCW
PASTE B2 5183 6469 RCCW
PASTE splitter 3900 6532 SWAPXYFLIP
PASTE splitter 5213 6565 RCCW
PASTE weekender[5] 4557 6538
PASTE weld_m 5329 6538
PASTE A2C4 5396 6611 FLIPX
PASTE splitter 5279 6668 RCCW
PASTE snark 3766 6655 FLIP
PASTE A1 5313 6643 RCCW
PASTE weekender 4557 6670
PASTE A2C4 5457 6696 FLIPX
PASTE splitter 5328 6754 RCCW
PASTE A2C4 5425 6763 RCCW
PASTE snark 5379 6794 FLIPY
PASTE weekender[2] 4557 6800
PASTE weekender[4] 4557 6930
PASTE weekender[6] 4557 7060
PASTE weekender[1] 4557 7192
PASTE weekender[3] 4557 7322
PASTE weekender[5] 4557 7452
PASTE rectifier 4618 7469
PASTE snark 4539 7503
PASTE snark 4505 7529 RCCW
PASTE weekender_to_glider 4581 7544
PASTE snark 4540 7572 FLIP
PASTE snark 4543 7581 SWAPXY
PASTE snark 4543 7615 SWAPXY
]]
An obvious thing that's missing (that was not missing from Xlife #I format!) is standard syntax to allow recursive definitions of larger objects. Chris Rowett put recursive definitions on the backlog for LifeViewer a couple of years ago when the above syntax was developed, but I don't think it's gotten anywhere near the top of the backlog since then.

Some wider interest in developing a syntax that could be used as input for a user-friendly circuit editor might possibly change LifeViewer backlog priorities... no promises, but this kind of thing has happened before.

User avatar
pcallahan
Posts: 845
Joined: April 26th, 2013, 1:04 pm

Re: A Broader Audience for Cellular Automata

Post by pcallahan » October 20th, 2021, 1:25 pm

dvgrn wrote:
October 20th, 2021, 12:36 pm
An obvious thing that's missing (that was not missing from Xlife #I format!) is standard syntax to allow recursive definitions of larger objects. Chris Rowett put recursive definitions on the backlog for LifeViewer a couple of years ago when the above syntax was developed, but I don't think it's gotten anywhere near the top of the backlog since then.
It used to bother me that the standard forms of CGoL patterns aren't structured, but I eventually decided it is probably because of the level of customization normally applied. That's still not an excuse, since there are underlying components even if stabilizers get modified to fit, and even if there are more substantial changes to geometry that preserve input/output connections. But it would take a lot more work than I would have been able to put into it in 1994 or whenever that was.

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

Re: A Broader Audience for Cellular Automata

Post by dvgrn » October 20th, 2021, 2:55 pm

hkoenig wrote:
October 19th, 2021, 11:20 pm
But if you want a broader audience, then you need to write tools with actual interfaces that encourage and restrict the actions of the user without making them responsible for all the fiddly parts. You also need to make it as visual as possible. No scripting language (at least at first), and most of all no keyboard entry. And you need to support the devices most likely to reach the widest audience-- tablets like the iPad, and WindowsPC. (If you do your iPad app right, you get the MacOS version with little extra effort.)
These are all good points, though I'm so keyboard- and mouse-dependent for my current CA pattern editing that good iPad support is very difficult for me to even imagine.

The widest version of "cross-platform" that I've been able to think about for a circuit editor, would be something built on top of Golly... specifically using the Lua overlay, which is extremely powerful but (apparently) quite daunting for anyone to get started working with. Different groups of cells could be named and highlighted, handles could be added to drag them around with "snap" functionality so that they can only be dropped where they'll actually work, welds could be added and subtracted automatically from a library of known welds, etc. Maybe some searches could be done for the most compact way to fit components into a selected area.

It's all doable with current technology, but needs a really focused effort to produce something workable.

hkoenig
Posts: 258
Joined: June 20th, 2009, 11:40 am

Re: A Broader Audience for Cellular Automata

Post by hkoenig » October 20th, 2021, 10:33 pm

Let's look at how one would put together a continuous synthesis using such a tool as I've mentioned--

Every Glider construction component consists of three elements-- the target objects list, the Gliders list, and the result objects list. (The target list can be empty for pure Glider constructions.) A couple of additional pieces of data can be useful-- the number of generations to get from the target to the result, and the history envelope (all the bits that are on at some point going from target to result.) These latter two can be computed, if necessary.

In order to chain together two (or more) such components, the second component needs to be transformed so that the result of the first component matches the target of the second. The second component needs to be pushed back at least the number of generations needed to get from first target to first result. Possibly more. An additional sanity check, especially with more than two components, would be to backtrack the last component Gliders to make sure they don't interfere with any existing objects, or with earlier incoming Gliders. It's probably possible to do this by a calculation incoming Glider paths looking for overlap. (Coming up with this is on my TODO: list.) And also make sure the history envelopes don't interfere with previous components.

Eventually, you get a full synthesis, and, ideally, one thing you did not have to do is create a bitmap or run a pattern to completion. Obviously doing that as a sanity check would be useful. And it can be fun to see the full evolution of such a pattern. But it shouldn't be necessary.

I'm not all that familiar with Herschel tracks and such, in large part because I keep waiting to get around to writing the tools that would make fitting the parts together easier than trying to constantly shift bits around. (I'm waiting for me to finish writing the necessary tools...) I would assume that something similar is needed- the starting Herschel location, the location of the channel objects, and the resulting Herschel and Gliders. Timing might also be more critical. But it should all be doable.

In my current Life workspace app, bit editing was added as an afterthought, because sometimes it is nice to add or subtract a bit or two, as when reducing a component target to the minimum bit count. But ultimately, the bitmap is considered just another object, just one that didn't come from the database or palette in the sidebar. And if it ends up being a real object, the app can substitute a object description for the bitmap.

Golly, as a general purpose tool, has its uses, and is quite powerful. I use it, for example, to extract out a specific contruction when the file contains multiple ones. It's easier to select a rectangle of bits, then paste into my editor and partition that into the target(s) and Gliders than it would be to paste and partition directly, then select and delete, one at a time, each object in the extraneous constructions. (Which actually means I need to figure out how best to implement an area selection tool...)

But adding what you are talking about to Golly defeats the purpose of providing a simple, straightforward interface and editor for a specific task. At a minimum, Golly would need a way for you to suppress all the options that don't matter for this application. Naive users are less willing to put up with non-standard interface elements, or look down on apps that can't or won't conform. On MacOS, for example, users expect it to look like the rest of MacOS, and sorry, Golly looks like it wasn't written for MacOS. Pasting a Lua overlay on that is only going to make it worse.

Remember, you are trying to get people interested who are not interested in the technical details and background. Who want something easy to use, and do not come from a math/technical background. The "discovery" vs. "invention" is perhaps the right way to think about it, and so far, we all have spent all our time making things easier for the discoverers, often at the expense of the inventors. As I said earlier, I haven't worked on/with Herschel tracks much because the mechanisms for fitting them together is too fiddly and time consuming, and I'm someone who has been interested in Game of Life since the Scientific American article was published, and I have a technical background in app development. If I'm turned off inventing, that means most of your possible audience is turned off, too.

The hypothetical app I'm discussing would have a palette or access to a database of components, allowing the user to pick and choose and place and transform the component without touching the keyboard (menu shortcuts and arrow keys are not "keyboard"). The app should fine tune the placement of new components. If the target and previous results overlap, the app would have the option to automatically adjust the new component's position and fit. The "snap-to" part. Manipulation by OS native style commands. (On iPad, for example, dragging components out of a sidebar into the work area, pinching to zoom in and out, touch gestures to move or transform component parts, etc.)

Writing app interfaces is hard, and non-trivial. I spent decades getting paid good money to do just that, until my permanent vacation started a few years ago. Interfaces are not fun, and don't get much recognition, except when they are bad. Which is why so many open-source projects have terrible interfaces or wisely stick to command lines. But if people are seriously interested in broadening the scope of Game of Life users/enthusiasts, it's a dirty task that needs to be addressed. Putting together interface libraries/frameworks for the most popular platforms would be the place to start. If nothing else, it would encourage other app writers to do better interfaces that work similarly.

(For my next rant, maybe I'll discuss why an object-oriented hierarchical data format for these sorts of tools would be better than massive RLE based strings, and why any new app like this should use a new encoding format, and why stamp collections these days are just wrong.)

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

Re: A Broader Audience for Cellular Automata

Post by dvgrn » October 21st, 2021, 9:12 am

hkoenig wrote:
October 20th, 2021, 10:33 pm
Let's look at how one would put together a continuous synthesis using such a tool as I've mentioned--
...
I'm not all that familiar with Herschel tracks and such, in large part because I keep waiting to get around to writing the tools that would make fitting the parts together easier than trying to constantly shift bits around. (I'm waiting for me to finish writing the necessary tools...) I would assume that something similar is needed- the starting Herschel location, the location of the channel objects, and the resulting Herschel and Gliders. Timing might also be more critical.
Things have moved on a bit from Herschel conduits (see the "Elementary Conduits Collection" link below) but the same "snap-together" idea definitely applies -- plus a slider bar might be needed somewhere where you can filter the conduits that you're allowed to choose from, based on the required safe repeat time of the finished circuit.
hkoenig wrote:
October 20th, 2021, 10:33 pm
Remember, you are trying to get people interested who are not interested in the technical details and background. Who want something easy to use, and do not come from a math/technical background.
Honestly my motivation is a little more complicated than that. I'd love to see an editor utility that can make constructions easier for people who are doing cutting-edge research work at the moment, such as finishing up syntheses for the last less-than-400 21-bit still lifes.

If that same editor can also draw the interest of a broader audience, that would be great too -- but it's not really my primary motivation, because I have a sneaking suspicion that it's something of a lost cause. Many of these construction projects really need access to multi-megabyte databases; the particular piece you need might be any of half a million items or so (for slsparse, the 3G database, the octohash database, Catagolue syntheses of smaller related objects, etc.) It seems really hard to provide user-friendly access to those various key pieces of information from an editor that's designed to work from a (reasonable sized!) palette of components.

But that's just my own wishful thinking -- not saying that a component editor "for the masses" wouldn't be a great idea on its own merits. Maybe there will be a "safety switch" in the corner of the screen, and as long as you leave the safety switch on, it's impossible to build a circuit that blows up -- but with the safety switch off, it's more up to you to come up with a way to solve any conflicts that you cause.
hkoenig wrote:
October 20th, 2021, 10:33 pm
(For my next rant, maybe I'll discuss why an object-oriented hierarchical data format for these sorts of tools would be better than massive RLE based strings, and why any new app like this should use a new encoding format, and why stamp collections these days are just wrong.)
I'll be interested to see that post! My suggestion for a starting point for the new encoding format is mentioned in my previous message, four posts up. I've also been doing what I can to improve the Stamp Collection Problem for the last few years.

The Elementary Conduits Collection, for example, is stored in the form of a lot of separated conduit definitions, which can be compiled on demand into labeled RLE. If we had support in Golly for a recursive pattern definition format, we could easily compile into that instead.

Then hotdogPi and I used a slightly different model for the rework of Dean Hickerson's oscillator stamp collection, but it's very similar. Whenever a new oscillator is added -- which is very frequently these days! -- the stamp collection can be recompiled via the script, with LifeViewer labels that are regenerated in the correct places. Still working on getting the sizes right for readability, but that's a minor issue!

hkoenig
Posts: 258
Joined: June 20th, 2009, 11:40 am

Re: A Broader Audience for Cellular Automata

Post by hkoenig » October 21st, 2021, 9:12 pm

dvgrn wrote:the stamp collection can be recompiled via the script, with LifeViewer labels that are regenerated in the correct places.
But how do you get that new object out? Or recognize that the stamp collection changed and figure out which are the new objects? Or know how many new objects there are? Can I xor an old one and the new one to do that? Or does the act of adding a new object completely reorder everything?

Much better would be to do a list of apgcodes and associated metadata (name, discoverer, date, rotor code, etc.) and be able to paste apgcodes into your favorite editor. And have a tool that takes an apgcode list or database and creates the stamp collection if that's what you want. Instead of just updating stamp collections, you could also generate and distribute update lists. (Or if it's a list, you can take the old list and the updated list and extract the differences.)

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

Re: A Broader Audience for Cellular Automata

Post by dvgrn » October 22nd, 2021, 11:51 am

hkoenig wrote:
October 21st, 2021, 9:12 pm
dvgrn wrote:the stamp collection can be recompiled via the script, with LifeViewer labels that are regenerated in the correct places.
But how do you get that new object out? Or recognize that the stamp collection changed and figure out which are the new objects? Or know how many new objects there are? Can I xor an old one and the new one to do that? Or does the act of adding a new object completely reorder everything?
Adding a new object potentially re-orders the stamp collection. XOR will kinda sorta work to find where the additions are, but it can get painful.

In the past I've made lists of Elementary Conduit Collection contents, by the names of the objects, and put the list at the bottom of the first post in the ECC thread (link was incorrect above, now corrected). There hasn't been any particular market for a script that will retrieve an elementary conduit by name, though that would be easy to do with a few lines of code starting with the published stamp-collection builder code.
hkoenig wrote:
October 21st, 2021, 9:12 pm
Much better would be to do a list of apgcodes and associated metadata (name, discoverer, date, rotor code, etc.) and be able to paste apgcodes into your favorite editor. And have a tool that takes an apgcode list or database and creates the stamp collection if that's what you want. Instead of just updating stamp collections, you could also generate and distribute update lists. (Or if it's a list, you can take the old list and the updated list and extract the differences.)
I definitely agree with all of this -- it's just that I only build this kind of thing when somebody actually turns out to need it.

Some Past Experience
This is probably a slight diversion from the thread topic, but the Elementary Conduit Collection has some interesting recent history related to this. Two or three times in the last half-decade, new people have appeared on the forums who have taken on the responsibility of updating the ECC -- and even though the builder script was posted and explained as clearly as I could do it, they ended up updating the stamp collection, flattening all the careful behind-the-scenes database building back down into an unqueryable RLE.

Of course this creates a non-trivial problem, finding the new additions in the RLE and back-porting them into a form that the builder script can use, or maybe re-working the builder script into a form that's so easy to update that nobody will be tempted to update the stamp collection RLE any more. That last option would be nice but I haven't figured out how to do it yet.

Case in point, MathAndCode's most recent ECC stamp collection, in a grid format, is pretty clearly an improvement in layout over the old builder script output -- it's more extensible, and easier to look things up in (eventually). But someone will have to go through the updated RLE and check every single subpattern, to see if it's one of the new ones, and add it to the builder script (or whatever database might replace it). So far I've successfully put that task off in hopes that someone else will do it eventually.

-- Also MathAndCode took out the X-to-Gn conduits (multiple parallel glider outputs), and I make use of those a fair amount. The grid format doesn't work so well for those, so I haven't worked out exactly what to do about cataloguing them (elsewhere?) yet.

All of which is to say...
RLE stamp collections are dead simple. In most cases they let people find what they need to find.

Attempts to improve data storage and retrieval past the stupid stamp collection model ... have to be very very well thought out and user-friendly (and preferably web-based, with nothing that has to be installed anywhere).

Otherwise it's like swimming against the tide to get anything implemented.

Post Reply