Envisage - An Extensible Application Framework.notes
Friday, March 25, 2005
TITLE OF PAPER: Envisage - An Extensible Application Framework
URL OF PRESENTATION: _URL_of_powerpoint_presentation_
PRESENTED BY: Eric Jones
REPRESENTING: Enthought
CONFERENCE: PyCon 2005
DATE: 3/25/2005
LOCATION: Marvin Theater
--------------------------------------------------------------------------
REAL-TIME NOTES / ANNOTATIONS OF THE PAPER:
{If you've contributed, add your name, e-mail & URL at the bottom}
The need
Envisage is a toolset for building extensible applications. Enthought works in science: geophysics, electodynamics--things that have complex, long-running simulations.
They find they spend only 20% of their time on algorithms but 80% on UI development and workflow issues!
Develop SciPy to deal with the scientific part of the applications
Enthought Libraries
Low Level Python Libs
Traits - Type information for Python
Kiva - A DisplayPDF renderer
Python Modules
PyFace
Traits based MVC widget layer (wxPython-only for now)
Tvtk
Traits layer for VTK 3D visualization libraray
Graph
Dataflow Engine (similar to Java's Ptolemy, which is the 800-pound
gorilla in that space)
Chaco
Interactive Plotting
Envisage
Visual Programming Plugin
Mayavi Plugin - 3D visualization tools
TVTK, a library for 3D Visualization
"Traits-ified" interface to VTK
Developed by Prabhu Ramachandran
Standard VTK Inteface
[example of how verbose it is to create a mesh object in 3D space]
They wrapped the vertex coordinates and such to be Traits so they can notify
you when they change, etc.
[Demo of TVTK application]
Envisage: An Integrated Science Environment
Multiple Plugins. One Application
Plug-ins:
Optimization
Visualization
Computational Fluid Dynamics (CFD)/EM Integration
CFD Simulator
Electromagnetics Simulator
So, for example, if you want to figure out what the radar cross-section of
an airplane is, you may need the EM plugin to handle the radar stuff and
the CFD one to see whether the plane actually flies.
Having plugins does not an application make.
need to do some UI design so it doesn't feel like something cobbled
together
[ eyechart diagram of various Envisage components ]
[ Screen shots of Envisage based Geophysics Applications ]
Plug-ins: The Simple Description
How are they defined?
Declarative portion that describes capabilities
Implementation (resources, action, etc.)
What do they consist of?
Extensions
Extension Points
Dependencies
Suspiciously similar to how Eclipse works
Demos of Envisage-based apps
Simple UI created w/ 13 plugins
Graph Editor components
Open SVN Repository
eric@enthought.com
Public Release in Q3
--------------------------------------------------------------------------
REFERENCES: {as documents / sites are referenced add them below}
--------------------------------------------------------------------------
QUOTES:
--------------------------------------------------------------------------
CONTRIBUTORS: {add your name, e-mail address and URL below}
Erik Rose <corp@grinchcentral.com>
Ted Leung <twl@sauria.com> <http:/www.sauria.com/blog>
--------------------------------------------------------------------------
E-MAIL BOUNCEBACK: {add your e-mail address separated by commas }
--------------------------------------------------------------------------
NOTES ON / KEY TO THIS TEMPLATE:
A headline (like a field in a database) will be CAPITALISED
This differentiates from the text that follows
A variable that you can change will be surrounded by _underscores_
Spaces in variables are also replaced with under_scores
This allows people to select the whole variable with a simple double-click
A tool-tip is lower case and surrounded by {curly brackets / parentheses}
These supply helpful contextual information.
--------------------------------------------------------------------------
Copyright shared between all the participants unless otherwise stated...