All of our ideas for solving this puzzle started with one common theme: identifying each input metal by attempting to project it six times. We felt that Purification would be too destructive. But after that common start, our first idea proceeded in a much different way. We attached all of the "extra" quicksilvers to a six-atom stick register, and checked to see if the whole construct was the same length as the prior pass. If yes, use one QS to increment the counter atom. If not, add the counter atom to the output, and use the QS stick to project a new lead atom up to the proper metal. This idea was quite fast, as the two projection stages could run at pseudoperiod 3. But waving a stick around swept a big chunk of space, and the machinery necessary to handle all of the possible register configurations quite costly. The first draft clocked in around 2200 wSum. ******* The idea for our second approach was originally born out of aesthetics. What if we made the register out of a peeled, stickified Ravari's Wheel instead of plain lead? That way, the grab point would visually indicate which metal was currently encoded! Cool, right? Almost immediately, this raised a question. Why not just use a wheel to track machine state? Circles are more area-friendly than sticks; there should be less purification to do, since all the metals are present in it already; and there would be a whole lot less initialization, to boot. And so our second idea, the progenitor to this solve, was born. The main test here is quite simple, and involves only a single atom at a time, as follows: --If the current atom is quicksilver, increment the counter. --If the current atom is metal, output the counter and the current atom, and initialize a new counter This test is easy and cheap to perform: just place the atom on a projector input, with the counter on the other side. The tough part is arranging the conditionals so that identical metals will produce quicksilver on subsequent runs. Our brainwave there was to modify the wheel. We already pull the indicated spoke off of the wheel and use that for the output, so why not just replace it with QS and add it back to the queue? So whenever the output machinery pulls an atom off the wheel, it will get QS if it is repeated from before, or metal if it is something new. That didn't *quite* work as envisioned--the algo falls apart as soon as you see two distinct metals, and now have a wheel with 2+ QS atoms on it. No good. But it DOES work if you modify the NEXT wheel, pulled fresh from the input with all six metals. That is what the bulk of the machinery here is doing. The last challenge, then, was to figure out how to indicate which metal should be detached. The wheel, once again, offered us an answer: timing conditionals! If we slowly pivot the wheel six times, we just have to toss it into the debonding mechanism when the desired metal is in the right spot. To do that, we return to our very first idea: overprojecting the input atoms. As soon as one QS "spills over," it attaches to the appropriate metal on the modified wheel. The modified wheel is wanded away, attaches to the next fresh wheel, and the whole process begins. *********** This idea was not as fast as the stick register, since it can only operate at pseudoperiod 4. But even the first draft of it was half the cost and 70% of the area, clocking in just above 1500 wSum. Massive savings. Some classic OM optimization--particularly cost savings on disposal machinery--saved ~400 more, and here we are. Great puzzle, hallojasper!