0:19

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.

Â 0:39

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 half of it and

Â duplicate it, and then flip it and move it.

Â So, you have to combine three, two or three commands to do 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.

Â 1:33

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.

Â 2:29

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 three more 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 assistant makes it an exact copy, of the previous stroke.

Â So again, you draw three 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 wizard specifying

Â grid, before hand and also, you can do something like this.

Â 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.

Â 3:28

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 then click and draw.

Â 4:58

Then you can again click here and

Â then type, touch, [UNKNOWN] segment, and [UNKNOWN].

Â So, this very useful for repetitive drawing.

Â 5:30

that's the demonstration.

Â Let me briefly describe the algorithm behind it.

Â The beautification algorithm and prediction onwards.

Â So beautification, works this way.

Â 5:42

So far, user input is this red one.

Â And then, looking at this input, system

Â first the 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 this 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 features.

Â 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 pick some more, plausible one

Â as a first candidate and then return it to the user.

Â 6:51

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 equal 0, x plus y equal 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 first and third one, x

Â equals 1, and y equals 1 and you 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 [INAUDIBLE]

Â 7:53

We have a set of intermediate valuations like

Â this, so far as no valuation is given.

Â And then for x first constraint, you apply it or not apply it.

Â So, if you do not apply it same thing.

Â If you apply it, you get one and not valuated.

Â So, in this way, you just kind of basically binary tree and you can sort of.

Â 8:24

Variations can be the same.

Â For example, this variation combining fast one and this other 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 consonant solver.

Â 8:48

And let me briefly describe the prediction algorithm.

Â Prediction works as follows, so you have these kind

Â of existing segments and you get the new input segments.

Â At first, system searches for identical

Â segments, identical to the new input segment.

Â And after identifying the matched existing segment.

Â Then system collect, aggregate, nearby segment to the different

Â stroke and they 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,a system and its original paper was published as Interactive

Â Beautification, a technique for rapid geometric design in 97.

Â Constraint based drawing, is a popular topic.

Â An 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 fast computer graphics

Â and also very fast interactive computer graphics.

Â And if you want to see the recent one

Â I'd recommend you to take a look the Cinderella system.

Â This is this kind of constraint-based, geometric drawing system.

Â And this is very useful for mathematical education and so on.

Â