Adapting Motion Capture Data to Follow an Arbitrary Path

Size: px
Start display at page:

Download "Adapting Motion Capture Data to Follow an Arbitrary Path"

Transcription

1 Adapting Motion Capture Data to Follow an Arbitrary Path Submitted in partial fulfilment of the requirements of the degree Bachelor of Science (Honours) of Rhodes University Mark Whitfield 8th November 2004

2 Abstract This paper describes the implementation of a method to adapt motion capture data to follow an arbitrary path. The central idea is to create a path which represents an abstraction of the motion. The motion is then represented relative to the path. Thus altering the path alters the motion. This method is successful in getting the avatar to follow an arbitrary path. However, results using this method (which does not incorporate constraints) exhibit undesirable side-effects like footskate. However, if the path corresponds closely to the actual motion we can minimize these effects.

3 Acknowledgements Thanks to my supervisors, Shaun Bangay and Adele Lobb, for their support and advice throughout the year. I acknowledge the financial and technical support of this project by Telkom SA, Business Connexion, Comverse SA, and Verso Technologies through the Telkom Centre of Excellence at Rhodes University.

4 Contents 1 Introduction Problem Statement Motivation Document Structure Related Work Altering a Base Motion Synthesis Cyclic Motions BVH Files Least Squares Fitting Euler Step Integration Summary Design Paths Creating the Original Path Representing the Motion Relative to the Path Absolute Residuals Residuals Relative to the Path Altitude Adjusted Paths Arc-Length Reparameterization Calculating Arc-Length Transformation End of Path Handling Cycling

5 CONTENTS Editing the Path Summary Implementation Original Path Residuals Calculating the Residuals at each Frame Orientating the Avatar at a Frame on the New Path Translating the Avatar at a Frame on the New Path Arc-length Reparameterization Calculating Arc-Length on Original Path Finding the Co-Ordinates on a New Path End of Path Handling Cycling User Interface Rendering Objects Arc-Length Reparameterization Cycling Speed Original Path New Path Tracking the Path Camera Views Summary Results Arc-Length Reparameterization End of Path Handling Cycling Original Path Degree Converting a Simple Path to a Complex Path Converting a Complex Path to a Simple Path Converting a Complex Path to another Complex Path Uphill and Downhill Paths Summary

6 CONTENTS 4 6 Conclusion Conclusions Future Work References 58

7 Chapter 1 Introduction 1.1 Problem Statement Getting an avatar to follow an arbitrary path is a trivial problem whether we are using motion capture data or not. Getting the motion to look realistic as well as follow the path is not a trivial problem. A tool for editing the path of motion capture data needs to be built using a suitable method. Michael Gleicher [Gleicher 2001] introduces a method for editing the path of a motion. This method is implemented. The characteristics of the original motion should be preserved. For example we do not want the feet of the avatar to slide around in the adapted motion if they do not slide in the original motion. The speed of the avatar should also be preserved. The tool must be programmed in Linux using C++. This is because the tool must be compatible with the virtual reality system already being used in the Computer Science Department. This system was built in C++ using the Linux environment. A suitable user interface needs to be built to allow for the easy manipulation of motion capture data. 1.2 Motivation The subtle details of human motion are present in motion capture data. These subtle details are key to the realism of the motion. Furthermore, a variety of locomotion styles may be captured. 1

8 CHAPTER 1. INTRODUCTION 2 Thus motion capture data provides a good basis for creating realistic avatar movement. Motion capture is an expensive and time-consuming process. Therefore, it is desirable to be able to alter previously recorded data. For example we may have motion capture data of a man walking in a straight line, but we need him to walk around an obstacle. Instead of spending time and money on recording more data, a motion capture data manipulation technique can be employed. 1.3 Document Structure Chapter 2 deals with related work. We will look at some differing views on how to get an avatar to follow an arbitrary path using motion capture data. Chapter 3 details the design of the system proposed by Gleicher. Chapter 4 relates to the implementation of the system described in Chapter 3. Chapter 5 deals with the results of experiments done to test the system. Chapter 6 discusses the conclusions reached after analyzing the results of the experiments.

9 Chapter 2 Related Work There are three main schools of thought for getting an avatar to follow an arbitrary path using motion capture data: The desired path is followed by editing a base motion. A new motion is synthesized that fits the desired path. A cyclic motion is applied over and over again as the avatar is displaced along the path. 2.1 Altering a Base Motion Gleicher [Gleicher 2001] uses a method based on creating a path which represents an abstraction of the motion. The motion is then represented relative to the path. Thus altering the path alters the motion. This method forms the basis of this document, and will be discussed in detail in the following chapters. The motion of an avatar can be specified by the root node translation and orientation at each frame, as well as each joint angle at each frame. Each of these parameters (e.g. knee joint) can be represented as a function of time. A motion curve is any one of these parameters as a function of time. Witkin and Popovic [Witkin and Popovic 1995] use a technique based on warping motion curves. Keyframes are used as constraints in the motion warp. Although Witkin and Popovic do not directly address the problem of path transformation, we could warp the motion curves so that the avatar follows the desired path by setting certain keyframes which the avatar must pass through. 3

10 CHAPTER 2. RELATED WORK 4 Methods which involve altering a base motion only require a single suitable motion clip to work with. It is still desirable to have a fairly large library of motion capture data. The desired clip can be chosen from this library, and then altered accordingly. Blending may be used to create the base motion by joining two or more motions together, thus creating a longer path. Constraints may be required to prevent undesirables like footskate. 2.2 Synthesis With synthesis methods, a sequence of motion capture clips is put together so as to follow the desired path. This sequence is extracted from a library of clips, usually stored in a graph structure. Kovar et al. [Kovar et al. 2002] construct a directed graph from a library of motion capture data. This graph consists of nodes which represent possible transitions from one motion capture clip to another. The user specifies the transition threshold which will determine the connectivity of the graph. A higher threshold leads to a greater number of possible transitions. A cost value is associated with each possible transition, and motion is generated by building walks on the graph. A branch and bound search is used to find sequences which satisfy user demands such as sketched paths. An interesting feature of this paper is that the style of locomotion can be specified for the sketched path. This is achieved by labelling clips. For example certain clips may be labelled as sneak. This allows for constraints to be set such that only a certain locomotive style is used in certain intervals. Lee et al. [Lee et al. 2002] use a similar technique to Kovar et al. They also construct a directed graph from motion clips containing possible transitions. A cost formula incorporating joint angles, velocities and positions is used to identify the cost of possible transitions, and this data is stored in a matrix. The sketched path is considered as a sequence of goal positions to be traversed. The tracking algorithm used by Lee et al. is based on a best-first search through the directed graph. Motion synthesis methods require a large database of motion capture data if they are to cater for a wide variety of paths while still maintaining the quality of the motion. It is possible to work with a smaller database and lower the standard for selecting transitions. However, this will be evident in the quality of the motion. Synthesis methods also require constraints to avoid undesirables like footskate. Blending is an integral part of synthesis methods as the two frames associated with a transition may not be similar enough for a smooth transition to occur.

11 CHAPTER 2. RELATED WORK Cyclic Motions A common technique used by animators is to define locomotion cycles and loop these cycles while the character is moving along. This technique has been used since the earliest productions [Lutz 1920]. This idea can be extended to motion capture data. Motion capture sequences which transition onto themselves are used. This single cycle is applied over and over as the avatar is displaced along the path [Rose et al. 1998]. This method does not provide a way to alter an existing complex path. 2.4 BVH Files BioVision Hierarchy (BVH) is a format for storing motion capture data. BVH files are separated into two main sections: HIERARCHY and MOTION. The first section begins with the word HIERARCHY and defines a hierarchy of bones (example in figure 2.1). For example the LeftHip and RightHip fall just under the Hips in the hierarchy. The LeftKnee falls under the LeftHip. The offset of each bone from the bone just above it in the hierarchy is given. A channel describes an aspect of the translation or orientation of a bone for each frame. For example the Hips has 6 channels: one for each of the translation co-ordinates and one for each of the rotation co-ordinates. The second section starts with the word MOTION (example in figure 2.2). The number of frames as well as the time interval between frames is given. Finally the value of each channel at each frame is given. The BVH specification is given below. In the specification pseudonyms for the names of the root and the joints may be used. For example Hips may be known as Pelvis. HIERARCHY ROOT Hips { OFFSET Xoffset Yoffset Zoffset CHANNELS 6 Xposition Yposition Zposition Zrotation Xrotation Yrotat JOINT LeftHip { OFFSET Xoffset Yoffset Zoffset CHANNELS 3 Zrotation Xrotation Yrotation JOINT LeftKnee

12 CHAPTER 2. RELATED WORK 6 { OFFSET Xoffset Yoffset Zoffset CHANNELS 3 Zrotation Xrotation Yrotation JOINT LeftAnkle { OFFSET Xoffset Yoffset Zoffset CHANNELS 3 Zrotation Xrotation Yrotation End Site { OFFSET Xoffset Yoffset Zoffset } } } } JOINT RightHip { OFFSET Xoffset Yoffset Zoffset CHANNELS 3 Zrotation Xrotation Yrotation JOINT RightKnee { OFFSET Xoffset Yoffset Zoffset CHANNELS 3 Zrotation Xrotation Yrotation JOINT RightAnkle { OFFSET Xoffset Yoffset Zoffset CHANNELS 3 Zrotation Xrotation Yrotation End Site { OFFSET Xoffset Yoffset Zoffset } } } } JOINT Chest

13 CHAPTER 2. RELATED WORK 7 { OFFSET Xoffset Yoffset Zoffset CHANNELS 3 Zrotation Xrotation Yrotation JOINT LeftCollar { OFFSET Xoffset Yoffset Zoffset CHANNELS 3 Zrotation Xrotation Yrotation JOINT LeftShoulder { OFFSET Xoffset Yoffset Zoffset CHANNELS 3 Zrotation Xrotation Yrotation JOINT LeftElbow { OFFSET Xoffset Yoffset Zoffset CHANNELS 3 Zrotation Xrotation Yrotation JOINT LeftWrist { OFFSET Xoffset Yoffset Zoffset CHANNELS 3 Zrotation Xrotation Yrotation End Site { OFFSET Xoffset Yoffset Zoffset } } } } } JOINT RightCollar { OFFSET Xoffset Yoffset Zoffset CHANNELS 3 Zrotation Xrotation Yrotation JOINT RightShoulder { OFFSET Xoffset Yoffset Zoffset

14 CHAPTER 2. RELATED WORK 8 CHANNELS 3 Zrotation Xrotation Yrotation JOINT RightElbow { OFFSET Xoffset Yoffset Zoffset CHANNELS 3 Zrotation Xrotation Yrotation JOINT RightWrist { OFFSET Xoffset Yoffset Zoffset CHANNELS 3 Zrotation Xrotation Yrotation End Site { OFFSET Xoffset Yoffset Zoffset } } } } } JOINT Neck { OFFSET Xoffset Yoffset Zoffset CHANNELS 3 Zrotation Xrotation Yrotation JOINT Head { OFFSET Xoffset Yoffset Zoffset CHANNELS 3 Zrotation Xrotation Yrotation End Site { OFFSET Xoffset Yoffset Zoffset } } } } } MOTION

15 CHAPTER 2. RELATED WORK 9 Figure 2.1: An example of part 1 of a bvh file. Frames: number_of_frames Frame Time: time_between_frames frame1_channel1_value... frame1_channeln_value frame2_channel1_value... frame2_channeln_value... framen_channel1_value... framen_channeln_value 2.5 Least Squares Fitting Least squares fitting to a polynomial involves finding the best fitting curve to a set of n points: (x 1, y 1 ),(x 2, y 2 ),(x 3, y 3 ),...,(x n, y n ). The residual for a point is its vertical offset from the curve:

16 CHAPTER 2. RELATED WORK 10 Figure 2.2: An example of part 2 of a bvh file.

17 CHAPTER 2. RELATED WORK 11 y (x,y ) 1 1 R 1 R (x,y ) 2 2 (x,y ) R 3 (x,y ) 5 5 R 4 (x,y ) 4 4 R 5 R 6 (x,y ) 6 6 x Figure 2.3: Least squares fit to a polynomial of degree 2.

18 CHAPTER 2. RELATED WORK 12 R i = y i f(x i ). The best fit for a given polynomial degree is the fit where the sum of the squares of the residuals ( n i=1 Ri 2 ) is at a minimum. Figure 2.3 shows a least squares fit to a polynomial of degree 2 using the points in the figure. Refer to [Weisstein 1999] for a detailed explanation of the mathematics involved in finding the best fitting curve using the least squares method. 2.6 Euler Step Integration The idea behind Euler s method is to approximate a curve with a series of straight lines. Euler step integration assumes that the rates computed at a given time are constant throughout the timestep. This is why it is not very accurate. y i+1 = y i + hg (x i ) (2.1) Equation 2.1 shows how we can approximate the curve g(x) using Euler s method. In this equation, y i is the current y value and y i+1 is the next y value. Sampling occurs at time intervals of h. The gradient of the line (m) is calculated at x i by finding the value of g (x i ). This value is then multiplied by the timestep (h). This will give us the change in y (equation 2.2). The change in y is then added to y i to give us the next value of y i+1. and m = y i+1 y i x i+1 x i h = x i+1 x i Therefore y i+1 y i = hm (2.2) Figure 2.4 uses a very large timestep and thus gives a poor approximation of g(x). Figure 2.5 uses a timestep of half the size. This gives a better approximation of g(x). A better approximation of g(x) can be achieved by taking a smaller timestep.

19 CHAPTER 2. RELATED WORK 13 g(x) y y 3 y y 2 1 h h x x x x Figure 2.4: Euler s method using a very large timestep.

20 CHAPTER 2. RELATED WORK 14 g(x) y y 5 y 4 y 2 y 3 y 1 h h h h x x x x x x Figure 2.5: Euler s method using a smaller timestep.

21 CHAPTER 2. RELATED WORK Summary Motion synthesis methods require a larger database of motion capture data to work with than methods which alter a base motion. Constraints are required in both of these methods to prevent undesirable effects like footskate. Blending is an integral part of synthesis methods, and is also applicable to methods which alter a base motion if a longer base motion is desired. Methods which involve altering a base motion provide a way to alter an existing complex path, whereas cyclic methods do not. The BVH specification is a popular format for storing motion capture data. Least squares fitting to a polynomial provides us with the best fit of a set of data points to a curve. Euler step integration approximates a curve with a series of straight lines.

22 Chapter 3 Design This section details the design of the system. The system must provide the user with a means to adapt motion capture data to follow an arbitrary path. Furthermore, the new motion should look realistic. The concepts of paths, residuals and arc-length reparameterization as well as how they fit together in the system is dealt with in this chapter. 3.1 Paths Motion capture data does not explicitly contain a path, but rather a series of translations and orientations. In order to give meaning to the motion for the user, a path is constructed based on the translations in the motion capture data. The path can be thought of as an abstraction of the motion, where smaller details are disregarded Creating the Original Path The root node translation data is extracted from the motion capture data. The original path is created by applying a least squares fit of the root node translation data to a polynomial Representing the Motion Relative to the Path Absolute Residuals We can describe the avatar s position relative to the path s position. We calculate the translation transformation from the original path s position at a given time to the position of the original motion at that time. This is known as the translation residual. The direction of the path at a 16

23 CHAPTER 3. DESIGN 17 t R A t R B tangent direction R C tangent direction Figure 3.1: R represents the residual at time t on the path. On the left is the original zig-zag motion and corresponding path. On the right is the new path. If we represent the residuals in the absolute sense, then we will transform to point B. If we represent the residuals relative to the path, then we will transform to point C.

24 CHAPTER 3. DESIGN 18 (a) (b) (c) Figure 3.2: Original zig-zagging motion and original path (a). New path and corresponding motion with residuals represented in the absolute sense (b). New path and corresponding motion with residuals represented relative to the path (c). given time is defined as its tangent vector. We can also calculate the rotation transformation from the original path s direction to the direction of the motion at that time. This is known as the orientation residual. The path is then changed. To calculate the avatar s new position we transform onto the path and then transform using the residuals. orientation residual = transformation from the direction of the path to the direction of the avatar at a given time; translation residual = transformation from the position of the path to the position of the avatar at a given time; This method for representing the motion is not recommended. Figure 3.1 shows how the residuals will be applied if we represent them in the absolute sense. Figure 3.2b shows the undesirable effects when the direction of motion is changed. The method detailed in section is the preferred method.

25 CHAPTER 3. DESIGN 19 Y Y Y X X X Z Z Z (a) (b) (c) Figure 3.3: Initially the avatar is at the origin of the moving co-ordinate system facing down the z-axis (a). We rotate the avatar using the orientation residual for the frame (b). Next we translate the avatar using the translation residual for the frame (c) Residuals Relative to the Path Figure 3.1 shows the result of representing the avatar s position relative to the path as opposed to representing it in the absolute sense. We use a moving co-ordinate system to implement this technique. This is the preferred method for representing residuals. We use a y-up moving co-ordinate system: the y-vector of the co-ordinate system faces upwards. This ensures that the avatar is will remain upright even if the altitude of the path is changed (section 3.1.3). The z-axis points in the direction of the tangent projected on the horizontal. The x-axis is their cross product. In order to position and orientate the avatar correctly for a frame, first we transform using the residuals in this co-ordinate system (figure 3.3). Then we transform to place this co-ordinate system in the world co-ordinate system (figures 3.4, 3.5 and 3.6). In order to calculate the residuals we simply reverse this process using the original path and original motion. Assuming the original avatar is correctly positioned and orientated in the world co-ordinate system, first we move the origin of our moving co-ordinate system back to the origin of the world co-ordinate system (moving the avatar with it). Then we rotate our moving coordinate system so that the z-axis of the moving co-ordinate system is lined up with the z-axis of the world co-ordinate system (rotating the avatar with it). Now we can calculate the residuals. The translation residual will be the translation required to get from the origin of the world co-

26 CHAPTER 3. DESIGN 20 Y Y X t X T Z Z Figure 3.4: Initially the origin of our moving co-ordinate system is positioned at the origin of our world co-ordinate system. The x-axis, y-axis and z-axis face in the same direction as those in the world co-ordinate system. The frame we are going to render occurs at time t on the path. T represents the tangent projected on the horizontal at time t on the path. ordinate system to the position of the avatar. The orientation residual will be the rotation required to get from the direction of the z-axis of the world co-ordinate system to the orientation of the avatar Altitude Adjusted Paths If we represent the motion relative to the tangent, then when we adapt the path to go uphill or downhill the posture of the avatar will change (figure 3.7b). It now looks as if the avatar should fall over backwards, but he will continue to move up the path. This results in a highly unrealistic looking motion. If we represent the motion relative to the tangent projected on the horizontal, then even when we adapt the path to go uphill or downhill, the avatar will retain his original posture (figure 3.7c). This results in a more realistic looking motion. This method will not be able to handle an original path or an new path which has segments where the tangent vector faces vertically upwards or downwards. This is because the tangent vector projected on the horizontal will be 0.

27 CHAPTER 3. DESIGN 21 Y Y X Z t X T Z Figure 3.5: Next we rotate our moving co-ordinate system such that the z-axis is facing in the same direction as the tangent projected on the horizontal at time t on the path. Y Y X t X T Z Z Figure 3.6: Finally we translate our moving co-ordinate system so that the origin is positioned on the path at time t. Our avatar is now in the desired position and orientated correctly.

28 CHAPTER 3. DESIGN 22 (a) (b) (c) Figure 3.7: Original motion and path (a). New motion representing the motion relative to the tangent (b). New motion representing the motion relative to the tangent projected on the horizontal (c). Figure 3.8: Original path (left) and new path (right) parameterized by time. Figure 3.9: Original path (left) and new path (right) parameterized by arc-length.

29 CHAPTER 3. DESIGN Arc-Length Reparameterization Since the path is parameterized by time, altering the path may also alter the speed of the avatar. For example if we lengthen the path, the speed of the avatar will increase (Figure 3.8). This is generally undesirable. By parameterizing the path by arc-length, the original speed is maintained (Figure 3.9) Calculating Arc-Length The arc-length of frame f is the distance along the path from the start of the path to the position on the path at frame f. We calculate the arc-length along the original path for each frame. Frame f in the new path must have the same arc-length as frame f in the original path Transformation The user alters the original path. First we transform in the moving co-ordinate system using the residuals. Then we transform in the world co-ordinate system. We already have the arc-length at each frame on the original path. We will position and orientate the moving co-ordinate system at the point on the new path with the same arc-length End of Path Handling If the new path is shorter than the original path, and we are using arc-length reparameterization, the end of the new path will be reached before all the frames in the motion have been rendered. We reset the motion back to the first frame and back to the beginning of the path when the end of the path is reached Cycling If the new path is longer than the original path, and we have arc-length reparameterization enabled, then the new motion may only take up a small portion of the new path. Cycling enables us to repeat the motion until the end of the new path is reached.

30 CHAPTER 3. DESIGN Editing the Path The path is represented as a B-spline with a number of control points. The knots are designed so that the spline passes through the first and last control points. The user has direct control over the control points. This allows the user to alter the path quickly and easily. 3.4 Summary The path is an abstraction of the motion. The original path is created by applying a least squares fit of the root node translation data to a polynomial. The motion is represented relative to the path. Thus altering the path alters the motion. Arclength reparameterization is used to ensure that altering the path does not alter the speed of the avatar. Motions may be looped until the end of the path is reached. In the following chapter the implementation of this design is detailed.

31 Chapter 4 Implementation This section relates to the implementation of the system specified in the previous chapter. The system was implemented in Linux using C++. This chapter begins with the implementation of the original path and the residuals. The implementation of arc-length reparameterization is then discussed. We will also deal with handling new paths which are longer or shorter than the original path. Finally we will look at issues relating to the user interface. 4.1 Original Path Code for a least squares fit in two dimensions was obtained [Kavanagh 2003]. However, we need a least-squares fit in three dimensions. Three separate functions are used for the fitting: f(t) represents the least-squares fit of the root node x translation vs. time data points to a polynomial g(t) represents the least-squares fit of the root node y translation vs. time data points to a polynomial h(t) represents the least-squares fit of the root node z translation vs. time data points to a polynomial The position of the original path at time t is the point [f(t), g(t), h(t)]. The orientation of the original path at time t is taken to be the direction of the tangent vector [f (t), g (t), h (t)]. 25

32 CHAPTER 4. IMPLEMENTATION 26 Figure 4.1: Least squares fit of x vs. t data points using a polynomial of degree 3.

33 CHAPTER 4. IMPLEMENTATION Residuals Calculating the Residuals at each Frame for each frame translate and orientate the avatar as in the original motion; p = the point on the original curve at the same time as the frame; t = translation transformation that would move point p to the origin; apply transformation t to the avatar; r = rotation transformation that would line up the tangent at p projected on the horizontal with the positive z-axis; apply transformation r to the avatar; orientation residual = rotation transformation from the positive z-axis to the current orientation of the avatar; translation residual = translation transformation from the origin to the current position of the avatar; next frame

34 CHAPTER 4. IMPLEMENTATION Orientating the Avatar at a Frame on the New Path note: initially the avatar is at the origin facing down the z-axis. rotate the avatar by applying the orientation residual at the frame; p = the point on the new curve corresponding to the frame; t = the tangent at p projected on the horizontal; r = rotation transformation required to get from the orientation of the z-axis to the orientation of t; apply transformation r to the avatar; Translating the Avatar at a Frame on the New Path translate the avatar by applying the translation residual at the frame; rotate the avatar by applying the rotation residual at the frame; t = translation transformation from the origin to the point on the new path corresponding to the frame; apply transformation t to the avatar;

35 CHAPTER 4. IMPLEMENTATION Arc-length Reparameterization We calculate the arc-length at each frame on the original path. Given a new path, we can find the point on the new path that corresponds to the arc-length of the same frame on the original path. This is the point we transform onto when transforming onto the path Calculating Arc-Length on Original Path We use Equation 4.1 [Okikiolu 2003] to calculate the arc-length between time a (time 0 which is the start of the path) and time b (the time of the frame). We calculate the arc-length at each frame on the original path. L (t) = b a (dx/dt) 2 + (dy/dt) 2 + (dz/dt) 2 dt (4.1) Euler-step integration [Fitzpatrick 2003] is used to perform the integration required in equation 4.1. l i+1 = l i + hl (t i ) (4.2) In equation 4.2, l i represents the current sampled arc-length and l i+1 represents the next sampled arc-length. Sampling occurs at time intervals of h. The first sample, l 1, is the arc-length from t 1 to t 1 which is 0. The second sample, l 2, is the arc-length from t 1 to t 2, where t 2 is equal to the previous time (t 1 ) plus the timestep (h). Sample l i, is the arc-length from t 1 to t i, where t i is equal to the previous time (t i 1 ) plus the timestep (h) Finding the Co-Ordinates on a New Path Given a new path, we can find the point on the path that corresponds to a given arc-length. To find this point we sample the arc-length along the path at small time intervals. The new path is a spline. I was unable to represent the spline in the form required by equation 4.1. Equation 4.1 requires 3 separate functions for representing the x(t), y(t) and z(t). Therefore an alternative technique was employed for finding the arc-length along the new path. L = (x 1 x 2 ) + (y 1 y 2 ) + (z 1 z 2 ) (4.3) Equation 4.3 gives us the distance between two points (x 1, y 1, z 1 ) and (x 2, y 2, z 2 ). We can approximate the arc-length by taking the distance between points on the new path at very small

36 CHAPTER 4. IMPLEMENTATION 30 intervals and finding their sum. We can also sample the arc-length at time intervals of h similar to what we did with Euler-step integration. l i+1 = l i + (x(t i + h) x(t i )) 2 + (y(t i + h) y(t i )) 2 + (z(t i + h) z(t i )) 2 (4.4) The sampling occurs in much the same way as equation 4.2. In equation 4.4 l i represents the current sampled arc-length and l i+1 represents the next sampled arc-length. Sampling occurs at time intervals of h. The first sample, l 1, is the arc-length from t 1 to t 1 which is 0. The second sample, l 2, is the arc-length from t 1 to t 2, where t 2 is equal to the previous time (t 1 ) plus the timestep (h). Sample l i is the arc-length from t 1 to t i, where t i is equal to the previous time (t i 1 ) plus the timestep (h). We sample arc-lengths until the arc-length along the path becomes greater than the desired arc-length. We then take the co-ordinates of the path at that time. Although the final sampled arclength is unlikely to be exactly the same as the desired arc-length, a sufficiently small timestep provides enough accuracy for our purposes. Equation 4.4 is used for the sampling. CalculateCoOrdinates (timestep h) t = 0; sampled arc-length = 0; while (sampled arc-length < desired arc-length) t = t + h; sample the arc-length at time t on the new path; endwhile return the point at time t on the new path; 4.4 End of Path Handling The method used for calculating when the end of the path is reached, is very similar to the method used to find the co-ordinates on a new path (section 4.3.2). We sample the arc-length at small time intervals. If the sampled arc-length becomes greater than the desired arc-length then we have not reached the end of the new path. If our value of t + h increases beyond the end of the spline (i.e. past time 1.0) then we have reached the end of the new path.

37 CHAPTER 4. IMPLEMENTATION Cycling Equation 4.5 is used to calculate the desired arc-length for a frame. d = f c + a (4.5) d = desired arc-length, f = arc-length of the final frame on the original path, c = current cycle number (initially 0), a = arc-length at the current frame. The cycle number is incremented whenever the end of the motion sequence is reached. When the end of the new path is reached, then the cycle number will be reset to 0. The frame number will also be reset back to the first frame. The pose of the first frame and the last frame of the sequence have to be very similar for the transition from one cycle to the next to look authentic. Furthermore, the residual for the first frame and the last frame of the motion sequence will have to be very similar. 4.6 User Interface The user interface should allow the user to alter the path. It should also provide options to aid the user in the process of altering the path Rendering Objects We may not want to render all the objects all the time. For example, we may want to view the new motion on its own. The rendering of any of the objects may be turned on/off Arc-Length Reparameterization The user may wish to retain the speed of the original avatar in the new motion. On the other hand, there may be instances where the user wishes to increase/decrease the speed of the avatar. Arc-length reparameterization may be enabled/disabled by the user.

38 CHAPTER 4. IMPLEMENTATION 32 Figure 4.2: The original path is the straight white path. The new path is the curved white path. The control points are all purple besides the currently selected control point is pink. The original skeleton is red and the new skeleton is green.

39 CHAPTER 4. IMPLEMENTATION 33 Figure 4.3: Tabs Cycling In some cases the user may wish to use cycling, in other cases he may not. For example the user may have a fairly short segment of a person skipping, but he wants the new motion to skip for longer. In this case he would require cycling. In other cases the original motion may be the length of motion that he desires, so he does not want the new motion repeating itself if the end of the path has not been reached. Therefore cycling may be enable/disabled by the user Speed A motion may appear unrealistic, but it may not be apparent why it is so. Slowing the motion down can often reveal subtle imperfections which detract from the realism of the motion. Therefore the speed of the avatar may be adjusted.

40 CHAPTER 4. IMPLEMENTATION Original Path As already mentioned, the original path is created by applying a least squares fit to a polynomial of the root node translation data of the original motion. A higher degree original path generally leads to a tighter fit (i.e. smaller residuals). The user may select the degree of the original path New Path The new path is represented as a B-spline. The user may choose how many control points are used to determine the spline. Furthermore, the user may define the degree of the spline. The user has direct control over the control points and selects and moves the control points using the keyboard. The distance that a control point moves each time it is moved may also be set. The control points are initially set up in a straight line. A control point is put at the same position as the first point on the original path. Another control point is put at the same position as the last point on the original path. Further control points are placed at even intervals between. This provides a neutral starting point for the user to create the new path. The knots are set up so that the B-spline passes through the first and the last control points. The first knot (0.0) and the last knot (1.0) are repeated a number of times equal to the degree of the spline plus one. Since the number of knots must be equal to the number of control points plus the degree of the B-spline minus one, we fill in the remaining knots at even intervals between the first and last knot Tracking the Path The user may choose to track the original path and/or the new path. A block is moved along the path following the translation onto the path for each frame. We can compare the position of the path tracker to the actual position of the avatar. This gives gives a graphical display of the effect of the residuals. If the avatar is behaving unexpectedly, tracking the path may often provide insight Camera Views Although a motion may look realistic from one camera view, it may not look realistic from another camera view. Four camera views are defined and may be edited by the user. The user can easily flick between camera views. This allows for a quick assessment of the new motion after the user alters the path.

41 CHAPTER 4. IMPLEMENTATION Summary The original path is implemented by taking a separate least squares fit of the x translation vs. time data points, y translation vs. time data points, and z translation vs. time data points. The three are combined to give the original path. Residuals are applied and calculated using a moving co-ordinate system. Euler-step integration is used to calculate the arc-length at each frame. The arc-length at each frame is required for arc-length reparameterization. New paths which are shorter than the original path (when arc-length reparameterization is being used) are reset when the end of the path is reached. With new paths which are longer than the original path (when arc-length reparameterization is being used), we calculate the desired arc-length using equation 4.5. The user interface allows the user a high degree of control over the path, as well as display options. In the next chapter we will look at the results of testing the system.

42 Chapter 5 Results This section deals with experimental results. Experiments were conducted to test the effectiveness of arc-length reparameterization, end of path handling and cycling. Experiments were also done using different original path degrees on the same original motion, and observing the results in the new motion. Changes to the altitude of a path were tested. Furthermore, a simple original motion was adapted to a complex new motion. A complex original motion was adapted to a simple new motion. A complex original motion was adapted to a complex new motion. All original motion is rendered in red, and all new motion is rendered in green. Arc-length reparameterization was enabled and cycling was disabled for all the experiments after section Arc-Length Reparameterization The results achieved from applying arc-length reparameterization were as expected. The original motion in figure 5.1 was used for the experiments conducted in sections 5.1, 5.2, 5.3 and 5.8. If the new path is longer than the original path, and we are not using arc-length reparameterization, then the speed of the avatar will increase (figure 5.2). A new path which is longer that the original path (without using arc-length reparameterization) results in footskate. If the new path is shorter than the original path, and we are not using arc-length reparameterization, then the speed of the avatar will decrease (figure 5.3). If the new path is longer than the original path, and we are using arc-length reparameterization, then the speed of the new avatar will be the same as the original avatar (figure 5.4). 36

43 CHAPTER 5. RESULTS 37 Figure 5.1: Original motion and original path. Figure 5.2: New motion and new longer path without using arc-length reparameterization. This results in footskate. Also, note how the speed of the avatar has increased.

44 CHAPTER 5. RESULTS 38 Figure 5.3: New motion and new shorter path without using arc-length reparameterization. Note how the speed of the avatar has decreased. Figure 5.4: New motion and new longer path using arc-length reparameterization. Note how the speed of the avatar is the same as the original avatar in figure 5.1.

45 CHAPTER 5. RESULTS 39 Figure 5.5: New motion and new shorter path using arc-length reparameterization. The motion is reset when we reach the end of the path. 5.2 End of Path Handling The end of path handling worked as expected. When the avatar reached the end of the path before the end of the motion sequence, the system reset back to the beginning of the motion and the beginning of the path (figure 5.5). 5.3 Cycling The method implemented for cycling yielded poor results. As already discussed, the pose and the residual of the first and last frames need to be very similar for a smooth transition (from one cycle to the next) to occur. At the very least we need to incorporate some method of blending to create a smoother transition (from one cycle to the next) if a cycled motion is to look authentic. Figure 5.6 shows the result of cycling. 5.4 Original Path Degree The degree of the original path effects the tightness of the original path to the actual motion (figure 5.7). This in turns effects how closely an avatar will follow a new path. If the residuals are very small, then the avatar will follow the new path very closely. On the other hand, if the residuals are very large then the avatar will not follow the new path very closely. This will make the task of altering the path more difficult for the user. For example,

46 CHAPTER 5. RESULTS 40 Figure 5.6: New motion using arc-length reparameterization and cycling. Note how the rest of the path is filled up by repeating the motion. a very complex motion with an original path of relatively low degree will result in the new path being vastly different from the actual path followed by the avatar. Since the new path has very little correlation to the actual path followed by the avatar, it will be difficult to gauge how and where to change it to obtain the desired change in the actual path. Graphs were constructed to show how the translation residuals become smaller as the degree of the original path increases (figures 5.8, 5.9, 5.10 and 5.11). These graphs correspond to the motion and original paths in figure Converting a Simple Path to a Complex Path Figure 5.12 shows a simple motion where the avatar is walking in a fairly straight line. Figures 5.13, 5.14, 5.15 and 5.16 show some new motions using the original motion from figure The quality of the new motions were good, but not totally realistic. Footskate was noticeable around the sharper bends. Footskate was not as noticeable around less severe bends, and in some cases it was not noticeable at all. The way the avatar moves around bends looks contrived. The main cause of footskate appeared to be from the rotation of the avatar while the foot was planted as opposed to the translation of the avatar, although both were evident. Apart from these issues, the motions looked good.

47 CHAPTER 5. RESULTS 41 Figure 5.7: Original motion (red) with corresponding original path (white). The degree of the original paths are (clockwise from top left) 2, 4, 13, 45.

48 CHAPTER 5. RESULTS 42 Figure 5.8: The residuals are very large. This is not surprising considering we are only using an original path degree of 2. Figure 5.9: The residuals are smaller than the previous graph, but these results are still poor. The original path degree is still far too low.

49 CHAPTER 5. RESULTS 43 Figure 5.10: In this graph, it is starting to look like the original path is fitting a lot better to the original motion. This is expected as we are using a much larger original path degree than the previous graph. Figure 5.11: These residuals are small. The path degree is large (45). The new motion should follow the new path very closely.

50 CHAPTER 5. RESULTS 44 Figure 5.12: Original motion with original path.

51 CHAPTER 5. RESULTS 45 Figure 5.13: New motion walking in a circle

52 CHAPTER 5. RESULTS 46 Figure 5.14: New motion zig-zagging.

53 CHAPTER 5. RESULTS 47 Figure 5.15: New motion walking in a figure of eight.

54 CHAPTER 5. RESULTS 48 Figure 5.16: New motion going walkabout.

55 CHAPTER 5. RESULTS Converting a Complex Path to a Simple Path Figure 5.17 shows the results of converting a complex path to a simple path with different original path degrees. Not surprisingly motion where the original path degree is higher shows better results in terms of the avatar following the path, as well as the quality of the motion. If the avatar performs a tight turn in the original motion, and we straighten this motion out, then the section where we performed the turn in the original motion will be slower in the new motion. This is because people take smaller steps and move slower when they take a bend. We can see the effect of in figure Look closely at the new motion at the bottom left of this figure. Towards the end of the motion the avatar slows down. This section of motion corresponds directly to a very tight turn in the original motion. Figure 5.18 displays this new motion from a different viewpoint. Unsurprisingly, the new motion based on an original path degree of 45 followed the simple new path the best (figure 5.18). Footskate is more rife in new simple motions which have been converted from complex original motions, than new complex motions which have been converted from original simple motions. The main problem areas were sections where the original motion went around a bend, and the new path required him to walk straight. Footskate was the primary problem in these sections. 5.7 Converting a Complex Path to another Complex Path Figure 5.19 and 5.20 shows the results of converting a complex path to another complex path. These conversions from a complex path to another complex path posed similar problems to conversions from a complex path to a simple path. Footskate was most evident on tight turns. 5.8 Uphill and Downhill Paths We started with the original motion in figure 5.1. Figure 5.21 shows the new motion when the motion is represented relative to the tangent project on the horizontal. A side effect is that the avatar slides vertically upwards on the uphill, almost as if he were walking up inside a lift. On the downhill the avatar slides downwards. Figure 5.22 shows the new motion when the motion is represented relative to the tangent. It is clear from the figure that this motion is highly unrealistic. It looks as if the avatar should fall backwards, but he continues to move up the hill. On the downhill it looks as if he should fall flat

56 CHAPTER 5. RESULTS 50 Figure 5.17: The results of changing a complex original path to a simple new path using different original path degrees. The original complex motion used can be seen in figure 5.7. The degree of the original paths are (clockwise from top left) 2, 4, 13, 45.

57 CHAPTER 5. RESULTS 51 Figure 5.18: Another view (corresponding to the bottom left screenshot of figure 5.17) of the new motion with original path degree of 45.

58 CHAPTER 5. RESULTS 52 Figure 5.19: A new complex motion. The original complex motion can be seen in figure 5.7.

59 CHAPTER 5. RESULTS 53 Figure 5.20: Another new complex motion. The original complex motion can be seen in figure 5.7.

60 CHAPTER 5. RESULTS 54 Figure 5.21: Uphill/downhill path with motion represented relative to the tangent projected on the horizontal. on his face. 5.9 Summary This chapter has dealt with the results achieved from experiments designed to test certain aspects of the system. Arc-length reparameterization, end of path handling and cycling were all tested. Further experiments were performed on adapting the path of the avatar. The conclusions drawn from these results will be discussed in the next chapter.

61 CHAPTER 5. RESULTS 55 Figure 5.22: Uphill/downhill path with motion represented relative to the tangent.

62 Chapter 6 Conclusion 6.1 Conclusions A tool for editing the path of motion capture data was successfully built. The user interface contains numerous options to aid the user in adapting the motion to follow an arbitrary path. The method implemented is successful in getting the avatar to follow an arbitrary path. Provided the original motion corresponds tightly to the original path, the new motion follows the new path very well. The speed of the avatar in the original motion is successfully maintained in the new motion using arc-length reparameterization. Footskate was an issue primarily when sharp corners were involved or when arc-length reparameterization was disabled. Footskate was the main cause of unrealistic looking motion. Simple motions converted to complex motions look more realistic than complex motions which have been converted to follow a different path. The method used for cycling is very crude, and generally produces poor results. Gleicher s method is not realistic for paths which have a large variance in altitude, unless we are trying to simulate motion in an elevator. 56

INFOMCANIM Computer Animation Motion Synthesis. Christyowidiasmoro (Chris)

INFOMCANIM Computer Animation Motion Synthesis. Christyowidiasmoro (Chris) INFOMCANIM Computer Animation Motion Synthesis Christyowidiasmoro (Chris) Why Motion Synthesis? We don t have the specific motion / animation We don t have the skeleton and motion for specific characters

More information

Computer Animation Fundamentals. Animation Methods Keyframing Interpolation Kinematics Inverse Kinematics

Computer Animation Fundamentals. Animation Methods Keyframing Interpolation Kinematics Inverse Kinematics Computer Animation Fundamentals Animation Methods Keyframing Interpolation Kinematics Inverse Kinematics Lecture 21 6.837 Fall 2001 Conventional Animation Draw each frame of the animation great control

More information

Rigging / Skinning. based on Taku Komura, Jehee Lee and Charles B.Own's slides

Rigging / Skinning. based on Taku Komura, Jehee Lee and Charles B.Own's slides Rigging / Skinning based on Taku Komura, Jehee Lee and Charles B.Own's slides Skeletal Animation Victoria 2 CSE 872 Dr. Charles B. Owen Advanced Computer Graphics Skinning http://www.youtube.com/watch?

More information

Motion Synthesis and Editing. Yisheng Chen

Motion Synthesis and Editing. Yisheng Chen Motion Synthesis and Editing Yisheng Chen Overview Data driven motion synthesis automatically generate motion from a motion capture database, offline or interactive User inputs Large, high-dimensional

More information

Beginners Guide Maya. To be used next to Learning Maya 5 Foundation. 15 juni 2005 Clara Coepijn Raoul Franker

Beginners Guide Maya. To be used next to Learning Maya 5 Foundation. 15 juni 2005 Clara Coepijn Raoul Franker Beginners Guide Maya To be used next to Learning Maya 5 Foundation 15 juni 2005 Clara Coepijn 0928283 Raoul Franker 1202596 Index Index 1 Introduction 2 The Interface 3 Main Shortcuts 4 Building a Character

More information

For each question, indicate whether the statement is true or false by circling T or F, respectively.

For each question, indicate whether the statement is true or false by circling T or F, respectively. True/False For each question, indicate whether the statement is true or false by circling T or F, respectively. 1. (T/F) Rasterization occurs before vertex transformation in the graphics pipeline. 2. (T/F)

More information

CS 231. Motion Capture Data I. The Pipeline. Bodenheimer et al

CS 231. Motion Capture Data I. The Pipeline. Bodenheimer et al CS 231 Motion Capture Data I The Pipeline Bodenheimer et al 1 Marker Magnetic Optical Marker placement On limbs vs joints neither is ideal Over tight clothing or thin skin In repeatable 'landmarks' Using

More information

COMPUTER ANIMATION 3 KEYFRAME ANIMATION, RIGGING, SKINNING AND CHARACTER ANIMATION. Rémi Ronfard, Animation, M2R MOSIG

COMPUTER ANIMATION 3 KEYFRAME ANIMATION, RIGGING, SKINNING AND CHARACTER ANIMATION. Rémi Ronfard, Animation, M2R MOSIG COMPUTER ANIMATION 3 KEYFRAME ANIMATION, RIGGING, SKINNING AND CHARACTER ANIMATION Rémi Ronfard, Animation, M2R MOSIG 2 Outline Principles of animation Keyframe interpolation Rigging, skinning and walking

More information

This group is dedicated to Modeler tools for Layout s FiberFX hair and fur system. For the Layout interface and controls see FiberFX

This group is dedicated to Modeler tools for Layout s FiberFX hair and fur system. For the Layout interface and controls see FiberFX Fiber FX Click here to expand Table of Contents... FiberFX Strand Modeler Global Controls Fiber Tab Guides Tab Random Tab Gravity Tab Tools1 Tab Tools2 Tab Options Tab Strand Tool Strand Maker This group

More information

Character Animation COS 426

Character Animation COS 426 Character Animation COS 426 Syllabus I. Image processing II. Modeling III. Rendering IV. Animation Image Processing (Rusty Coleman, CS426, Fall99) Rendering (Michael Bostock, CS426, Fall99) Modeling (Dennis

More information

Contents 10. Graphs of Trigonometric Functions

Contents 10. Graphs of Trigonometric Functions Contents 10. Graphs of Trigonometric Functions 2 10.2 Sine and Cosine Curves: Horizontal and Vertical Displacement...... 2 Example 10.15............................... 2 10.3 Composite Sine and Cosine

More information

Synthesis by Example. Connecting Motion Planning and Example based Movement. Michael Gleicher

Synthesis by Example. Connecting Motion Planning and Example based Movement. Michael Gleicher Synthesis by Example Connecting Motion Planning and Example based Movement Michael Gleicher Dept of Computer Sciences University of Wisconsin Madison Case Study 1 Part I. Michael Gleicher 1 What is Motion

More information

About this document. Introduction. Where does Life Forms fit? Prev Menu Next Back p. 2

About this document. Introduction. Where does Life Forms fit? Prev Menu Next Back p. 2 Prev Menu Next Back p. 2 About this document This document explains how to use Life Forms Studio with LightWave 5.5-6.5. It also contains short examples of how to use LightWave and Life Forms together.

More information

Lab # 3 - Angular Kinematics

Lab # 3 - Angular Kinematics Purpose: Lab # 3 - Angular Kinematics The objective of this lab is to understand the relationship between segment angles and joint angles. Upon completion of this lab you will: Understand and know how

More information

CS 775: Advanced Computer Graphics. Lecture 17 : Motion Capture

CS 775: Advanced Computer Graphics. Lecture 17 : Motion Capture CS 775: Advanced Computer Graphics Lecture 17 : History Study of human motion Leonardo da Vinci (1452 1519) History Study of human motion Edward J. Muybridge, 1830 1904 http://en.wikipedia.org/wiki/eadweard_muybridge

More information

5/27/12. Objectives. Plane Curves and Parametric Equations. Sketch the graph of a curve given by a set of parametric equations.

5/27/12. Objectives. Plane Curves and Parametric Equations. Sketch the graph of a curve given by a set of parametric equations. Objectives Sketch the graph of a curve given by a set of parametric equations. Eliminate the parameter in a set of parametric equations. Find a set of parametric equations to represent a curve. Understand

More information

Inverse Kinematics (part 1) CSE169: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 2018

Inverse Kinematics (part 1) CSE169: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 2018 Inverse Kinematics (part 1) CSE169: Computer Animation Instructor: Steve Rotenberg UCSD, Winter 2018 Welman, 1993 Inverse Kinematics and Geometric Constraints for Articulated Figure Manipulation, Chris

More information

CS 775: Advanced Computer Graphics. Lecture 8 : Motion Capture

CS 775: Advanced Computer Graphics. Lecture 8 : Motion Capture CS 775: Advanced Computer Graphics Lecture 8 : History Study of human motion Leonardo da Vinci (1452 1519) History Study of human motion Edward J. Muybridge, 1830 1904 http://en.wikipedia.org/wiki/eadweard_muybridge

More information

Animations. Hakan Bilen University of Edinburgh. Computer Graphics Fall Some slides are courtesy of Steve Marschner and Kavita Bala

Animations. Hakan Bilen University of Edinburgh. Computer Graphics Fall Some slides are courtesy of Steve Marschner and Kavita Bala Animations Hakan Bilen University of Edinburgh Computer Graphics Fall 2017 Some slides are courtesy of Steve Marschner and Kavita Bala Animation Artistic process What are animators trying to do? What tools

More information

An object in 3D space

An object in 3D space An object in 3D space An object's viewpoint Every Alice object has a viewpoint. The viewpoint of an object is determined by: The position of the object in 3D space. The orientation of the object relative

More information

Unit 1 Quadratic Functions

Unit 1 Quadratic Functions Unit 1 Quadratic Functions This unit extends the study of quadratic functions to include in-depth analysis of general quadratic functions in both the standard form f ( x) = ax + bx + c and in the vertex

More information

Interactive Computer Graphics

Interactive Computer Graphics Interactive Computer Graphics Lecture 18 Kinematics and Animation Interactive Graphics Lecture 18: Slide 1 Animation of 3D models In the early days physical models were altered frame by frame to create

More information

Computer Animation. Courtesy of Adam Finkelstein

Computer Animation. Courtesy of Adam Finkelstein Computer Animation Courtesy of Adam Finkelstein Advertisement Computer Animation What is animation? o Make objects change over time according to scripted actions What is simulation? o Predict how objects

More information

Autodesk Inventor 6 Essentials Instructor Guide Chapter Four: Creating Placed Features Chapter Outline This chapter provides instruction on the follow

Autodesk Inventor 6 Essentials Instructor Guide Chapter Four: Creating Placed Features Chapter Outline This chapter provides instruction on the follow Chapter Four: Creating Placed Features Chapter Outline This chapter provides instruction on the following topics and provides exercises for students to practice their skills. Day Two Topic: How to create

More information

CS559 Computer Graphics Fall 2015

CS559 Computer Graphics Fall 2015 CS559 Computer Graphics Fall 2015 Practice Final Exam Time: 2 hrs 1. [XX Y Y % = ZZ%] MULTIPLE CHOICE SECTION. Circle or underline the correct answer (or answers). You do not need to provide a justification

More information

Animation. CS 4620 Lecture 32. Cornell CS4620 Fall Kavita Bala

Animation. CS 4620 Lecture 32. Cornell CS4620 Fall Kavita Bala Animation CS 4620 Lecture 32 Cornell CS4620 Fall 2015 1 What is animation? Modeling = specifying shape using all the tools we ve seen: hierarchies, meshes, curved surfaces Animation = specifying shape

More information

animation projects in digital art animation 2009 fabio pellacini 1

animation projects in digital art animation 2009 fabio pellacini 1 animation projects in digital art animation 2009 fabio pellacini 1 animation shape specification as a function of time projects in digital art animation 2009 fabio pellacini 2 how animation works? flip

More information

Animation Lecture 10 Slide Fall 2003

Animation Lecture 10 Slide Fall 2003 Animation Lecture 10 Slide 1 6.837 Fall 2003 Conventional Animation Draw each frame of the animation great control tedious Reduce burden with cel animation layer keyframe inbetween cel panoramas (Disney

More information

Robots are built to accomplish complex and difficult tasks that require highly non-linear motions.

Robots are built to accomplish complex and difficult tasks that require highly non-linear motions. Path and Trajectory specification Robots are built to accomplish complex and difficult tasks that require highly non-linear motions. Specifying the desired motion to achieve a specified goal is often a

More information

Thiruvarangan Ramaraj CS525 Graphics & Scientific Visualization Spring 2007, Presentation I, February 28 th 2007, 14:10 15:00. Topic (Research Paper):

Thiruvarangan Ramaraj CS525 Graphics & Scientific Visualization Spring 2007, Presentation I, February 28 th 2007, 14:10 15:00. Topic (Research Paper): Thiruvarangan Ramaraj CS525 Graphics & Scientific Visualization Spring 2007, Presentation I, February 28 th 2007, 14:10 15:00 Topic (Research Paper): Jinxian Chai and Jessica K. Hodgins, Performance Animation

More information

Motion Capture & Simulation

Motion Capture & Simulation Motion Capture & Simulation Motion Capture Character Reconstructions Joint Angles Need 3 points to compute a rigid body coordinate frame 1 st point gives 3D translation, 2 nd point gives 2 angles, 3 rd

More information

Retargetting Motion to New Characters. Retargetting Motion to New Characters. Page 1. Motion Retargetting. Motion Retargetting

Retargetting Motion to New Characters. Retargetting Motion to New Characters. Page 1. Motion Retargetting. Motion Retargetting Left right Retargetting Motion to New Characters Michael Gleicher Vision Technology Center Autodesk Mountain View, CA Retargetting Motion to New Characters Michael Gleicher Department of Computer Science

More information

HP-35s Calculator Program Curves 2A

HP-35s Calculator Program Curves 2A Programmer: Dr. Bill Hazelton Date: March, 2008. Version: 1.0 Mnemonic: P for Parabolic Vertical Curve. Line Instruction Display User Instructions P001 LBL P LBL P P002 CLSTK CLEAR 5 P003 FS? 10 FLAGS

More information

Video based Animation Synthesis with the Essential Graph. Adnane Boukhayma, Edmond Boyer MORPHEO INRIA Grenoble Rhône-Alpes

Video based Animation Synthesis with the Essential Graph. Adnane Boukhayma, Edmond Boyer MORPHEO INRIA Grenoble Rhône-Alpes Video based Animation Synthesis with the Essential Graph Adnane Boukhayma, Edmond Boyer MORPHEO INRIA Grenoble Rhône-Alpes Goal Given a set of 4D models, how to generate realistic motion from user specified

More information

Basics of Design p. 2 Approaching Design as an Artist p. 4 Knowing Your Character p. 4 Making Decisions p. 4 Categories of Design p.

Basics of Design p. 2 Approaching Design as an Artist p. 4 Knowing Your Character p. 4 Making Decisions p. 4 Categories of Design p. Basics of Design p. 2 Approaching Design as an Artist p. 4 Knowing Your Character p. 4 Making Decisions p. 4 Categories of Design p. 6 Realistic Designs p. 6 Stylized Designs p. 7 Designing a Character

More information

Semester 2 Review Problems will be sectioned by chapters. The chapters will be in the order by which we covered them.

Semester 2 Review Problems will be sectioned by chapters. The chapters will be in the order by which we covered them. Semester 2 Review Problems will be sectioned by chapters. The chapters will be in the order by which we covered them. Chapter 9 and 10: Right Triangles and Trigonometric Ratios 1. The hypotenuse of a right

More information

Working with the BCC 2D Particles Filter

Working with the BCC 2D Particles Filter Working with the BCC 2D Particles Filter 2D Particles breaks the source image into particles and disperses them in 2D space. This Þlter also provides a variety of explosion, velocity, and gravity controls

More information

Constrained Optimization and Lagrange Multipliers

Constrained Optimization and Lagrange Multipliers Constrained Optimization and Lagrange Multipliers MATH 311, Calculus III J. Robert Buchanan Department of Mathematics Fall 2011 Constrained Optimization In the previous section we found the local or absolute

More information

BONE CONTROLLER ASSET VERSION 0.1 REV 1

BONE CONTROLLER ASSET VERSION 0.1 REV 1 Foreword Thank you for purchasing the Bone Controller! I m an independent developer and your feedback and support really means a lot to me. Please don t ever hesitate to contact me if you have a question,

More information

Motion Editing with Data Glove

Motion Editing with Data Glove Motion Editing with Data Glove Wai-Chun Lam City University of Hong Kong 83 Tat Chee Ave Kowloon, Hong Kong email:jerrylam@cityu.edu.hk Feng Zou City University of Hong Kong 83 Tat Chee Ave Kowloon, Hong

More information

CS770/870 Spring 2017 Animation Basics

CS770/870 Spring 2017 Animation Basics Preview CS770/870 Spring 2017 Animation Basics Related material Angel 6e: 1.1.3, 8.6 Thalman, N and D. Thalman, Computer Animation, Encyclopedia of Computer Science, CRC Press. Lasseter, J. Principles

More information

CS770/870 Spring 2017 Animation Basics

CS770/870 Spring 2017 Animation Basics CS770/870 Spring 2017 Animation Basics Related material Angel 6e: 1.1.3, 8.6 Thalman, N and D. Thalman, Computer Animation, Encyclopedia of Computer Science, CRC Press. Lasseter, J. Principles of traditional

More information

Background for Surface Integration

Background for Surface Integration Background for urface Integration 1 urface Integrals We have seen in previous work how to define and compute line integrals in R 2. You should remember the basic surface integrals that we will need to

More information

Homework 2 Questions? Animation, Motion Capture, & Inverse Kinematics. Velocity Interpolation. Handing Free Surface with MAC

Homework 2 Questions? Animation, Motion Capture, & Inverse Kinematics. Velocity Interpolation. Handing Free Surface with MAC Homework 2 Questions? Animation, Motion Capture, & Inverse Kinematics Velocity Interpolation Original image from Foster & Metaxas, 1996 In 2D: For each axis, find the 4 closest face velocity samples: Self-intersecting

More information

Development of a Model of the Muscle Skeletal System using Adams. Its Application to an Ergonomic Study in Automotive Industry

Development of a Model of the Muscle Skeletal System using Adams. Its Application to an Ergonomic Study in Automotive Industry Copyright 2004 SAE International 2004-01-2169 Development of a Model of the Muscle Skeletal System using Adams. Its Application to an Ergonomic Study in Automotive Industry G. Esteves IST- UTL C. Ferreira,

More information

Lecture IV Bézier Curves

Lecture IV Bézier Curves Lecture IV Bézier Curves Why Curves? Why Curves? Why Curves? Why Curves? Why Curves? Linear (flat) Curved Easier More pieces Looks ugly Complicated Fewer pieces Looks smooth What is a curve? Intuitively:

More information

Vehicle Project. Ethan Steele CGD

Vehicle Project. Ethan Steele CGD Vehicle Project Ethan Steele CGD Vehicle Sketches Side view Front view Top view Back view Clay Renders Front view Back view Side view Top view General View Wireframe Renders Front view Back view General

More information

Animation. CS 4620 Lecture 33. Cornell CS4620 Fall Kavita Bala

Animation. CS 4620 Lecture 33. Cornell CS4620 Fall Kavita Bala Animation CS 4620 Lecture 33 Cornell CS4620 Fall 2015 1 Announcements Grading A5 (and A6) on Monday after TG 4621: one-on-one sessions with TA this Friday w/ prior instructor Steve Marschner 2 Quaternions

More information

MOTION CAPTURE DATA PROCESSING - MOTION EDITING / RETARGETING - MOTION CONTROL / GRAPH - INVERSE KINEMATIC. Alexandre Meyer Master Informatique

MOTION CAPTURE DATA PROCESSING - MOTION EDITING / RETARGETING - MOTION CONTROL / GRAPH - INVERSE KINEMATIC. Alexandre Meyer Master Informatique 1 MOTION CAPTURE DATA PROCESSING - MOTION EDITING / RETARGETING - MOTION CONTROL / GRAPH - INVERSE KINEMATIC Alexandre Meyer Master Informatique Overview: Motion data processing In this course Motion editing

More information

An introduction to interpolation and splines

An introduction to interpolation and splines An introduction to interpolation and splines Kenneth H. Carpenter, EECE KSU November 22, 1999 revised November 20, 2001, April 24, 2002, April 14, 2004 1 Introduction Suppose one wishes to draw a curve

More information

Parameterization. Michael S. Floater. November 10, 2011

Parameterization. Michael S. Floater. November 10, 2011 Parameterization Michael S. Floater November 10, 2011 Triangular meshes are often used to represent surfaces, at least initially, one reason being that meshes are relatively easy to generate from point

More information

Computer Animation. Michael Kazhdan ( /657) HB 16.5, 16.6 FvDFH 21.1, 21.3, 21.4

Computer Animation. Michael Kazhdan ( /657) HB 16.5, 16.6 FvDFH 21.1, 21.3, 21.4 Computer Animation Michael Kazhdan (601.457/657) HB 16.5, 16.6 FvDFH 21.1, 21.3, 21.4 Overview Some early animation history http://web.inter.nl.net/users/anima/index.htm http://www.public.iastate.edu/~rllew/chrnearl.html

More information

Articulated Characters

Articulated Characters Articulated Characters Skeleton A skeleton is a framework of rigid body bones connected by articulated joints Used as an (invisible?) armature to position and orient geometry (usually surface triangles)

More information

ECE 600, Dr. Farag, Summer 09

ECE 600, Dr. Farag, Summer 09 ECE 6 Summer29 Course Supplements. Lecture 4 Curves and Surfaces Aly A. Farag University of Louisville Acknowledgements: Help with these slides were provided by Shireen Elhabian A smile is a curve that

More information

Why animate humans? Why is this hard? Aspects of the Problem. These lectures. Animation Apreciation 101

Why animate humans? Why is this hard? Aspects of the Problem. These lectures. Animation Apreciation 101 Animation by Example Lecture 1: Introduction, Human Representation Michael Gleicher University of Wisconsin- Madison www.cs.wisc.edu/~gleicher www.cs.wisc.edu/graphics Why animate humans? Movies Television

More information

Analyzing and Segmenting Finger Gestures in Meaningful Phases

Analyzing and Segmenting Finger Gestures in Meaningful Phases 2014 11th International Conference on Computer Graphics, Imaging and Visualization Analyzing and Segmenting Finger Gestures in Meaningful Phases Christos Mousas Paul Newbury Dept. of Informatics University

More information

Chapter 5. Transforming Shapes

Chapter 5. Transforming Shapes Chapter 5 Transforming Shapes It is difficult to walk through daily life without being able to see geometric transformations in your surroundings. Notice how the leaves of plants, for example, are almost

More information

ON THE VELOCITY OF A WEIGHTED CYLINDER DOWN AN INCLINED PLANE

ON THE VELOCITY OF A WEIGHTED CYLINDER DOWN AN INCLINED PLANE ON THE VELOCITY OF A WEIGHTED CYLINDER DOWN AN INCLINED PLANE Raghav Grover and Aneesh Agarwal RG (Grade 12 High School), AA (Grade 11 High School) Department of Physics, The Doon School, Dehradun. raghav.503.2019@doonschool.com,

More information

CCNY Math Review Chapter 2: Functions

CCNY Math Review Chapter 2: Functions CCN Math Review Chapter : Functions Section.1: Functions.1.1: How functions are used.1.: Methods for defining functions.1.3: The graph of a function.1.: Domain and range.1.5: Relations, functions, and

More information

f xx (x, y) = 6 + 6x f xy (x, y) = 0 f yy (x, y) = y In general, the quantity that we re interested in is

f xx (x, y) = 6 + 6x f xy (x, y) = 0 f yy (x, y) = y In general, the quantity that we re interested in is 1. Let f(x, y) = 5 + 3x 2 + 3y 2 + 2y 3 + x 3. (a) Final all critical points of f. (b) Use the second derivatives test to classify the critical points you found in (a) as a local maximum, local minimum,

More information

Semester 2 Review Problems will be sectioned by chapters. The chapters will be in the order by which we covered them.

Semester 2 Review Problems will be sectioned by chapters. The chapters will be in the order by which we covered them. Semester 2 Review Problems will be sectioned by chapters. The chapters will be in the order by which we covered them. Chapter 9 and 10: Right Triangles and Trigonometric Ratios 1. The hypotenuse of a right

More information

B-spline Curves. Smoother than other curve forms

B-spline Curves. Smoother than other curve forms Curves and Surfaces B-spline Curves These curves are approximating rather than interpolating curves. The curves come close to, but may not actually pass through, the control points. Usually used as multiple,

More information

Images from 3D Creative Magazine. 3D Modelling Systems

Images from 3D Creative Magazine. 3D Modelling Systems Images from 3D Creative Magazine 3D Modelling Systems Contents Reference & Accuracy 3D Primitives Transforms Move (Translate) Rotate Scale Mirror Align 3D Booleans Deforms Bend Taper Skew Twist Squash

More information

Keyframing an IK Skeleton Maya 2012

Keyframing an IK Skeleton Maya 2012 2002-2012 Michael O'Rourke Keyframing an IK Skeleton Maya 2012 (This tutorial assumes you have done the Creating an Inverse Kinematic Skeleton tutorial in this set) Concepts Once you have built an Inverse

More information

OpenGL Graphics System. 2D Graphics Primitives. Drawing 2D Graphics Primitives. 2D Graphics Primitives. Mathematical 2D Primitives.

OpenGL Graphics System. 2D Graphics Primitives. Drawing 2D Graphics Primitives. 2D Graphics Primitives. Mathematical 2D Primitives. D Graphics Primitives Eye sees Displays - CRT/LCD Frame buffer - Addressable pixel array (D) Graphics processor s main function is to map application model (D) by projection on to D primitives: points,

More information

Directable Motion Texture Synthesis

Directable Motion Texture Synthesis Directable Motion Texture Synthesis A Thesis presented by Ashley Michelle Eden to Computer Science in partial fulfillment of the honors requirements for the degree of Bachelor of Arts Harvard College Cambridge,

More information

Ragdoll Physics. Abstract. 2 Background. 1 Introduction. Gabe Mulley, Matt Bittarelli. April 25th, Previous Work

Ragdoll Physics. Abstract. 2 Background. 1 Introduction. Gabe Mulley, Matt Bittarelli. April 25th, Previous Work Ragdoll Physics Gabe Mulley, Matt Bittarelli April 25th, 2007 Abstract The goal of this project was to create a real-time, interactive, and above all, stable, ragdoll physics simulation. This simulation

More information

Fall CSCI 420: Computer Graphics. 4.2 Splines. Hao Li.

Fall CSCI 420: Computer Graphics. 4.2 Splines. Hao Li. Fall 2014 CSCI 420: Computer Graphics 4.2 Splines Hao Li http://cs420.hao-li.com 1 Roller coaster Next programming assignment involves creating a 3D roller coaster animation We must model the 3D curve

More information

Walk Cycle with Symbols

Walk Cycle with Symbols Walk Cycle with Symbols STEP 1 Assuming you have your character all rigged and ready to go, double click on the character to get into the master symbol to see all the layers that make up all of the character

More information

Learning Autodesk Maya The Modeling & Animation Handbook. Free Models From Turbo Squid Value US $ Official Autodesk Training Guide

Learning Autodesk Maya The Modeling & Animation Handbook. Free Models From Turbo Squid Value US $ Official Autodesk Training Guide Free Models From Turbo Squid Value US $239.00 Official Autodesk Training Guide Learning Autodesk Maya 2008 The Modeling & Animation Handbook A hands-on introduction to key tools and techniques in Autodesk

More information

Need for Parametric Equations

Need for Parametric Equations Curves and Surfaces Curves and Surfaces Need for Parametric Equations Affine Combinations Bernstein Polynomials Bezier Curves and Surfaces Continuity when joining curves B Spline Curves and Surfaces Need

More information

Character Animation 1

Character Animation 1 Character Animation 1 Overview Animation is a big topic We will concentrate on character animation as is used in many games today humans, animals, monsters, robots, etc. Character Representation A character

More information

Platformer Tutorial 8 - Adding Mr.Green and Character Animation. Last month. Character FX

Platformer Tutorial 8 - Adding Mr.Green and Character Animation. Last month. Character FX Last month Things became a lot more dangerous as traps and deadly particles were added. It just wouldn t be the same without Mr.Green so he s making his debut this month. As this has always been the plan,

More information

Types of Edges. Why Edge Detection? Types of Edges. Edge Detection. Gradient. Edge Detection

Types of Edges. Why Edge Detection? Types of Edges. Edge Detection. Gradient. Edge Detection Why Edge Detection? How can an algorithm extract relevant information from an image that is enables the algorithm to recognize objects? The most important information for the interpretation of an image

More information

AP Calculus. Slide 1 / 95. Slide 2 / 95. Slide 3 / 95. Applications of Definite Integrals

AP Calculus. Slide 1 / 95. Slide 2 / 95. Slide 3 / 95. Applications of Definite Integrals Slide 1 / 95 Slide 2 / 95 AP Calculus Applications of Definite Integrals 2015-11-23 www.njctl.org Table of Contents Slide 3 / 95 Particle Movement Area Between Curves Volume: Known Cross Sections Volume:

More information

BCC 3D Extruded Image Shatter Filter

BCC 3D Extruded Image Shatter Filter BCC 3D Extruded Image Shatter Filter 3D Extruded Image Shatter shatters the image in 3D space and disperses the image fragments. Unlike the 3D Image Shatter filter, this filter allows you to create threedimensional

More information

UNSW School Mathematics Competition

UNSW School Mathematics Competition Parabola Volume 44, Issue (008) UNSW School Mathematics Competition Problems and Solutions Junior Division Problem. What is the angle between the long hand and the short hand of a clock at twenty minutes

More information

Chapter 5.2 Character Animation

Chapter 5.2 Character Animation Chapter 5.2 Character Animation Overview Fundamental Concepts Animation Storage Playing Animations Blending Animations Motion Extraction Mesh Deformation Inverse Kinematics Attachments & Collision Detection

More information

Adding Hand Motion to the Motion Capture Based Character Animation

Adding Hand Motion to the Motion Capture Based Character Animation Adding Hand Motion to the Motion Capture Based Character Animation Ge Jin and James Hahn Computer Science Department, George Washington University, Washington DC 20052 {jinge, hahn}@gwu.edu Abstract. Most

More information

Substituting a 2 b 2 for c 2 and using a little algebra, we can then derive the standard equation for an ellipse centred at the origin,

Substituting a 2 b 2 for c 2 and using a little algebra, we can then derive the standard equation for an ellipse centred at the origin, Conics onic sections are the curves which result from the intersection of a plane with a cone. These curves were studied and revered by the ancient Greeks, and were written about extensively by both Euclid

More information

Character Animation. Presented by: Pam Chow

Character Animation. Presented by: Pam Chow Character Animation Presented by: Pam Chow Overview Animation is a big topic We will concentrate on character animation as is used in many games today humans, animals, monsters, robots, etc. PLAZMO AND

More information

form are graphed in Cartesian coordinates, and are graphed in Cartesian coordinates.

form are graphed in Cartesian coordinates, and are graphed in Cartesian coordinates. Plot 3D Introduction Plot 3D graphs objects in three dimensions. It has five basic modes: 1. Cartesian mode, where surfaces defined by equations of the form are graphed in Cartesian coordinates, 2. cylindrical

More information

Term Project Final Report for CPSC526 Statistical Models of Poses Using Inverse Kinematics

Term Project Final Report for CPSC526 Statistical Models of Poses Using Inverse Kinematics Term Project Final Report for CPSC526 Statistical Models of Poses Using Inverse Kinematics Department of Computer Science The University of British Columbia duanx@cs.ubc.ca, lili1987@cs.ubc.ca Abstract

More information

CMSC 425: Lecture 10 Skeletal Animation and Skinning

CMSC 425: Lecture 10 Skeletal Animation and Skinning CMSC 425: Lecture 10 Skeletal Animation and Skinning Reading: Chapt 11 of Gregory, Game Engine Architecture. Recap: Last time we introduced the principal elements of skeletal models and discussed forward

More information

BCC Rays Ripply Filter

BCC Rays Ripply Filter BCC Rays Ripply Filter The BCC Rays Ripply filter combines a light rays effect with a rippled light effect. The resulting light is generated from a selected channel in the source image and spreads from

More information

Part I. Problems in this section are mostly short answer and multiple choice. Little partial credit will be given. 5 points each.

Part I. Problems in this section are mostly short answer and multiple choice. Little partial credit will be given. 5 points each. Math 106/108 Final Exam Page 1 Part I. Problems in this section are mostly short answer and multiple choice. Little partial credit will be given. 5 points each. 1. Factor completely. Do not solve. a) 2x

More information

Manipulator trajectory planning

Manipulator trajectory planning Manipulator trajectory planning Václav Hlaváč Czech Technical University in Prague Faculty of Electrical Engineering Department of Cybernetics Czech Republic http://cmp.felk.cvut.cz/~hlavac Courtesy to

More information

Tangents of Parametric Curves

Tangents of Parametric Curves Jim Lambers MAT 169 Fall Semester 2009-10 Lecture 32 Notes These notes correspond to Section 92 in the text Tangents of Parametric Curves When a curve is described by an equation of the form y = f(x),

More information

Kinematics and Orientations

Kinematics and Orientations Kinematics and Orientations Hierarchies Forward Kinematics Transformations (review) Euler angles Quaternions Yaw and evaluation function for assignment 2 Building a character Just translate, rotate, and

More information

CS-184: Computer Graphics

CS-184: Computer Graphics CS-184: Computer Graphics Lecture #19: Motion Capture!!! Prof. James O Brien! University of California, Berkeley!! V2015-S-18-1.0 Today 1 18-MoCap.key - April 8, 2015 Motion Capture 2 2 18-MoCap.key -

More information

Splines. Parameterization of a Curve. Curve Representations. Roller coaster. What Do We Need From Curves in Computer Graphics? Modeling Complex Shapes

Splines. Parameterization of a Curve. Curve Representations. Roller coaster. What Do We Need From Curves in Computer Graphics? Modeling Complex Shapes CSCI 420 Computer Graphics Lecture 8 Splines Jernej Barbic University of Southern California Hermite Splines Bezier Splines Catmull-Rom Splines Other Cubic Splines [Angel Ch 12.4-12.12] Roller coaster

More information

CSC 2504F Computer Graphics Graduate Project -Motion From Primitives. Alex & Philipp Hertel

CSC 2504F Computer Graphics Graduate Project -Motion From Primitives. Alex & Philipp Hertel CSC 2504F Computer Graphics Graduate Project -Motion From Primitives Alex & Philipp Hertel December 2, 2002 Introduction Most partner dances such as Salsa, Swing, Cha Cha, Merengue, and Lindy Hop are danced

More information

Animation. CS 465 Lecture 22

Animation. CS 465 Lecture 22 Animation CS 465 Lecture 22 Animation Industry production process leading up to animation What animation is How animation works (very generally) Artistic process of animation Further topics in how it works

More information

BCC Particle System Generator

BCC Particle System Generator BCC Particle System Generator BCC Particle System is an auto-animated particle generator that provides in-depth control over individual particles as well as the overall shape and movement of the system.

More information

2D Spline Curves. CS 4620 Lecture 13

2D Spline Curves. CS 4620 Lecture 13 2D Spline Curves CS 4620 Lecture 13 2008 Steve Marschner 1 Motivation: smoothness In many applications we need smooth shapes [Boeing] that is, without discontinuities So far we can make things with corners

More information

Chapter 5. Track Geometry Data Analysis

Chapter 5. Track Geometry Data Analysis Chapter Track Geometry Data Analysis This chapter explains how and why the data collected for the track geometry was manipulated. The results of these studies in the time and frequency domain are addressed.

More information

Mar. 20 Math 2335 sec 001 Spring 2014

Mar. 20 Math 2335 sec 001 Spring 2014 Mar. 20 Math 2335 sec 001 Spring 2014 Chebyshev Polynomials Definition: For an integer n 0 define the function ( ) T n (x) = cos n cos 1 (x), 1 x 1. It can be shown that T n is a polynomial of degree n.

More information

Connexions module: m The Smith Chart. Version 2.8: 2003/07/02 15:31: GMT-5. Bill Wilson

Connexions module: m The Smith Chart. Version 2.8: 2003/07/02 15:31: GMT-5. Bill Wilson Connexions module: m1058 1 The Smith Chart Version 2.8: 2003/07/02 15:31:59.081 GMT-5 Bill Wilson This work is produced by The Connexions Project and licensed under the Creative Commons Attribution License

More information

TRANSITION CURVES E.M.G.S. MANUAL ( 1) Transition Curves (or Easement Curves) SHEET 1 Issue Introduction. 1. Introduction.

TRANSITION CURVES E.M.G.S. MANUAL ( 1) Transition Curves (or Easement Curves) SHEET 1 Issue Introduction. 1. Introduction. TRANSITION CURVES SHEET 1 Transition Curves (or Easement Curves) 1. Introduction. 2. Development of Transition Curves and the Adoption of Superelevation (Cant). 3. General Application of Transition Curves

More information

Curves and Surfaces. Shireen Elhabian and Aly A. Farag University of Louisville

Curves and Surfaces. Shireen Elhabian and Aly A. Farag University of Louisville Curves and Surfaces Shireen Elhabian and Aly A. Farag University of Louisville February 21 A smile is a curve that sets everything straight Phyllis Diller (American comedienne and actress, born 1917) Outline

More information