Biocinematics

Making Of

The Pinball Machine of Science

Animation, Making OfStuart Jantzen

“The Pinball Machine of Science” is the latest Biocinematics video, about how tools of science are used, how science develops over time, and how we can learn about things we can’t even see. I hope you enjoy the video, then read on to get a glimpse behind the scenes and rigorously peruse the references.

Behind the Scenes

Simulating the Pinball Machine

Pinball_model.png

The pinball table was modeled mainly in ZBrush, and brought into Houdini for all the animation and simulation. The difference between animation and simulation is: with animation, the animator (me) specifies the exact position, rotation etc. at different points in time, for example, the metal disk rotation. With simulation, the simulator(?) (also me) sets up some rules for the computer to follow and he sees what happens. Then he tweaks the rules, and tries again and tweaks the rules and tries again until he has a result that he’s happy with. It would have been crazy to animate the pinball ball itself, since it has to bounce convincingly many times for 24 different disk rotations. I thought it would be pretty easy to set up a simulation; I mean, it’s a single ball bouncing in an idealized way with just a single force (gravity) and nothing else going on.

How wrong I was. In my first (and second through umpteenth) attempts, the pinball would land on squarely on the launcher and then spontaneously roll around. When it collided with the hidden shape, it would bounce into the air and fly off at crazy angles.

I never did figure out what was going on with this rolling, just tweaked settings until the problem was minimized.

I never did figure out what was going on with this rolling, just tweaked settings until the problem was minimized.

The crucial aspect was that I needed the ball to bounce off the hidden shape at the same angle as it arrived at, and my simulation just wasn’t doing that. The angle of incidence should be the same as the angle of reflection, that’s basic physics, right? Right? I needed this in order to have a convincing data visualization in the video. After a lot of trial and error and head scratching, I decided to assess my assumptions and read up on some physics. Suddenly everything became clear. I was asking the simulation for an impossible situation: I needed idealized physics (assume no friction nor air resistance, perfectly elastic collisions) but I also needed real-world behaviour (friction, drag, and inelastic collisions, otherwise the ball would sail around for far too long). If the ball is spinning and collides with a surface with friction, and loses some energy in the process, it’s not going to be a perfect bounce. But I did recognize that a real pinball machine should be pretty close to an equal incidence/reflection bounce. So instead of assuming there was a magic setting that I couldn’t find, I set out to manually balance idealized physics with real-world properties.

Simple helper geometry shows me where the ball should go, and the numbered path shows where the ball is actually going.

Simple helper geometry shows me where the ball should go, and the numbered path shows where the ball is actually going.

I set up some helper visualization so I could see how close I was to the desired bounce angle, and then I went through and dialed in the friction, bounce, drag, gravity, etc. for the ball, table surface, table walls, and hidden shape individually. Finally I had a convincing simulation that bounced properly. At that point I was confident I would be able to publish the video.

The Island of Human Knowledge

The tropical island was a stylistic experiment. I had a vision of a somewhat cartoony tropical island fully rendered in 3D, with simple 2D stick-figure characters telling the story.

It’s a rock, despite my 2-year-old’s insistent assertions that it is in fact “a poop”.

It’s a rock, despite my 2-year-old’s insistent assertions that it is in fact “a poop”.

Island_blocking_01.png

The island and palm fronds were sculpted in ZBrush, while the ocean was a built-in Houdini tool that I baked into a displacement map for Redshift to apply to a flat plane at render-time, so it’s not a real water simulation. You can tell because the waves don’t really interact with the shore, they just move up and down regardless. I was pretty pleased with the result that I got in a fairly short time, because I had a huge number of frames to render.

A little island in the sun

A little island in the sun

Right before I submitted my renders to run over the weekend, I noticed a strange artifact. On some frames I was getting black lines around the edge of the water. I tried everything I could think of to fix the problem. Higher trace depth, different index of refraction, single-scattering off, emission, GI, displacement resolution, and more.

A simple case (flat grey shaders) to simplify and isolate the problem - a very useful troubleshooting approach.

A simple case (flat grey shaders) to simplify and isolate the problem - a very useful troubleshooting approach.

But in every case, even with a very simple setup, I still had problematic black lines. Finally some memory was jogged in the back of my mind, and I realized that my ocean grid was hundreds of units away from the origin. So what, you might ask? A precision issue! As objects get farther away from the center of the world, sometimes there can be internal mathematics rounding errors (I guess) that produce artifacts with Redshift, even though the pixels I was rendering were very close to the center of the world. Weird, huh. I adjusted how the grid placement was set up, and the problem was immediately solved! Reading forums can be pretty handy, because the problems that other people have can subconsciously return at opportune times. I submitted my fixed renders just in time for the weekend.

Thanks for reading, and I hope you’ll stay tuned (or whatever the internet equivalent is… oh yeah: subscribed) for the next animated science video!

Stuart

References

  1. Allain, R. We Swear There’s a Reason to Model This Ball Bouncing Off a Wall. Wired (2016).

  2. Collaboration, T. E. H. T. et al. First M87 Event Horizon Telescope Results. I. The Shadow of the Supermassive Black Hole. ApJL 875, L1 (2019).

  3. Gerhard, M. Direct Or Indirect? | Science project | Education.com. Available at: https://www.education.com/science-fair/article/direct-indirect-observation/. (Accessed: 12th March 2019)

  4. GRANT, E. HISTORY OF SCIENCE: When Did Modern Science Begin? The American Scholar 66, 105–113 (1997).

  5. Kosso, P. Observability and Observation in Physical Science. (Springer Science & Business Media, 2012).

  6. Kross, B. Questions and Answers - What is one example of indirect evidence that scientists use to study an atom? Jefferson Lab Available at: https://education.jlab.org/qa/atom_01.html. (Accessed: 12th March 2019)

  7. Levi, R. How X-Rays were discovered — by Mistake. Ran Levi (2016).

  8. Panchbhai, A. Wilhelm Conrad Röntgen and the discovery of X-rays: Revisited after centennial. Journal of Indian Academy of Oral Medicine and Radiology 27, 90 (2015).

  9. Tubiana, M. [Wilhelm Conrad Röntgen and the discovery of X-rays]. Bull. Acad. Natl. Med. 180, 97–108 (1996).

  10. Ralph Washington Sockman. Wikipedia (2018).

  11. Designing an Observation Study. Science Buddies Available at: https://www.sciencebuddies.org/science-fair-projects/references/observation-study-experimental-design. (Accessed: 12th March 2019)

  12. How Scientists Captured the First Image of a Black Hole - Teachable Moments. NASA/JPL Edu Available at: https://www.jpl.nasa.gov/edu/news/2019/4/19/how-scientists-captured-the-first-image-of-a-black-hole/. (Accessed: 26th June 2019)

  13. Indirect Observations and Inference—Demonstration Kit. Available at: https://www.flinnsci.com/indirect-observations-and-inference---demonstration-kit/ap7425/. (Accessed: 12th March 2019)

  14. Observation beyond our eyes. Available at: https://undsci.berkeley.edu/article/howscienceworks_05. (Accessed: 12th March 2019)

  15. Ontario Science Centre: Home. Available at: https://www.ontariosciencecentre.ca/. (Accessed: 12th March 2019)

  16. RÖNTGEN, Wilhelm Conrad (1845-1923). <I>Ueber eine neue Art von Strahlen (Vorläufige Mittheilung).</I> -- <I>Eine neue Art von Strahlen. II. Mittheilung.</I> Offprints from: <I>Sitzungsberichte der Würzburger Physik.-medic. Gesellschaft,</I> 1895 [no. 9], and 1896, [nos. 1-2]. Würzburg: Verlag und Druck der Stahel’schen k. Hof.-und Universitäts- Buch- und Kunsthandlung, 1895-1896. Available at: https://www.christies.com/lotfinder/lot_details.aspx?intObjectID=5084328. (Accessed: 26th June 2019)

  17. Structural Biochemistry/Nucleic Acid/DNA/Franklin’s DNA X-ray Crystallography - Wikibooks, open books for an open world. Available at: https://en.wikibooks.org/wiki/Structural_Biochemistry/Nucleic_Acid/DNA/Franklin%27s_DNA_X-ray_Crystallography#Fiber_Diffraction. (Accessed: 12th March 2019)

Are you really a carbon-based life-form?

Animation, Making OfStuart Jantzen

I recently published the first video in an animated series I'm creating about human biology. It's targeted at as broad of an audience as I could make it, and doesn't make too many assumptions about prior knowledge. If you haven't already watched it, I highly recommend giving it a look.

The purpose of this blog post is to give a little peak behind the curtains to see some "making of" material, and to house the references I used to support the information in the video.

For the animation, I used Houdini almost exclusively, rendered with Redshift, comped in Blackmagic Design Fusion, and edited and mixed in DaVinci Resolve.

Houdini is a very interesting and unique 3D application, in that almost everything is created in a procedural nature, which means that you set up "rules" for how things are created, instead of creating each thing individually. This was very helpful for creating the Periodic Table which featured in the video.

I started by laying out a grid of points that would determine where the elements would end up.

Computers start counting from zero. Adjust accordingly.

Computers start counting from zero. Adjust accordingly.

Then I imported a spreadsheet of data about the elements, including symbol, name, element number, and atomic radii. Then I mapped that data to the grid of points.

If there are any typos, it’s wikipedia’s fault.

If there are any typos, it’s wikipedia’s fault.

Then, when I had to create animation, for example when pulling out a highlighted element, I was able to set up a "selector" which allowed similar animations to be repeated quite simply.

Oxygen comin’ atcha!

Oxygen comin’ atcha!

Probably the most involved shot in the video is the "Thinker" being filled with colored atoms pouring in. I was able to find a 3D scan of the sculpture by Rodin, and after some cleanup and retopology, it was ready to fill. Of course things usually don't work out immediately.

I’ve certainly felt like this before.

I’ve certainly felt like this before.

But eventually I got the spheres filling the statue, albeit with some leakage.

The leaking was a lot worse in other iterations.

The leaking was a lot worse in other iterations.

Ultimately I set up a rule that if a sphere leaked outside the statue, it was killed from the simulation, so it doesn't show up.

Not quite right.

Not quite right.

And rendering is its own challenge. I started using a very basic type of sphere geometry, but it turns out it was designed for very small particles, and so I had to switch to a more complex kind of sphere (skimming over the details here) to avoid artifacts like this where the spheres and glass statue intersect.

I'm pretty pleased with how the final shower of atoms turned out (at 3:17 in the video). Of course I had to search for some "rainstick" sound effects to fit with the visuals.

And now for something completely different. 

You may not know that I've spent quite some time in an academic setting considering how one might present the references that inform different aspects of an illustration, video or animation, from narration to objects, behaviours, and even colors. I contributed to a publication in Nature Methods on the topic: http://rdcu.be/doo5.

Needless to say, dumping references here without linking bidirectionally to specific points in the video is a failure in many respects, but it's better than nothing, and I plan to improve the way in which I present this kind of information as time progresses. Maybe I should re-read my article. Also, almost certainly this is an incomplete list. I’m pretty sure there were lots of wikipedia pages I used at various points and didn’t go through the trouble of tracking down primary references. Lots of room for improvement.

References:

  1. Alberts, B., Johnson, A., Lewis, J., Raff, M., Roberts, K., & Walter, P. (2002). Molecular Biology of the Cell (4th ed.). Garland Science.

  2. Bentley, G., Dodson, E., Dodson, G., Hodgkin, D., & Mercola, D. (1976). Structure of insulin in 4-zinc insulin. Nature, 261, 166–168. https://doi.org/10.2210/pdb1zni/pdb

  3. Biomolecule | biology. (n.d.). Retrieved May 8, 2019, from Encyclopedia Britannica website: https://www.britannica.com/science/biomolecule

  4. Bruce, A., Andersson, M., Arvidsson, B., & Isaksson, B. (1980). Body composition. Prediction of normal body potassium, body water and body fat in adults on the basis of body height, body weight and age. Scandinavian Journal of Clinical and Laboratory Investigation, 40(5), 461–473. https://doi.org/10.3109/00365518009101869

  5. Campbell, N. A., & Reece, J. B. (2001). Biology, 6th Edition (6 edition). San Francisco: Benjamin Cummings.

  6. Drew, H. R., Wing, R. M., Takano, T., Broka, C., Tanaka, S., Itakura, K., & Dickerson, R. E. (1981). Structure of a B-DNA dodecamer: Conformation and dynamics. Proc.Natl.Acad.Sci.USA, 78, 2179–2183. https://doi.org/10.2210/pdb1bna/pdb

  7. Emsley. (1998). The Elements. Clarendon Press.

  8. Fomon, S. J., & Nelson, S. E. (2002). BODY COMPOSITION OF THE MALE AND FEMALE REFERENCE INFANTS. Annual Review of Nutrition, 22(1), 1–17. https://doi.org/10.1146/annurev.nutr.22.111401.145049

  9. Forbes, R. M., Cooper, A. R., & Mitchell, H. H. (n.d.). OF THE ADULT HUMAN BODY AS BY CHEMICAL ANALYSIS. 9.

  10. Freitas, R. A. (1998). 3.1 Human Body Chemical Composition. Retrieved May 7, 2019, from Nanomedicine website: https://foresight.org/Nanomedicine/Ch03_1.php

  11. Goodsell, D. S. (2005). Visual Methods from Atoms to Cells. Structure, 13(3), 347–354. https://doi.org/10.1016/j.str.2005.01.012

  12. Harris, L. J., Larson, S. B., Hasel, K. W., & McPherson, A. (1997). Refined structure of an intact IgG2a monoclonal antibody. Biochemistry, 36, 1581–1597. https://doi.org/10.2210/pdb1igt/pdb

  13. International Year Periodic Table 2019 | IYPT 2019. (n.d.). Retrieved May 8, 2019, from The International Year of the Periodic Table website: https://www.iypt2019.org/

  14. JMOL Color Table. (n.d.). Retrieved May 8, 2019, from Jmol website: http://jmol.sourceforge.net/jscolors/

  15. Koltun, W. L. (1965). Precision space-filling atomic models. Biopolymers, 3(6), 665–679. https://doi.org/10.1002/bip.360030606

  16. L, N. D., Lehninger, A. L., Nelson, D. L., Cox, M. M., Cox, U. M. M., & Cox, M. M. (2005). Lehninger Principles of Biochemistry. W. H. Freeman.

  17. Natchiar, S. K., Myasnikov, A. G., Kratzat, H., Hazemann, I., & Klaholz, B. P. (2017). Visualization of chemical modifications in the human 80S ribosome structure. Nature, 551, 472–477. https://doi.org/10.2210/pdb6qzp/pdb

  18. Otterbein, L. R., Graceffa, P., & Dominguez, R. (2001). The crystal structure of uncomplexed actin in the ADP state. Science, 293, 708–711. https://doi.org/10.2210/pdb1j6z/pdb

  19. Pullman, B. (2001). The Atom in the History of Human Thought. Oxford University Press.

  20. RCSB Protein Data Bank. (n.d.-a). RCSB PDB - ale Ligand Summary Page L-EPINEPHRINE. Retrieved June 25, 2019, from RCSB PDB website: https://www.rcsb.org/ligand/ale

  21. RCSB Protein Data Bank. (n.d.-b). RCSB PDB - asc Ligand Summary Page ASCORBIC ACID. Retrieved June 25, 2019, from RCSB PDB website: https://www.rcsb.org/ligand/asc

  22. RCSB Protein Data Bank. (n.d.-c). RCSB PDB - atp Ligand Summary Page ADENOSINE-5’-TRIPHOSPHATE. Retrieved June 25, 2019, from RCSB PDB website: https://www.rcsb.org/ligand/atp

  23. RCSB Protein Data Bank. (n.d.-d). RCSB PDB - cys Ligand Summary Page CYSTEINE. Retrieved June 25, 2019, from RCSB PDB website: https://www.rcsb.org/ligand/cys

  24. RCSB Protein Data Bank. (n.d.-e). RCSB PDB - glc Ligand Summary Page ALPHA-D-GLUCOSE. Retrieved June 25, 2019, from RCSB PDB website: https://www.rcsb.org/ligand/glc

  25. RCSB Protein Data Bank. (n.d.-f). RCSB PDB - gly Ligand Summary Page GLYCINE. Retrieved June 25, 2019, from RCSB PDB website: https://www.rcsb.org/ligand/gly

  26. RCSB Protein Data Bank. (n.d.-g). RCSB PDB - ldp Ligand Summary Page L-DOPAMINE. Retrieved June 25, 2019, from RCSB PDB website: https://www.rcsb.org/ligand/ldp

  27. RCSB Protein Data Bank. (n.d.-h). RCSB PDB - nad Ligand Summary Page NICOTINAMIDE-ADENINE-DINUCLEOTIDE. Retrieved June 25, 2019, from RCSB PDB website: https://www.rcsb.org/ligand/nad

  28. RCSB Protein Data Bank. (n.d.-i). RCSB PDB - oli Ligand Summary Page. Retrieved June 25, 2019, from RCSB PDB website: https://www.rcsb.org/ligand/oli

  29. RCSB Protein Data Bank. (n.d.-j). RCSB PDB - pyr Ligand Summary Page PYRUVIC ACID. Retrieved June 25, 2019, from RCSB PDB website: https://www.rcsb.org/ligand/pyr

  30. RCSB Protein Data Bank. (n.d.-k). RCSB PDB - ser Ligand Summary Page SERINE. Retrieved June 25, 2019, from RCSB PDB website: https://www.rcsb.org/ligand/ser

  31. RCSB Protein Data Bank. (n.d.-l). RCSB PDB - tes Ligand Summary Page TESTOSTERONE. Retrieved June 25, 2019, from RCSB PDB website: https://www.rcsb.org/ligand/tes

  32. RCSB Protein Data Bank. (n.d.-m). RCSB PDB - trp Ligand Summary Page TRYPTOPHAN. Retrieved June 25, 2019, from RCSB PDB website: https://www.rcsb.org/ligand/trp

  33. RCSB Protein Data Bank. (n.d.-n). RCSB PDB - viv Ligand Summary Page (2R)-2,5,7,8-TETRAMETHYL-2-[(4R,8R)-4,8,12-TRIMETHYLTRIDECYL]CHROMAN-6-OL. Retrieved June 25, 2019, from RCSB PDB website: https://www.rcsb.org/ligand/viv

  34. Rutherford, P. E. F. R. S. (1911). LXXIX. The scattering of α and β particles by matter and the structure of the atom. The London, Edinburgh, and Dublin Philosophical Magazine and Journal of Science, 21(125), 669–688. https://doi.org/10.1080/14786440508637080

  35. Slater, J. C. (1964). Atomic Radii in Crystals. The Journal of Chemical Physics, 41(10), 3199–3204. https://doi.org/10.1063/1.1725697

  36. Tame, J. R., & Vallone, B. (2000). The structures of deoxy human haemoglobin and the mutant Hb Tyralpha42His at 120 K. Acta Crystallogr.,Sect.D, 56, 805–811. https://doi.org/10.2210/pdb1a3n/pdb

  37. Thomson M. A., J. J. (1897). XL. Cathode Rays. The London, Edinburgh, and Dublin Philosophical Magazine and Journal of Science, 44(269), 293–316. https://doi.org/10.1080/14786449708621070

  38. Wieser, M. E., Holden, N., Coplen, T. B., Böhlke, J. K., Berglund, M., Brand, W. A., … Zhu, X.-K. (2013). Atomic weights of the elements 2011 (IUPAC Technical Report). Pure and Applied Chemistry, 85(5), 1047–1078. https://doi.org/10.1351/PAC-REP-13-03-02