I'm so excited that our course has finally moved on to simulations! We used a 1-hour-20-minute class to cover most of the basics of simulation, from the fundamental Euler method for particle simulation to dealing with rigid body and resolving conflicts. For the series of Euler methods, the basic steps are easy to understand: First we know particle's current position x and time step t. Next we take the derivative of x and t to get the velocity. Then we get the force adjusted from environment change to get the acceleration a from the formula f = ma. After that, we can have the changed velocity and then calculate the position at next time step t+1. The recommended RK4 method (the Runge Kutta Method) is like the advanced version of Euler's Midpoint Method. The difference is that RK4 takes more calculation points and is a forth-order method, so it is more accurate due to less truncation.
For dealing with rigid body, the rotation and angular velocity are added to the matrix. It surprised me again that quaternion can always solve the rotation matrix problem.
Another recommended method is Implicit Euler Method. I didn't quite understand it during the class, but I later understood that it evaluates the velocity function at the end of the time step, so assume the particle as reached the position after the time step, evaluate the function so that the particle can trace back to the original position. This is used to avoid stiff situation, where large k is present, so small h is desired, which might result in unstable solution if we use explicit Euler Method. This was explained clearly in David Baraff's course notes.
I appreciate the pertinent course materials, and I look forward to knowing more details of simulation technology!
Sunday, February 26, 2017
Sunday, February 5, 2017
Motion Capture Lab
Last Monday, we visited the Motion Capture Lab of CMU. It was the first time I've seen a real-time demo of motion capture.
It was just amazing to look at the instantly rendered model moving as the researcher moves. I've also looked at the markers closely. They are just spheres made from plastic. Nothing fancy. But there are surprisingly many sizes for them. At first, I was wondering how does the system distinguish markers of different sizes from such a long distance when they are used at the same time. And I found the answer later: the system need not distinguish different markers. As long as it recognizes the marker, it works to capture the motion of that point. On the other hand, for general purposes, larger markers are preferred, because they are easier to be spotted no matter from which direction. The smaller markers are used only in special cases to deal with sophisticated motions, like for hands or facial expressions. In this case, some special preparations and processes might be needed, so it's likely that markers with large size difference are not used at the same time. Well, I might need some citations here to prove my assumption.
I also got some fun facts about motion capture in this trip. I didn't know that static objects can be motion captured too. And it is actually preferred to capture the objects in the scene to determine the positions for the models later. Sometimes, the motion captured is totally different from what we see in the final animation work. For example, the motions of a dog and the motions of infants in the animation are all from motions captured from adult human actors. Also, additional facilitators are used to invigorate the motions. For instance, toggle the ball to an elastic string to enhance its bounciness.
The mocap lab is also cooperating with robotics lab to capture human motions for programming the robot motions. I think while this is a good way to make the movements more natural, ie. more like human, it might not be as effective as expected. Human body movement seems natural because the movements are generated naturally from the body structure. It might hardly seem natural for the robot with different body structure from human. Also, the weight distribution of the robot should be very different from human, so it is challenging to maintain its balance with human motion embedded.
In a nutshell, it was a fun experience to visit the lab. I hope I will get a chance to try it out for my project in the near future.
It was just amazing to look at the instantly rendered model moving as the researcher moves. I've also looked at the markers closely. They are just spheres made from plastic. Nothing fancy. But there are surprisingly many sizes for them. At first, I was wondering how does the system distinguish markers of different sizes from such a long distance when they are used at the same time. And I found the answer later: the system need not distinguish different markers. As long as it recognizes the marker, it works to capture the motion of that point. On the other hand, for general purposes, larger markers are preferred, because they are easier to be spotted no matter from which direction. The smaller markers are used only in special cases to deal with sophisticated motions, like for hands or facial expressions. In this case, some special preparations and processes might be needed, so it's likely that markers with large size difference are not used at the same time. Well, I might need some citations here to prove my assumption.
I also got some fun facts about motion capture in this trip. I didn't know that static objects can be motion captured too. And it is actually preferred to capture the objects in the scene to determine the positions for the models later. Sometimes, the motion captured is totally different from what we see in the final animation work. For example, the motions of a dog and the motions of infants in the animation are all from motions captured from adult human actors. Also, additional facilitators are used to invigorate the motions. For instance, toggle the ball to an elastic string to enhance its bounciness.
The mocap lab is also cooperating with robotics lab to capture human motions for programming the robot motions. I think while this is a good way to make the movements more natural, ie. more like human, it might not be as effective as expected. Human body movement seems natural because the movements are generated naturally from the body structure. It might hardly seem natural for the robot with different body structure from human. Also, the weight distribution of the robot should be very different from human, so it is challenging to maintain its balance with human motion embedded.
In a nutshell, it was a fun experience to visit the lab. I hope I will get a chance to try it out for my project in the near future.
Sunday, January 29, 2017
Embark on the Journey of Technical Animation!
It's been 2 weeks since the semester began, and I'm excited that there are so much to learn!
It was surprising but propelling that Professor Eftychios D. Sifakis came for a talk just after one intro class. I really appreciate the 45-minute wrap-up session right before the talk. It gave me an idea of how the calculation of simulations works behind the scene. Interestingly, the day before the class, a friend told me about a course he took during undergrad, which was about how to distribute work from CPU to GPU, because GPU has many small algorithm unit that can work simultaneously. I've also taken a course, to build a pipeline for a simple CPU, which took me so much energy that semester. So I could feel the pain of researchers who try hard to enhance the calculation performance. It is indeed a challenging task, and I was also amazed by the diversity of topics to discuss in the course of TA.
During the talk, although things stopped making sense once Professor Sifakis began to explain the formula, I was impressed by the research achievement demo during the introduction, especially the one about virtual surgery. It's said that the simulation showing surgery steps only takes several hours to calculate, while it takes a year for an animator to render the same animation. This is especially important for surgery simulation, because every second counts. Although some classmates mentioned that it might need some future work, I think it's a great achievement.
In the next class, we had some discussion about traditional and modern animation techniques. In my opinion, there is really no superior techniques. Although in this course, we focus on the technologies supporting the animation production, we have to bare in mind that animations are not here to showcase the high-end technologies. They are art pieces that have their own purposes to serve, not restricted in entertaining, educational, and medical purposes. For different situations, there should be different suitable techniques. As engineers, we are used to defining better technique as faster, more efficient, less manual operations etc. This is simply not the case here. Even "more natural" is not a standard for better animation technique, because sometimes artists want to embody unnaturalness in their work.
I'm looking forward to learning more to support the artists' masterpieces!
It was surprising but propelling that Professor Eftychios D. Sifakis came for a talk just after one intro class. I really appreciate the 45-minute wrap-up session right before the talk. It gave me an idea of how the calculation of simulations works behind the scene. Interestingly, the day before the class, a friend told me about a course he took during undergrad, which was about how to distribute work from CPU to GPU, because GPU has many small algorithm unit that can work simultaneously. I've also taken a course, to build a pipeline for a simple CPU, which took me so much energy that semester. So I could feel the pain of researchers who try hard to enhance the calculation performance. It is indeed a challenging task, and I was also amazed by the diversity of topics to discuss in the course of TA.
During the talk, although things stopped making sense once Professor Sifakis began to explain the formula, I was impressed by the research achievement demo during the introduction, especially the one about virtual surgery. It's said that the simulation showing surgery steps only takes several hours to calculate, while it takes a year for an animator to render the same animation. This is especially important for surgery simulation, because every second counts. Although some classmates mentioned that it might need some future work, I think it's a great achievement.
In the next class, we had some discussion about traditional and modern animation techniques. In my opinion, there is really no superior techniques. Although in this course, we focus on the technologies supporting the animation production, we have to bare in mind that animations are not here to showcase the high-end technologies. They are art pieces that have their own purposes to serve, not restricted in entertaining, educational, and medical purposes. For different situations, there should be different suitable techniques. As engineers, we are used to defining better technique as faster, more efficient, less manual operations etc. This is simply not the case here. Even "more natural" is not a standard for better animation technique, because sometimes artists want to embody unnaturalness in their work.
I'm looking forward to learning more to support the artists' masterpieces!
Subscribe to:
Posts (Atom)