The GEF3D project is a proposed open source project under the Eclipse Technology Project.
According to the Eclipse Development Process, this proposal is intended to declare the intent and scope of the GEF3D project as well as to gather input from the Eclipse community. You are invited to comment on and/or join the project. Please send all feedback to the http://www.eclipse.org/newsportal/thread.php?group=eclipse.gef3d newsgroup.
Three-dimensional visualizations are often very helpful when two-dimensional representations of complex systems become too cluttered or when domain specific diagrams are already using three-dimensional notations. On the other hand, 3D visualizers are often developed separately from existing development tools or IDEs, such as Eclipse. These special solutions are created using 3D frameworks such as OpenGL, Java3D or VRML/X3D. These frameworks are very different from the ones used for implementing 2D visualizations in the Eclipse environment, such as GEF. Thus, when existing 2D solutions should be extended to 3D, e.g. because the models represented become more and more complex, completely new solutions have to be implemented; switching from 2D to 3D requires completely new programming skills as well as new tools -- eventhough in many cases the models are not that different (or should even be the same) and many graphical properties are quite similar.
GEF3D will provide a framework for implementing 3D graph-based editors as simple as 2D graphical editors and to use 2D editors in a 3D environment.
GEF3D extends the Eclipse GEF framework and adds the ability to create 3D visualizations and editors just the way 2D graphical editors are created with GEF. Instead of GEF's 2D package Draw2D, it comes with an OpenGL based version, called Draw3D; for handling 3D related tasks appropriate controller classes extend or replace existing GEF based controller parts.
By projecting 2D content on 3D planes, it is possible to reuse existing 2D GEF-based editors and use them in a 3D environment. This way certain 3D features can easily be added without much implementation effort. GEF3D provides necessary techniques and design patterns in order to reduce extra implementation effort for 3D as much as possible.
The goal of the GEF3D is to:
The project will provide a framework for enabling 3D graph-based editors, that is editors using visualizations based on nodes, edges and nested nodes. These nodes and edges are 3D or 2D shapes, the latter are to be projected on 3D shapes. The shapes are all rendered using OpenGL (using LWJGL), basic shapes will be provided by the framework in order to minimize necessary OpenGL knowledge.
Additionally, special navigation and layout techniques will be implemented for achieving good usability,such as tracking shots or detail on demand.
We propose this project should be undertaken as an incubator project with the Eclipse Technology Project.
The initial code contribution is based on the existing GEF3D code base licensed under the EPL. The current project and its source code can be obtain at http://gef3d.org
A point of interest is that GEF3D depends on the LJWGL, an OpenGL Java wrapper. LWJGL itself is licensed under the BSD license. GEF3D contains an LWJGL Eclipse plugin which bundles LWJGL.
GEF3D is developed as part of a Ph.D. project at the Software Engineering group at the FernUniverstitaet (distance teaching university) in Hagen, Germany (http://www.fernuni-hagen.de/se/). Several students thesis are using or extending GEF3D. A website, mailing list and bug tracking system are available.
Some functionality already exists, but there is no real plan at the moment for lack of committed resources. The project's rough priorities are:
Back to the top