Welcome to the Envisage Project! The goal of the project is to provide a framework for building extensible, pluggable applications, and in particular (but not limited to!), extensible, pluggable applications for scientists and engineers.

The project is really divided into 3 sub-projects:-

  1. Core

    The Envisage Core, found in the top-level envisage.api package, defines the basic application architecture including the plugin and extension mechanisms. All of the other sub-projects are simply collections of plugins that are built on top of the core.

  2. User Interface (UI)

    This is small (but hopefully expanding) set of plugins useful for building applications with (graphical) User Interfaces. It is found in the envisage.ui package (and its subpackages), and aims to provide functionality commonly required in this type of application including actions, menubars, toolbars, user preferences, wizards etc. One of the most useful plugins in this project is the Workbench plugin (found in the envisage.ui.workbench.api package) that helps you build a style of user interface that is often (but not exclusively) found in integrated development environments (IDEs).

  3. Science/Enginneering

    This is the holy grail, and in truth, we haven’t got much here yet, but the goal is to build up a set of plugins targeted towards scientific and engineering applications (data import/export, 2D/3D visualization etc).

Before you read any further, we should point out that Envisage is based heavily on the excellent work that has been done in the Java community on frameworks such as OSGi, Eclipse (which is built on top of its own OSGi implementation) and NetBeans. Like these other frameworks, Envisage helps you build applications that are based on the concept of plugins. However, one of the main goals is to provide a simplified system so that applications and plugins can be written by scientists, engineers, and those people whose full-time job is not necessarily software development, hence a lot of work has gone into trying to satisfy the old adage of “make simple things simple, and complex things possible”. It will obviously be up to you to judge if we succeeded!

Getting Started

The best way to get started is probably to take the time to read and digest the Core documentation and then work through the Hello World and Message of the Day examples. Despite being extremely simple, the examples introduce you to all of the fundamental concepts of Envisage, and the real applications that you build (which will hopefully be a lot more useful) will be built in exactly the same way.

For definitions of the terminology used in Envisage, see the Glossary (although it will probably make more sense after going through the other documentation and examples first).