AWS Open Source Blog

Beyond Code: The Artist Who Contributes to Apache TinkerPop

When we think about open source software, it is natural to think about the millions of lines of source code that compose the libraries, databases, tools, and applications that are freely available for anyone to use. It is also easy to envision, but impossible to quantify, the countless hours spent by the programmers who wrote those lines. Perhaps that programmer added new features, fixed bugs, improved performance, or revolutionized a technology space.

The source code is obviously critical for software to exist in the first place. There is, however, more to open source software than just code, and there are many other ways for folks to contribute to a project. Some examples include:

  • Documentation – Technical writers who author sound user documentation
  • Testing – Software testers who find and report bugs
  • User Support – Domain experts who help answer questions on mailing lists and Stack Overflow
  • Promotions – Evangelists and social media professionals who help spread the news of the project
  • Design – Graphic designers and website developers who help showcase the identity of the project on the Internet

These roles are often filled by programmers who officially maintain the project, but they don’t have to be. Help in these areas, especially from those with a deep expertise or passion for these tasks, would likely be welcome. Moreover, greater expertise and passion leads to a better product and wider adoption. Non-coding contributors can therefore have a meaningful impact on the success of a project.

In practice at Apache TinkerPop

Apache TinkerPop™ is an open source graph computing framework. It is implemented by graph databases, like Amazon Neptune, to provide a mechanism for graph querying and processing capabilities. Over the years, TinkerPop has had contributors who shared their non-programming expertise. Their impact was felt in documentation, design discussions, community support, and in the project’s identity. “Project identity” presents an opportunity to look at a specific and unique case for non-coding contributors.

The identity of many open source projects is relatively understated and anonymous. Even some of the most popular projects may be little more than GitHub repositories with associated README files. This modest and utilitarian approach to sharing open source software is acceptable for most consumers as the contents of the software are typically deemed more important than the packaging. Practically speaking, this viewpoint is advantageous to open source maintainers, who can focus more of their efforts on the software rather than marketing, where they may carry less expertise.

Of course, some basic marketing, over and above the basic README file, can go a long way in helping with adoption of a project. With many open source and commercial software options available, having a memorable and unique web site, project name, graphics, and style will help make that project stand out. Furthermore, projects that make this added effort demonstrate a level of care and passion for their project, which breeds confidence. It forces a consumer to wonder what the software must be like if such care has been placed elsewhere.

TinkerPop has long embraced the notion of developing a recognizable and unique project identity. It was effectively born with one at its founding in 2009 when the Gremlin graph query language first came into existence and Gremlin, the character, became the project’s mascot. Gremlin soon developed robot friends, additional mascots who represented various components of TinkerPop’s software. As a group, they were representative of TinkerPop as a project, but they also existed within the subtext of the lore of the project where they, like the users, were learning about the TinkerPop universe.

Apache TinkerPop mascots
Associating components of the software to characters provided a fun mechanism to help teach users about the technology. The visual connection helped convey ideas about how TinkerPop worked, where seeing a character within some documentation, a blog post or slide immediately anchored the idea within that content to a particular software component. For instance, Gremlin, as a query language, is characterized by movement where he is often described as “navigating” around a graph and collecting data as he goes. The graph is composed of vertices, also known as nodes and depicted as circles, and edges, also known as relationships and depicted as lines. Therefore, Gremlin is often shown moving over vertices and edges like a token on a map, as shown in the following example that demonstrates a navigational query common to graphs, g.V().out(), where you start at one vertex and traverse to another over a connected edge.

Apache TinkerPop gremlin
Gremlin might also be seen in the following context, which demonstrates a filtering query in the Gremlin language. We can see “gremlins” (there is only one Gremlin, but he often comes across other representations of himself in his adventures in the strange world of graphs and TinkerPop) carrying data about, where only those carrying the vertices that meet filter conditions are allowed to pass and continue their journey

Apache TinkerPop Gremlin art demonstrates a query filter

We also find the characters in fun and elaborate panel illustrations used for important blog posts or certain major pieces of content. Even in these cases, the illustrations often tell a tale consistent with the software components. For example, the Download page on TinkerPop’s website is headed with this panel illustration:

Apache TinkerPop character illustration with gremlin and a robot
This panel is one of several related illustrations on different pages of the web site. Together they tell a story (there is a subtle way to determine the order of the panels), but in an isolated view of just this image, we see Gremlin examining “download data,” as this is the Downloads page. He is amazed. His friend, Blueprints, who represents TinkerPop core interfaces, scratches his blue metallic head trying to help make sense of it all as these numbers indicate the TinkerPop core interfaces are in great use. In the back, Furnace, who represents TinkerPop’s analytics and algorithms, puffs and fumes to crunch the massive amounts of data being fed to him. He is tired but unwavering in his efforts to help Gremlin understand the incoming data stream and, in that, the TinkerPop itself. There are other subtle references tucked away in this illustration, which bring a knowing grin to those who have followed the community over the years.

While TinkerPop has programmers who have some basic talents with graphic design software and can contrive certain images, none are capable of character design or creation of panel illustrations like the one above. For this expertise, TinkerPop works with an artist, Ketrina Thompson, née Yim. She has been associated with the project since inception, and while she does not engage in technical discussion, submit pull requests to GitHub, or even use TinkerPop’s software, she is an official Apache committer to the project. As creator of the Gremlin character, she is perhaps one of the project’s more famous members. There are those in the community who often refer to her affectionately as “The Mother of Gremlin.”

Ketrina: The Mother of Gremlin

Ketrina contributed to this article by answering questions about herself and her art contributions at TinkerPop. She also supplied some fresh artwork for this post. The following is our Q&A with Ketrina.

Who is Ketrina?

My career is in software development with a focus on virtual reality, but I’ve been drawing for as long as I can remember. I draw a lot, whenever and wherever I can. Sometimes it’s concept art for a game I might make someday, sometimes it’s an educational illustration, and sometimes it’s a picture of a shark eating fries I drew on a take-out box. Usually, my art style is simple and cute with bright colors, though I do like to branch out sometimes. The main goal for my art is to brighten someone’s day, and if they learn something from it or it helps them remember a concept, then that’s a wonderful bonus. When I’m not working in Unreal Engine, doing game jams in Unity, or drawing sharks, I’m learning new recipes, playing video games, and running around in Nerf battles.

Illustration of a pineapple shaped like a shark

When you were first approached to do illustrations for TinkerPop’s characters, what inspired you?

Gremlin was based on the mischievous gremlins described by World War II pilots, though his tinkering doesn’t lead to mechanical problems in aircraft. Gremlin’s robot friends were inspired primarily by the robot mobs from Capcom’s Mega Man, which were often more cartoony than menacing.

five menacing mechanical characters

When you look at Gremlin and his friends today, do you feel that they have grown or changed in any way since your early days of drawing them?

I do. Though Gremlin and his friends haven’t changed much visually, their personalities developed significantly as the lore behind the TinkerPop universe expanded. It’s been fun watching them grow and become more fully fleshed-out characters.

Four versions of the Apache TinkerPop Gremlin logoApache TinkerPop gremlin as a flower being watered

Are there any particular illustrations that you’ve done for TinkerPop that you are especially proud of or enjoyed creating?

My favorites so far are the banners I did for the updated website. There was so much detail to sneak into them, and they all tie together to tell a story about Gremlin and company’s journey. Plus, the cyberpunk aesthetic was something I hadn’t spent much time on before, so I had a great time designing a brighter, cleaner version of cyberpunk that would fit with the TinkerPop style.

Illustration of a robot drone projecting TinkerCorp text

Is there a particular character among Gremlin and his friends whom you like to work with the most?

Gremlin is my favorite to work with. His simple design offers a lot of possibilities for poses and expressions, as well as variations that are still recognizable as Gremlin. If I ever need to do autographs, Gremlin would be the easiest to quickly draw.

Your artwork helps people learn about using software. Prior to your first illustrations for TinkerPop, did you ever envision your art being used in that fashion?

Years ago, I envisioned that some of my work would go to teaching people about software development. During my time as a graduate student at UC Berkeley, I created a project called Computer Science Illustrated for the purpose of educating students about computer science fundamentals. After graduating, I worked with a couple of professors to illustrate the lecture slides for the AI course at Berkeley. What I didn’t expect was that it would continue to the present day and how many people it would reach. Occasionally I still get emails from folks telling me that they enjoyed the artwork they saw on the lecture slides or the TinkerPop website.

Three Apache TinkerPop characters wave goodbye


TinkerPop has a recognizable and memorable identity by way of its characters, lore and illustrative style. Ketrina’s efforts in helping to build that identity by way of her illustrations demonstrates how non-coding contributions can have a significant impact on a project. Her work also shows a contribution path for open source software that is not usually travelled, but should be considered both by contributors with such skills and software projects themselves. This case can hopefully inspire folks to look for unique ways to contribute to open source projects.

Stephen Mallette

Stephen Mallette

Stephen Mallette is a member of the Amazon Neptune team at AWS. He has developed graph database and graph processing technology for many years. He is a decade long contributor to the Apache TinkerPop project, the home of the Gremlin graph query language.

Ketrina Thompson

Ketrina Thompson

VR developer by day, prolific artist by night. A big fan of science fiction, sharks, and pineapples.