I've been a fan of spinning really fast ever since I was tall enough for those rotating amusement park rides with the swings that gradually pull you up sideways and leave you feeling like you have lead weights in your boots. While working in a yeast genomics lab I came to appreciate the centrifugal force as tool for separating macromolecues based on their mass and density, or, in the first step of differential centrifugation, separating whole cells from liquid growth media. This is what you'll see happening in the 50ml tube, spinning well below the centrifuge's max speed.
After about 5 minutes of spinning (orders of magnitude faster than any 9-year-old can withstand) the cells are completely sedimented out to the bottom in a little white pellet, ready for the liquid supernatant to be decanted from the tube. Then it's on to the next step: in my lab that would have been cell transformation or DNA extraction (not pictured, although either would be a very cool follow-up animation).
WEEEEEEeeee
painting weights
painting weights
all the finger rigging options you'd want
all the finger rigging options you'd want
Weight painting, wrinkles, rigging fingers
Back in the 2000s you would only see blue nitrile gloves in laboratory settings since they are particularly useful at keeping dangerous small molecules off your skin, particularly the ones that will slice through your DNA, but are overkill otherwise. Then as I was working on this project I'd started seeing them everywhere out in the wild; gas stations, supermarket, hiking trails (thanks COVID).
This project really let me dive into rigging and weight-painting with the glove and fingers. I troubleshooted switching between IK and FK for each finger as the centrifuge lid is pushed closed. Another fun animation solution was attaching colliders to the finger tips to guide the lid down dynamically. Meanwhile, managing all the different system execution priorities in Cinema 4D proved to be a stimulating challenge. And I topped it all off with tension tags that drove stretched noise patterns for the displacement texture in Redshift to bring out all the nice glove wrinkles.
Incremental rotation addition per frame from accelerating RPM
10-step subframe motion blur spin test
Integrating spinning, motion blur, bake all cameras but one
Now let's get back to spinning, and why that isn't the most straightforward thing to animate. Translating rotations-per-minute into degrees of rotation over time as the frames tick by is a few simple multiplication steps as long as the speed is constant. But as soon as there's any acceleration you've got to integrate. Otherwise, you're going backwards as you slow down. No need to break open the calculus textbook and brush up on integrals to find out the area under a curve here. We are already using discrete units of time (frames), and in xpresso, through a series of properly ordered nodes, we can access the incremental value of rotation in each frame and add it to the last. Problem solved!
Of course there’s going to be a motion blur problem when we're rotating scene objects at such high speeds (above 1000 RPM) and trying to morph a camera from a more tranquil path into a tornado and back out. Well, with the complex series of camera morphs that you see in this animation, they of course have to be baked out at some point. But! Even if the camera and target are maintaining their distance to each other, if they're rotating at high enough speeds, their paths (through however many subframe steps you can afford to calculate) simply will not match up exactly, and at those speeds all you get is blur. So that super-fast moving camera simply has to be parented to its target. In the end, you've got to deal with at least one unbaked camera morph.
procedural surface rocking
dynamic surface rocking
Liquid sim, rocking liquid surface procedural vs dynamic, keeping deformation motion blur
For the liquid simulations there are three types in here: SPH for the pour into the flask, and then really just two that aren't simulations, but different ways of rocking the surface of the liquid: for the grabbed tube, a dynamic rigid body solution on a surface-level disc place-holder, and, for the untouched tubes, a fully procedural solution, based on noise, sine waves and the values of the container-tilt in previous frames. In both of these cases rays are shot through points on an FFD through the rocking surface-level disc to the target. The collision positions on the disc are applied to the upper FFD points to stick the tube liquid loft’s top spline‘s points to the surface level disc. Combining these various simulations in a boole did not result in happy deformation blur, so various render layers with masks in composite were required. 
To attach the centrifuge tubes to the rocking tubes holders, I wrote up custom python effector that allowed me to take the matrices of specific children objects in the tube-holder cloner and apply them to the tubes.
python effector when inheritance effector won't cut it
python effector when inheritance effector won't cut it
FFDs to deform your loft into a rocking liquid surface
FFDs to deform your loft into a rocking liquid surface
rendering times, refraction trace depth
Suffice to say, with all the transparent materials in these scenes, render times were pret·ty, pret·ty long and the refraction/reflection trace depths were more than doubled from default Redshift values. God bless cloud render farms! Garagefarm remains my currently preferred service with their easy plugin version adaptability and live help.
Well I had fun, did you? Write me if you have any questions or thoughts: geoff@picodesic.com