Skip to main content
Log in

A practical framework for generating volumetric meshes of subject-specific soft tissue

  • Original Article
  • Published:
The Visual Computer Aims and scope Submit manuscript

Abstract

Studying human motion using musculoskeletal models is a common practice in the field of biomechanics. By using such models, recorded subject’s motions can be analyzed in successive steps from kinematics and dynamics to muscle control. However simulating muscle deformation and interaction is not possible, but other methods such as a finite element (FE) simulation are very well suited to simulate deformation and interaction of objects. In this paper we present a practical framework for the automatic generation of FE ready meshes based on subject-specific segmented MRI data. The proposed method resolves several types of data inconsistencies: noise, an incomplete data set and self-intersections. This paper shows the different steps of the method, such as solving overlaps in the segmented surfaces, generating the volume mesh and the connection to a musculoskeletal simulation.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6

Similar content being viewed by others

References

  1. Lee, D., Glueck, M., Khan, A., Fiume, E., Jackson, K.: Modeling and simulation of skeletal muscle for computer graphics: a survey. Found. Trends Comput. Graph. Vis. 7(4), 229–276 (2012)

    Article  Google Scholar 

  2. Teran, J., Sifakis, E., Blemker, S., Ng-Thow-Hing, V., Lau, C., Fedkiw, R.: Creating and simulating skeletal muscle from the visible human data set. IEEE Trans. Vis. Comput. Graph. 11(3), 317–328 (2005)

    Article  Google Scholar 

  3. Delp, S.L., Anderson, F.C., Arnold, A.S., Loan, P., Habib, A., John, C.T., Guendelman, E., Thelen, D.G.: OpenSim: open-source software to create and analyze dynamic simulations of movement. IEEE Trans. Biomed. Eng. 54(11), 1940–1950 (2007)

    Article  Google Scholar 

  4. Damsgaard, M., Rasmussen, J., Christensen, S.T., Surma, E., de Zee, M.: Analysis of musculoskeletal systems in the AnyBody Modeling System. Simul. Model. Pract. Theory 14, 1100–1111 (2006)

    Article  Google Scholar 

  5. Delp, S.L., Loan, J.P., Hoy, M.G., Zajac, F.E., Topp, E.L., Rosen, J.M.: An interactive graphics-based model of the lower extremity to study orthopaedic surgical procedures. IEEE Trans. Biomed. Eng. 37(8), 757–767 (1990)

    Article  Google Scholar 

  6. Wang, J.M., Hamner, S.R., Delp, S.L., Koltun, V.: Optimizing locomotion controllers using biologically-based actuators and objectives. ACM Trans. Graph. 31(4), 25 (2012)

    Google Scholar 

  7. Gielen, A.W.J., Oomens, C.W.J., Bovendeerd, P.H.M., Arts, T., Janssen, J.D.: A finite element approach for skeletal muscle using a distributed moment model of contraction. Comput. Methods Biomech. Biomed. Eng. 3(3), 231–244 (2000)

    Article  Google Scholar 

  8. Johansson, T., Meier, P., Blickhan, R.: A finite-element model for the mechanical analysis of skeletal muscles. J. Theor. Biol. 206(1), 131–149 (2000)

    Article  Google Scholar 

  9. Kojic, M., Mijailovic, S., Zdravkovic, N.: Modelling of muscle behaviour by the finite element method using Hill’s three-element model. Int. J. Numer. Methods Eng. 43(5), 941–953 (1998)

    Article  MATH  Google Scholar 

  10. Jenkyn, T.R., Koopman, B., Huijing, P., Lieber, R.L., Kaufman, K.R.: Finite element model of intramuscular pressure during isometric contraction of skeletal muscle. Phys. Med. Biol. 47, 4043 (2002)

    Article  Google Scholar 

  11. US National Library of medicine. The visible human project. http://www.nlm.nih.gov/research/visible/

  12. Dong, F., Clapworthy, G.J., Krokos, M.A., Yao, J.: An anatomy-based approach to human muscle modeling and deformation. IEEE Trans. Vis. Comput. Graph. 8(2), 154–170 (2002)

    Article  Google Scholar 

  13. Shinar, T., Schroeder, C., Fedkiw, R.: Two-way coupling of rigid and deformable bodies. In: James, D., Gross, M. (eds.) ACM SIGGRAPH/Eurographics Symposium on Computer Animation (SCA), pp. 95–103 (2008)

    Google Scholar 

  14. Kim, J., Pollard, N.S.: Fast simulation of skeleton-driven deformable body characters. ACM Trans. Graph. 30(5), 1–19 (2011)

    Article  Google Scholar 

  15. Stavness, I., Lloyd, J.E., Payan, Y., Fels, S.: Coupled hard–soft tissue simulation with contact and constraints applied to jaw–tongue–hyoid dynamics. Int. J. Numer. Methods Biomed. Eng. 27(3), 367–390 (2011)

    Article  MATH  Google Scholar 

  16. Sethian, J.A.: A fast marching level set method for monotonically advancing fronts. Proc. Natl. Acad. Sci. USA 93(4), 1591–1595 (1996)

    Article  MATH  MathSciNet  Google Scholar 

  17. Osher, S., Fedkiw, R.P.: Level Set Methods and Dynamic Implicit Surfaces, vol. 153. Springer, Berlin (2003)

    MATH  Google Scholar 

  18. Blemker, S.S., Delp, S.L.: Three-dimensional representation of complex muscle architectures and geometries. Ann. Biomed. Eng. 33(5), 661–673 (2005)

    Article  Google Scholar 

  19. Blemker, S.S., Delp, S.L.: Rectus femoris and vastus intermedius fiber excursions predicted by three-dimensional muscle models. J. Biomech. 39(8), 1383–1391 (2006)

    Article  Google Scholar 

  20. Schmid, J., Magnenat-Thalmann, N.: MRI bone segmentation using deformable models and shape priors. In: MICCAI. LNCS, vol. 5241, pp. 119–126 (2008)

    Google Scholar 

  21. Gilles, B., Moccozet, L., Magnenat-Thalmann, N.: Anatomical modeling of the musculoskeletal system from MRI. In: Medical Image Computing and Computer-Assisted Intervention (MICCAI), pp. 289–296 (2006)

    Google Scholar 

  22. Taubin, G.: Curve and surface smoothing without shrinkage. In: The Fifth International Conference on Computer Vision, pp. 852–857 (1995)

    Google Scholar 

  23. Baraff, D., Witkin, A., Kass, M.: Untangling cloth. ACM Trans. Graph. 22(3), 862–870 (2003)

    Article  Google Scholar 

  24. Jung, W., Shin, H., Choi, B.K.: Self-intersection removal in triangular mesh offsetting. Comput-Aided Des. Appl. 1(1–4), 477–484 (2004)

    Google Scholar 

  25. Carve, constructive solid geometry library. http://code.google.com/p/carve

  26. CGAL, computational geometry algorithms library. http://www.cgal.org

  27. Rineau, L., Tayeb, S., Yvinec, M.: 3D mesh generation. In: CGAL User and Reference Manual (2009)

    Google Scholar 

  28. Oudot, S., Rineau, L., Yvinec, M.: Meshing volumes bounded by smooth surfaces. In: Proceedings of the 14th International Meshing Roundtable, pp. 203–219 (2005)

    Chapter  Google Scholar 

  29. Hert, S., Schirra, S.: 3D convex hulls. In: CGAL User and Reference Manual (2009)

    Google Scholar 

  30. FEBio, finite elements for biomechanics. http://mrl.sci.utah.edu/software.php

  31. Maas, S.A., Ellis, B.J., Rawlins, D.S., Weiss, J.A.: A comparison of FEBio, ABAQUS, and NIKE3D results for a suite of verification problems (2009)

  32. Pronost, N., Sandholm, A., Thalmann, D.: A visualization framework for the analysis of neuromuscular simulations. Vis. Comput. 27, 109–119 (2011)

    Article  Google Scholar 

  33. Bentley, J.L.: Multidimensional binary search trees used for associative searching. Commun. ACM 18(9), 509–517 (1975)

    Article  MATH  MathSciNet  Google Scholar 

  34. Au, O.K.C., Tai, C.L., Chu, H.K., Cohen-Or, D., Lee, T.Y.: Skeleton extraction by mesh contraction. ACM Trans. Graph. 27(3), 1–10 (2008)

    Article  Google Scholar 

Download references

Acknowledgements

This work was initiated by the European Marie Curie Program under the 3D ANATOMICAL HUMAN project (MRTN-CT-2006-035763). The authors would like to acknowledge Jerome Schmid, Anders Sandholm, Nadia Magnegnat-Thalmann, Daniel Thalmann and Arjan Egges for their assistance in this work.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Nicolas Pronost.

Appendices

Appendix A

1.1 A.1 Push-based method

During this research, we tried several methods of approaching the overlap problem. We first developed a method where two objects would push each other away. The reason for using a push-based method is that the topology of the object remains intact, and the attachment and tendon information are transformed together with the surface. The surfaces that have smaller volumes have a higher priority, meaning they will be the last to be deformed, because their changes will most likely have the most impact on the shape of the object. The bones will have the highest priority since they have the best segmentation quality. First we apply an iterative smoothing algorithm on the pushed surface to represent the general trend that the surface has. We then use this information to determine the direction whereto each overlapping vertex should move when pushed away by the other surface. As we also want to take into account the geometry of the pushing surface, this direction is combined with the average vertex normal of the closest vertices in the pushing surface. This lookup is done using a kd-tree, for which the implementation from the CGAL library is used [26, 33]. We take the 10 closest vertices, calculate the vertex normals of those and average them. This gives us a second pushing direction vector which is combined to the smoothed direction with an equal weight. A vertex is pushed away in that direction until it does not lie inside the other surface anymore. Unfortunately, this method fails if a surface lies too far inside another one, because pushing directions cannot be accurately determined anymore. Furthermore, the convergence of this kind of technique will be difficult to ensure when the data set is made of many objects e.g. with all muscles, fat-tissue and skin layers.

1.2 A.2 Shrink-based method

We also looked at methods that can make two surfaces push each other away by both moving vertices to a shrunk copy of the surface. For this, we need an algorithm that can give for a surface S a shrunk version S′. Shrinking an object iteratively gives a sequence of shrunk surfaces S 1,…,S n. Similarly, each vertex v i V, has a sequence of shrunk positions \(v_{i}^{1}, \ldots, v_{i}^{n}\). By applying the shrinking algorithm iteratively on the overlapping surfaces, they will naturally move apart. We tried the following two shrinking algorithms.

Shrinking by smoothing

We used a shrinking algorithm based on standard Laplacian smoothing [22]. Each vertex is moved in the average direction of its neighbors.

$$ v_i^{t+1} = v_i^{t} + \lambda \frac{\sum_{j \in v_i^{av}}{v_j^{t} - v_i^t }}{|v_i^{av}|} $$
(9)

Here λ is the scaling factor of the displacement done at each shrinking step. This method produces smooth shrinking, and can be done in arbitrarily small steps. The problem of this method is that globally the surface will shrink, but locally the surface can expand. Specifically, concave parts of the surface will expand, and convex parts will shrink.

Shrinking to skeleton

The second shrinking algorithm we developed moves the vertices of the surface to a precalculated ‘skeleton,’ which represents the global minimal structure of an object. We determine this skeleton using the method of Au et al. [34]. The algorithm takes a surface S={V,F} and produces a curve-skeleton K=(U,E) with skeleton nodes U and edges E, where \(U = \{ u_{1}, u_{2}, \ldots, u_{n_{U}} \}\) are the node positions. The algorithm also produces a mapping coll(v i )=u k from vertices to skeletal nodes, which gives for each vertex v i the node u k to which it was collapsed in the skeleton. The shrinking algorithm we developed moves the vertices towards an attraction point on the skeleton. The attraction points are dynamically determined by the mapping coll(v i ), where the influence of the parent node of each vertex increases as the vertex moves closer to the skeleton. The smoothness of the shrinking could be improved by a different strategy of moving towards the skeleton. Unfortunately, the algorithm has a bigger defect: the algorithm produces for some muscles a skeleton that lies outside of the surface shape, which is not tolerable for our application, since the vertices can never go outside of the original shape.

Appendix B

Static MRI scans of the whole lower limb have been performed. The subject was lying in a resting pose. In close collaboration with radiologists, adequate protocols for the imaging of soft and bony tissues was defined. The following protocol was used: 1.5T Philips Medical Systems machine, axial 2D T1 Turbo Spin Echo, TR/TE=578/18 ms, FOV/FA=40 cm/90, matrix/resolution=512×512/0.78×0.78 mm, thickness: from 2 mm (near joints) to 10 mm (long bones).

Not all algorithms in the pipeline can be used without configuration. We describe hereafter the most significant parameters used in the pipeline. The smoothing algorithm (Sect. 3.3) has three parameters: λ factor, μ factor and number N. The surfaces in our data set are smoothed with the values λ=0.33, μ=−0.331 and N=1000 iterations.

In the tendon generation step (Sect. 3.4), we add regularly spaced vertices to fill the gap between the end of the tendon and the start of the muscle. The space between these rows of vertices is set to 2 mm.

The degenerate triangle method (Sect. 3.5) needs two ϵ values, ϵ e and ϵ α , that respectively indicate the minimal edge length and minimal angle. In the experiment, we used ϵ e =0.5 mm and ϵ α =0.01 degrees.

The overlap solving algorithm (Sect. 3.6) creates a raw-offset of the surface that will be subtracted. The parameter λ indicating the distance of the offset is set to λ=1 mm.

The volume mesh generation step has several parameters determining the final density and accuracy of the output mesh. Table 1 lists the parameters used on our data set. For both muscle and bone objects, we choose the same values for angular bound and radius-edge bound. This is because these values do not influence the amount of elements created in the output mesh, but only influence the runtime of the mesh generation. Facet angular bound is set to 30 degrees because the CGAL algorithm will guarantee a solution for this bound. The radius-edge ratio is set to 1.25, because we want to avoid unbalanced tetrahedra. For the radius bounds, we choose for the muscle a lower value since it will deform during the simulation and therefore needs a higher resolution. The bones are not going to deform so the size of the tetrahedra inside of the bones is not important, hence the high value.

Table 1 CGAL mesh generation parameters

Rights and permissions

Reprints and permissions

About this article

Cite this article

Peeters, P., Pronost, N. A practical framework for generating volumetric meshes of subject-specific soft tissue. Vis Comput 30, 127–137 (2014). https://doi.org/10.1007/s00371-013-0788-2

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00371-013-0788-2

Keywords

Navigation