Our next topic is Shape Control by Curves. And the work we introduce here is called FiberMesh. And what we propose is an extension of the previous technique, which called sketch-based 3D modeling. The difference is that original sketch stays and works as a handle. So here, the input is very similar. You draw something and you get 3D shape. However, unlike previous system, this curve stays on the surface, and then you can grab them and move around and then deform the shape. Let me show you a demo. So again, input is very similar. User just draw a line, and the system inflates it. However, as you see, your input stroke stays there and this serves as a handle. So you can grab them, and move upwards. And then, surface continuously changes. You can see it from the top, and then you can pull it sideways to change the shape. In this way, you can get more control, and you can get more smooth shapes, which was not possible in the polygon based system. And you can also add more control curves like this way. And then you can grab this thing, to change the shape. And then like previous system you can also add an arm. And from the sideways, you can pull it down to change the shape. And here, as you see, we have two kinds of curves. The blue curves is a kind of smooth constraint, and the red curve is, as you see, a sharp constraint. And of course, you can change the categories. For example, if you change them to a blue, you know, as you see. You will get a smooth rendition and, if you want you can also erase them to remove any constraint. And you will get a very smooth shape. And another example is here. You draw a shape here, and then you draw a shape here. And here this is a little bit too low-tune. And if you want, you can make them sharp, and then you can get this kind of shape. All right. Let me show you a couple more examples. Here you get this shape, and then you can cut it here like this way. And then you get the sharp shapes. And then if you erase these parts, you can get shape. So here, you know, smooth-sharp, discontinuity here, but smooth part is going around. And then again, you meet at a sharp crease. This kind of thing is not easy to do with other approaches. You can use improve surfaces but improve surfaces is always smooth, if you use this discontinuous part is boundaries always sharp, or smooth and this is not easy. And after combining these operations, you can get reasonable shapes like these. You can make this kind of masks or a human body. Or arms and so on. And point here is that, traditional methods require the user to design. these models by manipulating individual control vertices, but here what user control is always curves. And then we hope that this is more intuitive and more efficient. And let me describe the algorithm behind the scene. So basic idea behind it is that user controls the curves. And the curves define the boundary, and the system automatically generate a smooth surface based on the curves by running a continuous optimization, trying to make a smooth surface as defined by the curves. So that's the basic idea. And let me describe the details. So curve deformation takes handle position as input, and then generates curve geometry, updated curve geometry. And the surface optimization takes curve geometry as input, and then generates a smooth surface. And let me describe the curve deformation first. So curve deformation is works like this way. So you have this shape. Input shape, and then each segment has three dimensional coordinate frames. Then, if you pull one point upwards, and then a system will deform the entire curve. Then, as you pull upwards, all coordinate frames also rotate together. What we do is simultaneously updates each position, edge rings, and also rotation coordinate frame of individual segments, curve segments. This is a quick overview. Please refer to paper for the details. But briefly what we do is Minimize these functional, by moving around vertix positions and edge rotations. So we try to find very good more smooth vertex position and edgy- edge rotations that minimize this. And what we minimize is here, is the difference. So this is this is a small Laplacian which means, difference observed current position from the surrounding position, and then the current difference is rotated and it is compared to the current updated Laplacian. And this preserves the local details. And this one tries to minimize the difference between neighboring rotations. So this tries to achieve smoother rotations. And then this one is tries to minimize difference between current position and the position of this line positions, and nearby positions. So, it means a smooth position. this, try to minimize the difference between original position and updated position. Similarly, this one tries to minimize previous current rotation and updated rotation. So by solving this system, system tries to find a smooth deformation. Next one is Surface Optimization. And surface optimization takes as input a curve geometry and a mesh topology. And this is the input. And then system automatically generates smooth surface. To do so system basically tries to minimize variation of curvature. You know, curvature is how curved the surface is. And then by minimizing the variation of curvature, system tries to generate a smooth surface. In a mathematical representation, it looks like this. So, Kn is a curvature, and then Kn derivative in both principal axis and secondary axis, and then this represents curvature, and then curvature variations, and then we try to minimize this. And now fortunately this is no linear problem. It's not easy to, or efficient to compute. So we approximate this by a couple of stepwise linear computations like this. A little bit complicated, but roughly we have two pass- Two passes. So one is curve- so left flow computes curvatures. So we first compute curvatures which is a scale of values, and then by blending or smoothing out we then get target curvatures. So as you see, originally curvature has many variations. But by smoothing out, you get a more uniform target curvature values. So we tried to obtain these curvature values. And from these curvature values, multiplied by a surface normal, you get target Laplacian vertices, vectors. So we try to obtain this Laplacian vectors. In parallel, we also compute edge lengths. So we first compute current edge lengths. And then we compute target edge lengths, by blending or smoothing out. And then, multiply this target edge lengths with current edge vectors, you get target edge vectors. And by combining these target Laplacian vectors and target edge vectors, we solve a least squares problem and you get updated geometry. And then we repeat multiple times, and then you get optimized smooth shape. So original paper was called FiberMesh designing free-form surfaces with 3D curves. And similar technique that he's trying to gradually changing the shape considering local details was originally a presented at sketched based interface for detail-preserving mesh editing. And also our technique is kind of learning surface fairing continuously. And it was inspired by work by geometric fairing or irregular meshes for free- for free-from surface design. And we recommend you to take a look at these works. Thank you.