Lessons from the evolution of Mayavi
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.