This machine uses the naivest algorithm of comparing the match pattern to the sample at every index, requiring 4 x 3 x 6 = 72 comparisons, and comparison is a long operation. Given this massive multiplier, the steep discount on cost, and the not-quite-negligibility of area, I find that--and please listen carefully--speeding up comparison is the only part of this computation that actually matters. Saving a single cycle on the computation would be repeated 72 times, and I can afford 8 pistons with that. So how do I make comparation fast? The basics are that comparation occurs by placing the two elements in a Glpyh of Unification and trying all six combinations of two other elements. If the elements are different, quintessence will form, which I can use as a 'failed comparation' signal. The six combinations can be supplied by a single hexarm rotating nine times--two to reset, and one 'dead' turn because the elements cannot be lined up so neatly. The hexarm tries the elements, in pairs, in this order, where the second element of one pair becomes the first element of the next pair: EFAWEAFW. The "AF" combination would be wasted, since it is already checked earlier with "FA". This would take 9 x 3 = 27 cycles per comparation. Note that the hexarm has to cover the salt input and be powered by both a Calcifier and Van Berlo's Wheel to solve the questions of "how do I change the hexarm's elements as it rotates without losing any time" and "what do I do if elements are consumed by Unification". But to do that 72 times requires almost 2000 cycles, so I asked a contact for a second Glyph of Unification. Two flywheels can share the same salt input, albeit more slowly, but they can perform their 9 x 4 = 36-cycle comparations in parallel. In practice, due to quirks of my loading and unloading layout that we really don't have time for, we essentially do all three comparations for every match-pattern test in one mega-operation that is almost-but-not-quite three times as long; I switch out the elements being compared so as to avoid two of the three 'dead' turns and pay 6 extra cycles per mega-operation due to mumble mumble timing, so it works out to more like a 29-cycle comparison. I say 'more like' because I probably forgot something. And since they're done in tandem, this is effectively 14.5 cycles per comparation. Much better. The mega-operation depends on how I can simplify the quintessence logic--there is no need to check for quintessence after every individual equality test, only once after every set of three. Any rejected equality test rejects the entire match-pattern test at that index, so I can genuinely leave the quintessence on its glyph until it's time to perform the next match-pattern test. There is some sleight of hand in the layout. The salt input is buried under spinning arms, so I cannot use that input to make duplicates of the exoplanetary sample without slowing down comparation (the only thing that matters), so I calcify a copy of the match pattern and duplicate onto that. The output logic arms use their downtime to reset the gold latch after each comparison, and it doesn't matter if the gold is outputted or not. It is hard to find a salt for the output because I cannot guarantee that any given cardinal headed for the Glyph of Disposal will actually be there (it might have gotten unified), but since Unification only happens once per mega-operation, I can pluck two cardinals close together from the waste stream and ensure at least one of them is actually there. More boring conditionals in the bonding nest, a Gylph of Calcification, and viola, salt. And finally, Van Berlo's Wheel cannot keep up with both flywheels even on a track, so as part of initialization, it builds an intern to help. This is a sprawling, expensive machine. And yet, 222 of my score is from gold, 150 is from area, and over a thousand is from cycles. I repeat: only thing that matters. What more could be done? I experimented with Dispersing quintessence, which could inject cardinals back into the flywheels the same way that the salt input does. This would allow for period-3 turns instead of period-4 again, and even a quad-core design, but this introduces so many complications that I was not motivated to finish even a dual-core Dispersion design. There is also Triplex Preprocessing, in which before comparing match pattern and exoplanetary sample atoms in the Glyph of Unification, I run them both past two Triplex gylphs. If only one triggers, then the comparison is rejected, and if zero or both trigger, the comparison proceeds as normal, but with a much shorter element-trying sequence of AFEFW. This is possibly twice as fast, and I kick myself for thinking of it in the last 8 hours of the contest. Or we ignore what the Warmup taught us altogether, and use Unification to identify cardinals individually. Loosely, we can tell which cardinal it was by which gaps appear in the flywheels' grippers, then use those gaps to build "keys" out of gold, with the positions of the teeth representing the cardinals. Build a single, permanent key with notches instead of teeth for the match pattern, then build keys for the exoplanetary samples and pass them along the match pattern over a sea of bonders and debonders. The keys repeatedly bond and debond with each movement, until there is a match--in which the teeth and notches will pass over each other, slipping the bonding and debonding for a few cycles. The slipped movement gets detected somehow, and that determines the output. Then the exoplanet key is Disposed of. The key method could be so outrageously faster that cost and area become relevant again. I've learned from the best during my tenure at House van Bergen. May we all pursue our Opus Magnum. - Alchemist Kazyan, /u/StillNotABrick