Complex multi-stage components that perform a key transformation are problematic for transfer.py because it can handle only one stage at a time. It ends up with components that have several steps in one, but these steps cannot be optimised individually if a cheaper method is found for them. Major improvements to the database can easily come from updating these compoenents.
For example, this component used to cost 25G :
Code:
Select all
x = 72, y = 73, rule = B3/S23
bo4bo62bobo$2bo4b2o60b2o$3o3b2o6bo55bo$15b2o$14b2o7$16bo$17bo$15b3o9bo
$25bobo37bo$10bobo13b2o37bobo$11b2o6bo45b2o$11bo8b2o$19b2o$56bo6bobo$
54b2o7b2o$55b2o7bo4$47bo$46bo$46b3o2$38bo$39b2o9bo$29bo2bo5b2o8b2o$33b
o15b2o$29bo3bo$30b4o21bobo$55b2o$56bo$42b2o8b2o$43bo8bobo$43bob2o5bo$
42b2obo$44bo2bo10b3o$44bob2o10bo$43b2obo12bo$46bo$46b2o6$21b2o$16bo5b
2o$16b2o3bo$15bobo3$15b2o$14bobo$16bo4$3b2o$2bobo$4bo5$5b2o$6b2o$5bo!
New 17G recipe (only the penultimate step is by me) :
Code:
Select all
x = 70, y = 68, rule = B3/S23
9bobo$10b2o$10bo56bobo$67b2o$4bo59bo3bo$2bobo57b2o$3b2o58b2o2$7bo$5bob
o$6b2o2$18bo$16bobo39bo$17b2o39bobo$58b2o3$48bo7bobo$48bobo5b2o$48b2o
7bo5$8bo30bo$6bobo8bo19bobo$7b2o6bobo9bo10b2o$16b2o10b2o$27b2o12b2o$
41bobo$41bo4$43bo$42b2o$17b2o15b2o6bobo$16bobo16bo$18bo16bob2o$34b2obo
$36bo2bo$36bob2o12b2o$35b2obo12b2o$38bo14bo$38b2o20$b2o$obo$2bo!
I found 1540 applications with transfer, and I will try to find more components like this one.
I also reduced this grin to pre-bock component that has 47 applications from 9G to 6G (old version above, new below) :
Code:
Select all
x = 76, y = 55, rule = B3/S23
9bo$10b2o$9b2o2$bobo$2b2o12bo56bo$2bo12bo40bo16bobo$15b3o39b2o14b2o$
56b2o$11bobo35bo$12b2o36bo$12bo35b3o2$52b3o11bo$2o6b2o44bo10bobo$b2o4b
o2bo42bo10bo2bo$o4bo2b2o52bo2b2o$5b2obo53b2obo$7bo2bo53bo2bo$7bob2o53b
ob2o$4b2obo53b2obo$4bob2o53bob2o14$48bo$46b2o$29bobo10bo4b2o$30b2o10bo
bo$25bo4bo11b2o$26b2o$25b2o$18bo$19bo$17b3o2$21b3o$23bo10b2o$22bo10bo
2bo$31bo2b2o$31b2obo$33bo2bo$33bob2o$30b2obo$30bob2o!
Together, these improvements reduce the most expensive xs20 by 10G.
Edit :
I reduced another multi-stage component from 57G to 33G and found 57 applications of it:
Code:
Select all
x = 156, y = 149, rule = B3/S23
151bo$151bobo$151b2o7$26bo$27bo$25b3o$129bo$127b2o$128b2o4$32bobo$33b
2o$33bo86bo$120bobo6bobo$120b2o7b2o4bo$42bo87bo3bo$40bobo91b3o$41b2o$
110bo11bo$110bobo9bobo$110b2o10b2o$46bo$44bobo$45b2o$108bobo$108b2o$
109bo11$67bo$68b2o$67b2o9$84bo$82b2o$83b2o2$90bo$85b2o3bobo$85bobo2b2o
$85bo$69b2obobo$68bobob2obo$68bobo4bo$67b2obob2obob2o$71bobobo2bo$76b
2o4$91b2o$91bobo$91bo17$68b2o$69b2o$68bo10$50bo$50b2o$49bobo3$124b2o$
123b2o$125bo7b2o$132b2o$134bo5$125bo$32b3o89b2o$34bo89bobo$33bo2$27bo$
27b2o$26bobo2$128b3o$128bo$129bo2$142bo$141b2o$141bobo$23b2o$24b2o$23b
o2$131b2o$130b2o$132bo2$12b3o7b3o$14bo9bo$6b2o5bo9bo$5bobo$bo5bo145b3o
$b2o150bo$obo151bo!
Old version :
Code:
Select all
x = 308, y = 297, rule = B3/S23
300bo$298b2o$299b2o32$254bo$253bo$253b3o5$238bo$236b2o$237b2o3$76bo$
77b2o$76b2o155bo$231b2o$232b2o$247bo$246bo$246b3o4bo$251b2o$232bo19b2o
$84bo147bobo$85bo146b2o$83b3o2$91bo$89bobo$90b2o132bobo$224b2o$110bo
114bo$111bo$109b3o5$100bo$98bobo$99b2o2$119bo$120bo$118b3o4$196bo$194b
2o$195b2o$102bobo99bobo$103b2o99b2o$103bo101bo$108bobo$109b2o$109bo$
194bobo9bobo$194b2o10b2o$195bo11bo$113bo$114b2o$113b2o$192bo$192bobo$
192b2o11$136bo$137bo$135b3o3$137bo$138b2o$137b2o31bo$168b2o$169b2o2$
172bobo$172b2o$151bo21bo$149bobo$150b2o2$167bobo$154bobo10b2o$155b2o
11bo$155bo3$155bobo3bo$156b2o3bobo$156bo4b2o2$145b2obobo$144bobob2obo$
144bobo4bo$143b2obob2obob2o$147bobobo2bo$152b2o9$173bo$172b2o$172bobo
10$211b2o$211bobo$211bo8$136b3o$138bo$137bo10$118b2o$117bobo$119bo3$
208b2o$208bobo17b2o$208bo19bobo$228bo6$220b3o$220bo$221bo12$91bo$91b2o
$90bobo134bo$226b2o$226bobo2$96bo$96b2o$95bobo4$250b2o$250bobo$250bo6$
67b2o172b3o$68b2o171bo$67bo174bo3$61b3o$63bo$62bo2$244b2o$243b2o$245bo
$61b3o$63bo$62bo6$248b2o$43bo204bobo$43b2o203bo$42bobo4$42b3o$44bo$43b
o7$278b2o$278bobo$278bo$36b3o$38bo$37bo$24b3o$26bo$25bo9$17bo$17b2o$
16bobo$10b2o$11b2o$10bo4$bo303b3o$b2o302bo$obo303bo!
Edit 2:
Another version with slightly better clearance and 15 more applications.
Code:
Select all
x = 156, y = 149, rule = B3/S23
151bo$151bobo$151b2o11$37bo$35bobo$36b2o92bobo$130b2o$131bo$32bobo$33b
2o$33bo86bo$120bobo6bobo$120b2o7b2o4bo$42bo87bo3bo$40bobo91b3o$41b2o$
110bo11bo$110bobo9bobo$110b2o10b2o$46bo$44bobo$45b2o$108bobo$108b2o$
109bo11$67bo$68b2o$67b2o9$84bo$82b2o$83b2o2$90bo$85b2o3bobo$85bobo2b2o
$85bo$69b2obobo$68bobob2obo$68bobo4bo$67b2obob2obob2o$71bobobo2bo$76b
2o4$91b2o$91bobo$91bo17$68b2o$69b2o$68bo10$50bo$50b2o$49bobo3$124b2o$
123b2o$125bo7b2o$132b2o$134bo5$125bo$32b3o89b2o$34bo89bobo$33bo2$27bo$
27b2o$26bobo2$128b3o$128bo$129bo2$142bo$141b2o$141bobo$23b2o$24b2o$23b
o2$131b2o$130b2o$132bo2$12b3o7b3o$14bo9bo$6b2o5bo9bo$5bobo$bo5bo145b3o
$b2o150bo$obo151bo!
Edit 3:
3G component that appends a beehive in a corner:
Code:
Select all
x = 19, y = 20, rule = B3/S23
9bo$7bobo$8b2o3$6bo$4bobo$5b2o5$b2o13b2o$obo11bo2bo$2bo11b2o$11b2obo$
11bobo2bo$14b2obo$17bo$17b2o!
Unfortunately, it didn't help me synthesising
xs22_03h4eharz47011.
Edit 4 (on July 3rd) :
9G component with good clearance for adding a hook-with-tail on an obo!-shaped surface, a key improvement for some of the most expensive pseudo still-lifes :
Code:
Select all
x = 60, y = 26, rule = B3/S23
42bo$43bo11bo$41b3o9b2o$54b2o2$47bo10bo$45bobo9bo$46b2o9b3o4$47bo4bo$
48bo3bobo$46b3o3b2o2$o39bo$3o8bo28b3o$3bo6bo32bo$2bo7b3o29bo$2b2o38b2o
2$45b2o$45b2o$7b3o46b2o$7bo48bobo$8bo47bo!
Old recipe costed 19G :
Code:
Select all
x = 171, y = 179, rule = B3/S23
168bobo$168b2o$169bo$57bobo$58b2o$45bobo10bo$46b2o$46bo10$170bo$168b2o
$169b2o4$158bo$156b2o$157b2o33$10bo$9bo$o8b3o92bo$3o101b3o4bo$3bo103bo
2bobo$2bo9bo93bo3b2o$2b2o7bo94b2o$11b3o96b2o$109bobo$9bo100bo$8b2o$8bo
bo3$3b2o$4b2o$3bo31$165bo$164b2o$164bobo$77bo$77b2o$76bobo3$45b2o$44bo
bo$46bo$150b3o$150bo$151bo3$50b3o$52bo$51bo$56b3o$58bo$57bo$167b3o$
167bo$168bo42$101bo$102b2o$101b2o4bo$107bobo$107b2o$101b2o$100bobo$
102bo!
This notably improves the cost of
xs16_1784czw321e8 from 23G to 13G and shows that all pseudo still-lifes with 17 bits or less are synthesisable with strictly less than one glider per bit.
Edit 5 (July 15th):
Stacking a snake on a pile in 13G, using an intermediate bookend. This is much cheaper than the previous recipe by wwei47, calcyman, iNomed and MathAndCode (
viewtopic.php?p=135883#p135883).
Code:
Select all
x = 85, y = 62, rule = B3/S23
10$58bo$56bobo$57b2o6$67bo$65b2o$48bo17b2o$49bo$47b3o2$65bo$64bo$6bo
57b3o$7bo$5b3o50bobo$59b2o$19bo39bo$17b2o$18b2o4$19bo$19bobo$5b2ob2o9b
2o54bo$6bobo45b2ob2o2b2o12bobo$5bo3bo45bobo2bobo12b2o$5b2ob2o11b3o30bo
3bobo$21bo32b2ob2ob2o$22bo54b3o$77bo$78bo$18b2o$18bobo52b3o$18bo54bo$
74bo!
Old 43G recipe for reference (slightly adapted from Catagolue which used wwei47's 60G version, without MathAndCode's improvements) :
Code:
Select all
x = 362, y = 80, rule = B3/S23
330bobo$2bo131bo198bo$obo129b2o199bo$b2o130b2o195bo2bo$62bo268b3o$62bo
bo$62b2o5$306bobo$307b2o$307bo$110bobo86bo156bo$111b2o84b2o155b2o$111b
o86b2o155b2o$118bobo$118b2o82bobo$119bo69bo12b2o$176bobo9bo14bo$104bo
72b2o9b3o$102b2o73bo$46bo56b2o252bo$46bobo47bobo87bobo4bo163bobo$46b2o
49b2o88b2o2b2o164b2o$97bo24bo64bo4b2o$121bo$121b3o$188b2o58b2o$188b2o
58b2o$111bo$36bo68bobo3bobo74b4o54b4o$36bobo67b2o3b2o61b2o12bo3bo53bo
3bo$36b2o68bo68b2o14bobo55bobo85b2o$19b2o74b2o77bo6b2o8b2o46b2o8b2o86b
2o$19bobob2o70bobob2o80bobob2o52bobob2o$21bobo73bobo83bobo55bobo11bo5b
o73b4o$20bo3bo71bo3bo81bo3bo19b2o32bo3bo9bo5bo74bo3bo$20b2ob2o71b2ob2o
12b2o67b2ob2o19bobo31b2ob2o9b3o3b3o75bobo$104b2obo4bobo75b2obo12bo41b
2obo76b2o8b2o$103bo2b2o6bo74bo2b2o53bo2b2o76bobob2o$99b2obobo80b2obobo
52b2obobo81bobo$24b2o73b2ob2o81b2ob2o53b2ob2o81bo3bo$24bobo302b2ob2o$
24bo224b2o86b2obob2o$20b2o226bobo85bo2b2ob2o$19bobo228bo81b2obobo$21bo
231b2o77b2ob2o$142b2o109bobo83b2o$141b2o110bo85b2o18b3o$143bo215bo$38b
3o319bo$18b2o18bo$17bobo19bo$19bo2$348bobo$48b3o297b2o$48bo300bo$49bo
5$319bo$61bo257b2o$60b2o256bobo$60bobo288bo$350b2o$350bobo7$329b2o$
328bobo$330bo!
Edit 6 (July 16th):
New improvement to the first component in this post, now down to 11G. I used a variation on an obscure component from Catagolue to skip one more stage.
Code:
Select all
x = 53, y = 32, rule = B3/S23
34bobo$34b2o14bobo$5bo29bo14b2o$o5b2o43bo$b2o2b2o31bo7bobo$2o36bobo5b
2o$38b2o7bo5$29bo$27bobo$17bo10b2o$18b2o$17b2o12b2o$31bobo$31bo4$33bo$
32b2o$24b2o6bobo$25bo$25bob2o$24b2obo$26bo2bo$26bob2o12b2o$25b2obo12b
2o$28bo14bo$28b2o!
This version had 1738 applications.
Edit 7 :
May13 wrote: ↑June 8th, 2024, 6:22 am
I reworked this component, so it's possible to make an egyptian walk:
Code: Select all
x = 70, y = 60, rule = B3/S23
43bo$41b2o$42b2o25bo$67b2o$68b2o10$26bo$13bo13bo5bo$11bobo11b3o4bo$12b
2o18b3o$53bo$51b2o$52b2o2$35bo$35bobo$35b2o$49bo$49bobo$49b2o3$10bobo$
11b2o$11bo6$32b2o$33bo$32bo$32b2o$34bob2o$34b2obo9b2o$32b2o12b2o$33bo
14bo$33bob2o$34bobo5$57b2o$57bobo$15b2o40bo$8bo5bobo$8b2o6bo$2o5bobo$b
2o$o!
Slightly improved cleanup. This component allows to reduce
xs18_o8bd0mqz23 (the most expensive 18-bit pseudo still-life since today) from 31G to 24G.
Code:
Select all
x = 56, y = 55, rule = B3/S23
2bo$obo$b2o9bobo$13b2o$13bo7$20bo$7bo13bo5bo$5bobo11b3o4bo$6b2o18b3o$
47bo$45b2o$46b2o2$29bo$29bobo22bo$29b2o22bo$43bo9b3o$43bobo$43b2o3$4bo
bo$5b2o$5bo6$26b2o$27bo$26bo$26b2o$28bob2o$28b2obo9b2o$40b2o$27bob2o
11bo$27b2obo8$9b2o$2bo5bobo$2b2o6bo$bobo!
Edit 8 :
9G python to long shillelagh with good clearance on the hook side. Reduces the cost of
xs20_69j0j5oz321011 and
xs20_69j0j96z321011 (the most expensive 20-bit pseudo still-lifes) by 9G.
Code:
Select all
x = 79, y = 26, rule = B3/S23
32bo$32bobo$32b2o2$77bo$76bo$bo74b3o$2bo$3o30bobo36b2o$26bobo4b2o36bo
2bo$27b2o5bo37b2o$12bo14bo$10bobo6bo$11b2o4bobo$18b2o14bobo$34b2o$12b
2o21bo$11bobo$13bo5$25b2o40b2o2b2o$25bobobo37bobo2bo$28b2o40b2o!