Last edited 11dec14 by
Find this document at

Crystallography in VPython

By Connor Bailey for UIUC MATH 198 "Hypergraphics" Class

<<<<<<< .mine ======= >>>>>>> .r702


When beginning to learn about crystallography and materials science, it is often a struggle to visualize crystal systems, as well as the planes and directions defined within them. The goal of this project, written in VPython, is to create a controllable environment to see and control the simple cubic crystal systems. The user has access to three crystal structures- simple cubic (SC), body-centered cubic (BCC), and face-centered cubic (FCC). Futhermore, the user can control displayed planes and directions in Miller Index notation. A secondary goal of this project is exploring the connection between crystal systems and the triply periodic minimal surfaces (TPMS).

Week 9

This week, a revised proposal was made. My project will feature modelling cubic crystal systems, directions, and planes in VPython. This work will culminate in relating these simple crystal systems with the Triply Periodic Minimal Surfaces. A key source of information for this project can be found at Alan Schoen's Website.

I also began working on my project, starting slowly by modeling the simple cubic (sc) and body-centered cubic (bcc) in VPython. Currently, atoms are only modeled with spheres and are not connected. My next step will be connecting them with lines, which symbolize bonds.

Week 10

Wednesday, Oct. 29th I will be presenting my seminar(pdf) on Crystallography. I will be discussing a brief history of the field, its importantance and relevance, the basis of a crystal, the three cubic systems I will be covering in my project, describing directions and planes in a crystal, and a discussion of diffraction and its crucial importance in crystallography.

This week, I accomplished the following:

The next things I will begin working on (after finishing the FCC crystal) are modeling directions and planes in a unit cell.

Week 11

A lot was accomplished this week.

The next steps in my project are to perfect the planes project (currently, it won't work if h,k, or l is 0) and to begin work on relating the SC, FCC, and BCC crystal structures to triply periodic minimal surfaces. This will most likely prove to be the most difficult part of my project.

Week 12

As of 11/13/2014, I have successfully completed the planes program to model any plane from a Miller Index, including when there are 0 terms or negative terms. Future work on this and the directions program could be to make them more interactive with slides, dials, or other user interaction. This may be worked on over the upcoming Thanksgiving break. My current task at hand is finding a way to relate the TPMSs to the crystal systems- this is proving much more difficult than initially anticipated.

Week 13

As the semester draws to a close, I have put together a single program which combines almost all of the features of my previous programs. It is an interactive RTICA that shows a unit cell. The user can control what type of crystal lattice it shows (SC, BCC, FCC, or none). They can also use sliders to change the direction or plane in the unit cell, of which the Miller Indices are displayed in a text box. After concluding that it was not feasible to create the TPMS in VPython, I decided to make this combined program. Future updates could allow the user to change the color or size of atoms displayed. At this point, I do not think my program can incorporate the TPMSs, but my presentation can still mention them as an inspiration and show their connection.

Pictured above is an animated gif showing off many aspects of my program: changing and resetting planes and directions, switching crystal systems, and displaying coordinates.

Week 14- Final Week!

Finishing touches are being made to the site, as well as final updates. Check out final documents:

I encourage any future Math 198 students to look at my documentation if they are interested in what I've done. Any questions can be sent to Connor Bailey .