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...