JF https://www.javantea.com/page/make/312

Yesterday I talked a bit about technology, the internet, innovation, and Mars exploration. I'd like to go further with that by delving into my past two days of work. I have worked two 15 hour days in the last 48 hours. I like it a lot. I have viewed Slashdot, checked Drudgereport, e-mailed my father, watched anime, and waited for Fedex for 2 hours in the past 48 hours. What have I been doing? The first day I was coloring the pictures you will see in the next 20 days. I have all of them done and they're even uploaded to the server. Check them out at your leisure or wait until I post them with a rant. That almost ensures that you'll get 20 days of MoJF, so come back everyday.

What does technology have to do with my last two days? I've been at the computer clicking like a madman for the past two days straight. That's technology there, but there's something more interesting. A month ago, I decided that I should go analog for character design. Even though I have in my assets the ability to automate the character design process completely, I decided that I need diversity more than I need speed. And in fact, it was much more quick and efficient to do analog. One might think that drawing 40 character portraits, scanning, vectorizing, and skinning them would be very inefficient compared to the completely digital system. In fact, I tried the completely digital, automated system and created about five portraits that I deemed to be of far lower quality than any poor analog drawing I have made. Simply put, the pencil creates good looking heros while the mouse creates monsters. Of course, the mouse can easily trace pencil, which is what I did to vectorize all my drawings.

You get a real treat tonight because the hi res PNG is the vector graphic of the character design and the low res JPEG is the original scan. That allows you to see exactly what went into 1) pencil, 2) digitization, and 3) vectorization. Actually, there's a fourth step too, rasterization where I exported the vector graphic to PNG, filled in the correct colors, and touched up the picture. But that's another day. There's a fifth step where I create a 3d skin for it, but that's another week or so from now. But skinning is what I've been doing all day. I'll show you another day.



The philosophy part of today's lesson is this: automation is not always the productivity boost that you expect. As I told you above, my attempt at automation was a complete failure and waste of a few days. Robotics is about efficiency, cost-benefit, exploring inhuman frontiers (Mars, Jupiter, and the Heliosphere come to mind), and helping humanity than humanity can help itself. But robots are tools for now. They amplify the output of humans if used correctly. Who has been on the wrong end of a lever before? A person cannot pedal a bicycle that is too high/low a gear. Robots are similar. Usually they are designed for dirty, dangerous, or dull jobs. I have found them emptying trash cans, watering grocery produce, downloading websites, powering search engines, spitting money into the street. None of these robots are androids (humanoid), but they are robots nonetheless, because they fit the robot definition: input, output, action. These things could cost someone $7.10 or more per hour, but instead, a robot does these things for free. Of course, nothing is free. An engineer created each of these robots. That engineer was well paid. His/her boss was well paid, and the stockholders were likewise well paid. It took time to develop the robot. Will the robot really aid humans more than the work put into it? A good robot will run for a decade with regular maintenance. An awesome robot will run forever with regular maintenance. These engineers are really just doing a decade's work by developing the robot. The technicians that maintainence the robots are doing 3 months of work in one day just by maintainencing the robot. In those three months, the technician can service many robots, work on other projects, and do many things. In the decade that the engineer does not need to work, the engineer will invent and develop many robots and products that increase the output of very few humans. As an engineer, it is important to think of the costs and benefits of a system. Do simple calculations using approximations. If forty items need to be created, take the time to create one and multiply by 10-30 because human efficiency increases over time. Then compare that with creating a robot to create an item of similar quality. For a good robot, creating 40 should take the operator the same time as creating 400 items. That is because the operator will rarely interact with the robot to create the item. So the only cost is the engineer's time to create the robot.

Forty items is important, isn't it? I did the calculations in my head and noticed that I had forty good drawing waiting for vectorization. That cut out all of the drawing time. I then noticed that I was going to visit my parents who have a scanner which makes the availability time equal to 2 hours times 7 days plus 8 hours times 3 days. I only needed 4 hours to digitize all the images. It was amazing. I was able to use a fraction of the availability time (2*7 + 8*2 + 4 = 38 hours) to vectorize the drawings. I was able to do it quite easily. It took me 1 day (15 hours) to color all the drawing (very easy work) and 1 day (15 hours) to skin all the drawings. Compare that to creating any robot, and you are SOL. Robots take time to create. For this project, I was planning a week. But the initial evaluation after two days -- as I explained above -- *deep breath* was that the robot was not as simple as originally thought and would require heavy development and would result in minor advances over analog manual production. So I simply did the analog manual production even if it meant that I would be left with no robot to do my future work. You see, if I ever decide I want 40 more drawings, I have to spend ~20 hours drawing them, 4 hours digitizing them, 20 hours vectorizing them, 15 hours coloring them, and 15 hours skinning them. If I had built a robot, I would simply enter the parameters and I would have 40 drawings virtually instantly. But I like analog for drawing. It gives me a bit of time to diversify my visual target (the computer screen is very beautiful, though).

What I want to teach you today is about vectorization of analog pictures. Imagine you are an artist (or maybe you don't need to imagine). You work best in pencil on hemp pad. You sketch around, mess around until you have forty drawings. Forty is a big number. You can see that it took me 74 hours to create all 40 skins. Efficiency is pretty key. Make sure that you are on target at each step. 30 minites per pencil drawing, 6 minutes per scan, 30 minutes per vectorizing, 22.5 minutes per coloring, and 22.5 minutes per skinning. You can probably do it faster than that. Keep an eye on your computer's clock while you're vectorizing. If it won't work on it's own, leave it. Don't spend too much time making something pretty.

One problem I ran into was hair making a bit of a mess. There are a few ways I used to vectorize hair. The easiest is the short male hair. The first part is the front. It's a squat semicircle that is jagged. It does not include the sides. The second part is the back which includes the side. It isn't usually shown for very short hair. But it's necessary for the skin. You don't have to include it, but the sideburns are a nice addition and guys with slightly longer hair will have hair showing aside their heads. When they turn their head at all, you get a good view of it. Girls with long hair have the same system, but you get to see a lot of their back hair and their front hair merges a lot with the back hair. Bangs instead of the front part. Check yourself in the mirror if you want to know. Of course, how long is your hair? I don't know. The second way is for special anime hair. It involves clumps of hair that stick together. It's usually a slightly jagged triangle. I like the style, but I hate the vectorization stage. To make this work, it takes a bit of messing around. First, there's the top of the hair connected to the far right and left clumps of hair. It's on the bottom of the front part (which is above the face level). Then the central clumps are simply added and filled in a v shape instead of a full triangle. XFig works, Corel DRAW 6 does not. Hopefully your vector graphics package does. The same goes for the back part. Of course it's not easy.

A big question at the beginning is how to trace uneven stuff. The face is very rarely even when drawn in pencil. Even using an oval, I was unable to get decent evenness with the jaw. Eyes are also another problem for me. The second one I draw is either too small, too big, or just the wrong shape. Sometimes it makes for an interesting expression, but that's not what I set out to achieve. The solution I came up with is to trace the left side, copy, and mirror to the right, line it up with the right size (to get the size correct) and just let it be. It'll change the drawing, but evenness is the beauty of computer graphics. Copy, paste, repeat ad nauseum.

Chip music is that way which gives it a very distinct rhythm that motivates programmers like me quite well. Which comes back to the theory of robotics: robotics are useful for taking input and creating output to a given algorithm. If that algorithm is quite simple (ie. given a, b = copy a, paste b, mirror b, output a + b), a robot can do this very easily and fast. It can do it a billion times faster than a human usually. Recursive algorithms can create a lot of data in a very short amount of time or refine a lot of data into very specific data. This is why you get phone calls saying that you've won a trip to Disneyland or that Debt Services can lower your debt instantly. Robots input a phone number and a recording, it dials the phone number, plays the recording when the person picks up, waits for a button press or more likely a hang up, and outputs data to a database about what happened. A person would have to be paid $7.10 per hour to do that while a robot can do it forever given the resources required (phone lines, voice modems, fast database, and program). A single salesperson can take the place of as many workers as a business has phone lines. One engineering firm can create the robot and sell it to hundreds of marketing firms. One technician can take care of a dozen robots. This is the brilliance of the machine.

Another part of vectorization is the eyes. Once you have traced it evenly, how do you make it look right? Well, that's a problem I had. The way I ended up doing was to trace the eye with polygon as usual and use a colored ellipse underneath it. Then when I rasterize it, I just erase the ellipse outside the polygon. It was actually really ugly solution because it wasted so much time during the boringly slow rasterization part. I recently complained about filling during rasterization being slow. I don't see why it must be. Perhaps it is a problem with the software, The GIMP. I trust the software quite a bit, but it seems like it's an oversight to make fill that slow. Drawing with pencil in GIMP with large images is instant. Selecting is fast with large images, so the problem must be with the fill function. But wait a second here, if I select an area and then fill, it's faster than if I just fill a flat area. Does that make any sense? Hmm, I think I found a small bug. *shrug* I'll e-mail someone on the GIMP team and get back to you.

Permalink

Comments: 0

Leave a reply »

 
  • Leave a Reply
    Your gravatar
    Your Name