top of page
Writer's pictureHwang Il Seok

Report :: Violin Model Design and Automation Process Using Clothoid Curve

Updated: Mar 28, 2022


Learn about the advantages and application methods of using the multiclosoid curve in violin design, and check its feasibility by creating an automation program.



 

View as PDF


 

Download PDF version


 

There are three main ways to design the line of the violin body. The first is to imitate the lines of other instruments as they are, and the second is to imitate the lines of other instruments and then modify only the parts you want. The above two methods are very good in terms of convenience and working speed, so they are the methods most currently used by violin makers. The third is to design your own. This method is meaningful in that you can get the line you want and it is your own unique model, but this method is difficult and complicated and requires a lot of effort to get satisfactory results.


It is very important to design the model yourself in terms of understanding the instrument. In the process of designing yourself, you come to understand various problems that you could not understand when copying the model of another instrument as it is, and there are also many cases where you learn why the old violin had to be designed that way.


Personally, I think that not having my model means giving up on `maker' and walking the path of `copy machine', so I think there should be a model designed by myself from start to finish that contains only my thoughts. Even if I have slightly modified the lines of other instruments, I can say that it is my models, but if possible, it would be better to design them myself from start to finish.


While studying design, I tried all the existing methods, but they all had some problems, so it was difficult to use them in actual work. A common problem is that it is too complex to be difficult, and it is also difficult to modify only part of the design after it is complete. But what I think is the biggest problem is that (in mathematical terms) there is a point of discontinuity on the curve. Simply put, the curve is not smooth. Additionally, there is a problem that the shape of the curve can no longer be changed if the size and width of the instrument are the same. In other words, all models of the same size must have the same shape. To solve these problems, I tried to develop an automation program using the clothoid curve. However, after about 10 years of not making any progress due to several key problems, I have finally completed the automation program.


In this report, we briefly review the existing methods for designing a violin model and examine the problems of those methods. And, to solve this problem, we will learn about the clothoid curve to be used and how to apply it to the violin design. Finally, I will summarize important points about the program for automating these design tasks. Violin design automation program will be posted separately later along with the user manual.


 

1. Existing Violin Design Methods and Problems


 

1.1. Existing Design Methods and Features


Currently, about five methods of designing a violin are known. Sacconi, Navne, Pigoli's method is a little older, and Francois Denis' method seems to be getting attention recently. Pigoli's method is also the method I personally recommend because it uses a spiral curve. Denis's method is an excellent method in that it allows relatively free design of various models by changing a few parameters and is simpler than other methods.


Finally, Sergei Muratov's method is most similar to the contents of this report in that it uses a clothoid curve. I think this method is the most similar to the actual instrument line among the methods above. However, it is impossible to draw with a ruler and compass, and when using a CAD program, it is a difficult method to realize unless excellent programming skills are supported.


 

1.2. Common Problems of Existing Design Methods


Complex and Difficult Design Process

All of the above five design methods are not easy when drawing by hand using a ruler and compass or drawing using a CAD program. The drawing process is complicated, so it is difficult to follow each step while looking at the textbook.


Difficulty of Partial Changes After Design Completion

Instrument design cannot achieve satisfactory results in a single step. When you first create an instrument with a finished design, you will most likely need to revise some of the design. In this way, if you want to modify only a part of the finished design, it requires almost the same level of effort as making a new design because of the complicated drawing process.


Difficulty in Changing the Shape of Lines in Models of the Same Size

For example, in the case of the C-bout curve, it is impossible to change the C-bout curve into various shapes without changing the position of the narrowest point of the C-bout and the position of the U/L-corner(U/L : Upper/Lower). This is because, in the above five methods, if the positions of the points are the same and the positions (or sizes) of other related points are the same, the curve of C-bout can only make one curve.


Existence of Point of Discontinuity and Unnatural Curves

The curve of the real violin is the curve of the real world, whereas the curve designed by the above methods (except for the method using the clothoid curve) can be called “the curve of the ideal world”. In other words, it means that it is a curve that does not exist or cannot exist in reality.


For example, the above methods (except for the method using the clothoid curve) have in common to complete the curve by concatenating arcs of different radii. That is, the arc of radius b is connected to the end of the arc of radius a, and the arc of radius c is connected to the end again. However, such curves do not exist in the real world. A curve in the real world we live in never instantaneously changes its radius from a to b or from b to c at any one point. In mathematics, such a point is called a “point of discontinuity”, but there cannot be such a point of discontinuity in the curve of the real world we live in. Even if you don't follow the mathematical principles, if you look carefully at the curve, you can feel that the connection is not smooth at the point where two arcs connect.


Figure 1 is an example of a C-bout drawn by the methods of Sacconi, Pigoli, and Denis from the left. If you look at the red circle, it looks like it is slightly bent in that area. This is because the radius of the arc suddenly changes here, and this is where the point of discontinuity exists. There is also a point of discontinuity in the green circle, but the radius is relatively large and the difference in radius between the two arcs in contact is not large, so this is just not conspicuous.


Figure 1: A point of discontinuity in C-bout


Excessive Curvature in Corners

Four corners are created by joining two arcs of different radii. Therefore, its tip is quite sharp. In actual corner work, the Side has to be curved and attached, but because of the thickness of the Side itself, the end of the Side is not completely round as designed. Therefore, the corner end of a real instrument is not a perfect arc, but a very slightly flat line. In other words, it can be said that the curvature of the corner end is excessive compared to the actual instrument in all of the above five methods.


Above, five common problems were identified. Personally, the existence of a point of discontinuity and unnatural curves are perceived as the biggest problems. The problem that the process is complex and difficult can be solved with effort, but this is a fundamental problem with the design method and cannot be solved with effort.


 

1.3. Method to Solve the Problems of Existing Design Methods


All of the above problems can be solved in the following way.


Difficult design process, difficulty in partial change

These two problems can be solved if there is a design automation program.


Point of discontinuity, unnatural curve

This could be solved by applying the clothoid curve.


Difficulty in changing lines, excessive curvature in corners

As for the clothoid curve connecting two points, if the direction of the curve at the start point and the end point are the same, there is only one clothoid curve, so these problems cannot be solved with a simple clothoid curve. In this study, this problem will be solved by concatenating multiple clothoid curves (hereinafter “multi-closoid curve”).


other words, all existing problems can be solved if there is an automation program that applies the multi-closoid curve.


In the next chapter, we will find out what these clothoid curves are and how to apply them to violin design.


 

2. Design Method Using Clothoid Curve


 

2.1. Clothoid Curve


In the dictionary, a clothoid curve means a curve whose curvature increases as the length of the curve increases. In other words, it is a curve in which the curvature of the curve gradually increases and becomes more and more rounded (also called Euler spiral, Cornu spiral).

- Figure 2 -


Figure 2: Clothoid curve


These clothoid curves are mainly used for curve sections of highways because they match the trajectory of the car when the steering wheel of a car running at a constant speed is rotated at a constant speed. In Figure 3, the red line is the clothoid curve. Taking a highway as an example, when you enter a green round road from a straight blue road, you gradually reduce the turning radius along the clothoid curve.


Figure 3: Clothoid curve on highway


In mathematics, it is expressed by the following formulas (1), (2), etc.




 

2.2. Ideas for Adapting Clothoid Curves to Violin Designs


The basic principle of applying the clothoid curve to the design of a violin would be good to refer to Sergei Muratov's explanation. In 「The Art of the Violin Design ( http://zhurnal.lib.ru/m/muratow_s_w/violin_design.shtml )」, Sergei Muratov interprets almost all the curves of the violin, including the head, scroll and F-Hole, as well as the body of the violin using the clothoid curve. I think this is the most realistic analysis method out of all of them. Figure 4 (Excerpt from http://zhurnal.lib.ru/m/muratow_s_w/violin_design.shtml ) is a clothoid model of a violin body interpreted by Sergei Muratov.


Figure 4: Violin design by Sergei Muratov


The reason Sergei Muratov's design method is described as "analysis method" is because it is considered to be closer to an analysis method than a design method because it is advantageous to interpret a certain design, but it is difficult to design directly. For example, a curve from point C to F1 in the figure consists of a curve drawn from point C to F1 and a curve drawn from point S to F1. These two curves intersect somewhere halfway between points C and F1. However, the problem is that it is very difficult to specify the point where the two clothoid curves meet.


Similarly, the curve from the point F1 to T, which is the bottom line of the U-bout, consists of a curve from S to F1 and a curve starting from the middle between F1 and T and heading to T. It is also difficult to specify the point where the two clothoids meet. Therefore, in order to actually design using such a clothoid curve, a separate idea is needed. Below we will look at two ideas to solve this problem.



2.2.1. Designation of Control Points


Knowing exactly where two adjacent clothoid curves meet is very important in violin design. In fact, if you don't know this, you can't do anything. When the point where two curves meet is called a “control point”, it should be possible to change the size and shape of the instrument, such as the length and width of the instrument, by changing the position of the control point.


Figure 5 describes the position of the control point. To determine the length of the instrument, first designate it at the top and bottom centers (points A, Z), and then designate it at the widest point of the U/L-bout to determine the width of the instrument (points U1, L1). These points U1 and L1 affect the curve shape as well as the width of U/L-bout. If the x-coordinate of U1 is left as it is and only the y-coordinate is raised, that is, if the point is raised vertically, the shape of the U-bout will be a more alive shape of the shoulder, and if it is lowered, the shape of the U-bout will be rounded. (If you want to change the shape of the curve without changing the position of U1, you can change the curvature)


Figure 5: Designation of control points


Similarly, the narrowest point of C-bout is also designated as a control point (point M1). Next, each corner is also designated as a control point (points X1, Y1). Finally, on the curve from the widest point of U/L-bout to the corner, the point where the direction of the curve changes (Corner joint) is set as the control point (points P1, Q1). This control point has the same x-coordinate as the corner's x-coordinate. That is, when a perpendicular line is drawn from the corner, it becomes the point where it meets the curve. The control points set in this way can be connected with a clothoid curve.


2.2.2. Application of the Multi-closoid Curve


In the above, the position of the control point was specified. Then, if all these control points are connected with a clothoid curve, the figure of the violin should be drawn. But the reality is not so. This is because, when connecting two points with a clothoid curve, if the direction of the curve at each point is the same, there is only one clothoid curve connecting the two points.


For example, there is a clothoid curve connecting points A and B as shown in Figure 6, (a). This curve starts in a west direction at A and points south when it arrives at B. Assuming that the positions of A and B do not change, if the direction (angle) from A or B is changed, an infinite number of clothoid curves (Figure 6, (b)) can be drawn.


(a) One clothoid curve

(b) Closoid curves at different angles

Figure 6: Closoid curves connecting point A to point B



Unfortunately, in violin design, some of the control points defined above allow only one direction (angle), and some allow only a very narrow range of angle changes, so you cannot expect a correct violin appearance.


In this problem I will solve the problem by using multiple clothoid curves between the two control points. Specifically, the two control points are connected by connecting three clothoid curves. In this way, it is possible to create curves of various shapes while maintaining the angles at points A and B. Figure 7 connects points A and B by connecting three clothoid curves. (The three Closoids are expressed in different colors.)


Figure 7: Curve with 3 Closoids Connected


Closoid curve connection is mathematically completed using a technique called "G2 Hermite interpolation". (If you are interested in mathematical content, check Bibliography)


Figure 8 shows curves of various shapes without changing the direction (angle) at points A and B using three clothoid curves(In this report, it will be simply referred to as “multiclosoid curve”) to which 「G2 Hermite interpolation」 is applied.


Figure 8: Multi-closoid curves connecting point A to point B in the same direction


By using the multiclosoid curve between all the control points, it is possible to create a smooth line that is mathematically and aesthetically beautiful without any point of discontinuity. It is also possible to change the shape of the curve without changing the position of the control point.



 

3. Violin Design Automation Process Using Multiclosoid Curves


The most important key in the production of an automation program for violin design is how to implement three clothoid curves to which 「G2 Hermite interpolation」 is applied in the program. Fortunately, there is a nice module called "pyclothoids" that makes it easy to handle.


Since the left and right sides of the violin are symmetrical, if you draw only one side on either side, you can easily complete it by mirroring the other side. I will complete only the left line of the violin and mirror the right side. Since coordinates are needed to display the line in the program, the lowest center point of the violin form is set as coordinates (x,y)=(0,0), and curves will be drawn sequentially from the top center point of the form to the bottom.


Below, we will look at how to actually complete the design of the violin form in the program. As the programming language, 「python3」 is used, and the above pyclothoids module is required. (The code shows only the core.)


 

3.1. Designation of Control Points


As mentioned in the previous chapter, the size and shape of the instrument are determined by the location of the control point. Therefore, you should decide in advance the size of the instrument you want. Based on the size, input the xy coordinates of the control point.


First, the instrument size was set as Table 1. And input the corresponding coordinates. For reference, for a violin with a body length of 355mm, the length and width of the actual form must be entered in consideration of the thickness and edge width of the Side. I assumed that the thickness of the Side was 1.2mm and the width of the part protruding from the Side was 2.8mm, and the total length of the form was set to 347mm ( = 355 - 2 * ( 1.2 + 2.8 ) ). When setting the coordinates of U1, which is the control point of U-bout, it should be noted that the x-coordinate is half the width of U-bout and the sign is '-'. The gray text box below is the program code.


Table 1: Determination of instrument size


Ax = 0
Ay = 347
U1x = -160/2
U1y = 281.1
P1x = -148.6/2
P1y = 251.7
...

 

3.2. Construction of Closoid Curve


In principle, the curve always starts at the upper point and ends at the lower point. In the pyclothoids module, the function to draw three connected clothoid curves requires the coordinates of two points and the direction (angle) and curvature at each point. Curvature is to be corrected by inputting '0' at first and changing the value little by little later.


For the coordinates of the points, input the coordinates of the points set in the previous chapter. The direction of the curve defines east as '0' degrees, west as 180 degrees (or -180 degrees), north 90 degrees, and south as -90 degrees. The curvature is a parameter indicating the degree to which the clothoid curve is curved, and the greater the curvature, the more it is curved. By changing the direction and curvature, various shapes of curves can be drawn. When setting the curvature, pay attention to the sign of the curvature. If the sign of curvature is '+', the curve is curved counterclockwise, and if the sign is '-', the curve is curved clockwise.


For the curves of A and U1, the angle at point A is 180 degrees (or -180 degrees), because it starts from point A to the west. The angle of U1 is -90 degrees as it faces south. (not the angle from U1 looking at the curve (+90)).


There are a total of 8 sections on the left side of the Form, and 3 Closoid curves are included in each section. Each clothoid curve will be displayed in a different color on the graph. The initial value will be completed by entering an approximate value, checking the graph directly, and modifying it little by little.


Section 1. : A ~ U1

The direction of the starting point A is 180 degrees and the direction of the ending point U1 is -90 degrees. These two values are fixed. At point A, the curve must be horizontal, so it must be 180 degrees, and since point U1 is the widest point of U-bout, the curve must be exactly vertical at this point, so it must be -90 degrees. All curvatures are set to '0' (the rest of the section is the same)

clothoid_1 = pc.SolveG2(Ax, Ay, pi, 0, U1x, U1y, -pi/2, 0)
for i in clothoid_1:
    plt.plot( *i.SampleXY(500) )

Section 2. : U1 ~ P1

The direction of the start point of the second section must be the same as the direction of the end point of the first section. That is, in U1, two clothoid curves meet, and the directions of the two curves must be the same. Otherwise, the curve will be bent at this point. Therefore, the direction of U1 must be -90 degrees. At point P1, it is facing approximately in the south-southeast direction, so first input about -70 degrees.

clothoid_2 = pc.SolveG2(U1x, U1y, -pi/2, 0, P1x, P1y, -70*pi/180, 0)
for i in clothoid_2:
plt.plot( *i.SampleXY(500) )

Section 3. : P1 ~ X1

The direction of the start point of the third section must be the same as the direction of the end point of the second section. Therefore, enter -70 degrees as above. At X1, the end point, it faces approximately south-southwest, so enter -110 degrees (code omitted below).


Section 4. : X1 ~ M1

Since the starting point of the fourth section is a corner, it does not share a direction with the end point of the third section. In X1, the angle is set to about 10 degrees because it starts in the direction of approximately northeast. The end point M1 is the narrowest point of C-bout, so it must be vertical here. So the angle is -90 degrees.


Section 5. : M1 ~ Y1

The starting point of section 5 must be in the same direction as the end point of section 4. So, you enter -90 degrees. At the end point, it faces the northwest direction, so let's enter it at 170 degrees.


Section 6. : Y1 ~ Q1

The starting point of section 6 does not share a direction with the end point of section 5. Since it is facing south-southeast, enter -70 degrees, and since the end point is south-southwest, enter -110 degrees.


Section 7. : Q1 ~ L1

The starting point of the 7th section must be in the same direction as the ending point of the 6th section. So, you enter -110 degrees. At the end point, it should be vertical, so we enter -90 degrees.


Section 8. : L1 ~ Z

The starting point of the 8th section must be in the same direction as the ending point of the 7th section. So, you enter -90 degrees. The endpoint must be perfectly horizontal and face east, so enter '0' degrees.


After completing the above input and checking the graph, you can see the figure 9.


Figure 9: Result


Unfortunately, it seems that it cannot be said that it is a violin yet. In the next chapter, I will change the angle and curvature little by little to make it more like a violin.


 

3.3. Correction of Curves


In order to obtain the intended line, it is necessary to accurately understand how the curve changes according to the parameters of the direction and curvature at two points. In particular, it should be noted that the change pattern is different from that of a monoclosoid curve in which only one end point is fixed, since this report is for “multi-closoid curve with both endpoints fixed”.


3.3.1. Change of Curve According to Direction (Angle)


There is no confusion about the angle of the start point, but care must be taken with the angle at the end point. If you want to draw a curve like Figure 10, the starting point A is facing south, so the angle will be -90 degrees. But what is the angle of the endpoint B? From the endpoint, the curve is to the southeast, so about -45 degrees?


Not like that. It should always be based on the direction of the curve. The curve comes from the starting point A toward the south, gradually changes to the west direction, and at the end point B, it stops in the state toward the northwest direction. Therefore, the direction at the end point is northwest. So the angle at the endpoint B is 135 degrees.


Figure 10: Angle at the endpoint


3.3.2. Change of Curve According to the Sign of Curvature


As mentioned earlier, if the curvature value is '+', the curve is curved counterclockwise, and if the value is '-', the curve is curved clockwise. Figure 11 shows the same curve with only the curvature at the starting point A changed. Since only the sign of curvature of the starting point is different when the starting point and the ending point are fixed, one curves in a clockwise direction and the other curves in a counterclockwise direction immediately after starting point A.


Figure 11: Curvature of A = −0.2 (left), 0 (center), +0.2 (right)



3.3.3. Change of Curve According to the Magnitude of Curvature


When the "absolute value" of the curvature is small (minimum value = 0), the curve curves gradually, and when the absolute value of the curvature is large, the curve curves rapidly. Figure 12 shows that the starting point A has the same curvature and the ending point B has different curvatures. The left curve with a curvature of 0.4 is highly curved near the end point B. Note that the length of the clothoid curve becomes shorter as the absolute value of curvature increases (red line in the left curve). This is especially important to remember as it will have a huge impact on the corner design.


Figure 12: Curvature at B = 0.4 (left), 0 (right)


If the magnitude of the absolute value of the curvature is greater than '1', the clothoid curve adjacent to that point becomes very short and looks like two clothoid curves instead of three clothoids. Looking at Figure 13, there are 3 clothoid curves (green, light blue, purple) on the upper curve of C-bout in (a). However, in (b), the green curve attached to the vertex of the corner is hardly visible. However, in reality, there are still three clothoid curves. (c) is an enlarged area near the apex of (b), and it can be seen that the length of the green curve is reduced to about 0.6mm. Therefore, if you want to design with only two clothoid curves instead of three, theoretically, it would be possible to increase the curvature of the starting point or the ending point to infinity. In the case of this program, if the curvature is greater than approximately 10, the corresponding clothoid curve becomes inconspicuously short.


(a) Curvature = −0.07

(b) Curvature = −1

(c) Magnification of image (b)

Figure 13: Change of curve according to the magnitude of curvature


When designing a corner, using the above properties, the vertex area can be slightly flattened or rounded. Figure 14 shows how the curve near the vertex (green) changes by changing the curvature of the top curve of C-bout.


(a) Curvature = 0

(b) Curvature = −0.1

Figure 14: Curve deformation of the corner



3.3.4. Effect of curvature magnitude on direction (angle)


Let's look at Figure 13 again. (a) and (b) show that the angle of the upper curve of C-bout is the same and only the curvature is different. However, even though the same angle is input, the two angles are different to the naked eye. However, if you zoom in on (b), you can see that the angle of the starting point is the same. In other words, as the curvature size increases, the curve becomes more curved and shorter, so it looks like the angle has changed when viewed macroscopically. This phenomenon means that when the curvature is increased in the corner design described above, the angle must also be changed in consideration of it.




 

4. Design results and partial modifications


Figure 15 is the finished design of the violin form created using the values of Table 2.


Table 2: Parameter


Figure 15: Finished design


A very beautiful line of form has been completed. Excellent lines can be obtained only by correcting the angle and curvature.


Now, let's make the corrections mentioned in the previous chapter. Leave the other parts as they are and try to widen the width of the C-bout by 2mm each on the left and right. In this case, it is enough to widen the control point M1 indicating the narrowest position of the C-bout by 2 mm. In other words, you only need to move the coordinates of M1 to the left by 2. As a result, the revised design is widened by a total of 4mm left and right. - Figure 16 -


Figure 16: C-bout expanded


Let's compare the results before and after widening the C-bout. As can be seen from Figure 17, the other parts did not change at all, only the width of the C-bout was widened. And it can be seen that the curve of C-bout has been smoothly changed accordingly.


Figure 17: Comparison before and after C-bout expansion


Going one step further, this time let's make the shoulders and hips slightly angled. Figure 18 shows that the curvatures of points A and Z are set to '0', and the curvatures of points U1 and L1 are slightly lowered.


Figure 18: Model with modified shoulders and hips



Let's compare the shape of the shoulder and hips with the appearance before modification.

- Figure 19 -


Figure 19: Comparison before and after correction of shoulder and hip


Finally, let's compare this to the original. - Figure 20 -


Figure 20: Comparison of initial and final design



 

5. Conclusions and Considerations


So far, we have seen the problems of the existing design methods and that the form design of the violin can be completed using three clothoid curves connected by applying G2 Hermite interpolation, and partial modifications can be performed very easily. This method can be applied equally to the design of not only the violin but also the viola and cello by changing only the number.


The completed program (Figure 21) and user manual can be downloaded from my website (http://www.hisviolins.com).



Figure 21: Violin Designer, v.2.3.0



 

Bibliography


[1] E. Bertolazzi and M. Frego, “On the g2 hermite interpolation problem with clothoids.”,

Journal of Computational and Applied Mathematics, no. 341, pp. 99–116, 2018.







444 views0 comments

Comments


bottom of page