Visualizing symmetry elements for crystal classes using MATLAB

Jeremy Deans
University of Southern Mississippi, Geography & Geology
Author Profile


This assignment provides students practice in a mineralogy class to learn symmetry motifs, symmetry operations, and crystal classes by using the MTEX toolbox in MATLAB. The students will load the MTEX toolbox and plot several examples of graphic representations of symmetry elements. Once plotted, the students will draw the distribution of the associated motif pattern (i.e., a motif pattern that follows the crystal class) and describe the different symmetry elements.

Used this activity? Share your experiences and modifications

Learning Goals

Students often struggle on crystal symmetry as it is in 3D and there are a lot of new and foreign concepts. This assignment should help students gain more experience with crystal classes and symmetry elements. MATLAB is used to plot the various crystal classes, which provides a simple introduction to using MATLAB. There is no higher-order thinking developed by this activity. Other skills developed by this assignment is decryption of crystal system notation and taking the plots of symmetry elements and converting them to the associated motif pattern.

Context for Use

This assignment can be done in any size class. It is designed to be a homework assignment in a Mineralogy class, assigned when covering symmetry elements and crystal classes. This can be completed as a lab or as a homework assignment. This assignment is designed to be an introduction to MATLAB so the students get familiar with defining a variable, calling a function, and plotting; no prior MATLAB experience is required. Students should be familiar with crystal class notation and what the notation means. This assignment is very specific to Mineralogy, not easily adapted to other settings.

Description and Teaching Materials

The students need to have MATLAB and the MTEX toolbox. The MTEX toolbox is free (link below). There is also a user guide on how to use the crystal geometry function (link below).
This assignment is best set up as a homework after concepts of crystal classes have been introduced. You can decide how many crystal classes they have to do. I like to have them do at least one example from each crystal system (6). In MATLAB, the coding is simple, just follow this template:
cs = crystalSymmetry('4')
The number "4" is the crystal class, which is where any of the crystal classes can be called. You want to plot in an upper hemisphere projection. The students can print out their plots, then provide a description and drawing of an associated motif separately.
MTEX toolbox:
Crystal Geometry (use the crystal symmetries link) user guide:
Student handout for crystal class assignment (Microsoft Word 2007 (.docx) 14kB Aug16 18)

Teaching Notes and Tips

In my class, this is the first time the majority of my students have ever seen MATLAB, let alone programming software, so I show the students how to download and open MATLAB. I then get them to download and run MTEX. I then show them an example of how to run the code and get the plot. In this example, MATLAB is the easy part and drawing the motifs is the hard part.


Most mineralogy text books have the different graphic representations of crystal classes and associated motif patterns. Drawing the motifs is usually the most difficult, so best to review this in class. I also allow my students to redo some of their work for partial credit. If the students can clearly describe the symmetry elements and draw a reasonable motif, then they have met the goals for the assignment.

References and Resources

MTEX toolbox:

Crystal Geometry (use the crystal symmetries link) user guide: