[SOUND]. [BLANK_AUDIO] hello, this is week two of interactive computer graphics. And the topic of this week is, 2D Drawings and Animations. And here's a list of topics, we discuss in this week. The Diagram Beautification, Pen-and-ink textures, Shape Manipulation, and then Dynamic Illustrations. The first one, is Diagram Beautification. The work we introduce here, is called Pegasus. And the problem we discuss here, is a drawing of this kind of geometric drawings, and it's very tedious to draw this kind of diagram, using traditional drawing systems. For example, if you want to draw, this kind of symmetric diagram, you have to draw first half draw, draw a half of it and duplicate it, and then flip it and move it. So, you have to combine three, two or three commands to draw a symmetric drawing. If you do something like, like this, like symmetric, perpendicular, and the same gap and connect it. And then, it becomes too difficult to do it, with combining appropriate commands. So, what we propose is to automatically, have the system automatically take care of these kind of constraints. Here is our demonstration. So, this is again designed for pen computing. So, you directly draw a line on the whiteboard, and the system automatically provides feedback. So here, you draw a line, and then the system automatically beautifies it. And if you draw a line, system automatically beautifies it. So, this point is automatically aligned to this point. And then you draw a line here. And the system automatically beautifies it. And if you do a line here, this is almost perpendicular to the slope. The system makes it perfectly perpendicular. So, in this way, you just draw freeform lines. And then you will get this kind of diagram. Traditional, in, in traditional systems, you have to draw rectangle separately and then move it, rotate, connect, and so on. So, it can be very tedious. But here, you just draw six lines and the system automatically beautifies it. And you can do many more things. For example, if you draw, almost symmetric line. System makes it, perfect mirror image. And you just draw freeform strokes and then you'll get this diagram. And if you draw right here, this is identical, very similar to the previous one, and the system makes it an exact copy, of the previous stroke. So again, you draw several lines. And you'll get, you will get a copy without using Copy or Duplicate command and we also provide equal distance between lines, so in this way, you can get this without specifying grid beforehand and also, you can do something like this. So system automatically makes the distance, between two lines are identical. So traditionally, you have to draw two lines duplicate it, rotate it and trim it, so it can be very tedious. And one important aspect of this kind of automatic system is that, user input can be ambiguous. So, if you draw a line here, this is ambiguous, right? So, user may want to draw a mirror image here or you may want to connect these points or user may want to do this. So, system automatically infers multiple candidates and then presents a user and you can choose one of them later, and this is very important to handle ambiguity. And that's beautification. And we also implemented a prediction in, in this system. So, suppose, you have this kind of illustration already and you draw a line here. So, here, system knows that this red segment is identical to this one. So, system automatically predicts or infers that, now that, you draw the same thing, you probably, want to draw the same thing around it. So, here's a prediction. And if you like one of them, just click it, and the next prediction appears. So, as long as the prediction is correct, you complete drawing just by successive clicking, and if you prediction is not use- useful, you can just ignore them and you draw it by yourself, and you again, activate prediction and you click and draw. Yeah. And this prediction is very useful for multiple purposes, like drawing repetitive illustration. Then you can again click here and then type, touch, inducing segment, and then start prediction again. So, this is very useful for repetitive drawing. And this is also useful for symmetric drawing like this one. So, you can tap, and then prediction appears. And then tap, tap, tap. And then you will get this kind of symmetry doing, just by drawing and prediction. So, that's the demonstration. Let me briefly describe the algorithm behind it. The beautification algorithm and prediction onwards. So beautification, works this way. So first, user input is this red one. And then, looking at this input, system first learns constraint inference engine. And then, getting segment coordinates positions. And then, infer multiple constraints. So, in this case, the system infers that this should be connected, this should be perpendicular, this should be, horizontally aligned and so on. Given these possible geometric constraints, then constraint solver, tries to combine them and then solve it here. An interesting point here, is that these constraints can be, contradictory to each other. So, constraint solver needs to find valid combinations and after having multiple Candidate, system evaluate them, in which is most closer to the user input and then picks the most plausible one as the first candidate and then return it to the user. And let me, more describe constraint solver a little bit more. So, Constraint Solver, as I said, takes multiple infer for the constraints, and then identified by the combination, and then returns the result, for each combination. And, the details, let me describe the details using one example. Suppose you have these four constraints. x equal 1, y equal 2, x minus y equals 0, x plus y equals 2. So, suppose you have these four constraints and then tries to find valid combinations. One combination, is one and two. So, if you combine these two, you would get one and two and it's here. And if you combine this one, first and third one, and then x equal y, and y equals 1 and you’ll get this. However, you cannot combine these three because it's contradictory, so that's what we try to do here. And in the system, the algorithm works as follows. For each constraint you apply, you make up can- We have a set of intermediate valuations like this, so first no valuation is given. And then for x first constraint, you apply it or not apply it. So, if you do not apply it’s the same thing. If you apply it, you get one and not valuated. So, in this way, you- this is kind of basically binary tree and you can sort of. Intermediate valuations grows exponentially. However, in some cases. Valuations can be the same. For example, this valuation combining first one and the third one, is identical to combining this one and this one is identical to combining this one and this one So, some solutions are merged together. So, this is a kind of thing happening behind the constraint solver. And let me briefly describe the prediction algorithm. Prediction works as follows, so you have these kind of existing segments and you get a new input segments. And first, system searches for the identical segments, identical to the new input segment. And after identifying the matched existing segment. Then system collect, aggregate, nearby segment to the reference stroke and then copy them to the new, segment. And the addition to that, we add vertical and horizontal flip, over the predictions. So, that's the way, the prediction work, works. So, that's a, our system and the original paper was published as Interactive Beautification, a technique for rapid geometric design in ‘97. Constraint-based drawing, is a popular topic. And original paper was published as Sketchpad and this is, a very old paper published in 1963, but this is still. Very powerful tool. And I recommend you to take a look at the video. This was a very first computer graphics and also very first interactive computer graphics. And if you want to see the recent one I'd recommend you to take a look at the Cinderella system. This is this kind of constraint-based, geometric drawing system. And this is very useful for mathematical education and so on. Thank you.