Lessons from the evolution of Mayavi
Submitted by Prabhu Ramachandran (@prabhu) on Wednesday, 27 June 2012
Learn about a successful 3D data visualization package and the story of how and why it grew the way it did.
Mayavi is an open source 3D visualization package that provides multiple ways for a scientist/engineer to visualize their data in 3D. It is implemented in Python and is designed to be used from both Python's interactive interpreter and as a standalone application. It boasts of many interesting features, which include an easy to use scripting interface, embeddability into custom dialogs/applications, support for multiple UI tookits, off-screen rendering and automatic recording of UI actions to readable Python scripts. These have resulted in Mayavi being used in a very wide variety of applications all over the world in academia and commercial organizations.
The first version of Mayavi was released in 2001 and was based on a previous attempt to produce a visualization tool for colleagues in the author's lab when he was a PhD student. Subsequently in 2005, Enthought funded the author to work on a much more powerful rewrite of Mayavi.
In this talk we'll look at the historical development of Mayavi, both in terms of the technical implementation and features, as well as the motivation for the evolution. While many of the software engineering lessons learned from this project are not new, the perspective of building the package for the particular set of users is interesting and illuminating.
Prabhu Ramachandran is currently the Managing Director of Enthought India. He has been a faculty member at the Department of Aerospace Engineering, IIT Bombay, since 2005. His research interests are primarily in particle methods and applied scientific computing. He has been active in the FOSS community for more than a decade. He co-founded the Chennai Linux User Group in 1998 and is the creator, and lead developer of Mayavi. He has contributed to the Python wrappers of the Visualization Toolkit. Prabhu has a Ph.D. in Aerospace Engineering from IIT Madras. He is an active member of the SciPy community as well as a member the Society for Industrial and Applied Mathematics and a nominated member of the Python Software Foundation.