My quest to make the most efficient machine possible. After discussing in the Discord about optimizing these puzzles in general, linear programming was brought up. It took me a while to get it, but the idea is that you can do all necessary processing on lead, then tin, then iron, and so on until you have all the metal and mercury atoms needed to make your output. For turning this into a linear program, consider that you can have say half a mercury atom in the program, as long as you double everything in the machine. Given this, you should be able to optimize critellium by pasting this into https://online-optimizer.appspot.com/?model=builtin:default.mod. var HgPb>=0; var HgSn>=0; var HgFe>=0; var HgCu>=0; var HgAg>=0; var PbA>=0; var SnA>=0; var FeA>=0; var CuA>=0; var AgA>=0; var Hg0=1; var Pb0=1; var Sn0=1; var Fe0=1; var Cu0=0; var Ag0=0; var Au0=0; var Hg1; var Pb1; var Sn1; var Fe1; var Cu1; var Ag1; var Au1; var r; maximize z: r; subject to Hg: Hg0 =Hg1+HgPb+HgSn+HgFe+HgCu+HgAg; subject to Pb: Pb0 =Pb1+HgPb+2*PbA; subject to Sn: Sn0+HgPb+PbA=Sn1+HgSn+2*SnA; subject to Fe: Fe0+HgSn+SnA=Fe1+HgFe+2*FeA; subject to Cu: Cu0+HgFe+FeA=Cu1+HgCu+2*CuA; subject to Ag: Ag0+HgCu+CuA=Ag1+HgAg+2*AgA; subject to Au: Au0+HgAg+AgA=Au1; subject to rHg: Hg1=2*r; subject to rPb: Pb1=0; subject to rSn: Sn1=0; subject to rFe: Fe1=0; subject to rCu: Cu1=0; subject to rAg: Ag1=3*r; subject to rAu: Au1=3*r; end; Here is what it says when you convert back to Opus Magnum terms. First, grab 136 inputs. 136Hg 136Pb 136Sn 136Fe Purify all lead into tin 136Hg 204Sn 136Fe Purify all tin into iron 136Hg 238Fe Purify all iron into copper 136Hg 119Cu Project 61 mercury onto copper 75Hg 58Cu 61Ag Purify all remaining copper into silver 75Hg 90Ag Project 45 mercury onto silver 30Hg 45Ag 45Au This will allow you to make 15 outputs. Since I see the attempt at a choose-your-own-metric puzzle, I will choose the "laggiest solve" metric. Force stupid ratios; get stupid solves.