Team Members

  • Camille Henrot
  • Lindsie Jeffries

Project Video

Links to Model Files

Links to the model and related files can be found under the Documents tab on the SimTK website :cycling model files

The files include the model, initial states, controls, and example results files generated from a forward dynamics simulation.


The goal of the project is to create an interactive and enjoyable biomechanics teaching tool for high school students. The teaching tool will allow students to examine how muscle excitations and coordinations impact cycling speed. Students will be able to adjust the muscle excitations for the model as a function of the crank angle. The model includes the right leg with the feet attached to a pedal that is connected to a shaft and crank. The student will be walked through  three levels. Level 1 focuses on the vasti and gluteus maximums in the down stroke. Level 2 focuses on the hamstrings in the upstroke. Level 3 focuses on the coordination of all the muscles in a multi-player race. The level structure is designed to give the students early success and to analyze how the different muscles interact with the crank angle during the down stroke and upstroke phases. 

The basic physics of a bicycle can be summarized by Newton's three laws of motion. The law of inertia describes how a bicycle will remain at rest unless it is acted on by a force sufficient to overcome its inertia. The second law, F=ma, describes the forces that the muscles must produce to get the bicycle to accelerate. The bicycles forward motion can be described by the third law; every action as an equal and opposite reaction, as the wheels create a force pushing back on the earth and the earth pushes the bike forward. Our project focuses on the first and second laws of motion by examining how muscle excitations produce forces sufficient to overcome the crank and result in a pedaling motion.  

The muscle excitations are a function of the crank angle. The hip and knee extensors are produce most of the work during the downstroke. Planterflexors transfer energy from the extensors to the crank. Together the planterflexors and hip and knee flexors work to prevent knee hyperextension and produce a smooth motion back to the top of the crank angle. As the cycling rpm increases, the passive muscle elements are sufficient to bring the leg up to the top of the crank angle and the hip and knee flexors are no longer active. Muscles produce passive force when they are stretched beyond their optimal fiber length. When the hamstrings are extended towards the bottom of the crank angle at high rpm, their passive forces pull them back to their optimal fiber length which brings the pedal and crank back to the top of the crank. 

Figure 1: Muscle Activation as a Function of Crank Angle for average (left) and high (right) rpm



Research Question(s):

  1. How can we modify the "cycling_leg_crank.osim" model to produce a lower body model that can produce a pedaling motion across the full range of the crank?
  2. Which muscles should be included to produce cycling movements? What should the excitations of those muscles be to produce a full crank rotation?
  3. Which principles of cycling (power, torque, inertia, pedal forces, etc) should we incorporate into the model and how should we present those concepts in clear ways for high school students to understand?


Methods for Developing a Simplified Cycling Model:

  1. Simplify the cycling_leg_crank.osim to basic muscles needed to produce a full crank cycle. 
  2. Adjust the initial position of the cycling_leg_crank.osim to begin at the top of the crank cycle and to have realistic positions for the pelvis, hip, and ankle in relation to each other and to the crank. 
  3. Create initial conditions such that the leg can passively produce a realistic cycling motion under the influence of gravity.
  4. Determine muscle excitations for the vasti and gmax during the downstroke. 
  5. Determine muscle excitations for the hamstrings on upstroke.
  6. Determine muscle excitations for an entire crank cycle. 

For step 2, slow motion videos were used to examine how the hip, knee, and ankle, and subtalat angles interacted withe pedal and crank angle. This allowed us to identify some the difficulty of OpenSim satisfying initial conditions for all of the coordinates. An example of this analysis is seen in Figure 2. 

Methods for Developing the GUI:

  1. Determine the key components that the students need to understand the muscle excitations without overwhelming them with information.
  2. Determine how to convey concepts of muscle excitations during cycling in an intuitive and fun way. 
  3. Design the the structure of the game so that there is early success to maintain interest and motivation. Include an end competition. 
  4. Create the GUI in using MATLAB and Visualizer 


Modelling Results: We created a simplified single leg cycling model which includes the vasti, gmax, and hamstring muscles. The passive motion of the model realistically captures the pedaling motion under gravity. A full crank cycle was achieved with muscle excitations for the downstroke. We were not able to successfully create an upstroke motion with hamstring activations. Part of the limitations for the upstroke with the hamstring activations was that our model did not include the upward force from the opposite leg. Another limitation was that our exictations were set as a function of time. In cycling the muscle excitations are determined as a function of the crank angle. 

Passive Model 

We iterated through a number of different versions of the model to get to our final version. Using the methods detailed above we were able to pinpoint the areas which we needed to change. The model's ability to passively go around a natural crank cycle was a big part of this. Below are videos (from left to right) of the original model by Ajay Seth and two of our final iterations after editing and simplifying the model for our needs. As can be seen, the original model would get stuck at the bottom of the crank cycle, the next model in the series had certain constraining factors that resulted in very unnatural bouncing motions and the ankle reacting in an impossible way, finally the rightmost model shows our final iteration where all joints behave in an expected way around the entirety of the crank cycle. 


Steps between original model and iteration1:

  1. Reduce muscles to a set of hip/knee flexors and extensors (hamstrings, vasti and gmax)

  2. Initial position to match beginning of pedalling (crank angle at 0 degrees)

  3. Added an initial velocity (1 revolution)

  4. Reduced weight of crank elements and created weight distribution in crank elements (all elements set to 1 kg)

  5. Reduce knee angle range to prevent knee hyperextension

  6. Broadened range of pedal, crank, ankle angles (one element would get stuck at an angle limit and entire model would lock up)

  7. Model could achieve pedalling motion but was not consistent and passive model did not have a realistic motion

Model Adjustments:

 Steps between iteration1 and iteration2: 

  1. Removed the initial velocity (gravity sufficient)

  2. Moved the pelvis back and down

  3. Reduced coordinates needed for initial conditions (flags were used for ankle angle, subtalar angle, pedal angle to allow the more important initial conditions such as fixed pelvis position and hip angle to be satisfied)

Vasti and Gluteus Maximus Excitations 

As part of our GUI we wanted to understand how the model would react for different levels that were set up. Level 1 was focused on the downstroke of the crank cycle and therefore the muscles of interest were the vasti and gluteus maximus below are the videos and plots of muscle excitations that we might expect to see from different kinds of users. What we learned is most important is certainly the timing of the muscle excitations with respect to the crank cycle.


Hamstrings Excitations 

In Level 2 of our game we wanted the user to focus now instead on the upstroke of the crank cycle, this means that the hamstrings would be the muscles of interest in this case. Again below we show some examples of how the model behaves given different hamstrings excitations that you might expect a user to input. The differences using this muscle are not as obvious because the majority of the cranking motion is done passively or by gravity. What is important is that the hamstring is able to maintain a crank angle that is above the 180 degree mark (at the bottom of the crank shaft) showing that the timing of the muscle excitation occurred at a point that would help to bring the pedal back around. One of the limitations of this model is obvious here as in regular cycling the action of the other leg would also help propel the pedal back around without completely relying on the hamstring muscles. 



All muscles with excitations

In the last level of the game we wanted to integrate the flexibility to use all muscles that the user has learned about through the process. Below are some videos of some of the best activation simulations we were able to find as well as some of the worst to show the range of how the model behaves. In terms of how we'd want the game to work, the different muscle activations would accomplish pedaling a certain region of the full crank cycle, this region would be somehow compared to a distance travelled or speed maintained pedaling. This is another area in which we would like to spend more time in the future researching – a simple way to calculate some metric of success in muscle activations that would engage a younger user, some kind of racing competition or distance traveled to allow multi-player interaction. 



GUI Results:

Although we didn't get the time to implement the user interface fully we did an initial design mock-up of the game that we would eventually like to implement. 

The key features of the design include: 

1) Instructional materials for students to be able to understand the goals of the game

2) Game was designed to ensure the student was being guided into learning how the biomechanics worked versus just left with too many parameters to edit right at the start

3) Highly visual, interactive buttons for muscles and the model

4) A different way to interact with muscle activations in a more approachable manner

5) The ability to have pop-ups with reference information to help further guide student's thinking


Of most interest for us was to create tools with the  that seemed very approachable and fun. We chose to have the interactive part of muscle activations look like a crank cycle with 8 quadrants that could be changed from 0 activation to full activation shown by a color gradient. The actual plot of the muscle activations would then generate automatically to allow for understanding of how students might see muscle activations in other biomechanics materials o articles later on. Moving forward, we'd like to test this interface with students to understand how they interact with the different features or if there are other features that they would like to have for their learning. In general we believe that the structured levels will help to guide students to a deeper biomechanical understanding instead of more of a plug randomly and play mentality. We think that the final level will be a good chance to bring students together to discuss what they've learned thus far in the game and stimulate some interaction between students to reflect upon lessons learned. Currently, we still require a controller that would allow for muscle activations to be implemented with respect to crank angle such that we would have a better way to translate muscles activations to winning a competition. 

Future Work

The main challenge that we faced was coordinating the biomechanics with the movement of the crank. All the models that we had encountered prior to this project looked at muscle excitations as a function of time. Cycling, however, requires you to examine muscle excitations as a function of the crank angle. This challenge made it difficult to create muscle excitations for a crank cycle when OpenSim has muscle excitations set in time. We often had to replay videos and estimate in which point of time a phase of the crank cycle began and set our excitations accordingly. The interaction of the biomechanics with the crank also made it difficult to create initial states that OpenSim could satisfy and still converge to a solution. For example, the pedal angle initial state affected the ankle angle and pelvis initial states. The interdependencies among the coordinates required us remove some coordinates so that the essential initial coordinates (such as the pelvis) could be satisfied and less essential initial coordinates (such as ankle angle) could vary so that a solution could be found. Smaller challenges included the difficulty of creating muscle excitations for the hamstrings that can bring the pedal back up to the top of the crank angle when the force from the other leg pushing the pedal up was missing in our model.

We were able to partially address our research questions. We were able to create a simplified cycling model that could passively produce a realistic cycling motion. Our excitations for the vasti and gmax were able to produce a full cycling motion although with a one-legged model we could not achieve upstroke when the hamstrings were included. We developed a concept for a GUI and for an engaging cycling game although we did not have time to create the GUI in MATLAB.

Further studies should focus on creating a controller that allows muscle excitations to be a function of the crank angle rather then time. This will allow muscle excitations to be set much more easily and intuitively. Testing the game with a group of high school students would also be a worthwhile way to gauge the design of the GUI.

Future questions that should be studied include:

1)    How can the controller be edited so that the muscle excitations are a function of the crank angle instead of time?

2)    How can the GUI be designed to capture the concepts of the cycling game?

We believe that this project can potentially advance the field of biomechanics on a larger scale by exposing high schoolers to biomechanics and by making biomechanics more accessible through a fun and engaging cycling game.


We would like to acknowledge Ajay Seth who provided the original cycling model and offered value feedback on model simplification. We would also like to acknowledge Melissa Boswell and Nick Bianco who offered expertise in OpenSim and insight into designing an educational tool. 


  • Citterio and Agostoni (1984). Selective Activation of Quadriceps Muscle fibers According to Bicycling Rate. American Physiological Society.

  • Kautz and Hull (1993). A Theoretical Basis for Interpreting The Force Applied to the Pedal in Cycling. Journal of Biomechanics. Vol 26 No2, pp 155-165.

  • Raasch et al. (1997). Muscle Coordination of Maximum Speed Pedalling. Journal of Biomechanics. Vol 30, pp 595.

  • Thelen, Anderson, and Scott (2002). Generating dynamic simulations of movement using computed muscle control. Journal of Biomechanics. Vol 36, pp 321-328.