Research Training

Our research focuses on high throughput phenotyping: building three-dimensional macroscopic models of tissue at sub-cellular resolution.

The STIM laboratory develops and uses a wide range of tools, primarily in the areas of optical imaging and high-performance computing. Potential students interested in the following areas should get in touch:

Fluorescence Microscopy. We routinely build microscopes for wide-field and three-dimensional imaging applications, including confocal, multi-photon, and light-sheet microscopy.

Image Segmentation.  We develop methods that turn three-dimensional images into explicit models for analysis, including segmentation of complex structures such as neurons and microvascular networks.

Visualization. We employ a wide range of custom tools to visualize unique structures, such as networks and large data volumes, and have expertise in computer graphics programming and virtual reality.

GPU Programming. We frequently leverage CUDA programming for both image processing and visualization, and the PI (Dr. Mayerich) teaches a graduate course on heterogeneous computing.


Limitations in single-threaded processors are forcing new paradigms in software and algorithm development. Research and industry often require massively parallel systems for simulation, data processing, and analysis. Several architectures, including nVidia’s CUDA, provide highly parallel performance at low cost. However, algorithms optimized for massively parallel systems require new design and programming strategies. In this course, we will focus on the design and development of algorithms that take advantage of highly parallel co-processors to solve technical and scientific problems. This course will include an overview of data parallel architectures and principles in programming massively parallel systems.

This course is an introduction to numerical analysis with an emphasis on practical applications, implementation, and algorithm design. The primary objective of this course is to gain an understanding of the algorithms and pitfalls encountered when performing numerical operations on computational systems, including algorithm design and the proper understanding and use of available numerical algorithms.

Recommended Courses

The following courses are recommended for STIM Laboratory graduate research, and represent relevant topics in the areas of optics, image processing, and high-performance computing.


Software Development

STIM Lab Tutorial. We have a software development tutorial that walks through commonly used tools like CMake, Git, and vcpkg.

C++ Programming. There is an excellent C++ video series by The Cherno.

OpenGL Programming. A video series by The Cherno on OpenGL and real-time computer graphics.



Optics and Imaging

ECE 6339 – Biophotonics. Fundamental principles of biophotonics and their applications in biological and biomedical research. Topics are light-matter interactions, optical imaging, optical and plasmonic biosensing, imaging systems and nanotechnology for biophotonics.

ECE 6397 – Advanced Imaging Techniques.

BIOE 6347 – Introduction to Optical Sensing and Biophotonics. Optical imaging techniques for detection of structures and functions of biological tissues, basic physics and engineering of each imaging technique with an emphasis on coherence-domain imaging.



ECE 6302 – Introduction to Neuroengineering. Single neurons, principles of perception and movement, learning and memory, functional magnetic resonance imaging, electroencephalography, magnetoencephalography, transcranial magnetic stimulation, chemical stimulation, functional neuroanatomy.

Data and Image Processing

ECE 6397 – Sparse Representations for Signal Processing.

ECE 6397 – Parallel Algorithms for GPUs and Heterogeneous Systems. Design and development of algorithms that take advantage of highly parallel co-processors, such as the nVidia GPU and Xeon Phi, in order to solve research related problems. Overview of data parallel architectures and principles in programming massively parallel systems.

ECE 6337 – Introduction to Stochastic Processes. Probability spaces, random variables, distributions, functions of random variables, conditioning, limit concepts, sampling, correlations and power spectral analysis, linear estimation, orthogonal projections.

ECE 6364 – Digital Image Processing. The nature of images; visual effects; acquisition of images; sampling, quantization, and two-dimensional linear processing; image enhancement and restoration; image coding; texture analysis; tomography.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.