LifeCodex

For general discussion about Conway's Game of Life.
Post Reply
hkoenig
Posts: 98
Joined: June 20th, 2009, 11:40 am

LifeCodex

Post by hkoenig » February 26th, 2019, 10:35 pm

LifeCodex, available in the Apple App Store, is an iPad app that functions as a UI wrapper for an SQLite database which contains tables of Life Objects and Glider Constructions.

In the current version (1.0.0), it has all stable object up to 18 Bits, and all known oscillators and spaceships up to 30 Bits in size. It also includes about 3300 Glider constructions. The database size is around 43Meg. The next update, in a few weeks, will include stable objects to 20 bits, oscillators and spaceships to 100 Bits, and more constructions (about 117Meg).

Each object record contains the SOF, WCode, and RLE bit encoding representations, as well as a symmetry code (which I believe came from Dean Hickerson). Oscillators also contain the Hickerson Rotor Descriptor, along with a graphic representation. The UI provides a way to search the database based on any of these characteristics. Some objects containthea name, or discoverer. (Although at some point I stopped trying to figure out who the discoverer might be because it was more work that I wanted to put into it. I never kept track of dates, and don’t bother with names for objects that aren’t common or useful.)

WCode is a modified Apgcode. The bit encoding is the same, but the prefix is the same one I use for SOF, i.e. "nPnHnVn”). In the tables, the prefix is omitted, making searching a little easier. The prefixes are more of a user-readable decoration anyhow.

The construction database has several parts. In addition to the constructions, there are tables containing more generic “components”. These in turn contain individual Glider constructions that use the component to construct new objects.

The app supports copying RLE and pasting into Golly or other apps which support pasting of text.

I’ve put a price of $10 on the app, mostly as a way to filter out those who will download anything that is free and then do nothing but complain about how rotten it is. (If people are willing to pay for something, then I’m more willing to make improvements, too...) I can provide "Promo Codes", if you ask nicely, which will let you download the app for free. Just send me a private message or email with the name associated with your Apple account and an email address where I can send the code. Responses may or may not be quick, as I’m on “permanent vacation”, and this year I have been, and will be, for extended periods of time, in places where there is no Internet access.

Future plans— I’ve still got well over 1000 constructions from my files to add, and I haven’t even begun to add in the 15-, 16-, and 17-bit stable object constructions found and publicized over the last few years. That’s an obvious omission that will be corrected, eventually. The constructions need to be organized further, especially the ones that require a pseudo-object or intermediate object cluster. There are lot more larger oscillators and spaceships to be added, too. Using the StillCount application, I’ve generated all the stable objects and stable pseudo-objects up to 30 bits (working on 31 and 32 right now), and want to add these in some fashion. But I need to investigate how well this scales, as the raw files already take up over 360Gig. Then there’s the issue of how to distribute a data file that big...

I’m open to suggestions on how to make the database available outside the app, but not if the solutions involve Evil, Inc. (aka, Google) or other "free" services that claim ownership and redistribution rights. I’m more than willing to pay for a service if that is needed (another reason I have no problem in charging for the app).

If someone wants to go through and help add more information, like adding the missing discoverer info or object names, contact me. Corrections, or notes on omissions, are welcome.

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

Re: LifeCodex

Post by dvgrn » March 3rd, 2019, 3:27 pm

hkoenig wrote:LifeCodex, available in the Apple App Store, is an iPad app that functions as a UI wrapper for an SQLite database which contains tables of Life Objects and Glider Constructions.
Wow, this is a really nice resource! I have LifeCodex on my iPad now, and it almost seems like having the pentadecathlon.com component and construction catalogs available in this form might finally get me halfway familiar with the available tools for glider constructions.
hkoenig wrote:WCode is a modified Apgcode. The bit encoding is the same, but the prefix is the same one I use for SOF, i.e. "nPnHnVn”). In the tables, the prefix is omitted, making searching a little easier.
Is it possible to make a link to open a browser and jump directly to the relevant Catagolue page for a given object?
hkoenig wrote:The construction database has several parts. In addition to the constructions, there are tables containing more generic “components”. These in turn contain individual Glider constructions that use the component to construct new objects.
On my iPad, the slightly orangey red of the Source-only cells and input gliders, is hard for me to distinguish from the dark red of cells where Source and Result overlap. On a casual glance they both just look red. That might not be bad by itself, but I'm finding it hard to put together dark red + blue and see the shape of the Result pattern.

If I'm looking at say the "46B: 7.1 -> 10.5" recipe, is there a way to navigate directly to the 7.1 page and see how to construct that? It looks like the way to do it now is to backtrack all the way to the main directory page, and then find the right object from there. That's easy enough for object #1 on the 7-bit page, but might get a bit more painful when there are lots of pages of objects to scroll through.

It looks like the numbers on each construction page show the number of gliders for each conversion, but is there a place I should look for a total count for the cheapest construction path?

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

Re: LifeCodex

Post by hkoenig » March 3rd, 2019, 11:32 pm

dvgrn wrote:Is it possible to make a link to open a browser and jump directly to the relevant Catagolue page for a given object?
Yes, it is. Will add that to the list of improvements.
dvgrn wrote:On my iPad, the slightly orangey red of the Source-only cells and input gliders, is hard for me to distinguish from the dark red of cells where Source and Result overlap. On a casual glance they both just look red. That might not be bad by itself, but I'm finding it hard to put together dark red + blue and see the shape of the Result pattern.
I'm not happy with the way the colors work, either. I keep experimenting, and am open to suggestions (pictures, along with the RGB values, would be best).
dvgrn wrote:If I'm looking at say the "46B: 7.1 -> 10.5" recipe, is there a way to navigate directly to the 7.1 page and see how to construct that?
I want to improve the navigation between constructions, too. Make the result object an active link to its constructions, and create a table showing the steps. That would also make navigation back to the beginning easier.
dvgrn wrote:It looks like the numbers on each construction page show the number of gliders for each conversion, but is there a place I should look for a total count for the cheapest construction path?
Looks like I'm missing a label. As for cumulative totals, maybe part of the table created in the previous answer.

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

Re: LifeCodex

Post by dvgrn » March 4th, 2019, 8:01 am

hkoenig wrote:I’m open to suggestions on how to make the database available outside the app...
This brings up a thorny problem that we've been trying to sort out on the LifeWiki for quite a while now, related to glider syntheses. Might not be something you'd want to undertake yourself, but any ideas would be welcome.

It would be wonderful if there could somehow be one "source of truth" for the best known glider recipes for objects. At the moment there are several partial sources of truth -- your database, Mark Niemiec's pages, Catagolue/chris_c's still life synthesis script, Bob Shemyakin's collections, syntheses uploaded to the LifeWiki, etc.

The way it works now, LifeWiki articles are perennially behind, sometimes by many years. Just for example, a 6-glider tumbler synthesis was found in 2014, but only got uploaded a couple of days ago -- probably mostly due to only admins and moderators being able to upload patterns, which is because those uploads can't be rolled back as easily as regular article edits. That's getting a lot better now that the RLE namespace is getting some use and an auto-upload script is getting run now and then, but it's still more than a little awkward.

Mark Niemiec may be coming out with a new edition of his database and search pages fairly soon, so it definitely seems like a waste of time to add to the LifeWiki any syntheses from the current version of the database. But really it would be much better if syntheses didn't have to be uploaded one by one at all. A link to some external location would be much better.

At the moment Catagolue seems like it might be a viable common collection point, if some more server-side code is added. The collection point should really be able to accept online submissions of new-record syntheses and update the database immediately, ideally with no further human intervention needed.

Luckily it's not really possible to fake a record-breaking synthesis, so spam submissions wouldn't be much of a problem: the system would just have to check that the submitted synthesis is made out of nothing but gliders, count the gliders, run the pattern, check that the target object is present and nothing else -- and then maybe rewind the gliders some number of ticks and re-run.

If it all checks out, then if the target pattern gets used in other best-known syntheses and this is recorded in the database, those counts could be updated at the same time.

It seems a little trickier to collect non-record-holding converter recipes -- say, a synthesis that's more expensive but also has more clearance than the usual one -- without allowing possible fakes. But maybe those wouldn't really be attractive targets for anyone to fake anyway, precisely because they wouldn't set new records. As long as someone reviews new converter recipes now and then, an online converter collection system would probably work out fine.

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

Re: LifeCodex

Post by hkoenig » March 10th, 2019, 11:58 am

Version 1.0.1 is available. The database now has all stable objects to 20 bits, and oscillators and spaceships to 100. Includes another 100 Glider constructions, and fixed some bad entries.

Also, by request, object views include a link to their Catagolue page.

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

Re: LifeCodex

Post by hkoenig » October 6th, 2019, 4:07 pm

Version 1.0.2 is now available. Mostly a database update. Added 21-bit and 22-bit stable objects, added pseudo-objects up to 16-bit, and updated oscillators and spaceships. Also brought the number of constructions to over 7000, and added several hundred construction component categories. Database size is now well over 350 Megabytes.

Only real coding change was adding an action which allows the database to be extracted and exported from the app for use elsewhere. If you need a text version of the schema, contact me.

Post Reply