{"id":398095,"date":"2024-06-29T13:52:01","date_gmt":"2024-06-29T13:52:01","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=398095"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=398095","title":{"rendered":"<span>A tale of how PVS-Studio reimagined the bug<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/68a\/15c\/969\/68a15c9694664538f4e6ed21e6749c46.png\" width=\"780\" height=\"440\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/68a\/15c\/969\/68a15c9694664538f4e6ed21e6749c46.png\"\/><figcaption><\/figcaption><\/figure>\n<p>You all know our mascot \u2014 a unicorn \u2014 many people grew fond of him! However, PVS-Studio has a supporting character who is also the antagonist of our product \u2014 a bug! Well, a bug is not omnipresent, indestructible evil. It&#8217;s more like an everyday\u00a0or a work-related trouble. In this article, you&#8217;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\u00a0belly button \u2014 keep reading!<\/p>\n<p>In case you want to learn more about our unicorn \u2014 click <a href=\"https:\/\/pvs-studio.com\/en\/blog\/posts\/0843\/\">here<\/a>.<\/p>\n<h2>Why we decided to update our bug<\/h2>\n<p>When I started creating pictures with our mascot \u2014 the unicorn \u2014 I also noticed pictures with a ladybug. Since the ladybug represents software bugs \u2014 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: &#171;It&#8217;s time to change our bug!&#187;.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5e7\/4b3\/bc5\/5e74b3bc5d43b0fe95e7e3bb08d17f41.png\" width=\"580\" height=\"327\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/5e7\/4b3\/bc5\/5e74b3bc5d43b0fe95e7e3bb08d17f41.png\"\/><figcaption><\/figcaption><\/figure>\n<p>So, that&#8217;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&#8217;s whim \u2014 but that&#8217;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.<\/p>\n<h2>Why our bug is a ladybug<\/h2>\n<p>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\u00a0to a burnt moth trapped in a relay. The insect was removed, taped to the log book with the following entry: &#171;<em>First actual case of bug being found<\/em>&#171;.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/9f4\/9fb\/cab\/9f49fbcabaf5667bc5bac5eab025af75.png\" width=\"580\" height=\"327\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/9f4\/9fb\/cab\/9f49fbcabaf5667bc5bac5eab025af75.png\"\/><figcaption><\/figcaption><\/figure>\n<p>The PVS-Studio team decided to call a software bug a ladybug because we just like ladybugs and the word sounds nice.<\/p>\n<h2>How we developed a new character design<\/h2>\n<p>First of all, I wanted to express the character&#8217;s personality. Designers apply different approaches to achieve this. I decided to use one of the main ones \u2014 shape.<\/p>\n<p>Using the language of shapes and forms, artists convey the picture&#8217;s idea. Each shape affects viewer&#8217;s feelings and emotions and can make them react differently.<\/p>\n<p>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.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c19\/423\/f44\/c19423f447d1896f2c6515a6e46d3ddd.png\" width=\"580\" height=\"327\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c19\/423\/f44\/c19423f447d1896f2c6515a6e46d3ddd.png\"\/><figcaption><\/figcaption><\/figure>\n<p>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.<\/p>\n<p>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\u00a0draw 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 \u2014 I think it&#8217;s the best way to express our bug&#8217;s personality. Here&#8217;s what he looked like:<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/ad4\/e00\/3eb\/ad4e003ebb935f9d3d01c63773d518c7.png\" width=\"580\" height=\"327\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/ad4\/e00\/3eb\/ad4e003ebb935f9d3d01c63773d518c7.png\"\/><figcaption><\/figcaption><\/figure>\n<p>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&#8217;s proportions. After all, our mascot is the main and the most important character in any event or illustration. I carefully\u00a0thought it\u00a0over\u00a0and decided to simplify our bug and make him smaller. However, I kept his goofy face \u2014 it gives more ideas on how to express the character&#8217;s facial expression.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/c01\/bb1\/068\/c01bb1068f8805e6b09d34b6e100d9e3.png\" width=\"580\" height=\"327\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/c01\/bb1\/068\/c01bb1068f8805e6b09d34b6e100d9e3.png\"\/><figcaption><\/figcaption><\/figure>\n<p>Experimenting with shape and color, I was trying to create the most matching antagonist for our unicorn.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/86a\/e33\/572\/86ae335724b4e650d5ded9584903cc89.png\" width=\"580\" height=\"327\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/86a\/e33\/572\/86ae335724b4e650d5ded9584903cc89.png\"\/><figcaption><\/figcaption><\/figure>\n<p>And finally I found what I was looking for! First, I drew the monochrome illustration. Then, I added shadows and \u2014 finally \u2014 colors. Next, I added perspective to take a look at a 3D character model.<\/p>\n<p>You may wonder \u2014 why the ladybug has a\u00a0belly button? Think of it as an eye-stopper. The bug&#8217;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 \u2014 the bug will definitely stick his bum in your face.<\/p>\n<p>Next, I started drawing our bug step-by-step. First, I drew a monochrome image\u00a0of our character. It helps better understand proportions and accents.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/bc7\/9fc\/28c\/bc79fc28cb0bcfb4b02253c1292325ec.png\" width=\"580\" height=\"327\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/bc7\/9fc\/28c\/bc79fc28cb0bcfb4b02253c1292325ec.png\"\/><figcaption><\/figcaption><\/figure>\n<p>The next step was adding shadows. Shadows help find out the volume and what the character looks like in three dimensions.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/705\/12a\/cf1\/70512acf121704f889327f02c804750c.png\" width=\"580\" height=\"327\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/705\/12a\/cf1\/70512acf121704f889327f02c804750c.png\"\/><figcaption><\/figcaption><\/figure>\n<p>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.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/073\/70c\/818\/07370c818fbfb81a8509d4d0b29db1ca.png\" width=\"580\" height=\"327\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/073\/70c\/818\/07370c818fbfb81a8509d4d0b29db1ca.png\"\/><figcaption><\/figcaption><\/figure>\n<p>A facial expression is an important element that reveals the character&#8217;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&#8217;s mood, I replaced bug&#8217;s eyebrows with antennae.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/3e5\/af2\/beb\/3e5af2beb972f8c007d34dc7d9998e69.png\" width=\"580\" height=\"327\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/3e5\/af2\/beb\/3e5af2beb972f8c007d34dc7d9998e69.png\"\/><figcaption><\/figcaption><\/figure>\n<p>The final step was to describe the proportions of our new character. I used the Vitruvian Man to represent this.<\/p>\n<figure class=\"\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/0c1\/e92\/df7\/0c1e92df7059134e1ba016fe866a6dc9.png\" width=\"500\" height=\"400\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/0c1\/e92\/df7\/0c1e92df7059134e1ba016fe866a6dc9.png\"\/><figcaption><\/figcaption><\/figure>\n<p>Every character needs a name, but I didn&#8217;t come up with one. Why don&#8217;t you give him a name? Leave your ideas in the comments!<\/p>\n<p>Well, I guess that&#8217;s all. That&#8217;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.<\/p>\n<figure class=\"full-width\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/cf6\/cf7\/307\/cf6cf7307a32318a010c35a5f71118b5.png\" width=\"580\" height=\"327\" data-src=\"https:\/\/habrastorage.org\/getpro\/habr\/upload_files\/cf6\/cf7\/307\/cf6cf7307a32318a010c35a5f71118b5.png\"\/><figcaption><\/figcaption><\/figure>\n<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/681834\/\"> https:\/\/habr.com\/ru\/articles\/681834\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>You all know our mascot \u2014 a unicorn \u2014 many people grew fond of him! However, PVS-Studio has a supporting character who is also the antagonist of our product \u2014 a bug! Well, a bug is not omnipresent, indestructible evil. It&#8217;s more like an everyday\u00a0or a work-related trouble. In this article, you&#8217;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\u00a0belly button \u2014 keep reading!<\/p>\n<p>In case you want to learn more about our unicorn \u2014 click <a href=\"https:\/\/pvs-studio.com\/en\/blog\/posts\/0843\/\">here<\/a>.<\/p>\n<h2>Why we decided to update our bug<\/h2>\n<p>When I started creating pictures with our mascot \u2014 the unicorn \u2014 I also noticed pictures with a ladybug. Since the ladybug represents software bugs \u2014 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: &#171;It&#8217;s time to change our bug!&#187;.<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>So, that&#8217;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&#8217;s whim \u2014 but that&#8217;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.<\/p>\n<h2>Why our bug is a ladybug<\/h2>\n<p>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\u00a0to a burnt moth trapped in a relay. The insect was removed, taped to the log book with the following entry: &#171;<em>First actual case of bug being found<\/em>&#171;.<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>The PVS-Studio team decided to call a software bug a ladybug because we just like ladybugs and the word sounds nice.<\/p>\n<h2>How we developed a new character design<\/h2>\n<p>First of all, I wanted to express the character&#8217;s personality. Designers apply different approaches to achieve this. I decided to use one of the main ones \u2014 shape.<\/p>\n<p>Using the language of shapes and forms, artists convey the picture&#8217;s idea. Each shape affects viewer&#8217;s feelings and emotions and can make them react differently.<\/p>\n<p>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.<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>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.<\/p>\n<p>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\u00a0draw 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 \u2014 I think it&#8217;s the best way to express our bug&#8217;s personality. Here&#8217;s what he looked like:<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>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&#8217;s proportions. After all, our mascot is the main and the most important character in any event or illustration. I carefully\u00a0thought it\u00a0over\u00a0and decided to simplify our bug and make him smaller. However, I kept his goofy face \u2014 it gives more ideas on how to express the character&#8217;s facial expression.<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>Experimenting with shape and color, I was trying to create the most matching antagonist for our unicorn.<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>And finally I found what I was looking for! First, I drew the monochrome illustration. Then, I added shadows and \u2014 finally \u2014 colors. Next, I added perspective to take a look at a 3D character model.<\/p>\n<p>You may wonder \u2014 why the ladybug has a\u00a0belly button? Think of it as an eye-stopper. The bug&#8217;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 \u2014 the bug will definitely stick his bum in your face.<\/p>\n<p>Next, I started drawing our bug step-by-step. First, I drew a monochrome image\u00a0of our character. It helps better understand proportions and accents.<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>The next step was adding shadows. Shadows help find out the volume and what the character looks like in three dimensions.<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>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.<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>A facial expression is an important element that reveals the character&#8217;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&#8217;s mood, I replaced bug&#8217;s eyebrows with antennae.<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<p>The final step was to describe the proportions of our new character. I used the Vitruvian Man to represent this.<\/p>\n<figure class=\"\"><figcaption><\/figcaption><\/figure>\n<p>Every character needs a name, but I didn&#8217;t come up with one. Why don&#8217;t you give him a name? Leave your ideas in the comments!<\/p>\n<p>Well, I guess that&#8217;s all. That&#8217;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.<\/p>\n<figure class=\"full-width\"><figcaption><\/figcaption><\/figure>\n<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/681834\/\"> https:\/\/habr.com\/ru\/articles\/681834\/<\/a><br \/><\/br><\/br><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-398095","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/398095","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=398095"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/398095\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=398095"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=398095"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=398095"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}