How to create a model of a horse muscle using 3D printing

Picture of How to create a model of a horse muscle using 3D printing
We are a research laboratory at the University of California, Davis interested in understanding racehorse injuries, with the overall goal of helping to prevent injuries. One of our interests is to explore how the architectures of muscles and tendons within the muscles relate to their function of moving the skeleton during locomotion.

We worked with the team at Instructables to create 3D prints of a muscle in the horse that is important in locomotion. The deep digital flexor muscle and tendon unit acts like a spring--it stores large amounts of energy so that horses can gallop at high speeds in an energetically efficient manner. Like our horse bone 3D print, our goal was to visualize internal structures--in this case, the tendons within the muscle. We first obtained an MRI scan of a horse’s hindlimb (see region labeled in photograph), then created 3D models for the muscle and tendon from the images. We used the the Instructables’ 3D printer to print a two-material model, with the muscle printed in a clear resin and the tendon printed in opaque white material.
Remove these adsRemove these ads by Signing Up

Step 1: Materials and tools

Picture of Materials and tools
MRI scan
3D printer
ImageJ or other image segmentation software that can import medical images
Meshlab  - surface model editor

There are a number of options for image segmentation and model editing software, some with quite sophisticated algorithms that might be needed for challenging image sets. We describe the open source options in this Instructable (ImageJ, Meshlab, Blender), though some processes may be done more easily with proprietary software packages (e.g. Mimicis, Simpleware).

Step 2: Get an MRI scan of a muscle

Picture of Get an MRI scan of a muscle
MRI scans are useful for distinguishing different soft tissues within a region of the body. The figure shows a cross section of the horse hindlimb. The muscle appears in gray while the tendon structures are black. In our data set, we took 196 cross section images (or slices) of the leg, spaced 2 mm apart, from the stifle joint (the horse's "knee") to the hock ("ankle").

Step 3: Segment the region of interest from the scan

Picture of Segment the region of interest from the scan
We are interested in one specific part of the deep digital flexor muscle-tendon unit, so our first image processing step was to segment this region of interest from each of the slices. We used ImageJ, a free software offered by the NIH, with the Segmentation Editor plugin.

(Alternatively, there are software packages that specialize in segmentation and model creation from medical images such as MRI and CT scans that are costly but are useful for this step, e.g. Mimics, Simpleware, Amira. 3D slicer is a free alternative to ImageJ.)

This was done manually on each of the 196 slices by painting our desired region using the selection brush. Our region is surrounded by similar looking muscle, and in some slices they blend together, so there was not an easy, automated method of identifying our region. This process would not be efficient or practical if we had to segment many MRI scans, but for a single scan it was a reasonable method. In the image above, the red region identifies the region that we want to model.

Step 4: Isolate the segmented region for further segmentation

Picture of Isolate the segmented region for further segmentation
The next part of segmentation would be the identify the muscle from the tendon using different labels. To prepare for that step, we simplified our image data by keeping only the ROI that we identified in Step 3. We did this in ImageJ by saving the segmented ROI as a binary stack of TIFs (1=ROI, 0=outside the ROI), then multiplying the binary TIF stack with the original MRI stack (Process->Image Calculator). This leaves only the MRI data that is within the ROI.

Step 5: Segment the tendon region within the ROI

Picture of Segment the tendon region within the ROI
The dark strands visible in the image slices are sheets of tendon that branch within the muscle. We used a threshold tool to identify the tendon within the muscle (graylevels below the threshold were identified as “tendon”). In Mimics or Simpleware, there are additional algorithms that can be used to label the tendon, such as Region Growing (see where additional criteria are used to determine whether neighboring pixels belong to the region.

Note that the ease of segmentation is highly dependent on the quality of the image scan! For example, an artifact such as a background gradient may require more sophisticated segmentation algorithms than basic thresholding.

Step 6: Create surfaces from segmentations

Picture of Create surfaces from segmentations
To create a two-material model, two STL files are needed, one for each material--in our case, one for tendon, the other for muscle. We created these files by creating a tendon model (from Step 4), a whole muscle-tendon model (from Step 3), then using boolean operations to subtract the tendon from the whole muscle-tendon. In ImageJ, STLs can be created by using the 3D Viewer plugin with a binary image stack for each label to be created into a surface model.

Once we had the whole muscle-tendon STL and the tendon STL, we used Meshlab to clean and smooth the surface models. The tendon model is jagged-looking when first exported because of the voxels in the original MRI scan; the smoothing algorithm gets rid of the rough appearance and also eliminates small islands of the model that are not connected to the main  Then we used Blender to subtract the tendon model from the whole muscle-tendon model using a boolean modifier. Finally we have a model for the muscle region excluding the tendon--this surface model was export as an STL.

We were interested in visualizing how the branches of the tendons were oriented within the muscle, so we divided the model further by creating sections--this was also done using boolean operations within Blender.

Step 7: Print the model and polish!

Picture of Print the model and polish!
photo 2.JPG
photo 3.JPG
Thanks again to the Instructables team (noahw and audreyobscura) for printing our models! Please see this instructable to see how the model was polished so that we could see through the clear resin.