Tabletop Whale is an original science illustration blog.

Made with love by a biology grad student at the University of Washington. Charts, infographics, and animations about any and all things science.

How to build a human heart


This week’s infographic is my 2nd collaboration with Nerdcore Medical. The poster explains how a baby’s heart develops while in the womb. It’s a bit of a hodgepodge of different elements - there are anatomical changes, molecular changes, and also some sections on basic anatomy. We were going for a Victorian steam-punk poster style, and it was really fun to fill up a medical diagram with embellishments and scrollwork.

One of the major challenges was making the diagrams look Victorian, but still keeping the details accurate. So for most of the figures I stuck with very simple embellishments. For example, all of the veins and arteries in the biggest figure should be in the correct place - they’re just tweaked a little to look like pipes instead of organic tubes. Since the poster is about heart development, I took a few more liberties with the other organs in each diagram. We only included organs like the liver as a reference point to major blood vessels, so it didn’t matter too much if I added scrolls or gears to these organs.

I got to hand-draw all of the diagrams with a paper and pencil, which was a fun change of pace from my usual digital work. Every time I make a large hand-drawn design I’m reminded of all the pre-photography era scientists who made their science figures by hand. As much as I love design I’m really happy we don’t have to do that anymore for our research.

post.title

A field guide to dangerous bacteria


This week I’m excited to announce a special project! During the past year and a half I’ve been working with the wonderful people at Nerdcore Medical on a set of 20 medical infographics.

Nerdcore Medical is the studio behind science communication projects like the Bacterionomicon and the Occam’s Razor card game. For this project I worked with Dr. Arun Mathews, a chief medical officer in Texas.

We wanted to make a set of beautiful posters that would combine art with study guides for medical school exams. This first one is an ID guide to common bacterial infections in human patients. The flowchart shows the steps you would take to identify a bacterial infection, and what each of the results might mean.

I’d never really thought much about lab tests before, so this was a really fun infographic to research and put together. Arun was an amazing collaborator - he fact-checked every single poster, picked the most important medical topics to cover, and even sent me reference books used by medical students.

Most of our posters are pretty specific to the medical field, but I’m going to be posting some of my favorites on this blog as they’re released. If you’re into medical infographics I would definitely recommend checking out the Nerdcore Medical Patreon to see the complete set of our work.

post.title

Half past orange: A rainbow color clock


This week’s post is a little less science and a little more design - it’s actually a side project I’ve been working on to practice R and Python.

I thought it would be fun to find an algorithm to define “what Eleanor thinks is a pretty color.” I think generative design is pretty cool, so the idea was to write something I could use to automatically pick colors for maps or vector patterns or graphs.

To define “pretty colors” I used R to fit adaptively smoothed splines to 264 colors I picked by hand. So that was a total of 792 data points - 264 for each RGB channel. (I thought about using CIELAB, but it was less intuitive for me to define “pretty colors” in LAB space).

These interlocking graphs describe every color I like, and none I don’t like: I’m still a beginner in R and Python, so this actually took a surprising amount of time. But I ended up learning a lot about different color spaces and the biology of human color vision.

For example, I wanted to include a hue variable like the “H” in HSV. But HSV doesn’t account for the fact that human eyes aren’t equally sensitive across the color spectrum. So I manually adjusted my own scale to look more consistent.

A linear HSV (HSV1) has too much green and blue. A HSV sine wave (HSV2) is better, but still doesn’t have much yellow. For mine I got rid of the ugly neon colors and increased the amount of orange and yellow: To test out the finished algorithm I made a rainbow color clock. The clock cycles through the color wheel every 12 hours using only colors I like. So that means no neon colors, muddy yellows, extremely bright pastels, or artificial-looking colors like 100% blue.

The clock also changes brightness every hour so that the half-hour mark is the brightest and the hour-mark is the darkest. I wanted fairly basic rules so you could actually use the color to tell time.

The color names are pulled from Chirag Mehta’s Name that Color Javascript library. It’s an awesome open source tool that finds the closest named color in a huge database of color names. I think my favorite names are Mantis green and Meteorite purple.

This is what the rainbow clock looks like in its original equation form. Each of the RGB channels oscillates up and down once an hour. The finished rainbow color clock lives here as a responsive web page. I think I’ll eventually laser-cut a plywood frame for my old phone so I can have a nice wall-mounted version in my office at work.