I've been running sweeps of OT rules for some time now to both get new ships and see if there are any interesting statistics when it comes to the prevalence of different speed ships at different widths. It's hit a point where I can't really do any more searches across every B3 rule in a reasonable amount of time, so I thought I'd share what I have with that while I look at B2 and B0 rules.
Attached are a bunch of colorful graphs that look like heatmaps. These are maps of the entire B3 rulespace, with different birth conditions representing different columns and different survival conditions representing different rows. Conditions are organized in gray code so that similar rules are closer to each other; the exact ordering is the same as the one in the maps generated by Eppstein's database parser.
The colors denote the minimum search width needed to find a spaceship of the given speed. Red is 4 or less, orange is 5, and so on, up to blue for width 12. Different graphs have different ranges of colors depending on at what point it became infeasible to search at a higher width.
- b3o.png (15.26 KiB) Viewed 5891 times
Left to right: c/2o, c/3o, c/4o, c/5o, c/6o, c/7o, c/8o, c/9o, c/10o, 2c/5o, 2c/7o, 2c/9o, 3c/7o, 3c/8o
Some immediate takeaways we can get from seeing these graphs side to side are already known: c/2 ships are present in fewer rules, and low-width ships become less prevalent at higher periods (and displacements). There are some other interesting things we can glean from this--for example, graphing the number of 1c/x ships of width 4 or less shows a rough negative exponential curve. (That being said, these statistics shouldn't be taken as gospel, since some speed/width combinations were searched for glide-reflect symmetries while others were not.)
Here are the graphs for diagonal speeds:
- b3d.png (5.46 KiB) Viewed 5891 times
Left to right: c/3d, c/4d, c/5d, c/6d, c/7d, c/8d, c/9d, 2c/7d
Some of the same patterns we see with orthogonal speeds also emerge here. The prevalence of ships tends to decrease as period and displacement increases, but it's not the same exponential decay as before. Note that c/4d, c/6d, and c/8d have many more ships than c/3d, c/5d, and c/7d, respectively, even though they all have higher periods. This is almost certainly because the speeds with even periods have spaceships with glide-reflect symmetry, while the speeds with odd periods cannot. (The extra rule restrictions on c/3d likely contribute to its relative lack of spaceships as well.)
I've filtered out all the ships that represent previously-unknown rule/speed combinations (about 8500) and stuck them in the database, which I've attached. I'll likely post the RLE-to-db script I used for that tomorrow, since I still need to clean it up a little. While I made sure there weren't duplicate ships, the width-by-width method I used to search for them means that there are still some redundant ships that are both larger and have less rule coverage than other ships. I started to filter them out by hand, but that turned out to be incredibly tedious and I didn't really have the drive to make a script for the process.
I also went through the existing database to verify that everything was proper and I found some errors which I've corrected in the attached file. There were a couple dozen ships that didn't have the correct rule range and a few B0 ships that either had rotated duplicates or missing analogues in their complementary rule (although I didn't do a full check for duplicate ships). I wasn't really sure what the proper way for dealing with this issue was, so I settled for just replacing the duplicate ships with the missing ships where I could, making sure to not change the numbers of any other ships. Overall ten net ships were added before I added the ships from the sweep (everything from Glider 22481 on).
The most interesting error was the thousand or so ships that weren't properly marked as glide-reflective. I'm assuming when Eppstein first started the database that he didn't care about making that distinction.
EDIT: I should add a disclaimer that I only worked off of the most recent .db file when adding new ships, and that I didn't manually search elsewhere to make sure all the new ships were actually new. So if someone sees a ship that's already been posted elsewhere in the database under my name, by all means correct that.