DREAM.3D Version 7.0.0¶
DREAM.3D is an open source, cross-platform and modular software package that allows users to reconstruct, instantiate, quantify, mesh, handle and visualize multidimensional, multimodal data. DREAM.3D is built on top of the SIMPL and SIMPLView software projects and contains a filter suite designed for the materials scientist to utilize to reconstruct 3D microstructures or synthetically generate microstructures. The core software package has many major functionalities, including:
- Import ASCII Data
- Import EBSD Vendor Data (.ang, .ctf, .h5)
- Import of standard image files (TIFF, PNG, JPEG, BMP)
- Archive Raw and processed data to HDF5 files
- Alignment, cleaning, reconstruction, segmentation and analysis of imported data
- Statistics, either synthetically created or from real data, can be used to generate a statistically equivelent material structure
- Reconstructed and synthetic volumes can be surfaced meshed to allow export into FEM or other simulations.
- Import/Export of data into/out of ASCII or Binary files
- Export Surface Mesh as STL Files
- Hundreds of filters to import, process, and export data
- Integration with http://www.itk.org
- Use ParaView to visualize raw and processed data
The above items represent only a subset of the specific capabilities of DREAM.3D. In general, DREAM.3D can be considered a generic tool for processing multidimensional, multimodal data. The main DREAM.3D web site has more information on the project, in addition to official binary distributions and example data files. DREAM.3D is built with a Plugin system that allows other institutions to build additional Filters using their own programming resources and intellectual property and still protect those rights under the BSD license.
- User Interface Updates
- Removed Filter Library
- The team decided this was more of a detractor in our UI and added far more complication due to a lack of organization.
- The searching and sorting algorithms for Filter List should be sufficient to find desired filters.
- Complete User Interface Overhaul
- Newly updated themes
- Native (uses system defaults)
- Filter Help
- Every filter now has an updated documentation found through the ( ) icon. See the Viewing A Filter's Help Page section for further detail. Please report any discrepancies to the team.
- Numerous stylistic updates
New Widget Bar in the bottom right corner (Pipeline, Filter List, etc...) allows widget visibility to be toggled on/off by clicking the respective button. See the Widget Visibility Bar section for further detail.
Filter Comments Every filter has a comments section at the top of the parameters list. Comments written in this section are stored in the pipeline file, and as such will vary from pipeline to pipeline, but are persistent. At the current time, this section exclusively supports ASCII characters. This replaces the Pipeline Annotation filter from previous versions. See the Filter Comments section for further detail.
Pinned Parameters The pinned parameters is a new widget that can be used as a visible clipboard of sorts, and can be toggled on/off by clicking on pinned parameters in the new Widget Bar. This widget can be used by selecting a parameter from a filter and pressing the ( ) to the right of the parameter. This parameter will then appear in the Pinned Parameters widget, where said parameter will remain visible when clicking to other filters in the pipeline. Parameters can be removed from the widget by clicking the respective ( ). See the Pinned Parameters section for further detail.
Workflow Parameters This new addition allows for a new level of abstraction within the software. Users may create a pipeline and select specific parameters, typically independent variables, from the filters to be displayed in a workflow file. The parameters visible in workflow file can be viewed in the Workflow Parameters tab. The idea behind this is to make DREAM3D's functionality more accessible to those less versed in the field of Material Science and this software as a whole. See Workflow Parameters documentation for further detail.
Visualization This functionality allows for viewing data of moderate size within the application itself. This functionality has various nuances and thus the user is highly encouraged to review Visualization Documentation.
New Auto-save Feature Unsaved pipelines are now stored in a temp file and will be saved implicitly everytime a change is made to the pipeline. This means that if the application crashes changes to the pipeline will be saved and can be restored so long as they are not discarded by the user when reopening.
See the Copying.md file for CopyRight & license
History of DREAM.3D¶
The history of DREAM.3D is rooted in two parallel research efforts:
- The first was the graduate research project of Michael Groeber, under the advisement of Dr. Somnath Ghosh, at The Ohio State University (2003-2007). The key developments under this project were the creation of many of DREAM.3D's current filters for reconstructing serial section experimental datasets, quantifying microstructural features in 3D and generating statistically equivalent microstructures.
- The second research effort was carried out by the research group of Dr. Tony Rollett at Carnegie Mellon University over a number of graduate student projects (see names below) and years (~2000-2011). The key developments under these projects were the development of a synthetic microstructure builder, microstructure clean-up tools, surface mesh generation and quantification tools for microstructural features.
The tools developed under these efforts generally remained as command line executables with limited portability due to lack of documentation and flexibility. In an effort to extend the capabilites of these tools to the larger materials community, Dr. Chris Woodward of the Air Force Research Laboratory (AFRL) funded Mike Jackson of BlueQuartz Software to create Graphical User Interfaces (GUIs), common data structures and documentation for the tools developed in the research effort of Groeber and Ghosh (2009-2011). After the initial phase of development (2011), Jackson and Groeber approached Rollett, Lee, Sintay, Chan and Tucker and proposed the unification of the parallel efforts. The Rollett group accepted the proposal and graciously made available all of their algorithms and source code. It was at this point that DREAM.3D was named and the vision for the software was truly solidified.
Over the next couple of years (2011-2013), additional researchers contributed code to extend the capabilities of DREAM.3D. Specifically, the grain boundary-centric tools of Dr. Dave Rowenhorst (Naval Research Laboratory) and Dr. Greg Rohrer (Carnegie Mellon University) greatly augmented the functionality of the package.
By 2013, Jackson and Groeber had fully documented the tools, created a Software Developer's Kit (SDK) and generated tools for adding plugins to the package, making the software package readily usable and extensible. As the community surrounding DREAM.3D continued to grow, Jackson formed BlueQuartz Software into an LLC to better provide professional support and allow for additional growth. In 2014, Dr. Sean Donegan joined BlueQuartz Software from the Rollett group to provide another full-time developer with materials expertise. In late 2014, BlueQuartz also added Joseph Kleingers and Sally Connell as full-time developers with computer science backgrounds.
During the growth of BlueQuartz Software through 2014, the core data structure of DREAM.3D was redesigned to allow for greater user flexibility. This change also allowed the tool to expand outside of microstructural analysis to include most areas of materials research, and ultimately to multidimensional data analysis in general. These efforts spurred the release of the current version of DREAM.3D, version 6, which represents a great step forward in the DREAM.3D experience.
Please sign up for the DREAM.3D Users Google group. It's the fastest way to ask your DREAM.3D questions, get help with using DREAM.3D, and connect with both developers and the community at large. If you are interested in contributing to the DREAM.3D project, also sign up to the DREAM.3D Developers Google group to get help with compiling and adding to DREAM.3D. If you find an error with DREAM.3D or want to request a new feature, please open up an issue.
Contributing to DREAM.3D¶
Please reference the Contributing file for more information on contributing to the DREAM.3D project.