Tabletop Whale is an original science illustration blog.

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

Digital Snowflakes


For a couple of years I’ve been experimenting with automating different parts of my design process. In 2016 I built a color clock that tells time in vibrant colors. I also made a color palette tester that makes animated patterns out of user-defined color schemes.

And finally, I wrote an algorithm that can design a full color scheme from scratch. After picking the colors, the code can also apply each color appropriately to different sections of a design.

I tried to make the algorithm as much like me as possible. That means that most of the time it makes bright, cheerful color schemes. But sometimes they’re gloomy, black and white, or jarringly mismatched. I use a lot of pink, so the code does too. I like color transitions that are soft and natural, but also sometimes bold and flashy (and the code does too).

This project was a weird one for me. I felt very obsolete watching a computer make my own art faster than I could look at each finished piece. But it was definitely fun to automate a small part of my own design process.

The colorspace that I designed to encode my own design style.

For this project I wrote six equations defining different color palettes for any starting color - analogous, complimentary, etc. I also designed a colorspace that was balanced to my own taste, with lots of pinks and yellows. Finally, I wrote a series of rules about which colors belonged next to each other, and which ones should be used as background colors or accents. There’s no fancy machine learning or AI here, just basic design rules written down in Python.

I decided to separate the colorspace from the color scheme equations, so I could easily swap out different design styles. Here are my two alternate forest and pastel colorspaces. I can use the same equations on these colors, but the resulting artwork will have very different styles.

Some early tests in generating color schemes of different lengths. The finished generator has a lower probability of picking pastel pinks, and a bit more variety in the types of color palettes.

I actually wrote this code in 2017, with the intention of turning it into an open source Python and Javascript library. I suppose I just got busy, but in any case I found the code this week after leaving it untouched and forgotten for over two years.

It’s mostly finished on the Python side and I still want to open-source the project one day. But it might have to wait until the next time I need several thousand unique designs. For now, here’s a gallery of 1000 digital snowflakes generated using the code, as well as a noun dictionary to attach a randomly selected title to each image.

The Geology of the Moon


This map was one of my favorites, so I’m excited to share the code tutorial for a geologic map of the Moon! Although I already made a geologic map of Mars, this Moon map was much more difficult because the geologic data was split into six different datasets. Each dataset had unique labels (and sometimes different data formats) so I spent a lot of time piecing the data together to create a cohesive map.

One complication with having six datasets instead of one was that some geologic categories were described differently in each dataset, like “Basin Material, Rugged” vs. “Material of Rugged Basin Terrain”. So I decided to combine closely related terms into a single color.

This Moon data was also challenging because the geologic timescales weren’t very precise. Some areas were described with uncertainty - like plains from the “Imbrian or Nectarian” era. And some geologic categories combined many time periods, like craters from “Imbrian, Nectarian, and pre-Nectarian” time periods. I thought it was too complicated to show all these uncertain aggregations in one map, so I decided to omit timescale data entirely. The map features are colored only by geologic category (craters, basins, etc.) and not by age.

The original maps were originally published in the 70’s, and I loved the bright neon color schemes in these historical maps. I tried to keep as many of the same colors as possible, though I re-arranged to save the more extreme colors for smaller or more unusual geologic formations.

The end result is a summarized geologic map rather than a precise replication of the original data. But even though I combined geologic features and didn’t include precise scientific labels, I think the map still works in its limited role as a condensed overview of Moon geology.

Some of the distinctive locations on the Moon. 1: Mare Orientale, a huge impact crater on the far side of the moon. 2: Mare Tranquillitatis, the landing site of Apollo 11 - the first manned landing on the Moon. 3: The far side of the moon. 4: Fra Mauro crater (at center, next to the neon green Fra Mauro highlands), the landing site of Apollo 14 in 1971.

This map is actually the last installment in the Atlas of Space series. I love working with astronomy data and I’m sure I’ll make more maps in the future, but for now I’m taking a break to try and finish my last PhD research project. Thanks for all of your comments and suggestions this summer - I really enjoyed getting to share these maps with you! For those of you going to NACIS meeting this fall, I’m looking forward to talking more about these maps at the conference in the Using Open Data panel. Hopefully I’ll see some of you there!

post.title

A Topographic Map of the Moon


My next two maps in the Atlas of Space series show the topography and geology of the Moon. These were some of my favorite datasets in the project - the Moon is our closest celestial neighbor, and we know a lot more about the Moon than about our neighboring planets. The Apollo missions even returned several hundred kilograms of lunar rock to the Earth for detailed analysis.

The moon is tidally locked to the Earth, which means that it completes one rotation around its axis in exactly the same time that it takes to circle around the Earth. Because of this, the far side of the moon is never visible from the Earth’s surface. This topographic map shows the near side of the moon in the large central map, as well as the North pole, South pole, far side, and interior in the four surrounding maps.

People have been fascinated by the moon for thousands of years, and lunar events like the full moon or an eclipse are tied to ancient calendars, myths, and celebrations. The lunar cycle can even be seen today in the pattern of Google searches for the word “moon,” which peaks predictably during every full moon.

1: Data layers used to design this map. 2: Google search frequency for the word “moon” in the United States (data from Moon phase dates and Google Trends). Each yellow line shows one lunar cycle in 2018, normalized to the highest and lowest value within each lunar cycle. The turquoise line shows the overall mean.

  • Sources

  • Data: Gazetteer of Planetary Nomenclature, International Astronomical Union (IAU). © 2019 Working Group for Planetary System Nomenclature (WGPSN). Earth's Moon In Depth. © 2019 NASA Science Solar System Exploration. LRO LOLA Elevation Model 118m (LDEM GDR). © 2018 NASA PDS and Derived Products Annex. LOLA Science Team. Reference texts: Astronomy, Andrew Fraknoi, David Morrison, Sidney C. Wolff et al. © 2016 OpenStax. Fonts: The labels on this map are typeset in Moon by Jack Harvatt. The title font is RedFlower by Type & Studio. Advice: Thank you to Oliver Fraser, Henrik Hargitai, Chloe Pursey, and Leah Willey for their helpful advice in making this map.
post.title