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.