Target Outcome

Customized knee model for finite element analysis in FEBio format (.feb, XML based text file) including the following details relevant to knee mechanics:



  • SALOME. SALOME is an open-source software that provides a generic platform for pre- (cad, meshing) and post-processing for numerical simulation (LGPL license, see

  • FreeCAD. FreeCAD is an open-source three-dimensional computer aided design software (GPL and LGPL licenses, see

  • MeshLab. MeshLab is an open-source, portable, and extensible system for the processing and editing of unstructured 3D triangular meshes (GPL license, see

  • OpenFlipper. OpenFlipper is an open-source, multi-platform application and programming framework designed for processing, modeling and rendering of geometric data (LGPL license, see

  • PyGTS. PyGTS is a Python binding for the GNU Triangulated Surface (GTS) Library to construct, manipulate, and perform computations on 3D triangulated surfaces, including boolean operations (GPL license, see

  • pyFormex. pyFormex provides a wide range of operations on surface meshes, such as STLs; the software can also be used as a pre- and post-processor for Finite Element analysis programs (GPL license, see

  • IA-FEMesh. IA-FEMesh is freely available, interactive, structured hexahedral mesh generation software relying on surface projection method (BSD style license, see

  • Blender. Blender is the free and open source 3D creation suite, which supports the entirety of the 3D pipeline, including: modeling, rigging, animation, simulation, rendering, compositing, motion tracking, video editing, and game creation. (GPL license, see

Previous Protocols

For more details, see Specifications/TemplateModelGeneration.



Template Model in FEBio format (.feb, XML based text file) including all relevant tissues, and the ties and contacts between the tissues.


This page describes the process for converting a template model (see Specifications/TemplateModelGeneration) to a customized knee model including material properties, in situ ligament strain, joint stabilizers and convenience structures, joint coordinate systems, and loading and boundary conditions.

The customization is performed in a scripted procedure, where the inputs to the script are the template model FEBio file, and a model properties file. The model properties file includes the constitutive models for all deformable tissues in the knee model, and manually chosen anatomical landmark coordinates.

Creating the Model Properties File

The Model Properties file is an xml file to be used as input for the customization script. Included in the Model Properties File are Material section, which gives the material properties for each non-rigid material, and the Landmarks section, which gives the coordinates of the manually chosen anatomical lankmarks.

Material Section

For each non-rigid tissue included in the template model, material properties must be provided in the model properties file (see sample below for details). Currently, the supported material type options are "trans iso Mooney-Rivlin", or "Mooney-Rivlin" (based on our Specifications/ModelingConstitutive recommendations). There is an option to include ligament prestrain in the model. In order to be included, one may simply add a material property called <initial_stretch> to the material xml element. If there are no <initial_stretch> properties, or their values are listed as None, no prestrain will be included in the model (see sample below for details). NOTE: The material names for all tissues, both in the template model, and in the model properties file must follow the naming convention outlined in Specifications/DataManagement page. For example, the femur bone must be named "FMB" in order for the customization script to properly recognize the tissues.

Landmarks Section

Locate the following anatomical landmarks manually, and save their coordinates (in the MRI coordinate system) in the Landmarks element of the Model Properties file (see sample below for details). Use the naming convention in the brackets below.

Sample Model Properties file

The following is a sample of the xml structure required in the Model properties file:



Scripted Customization Procedure

What the script does

The customization script converts the template febio model to to a customized knee model. The following customizations are made to the template model:

1. Customization for material definitions: The template model has each material defined as either rigid or deformable. The customization process assigns the tissue specific properties from the model properties file to all deformeable materials. For more information on the choice of constitutive models for the knee tissues, see Specifications/ModelingConstitutive

2. Customization for other stabilizing components:

  1. A spring is added connecting the top of the quadriceps tendon to the femur bone.
  2. two springs each to represent the MPFL, LPFL are added connecting the patella bone to the femur bone

3. Customization for In Situ Ligament Strain: In Situ strain is applied to ligaments prior to passive flexion.

4. Customization for Joint Coordinate System Definitions: Joint coordinate systems are defined for the tibiofemoral and patellofemoral joints. A Grood and Suntay Joint Coordinate System [1] is used to define the tibiofemoral joint. A similar joint, as described by Bull et Al [2] is used to define the patellofemoral joint. Both joints are modeled using a system of three cylindrical joints, connected via "imaginary rigid bodies".

5. Customization for Loading and Boundary Conditions: The Tibia, and Fibula Bones are fixed in all degree of freedom. Passive flexion to 90 degrees is applied by prescribing the rotation along the Flexion-Extension cylindrical joint. All other degrees of freedom in the model remain free.

Directions for Running Customization Script

  1. Save the scripts, and in the same directory on your computer.

  2. Run from python in the terminal with the first argument as the Febio file, and the second argument the Model Properties xml file:

  3. You will be prompted to enter 'R', or 'L', for right knee or left knee.

The script generates two files:

  1. The customized febio file FeBio_custom.feb, in the same location as the original FeBio.feb template file

  2. The customized geometry file Geometry_custom.feb, in the same location as the original Geometry.feb template file (created in the template model generation process)

The script also adds landmarks that were calculated to the Model Properties xml, such as joint origins and axes, it is recommended to check the added landmarks to ensure that their locations and direction make sense.


[1] Grood, E. S. & Suntay, W. J. A joint coordinate system for the clinical description of three-dimensional motions: application to the knee. J Biomech Eng 105, 136–144 (1983).

[2] Bull, A. M. J., Katchburian, M. V., Shih, Y.-F. & Amis, A. A. Standardisation of the description of patellofemoral motion and comparison between different techniques. Knee Surg Sports Traumatol Arthrosc 10, 184–193 (2002).

Specifications/ModelCustomization (last edited 2019-05-20 19:34:47 by arielschwartz)