Published in


A tale of how PVS-Studio reimagined the bug

You all know our mascot — a unicorn — many people grew fond of him! However, PVS-Studio has a supporting character who is also the antagonist of our product — a bug! Well, a bug is not omnipresent, indestructible evil. It’s more like an everyday or a work-related trouble. In this article, you’ll learn how we created a new character, and why he looks like a ladybug. Oh, and if you wonder why the hell he has a belly button — keep reading!

In case you want to learn more about our unicorn — click here.

Why we decided to update our bug

When I started creating pictures with our mascot — the unicorn — I also noticed pictures with a ladybug. Since the ladybug represents software bugs — he is an antagonist that our unicorn fights. Well, our unicorn changed over time, but our bugs looked the way they were created. And then I thought: “It’s time to change our bug!”.

So, that’s how I got myself a new task. I decided to update our antagonist so that he would match the style of our mascot. The bug redesign may seem like a designer’s whim — but that’s nothing of the kind! A well-designed character is attractive and eye-catching. Moreover, a redesigned bug can help come up with new ideas for more pictures.

Why our bug is a ladybug

There are several stories explaining why software errors are called bugs. According to one of the most popular versions this term appeared in September 1947. Grace Hopper, who worked at Harvard University, tried to find an error in the Mark II. She traced an error to a burnt moth trapped in a relay. The insect was removed, taped to the log book with the following entry: “First actual case of bug being found”.

The PVS-Studio team decided to call a software bug a ladybug because we just like ladybugs and the word sounds nice.

How we developed a new character design

First of all, I wanted to express the character’s personality. Designers apply different approaches to achieve this. I decided to use one of the main ones — shape.

Using the language of shapes and forms, artists convey the picture’s idea. Each shape affects viewer’s feelings and emotions and can make them react differently.

I started with three basic shapes: a circle, a square, and a triangle. A circle represents friendliness, clumsiness, and positivity. Circles are considered a more feminine shape. A square symbolizes stability, balance, and strength. Squares are considered a masculine shape. A triangle suggests sharpness, movement, and dynamics.

Initially, I wanted to make the bug half the size of the unicorn, so that he could take a full part in the illustrations and pictures.

Since our bug is the antagonist, I decided to clothe him in overalls (btw, our unicorn does not wear pants). The second important thing was to carefully draw his facial expression. Bugs are unavoidable. Anyone can make a mistake. To prove that this is ok, I made our bug clumsy, cute, and ingenuous. When I was choosing his shape, I decided to stick to an oval shape — I think it’s the best way to express our bug’s personality. Here’s what he looked like:

However, the bug diverted attention from our main character. Well, as the saying goes, you must spoil before you spin. So, I changed the bug’s proportions. After all, our mascot is the main and the most important character in any event or illustration. I carefully thought it over and decided to simplify our bug and make him smaller. However, I kept his goofy face — it gives more ideas on how to express the character’s facial expression.

Experimenting with shape and color, I was trying to create the most matching antagonist for our unicorn.

And finally I found what I was looking for! First, I drew the monochrome illustration. Then, I added shadows and — finally — colors. Next, I added perspective to take a look at a 3D character model.

You may wonder — why the ladybug has a belly button? Think of it as an eye-stopper. The bug’s belly button attracts attention and makes you explore the character. Getting to know our bug better, you can see that his wings look like buttocks. And this is not a coincidence or some kind of joke. This is a thought-out decision. Finally, if your code contains a bug — the bug will definitely stick his bum in your face.

Next, I started drawing our bug step-by-step. First, I drew a monochrome image of our character. It helps better understand proportions and accents.

The next step was adding shadows. Shadows help find out the volume and what the character looks like in three dimensions.

Then I chose primary, secondary and tertiary colors that would go with our unicorn. I also singled out light spots to add volume to our character.

A facial expression is an important element that reveals the character’s personality. A facial expression can also help think up new illustration ideas in the future. As for our bug, I removed his eyebrows. To transfer his facial expressions and express the character’s mood, I replaced bug’s eyebrows with antennae.

The final step was to describe the proportions of our new character. I used the Vitruvian Man to represent this.

Every character needs a name, but I didn’t come up with one. Why don’t you give him a name? Leave your ideas in the comments!

Well, I guess that’s all. That’s just one funny case. I think this article will be useful for designers who are planning or already developing their own characters and mascots. In the future, I want to write an article explaining how to animate and create stickers based on a premade character. Stay with us. Peace.



PVS-Studio is a tool for detecting bugs and security weaknesses in the source code of programs, written in C, C++, C# and Java. It works under 64-bit systems in Windows, Linux and macOS environments, and can analyze source code intended for 32-bit, 64-bit and embedded ARM platfor

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Unicorn Developer

Unicorn Developer


The developer, the debugger, the unicorn. I know all about static analysis and how to find bugs and errors in C, C++, C#, and Java source code.