EMsoft

Welcome to the official EMsoft web page!  On this page you will find links to the source code, help pages, SDK build instructions, nightly builds, the EMsoft Google Users Group, and more.  This page will be updated frequently to always have the latest information.

Please note that the repository locations for both the Superbuild and the main repository were changed on August 20,2018; both repositories are now part of the EMsoft-org organization. 

EMsoftSuperbuild
EMsoftSuperbuild repository size
Open Issues
last commit

This repository contains mostly cMake code that can be used to bootstrap the creation of the Software Developer Toolkit (SDK) necessary to properly compile the EMsoft suite of programs.

There are many changes in Release 5.0, so developers will need to rebuild the SDK from scratch.

EMsoft
EMsoft Repository size
Open Issues
last commit

This repository contains all the publicly released source code as well as various resource files.  The current version of the code is 5.0 (October 14, 2019).  This repository always contains a functioning version of the complete public EMsoft package.  

This source code release (5.0) has been assigned a permanent DOI number:

The previous version of the source code (4.2) has been assigned the following  DOI number:

DOI
wiki pages

We are in the process of creating detailed help pages for all of the most important EMsoft programs, in particular the suite of programs for EBSD pattern simulation and dictionary indexing.  This is a time consuming task, so any help would be appreciated!

nightly builds

Every night, the complete package (in its current version) is built and executables are made available for download (Mac and Windows). The most current executables should be in the most recent folder, but occasionally a beta build may fail, in which case an earlier version may need to be selected.  

The executable packages for the 4.2 release (Windows and Mac) can be downloaded from the following links:
EMsoft-4.2.0.0-OSX.dmg.gz and EMsoft-4.2.0-Win64.zip .

Google EMsoft Users Group

The Google EMsoft users group is a private group (you can request access); you will find messages from other users, questions and answers regarding installation and compilation, and so on.  New releases are announced through this forum as well as on this page.

CDash build information

On this page you can find information regarding the continuous and nightly builds of EMsoft; if all boxes are green, then the builds were successful.  This site is informational only.

IDL virtual apps

We offer pre-compiled IDL (Interactive Data Language) apps for Windows, Mac OS X, and Linux (all 64 bit) . These apps can be used to visualize some of the EMsoft data files, and carry out an interactive fit of EBSD detector parameters.  We are still in the testing phase for these apps, so if you try them and encounter issues, please let us know.

If you are using a Mac, then the download above will not work due to Apple's security systems. Instead, you should use the "curl" program to download the zip file in a Terminal window using the following command:

curl "http://vbff.materials.cmu.edu/wp-content/uploads/2019/01/VMappsOSX.zip" -O

The Mac OS X and Linux versions of the VM apps should work fine on your system; the Windows 10 version has been reported not to work (Feb. 2019) and we are trying to resolve this issue.

EMsoft success stories

COMING SOON: If you are currently using EMsoft and you obtained a nice result, perhaps something you added to a publication, please let us know about it.  We will host a list of links to pages describing exciting results and/or links to publications.

List of publications that use, are related to, or were enabled by EMsoft

Contribute to EMsoft

You can contribute your own code to the EMsoft project in one of two ways:

  • 1
    Obtain your own GitHub ID and fork the EMsoft-org/EMsoft repository into your own account.  Then clone your copy of EMsoft onto your own computer, and start working; as you add code, commit and push to your copy of EMsoft on GitHub.  Try to organize your additions in separate branches, so that you have a clear overview of all the changes/additions you are making.  When you feel you have a working piece of code (i.e., code that compiles and executes correctly) that might be of use to others, commit and push it to your repository and send a pull request to the main repository; there are plenty of manuals on the web that explain how to do this.  I will then evaluate your code and, assuming everything works well, import it into the main EMsoft repository.
  • 2
    There is a second private repository that is used by a handful of developers to augment EMsoft on a continuous basis; this is our testing ground for future releases.  Programs in the private repository are compiled on a nightly schedule to make sure there are no build issues, but the source code is not released until we have completed extensive testing.  If you wish to become a member of the core developer group, please contact me (degraef_at_cmu.edu) directly.

Funding acknowledgments

The open source EMsoft package is based on original code that was developed as part of the Introduction to Conventional Transmission Electron Microscopy text book written by the PI (2003).  While some of the original crystallography code dates back to 1998, most of this code has been rewritten by now, and the current version was made possible with financial support from:  

  •  ONR N00014-12-1-0075
  • AFOSR MURI FA9550-12-1-0458
  • Vannevar Faculty Bush Fellowship ONR N00014-16-1-2821

Copyright Statement

The EMsoft package uses the BSD2 copyright license which reads as follows:

 Copyright (c) 2013-2019, Marc De Graef Research Group/Carnegie Mellon University
 All rights reserved.

 Redistribution and use in source and binary forms, with or without modification, are
 permitted provided that the following conditions are met:

 - Redistributions of source code must retain the above copyright notice, this list
   of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright notice, this
   list of conditions and the following disclaimer in the documentation and/or
   other materials provided with the distribution.
- Neither the names of Marc De Graef, Carnegie Mellon University nor the names
   of its contributors may be used to endorse or promote products derived from
   this software without specific prior written permission.

 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
 CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
 USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.