GEF3D requires Eclipse Platform 3.5 (Galileo), with GEF 3.5 and an OpenGL graphics card. For a list of (in-) compatible graphics cards, see GEF3D List of Graphics Card. Most of all you need an OpenGL card with VBO extension.
GEF3D now depends on GEF 3.5 and is not backwards compatible. Since June 25 2009 (revision 168), you need Eclipse 3.5 to run GEF3D.
Note: Since GEF3D uses an SVN based repository, you probably want to install an Eclipse subversion client, e.g., Subclipse (which is also required for installing the sources from the project file set, see next section).
At this moment, GEF3D is not compatible with GEF 3.6, that is it will not work on Eclipse 3.6 (Helios). Besides, the UML Tools are missing in Eclipse 3.6, so the UML2 tools example will not work on 3.6 anyway.
There is no official version available yet, see GEF3D project plan. Currently you have to checkout the sources from the GEF3D code repository (a Subversion repository) and install a render engine separately.
Check Out Sources
The easiest way to get all the GEF3D sources is to simply import the team project set
This project set includes all necessary plugins and all examples as listed below. Download the psf file and then import it using the "Team Project Set" wizard (File / Import.. / Team / Team Project Set). (Screenshots and further explanation are provided at EclipseSource Blog, showing how to import the RAP project set).
Alternatively you can check out GEF3D's sources from
In order to test GEF3D, you'll need the following projects (please add org.eclipse to the name):
The following packages contain the examples:
- gef3d.examples.graph -- simple graph editor
- gef3d.examples.ecore -- 3d-fied version of the Ecore diagram editor (from the Ecore Tools)
- gef3d.examples.uml2 -- 3d-fied version of the UML2 diagram editor (from the UML2 Tools)
Optionally you can check out the test and documentation projects, however there are currently not much tests and documentation available (but you can use the ant script in doc in order to generate the JavaDoc). Test and documentation projects are not included in the project set.
Install a Renderer
Draw3D, the 3D version of Draw2D, needs a renderer module in order to produce any output. The renderer uses the extension point defined in org.eclipse.draw3d.graphics3d. Currently, only LWJGL is supported, that is you have to checkout
from the repository. This module only contains the Draw3D specific code, additionally you will need the LWJGL libraries. These libraries are available as an Eclipse plugin via the LWJGL update site at http://lwjgl.org/update. A description can be found at the FernUni Hagen GEF3D project site.
Note: GEF3D revision 438 (and later) requires LWJGL 2.2.1. If you have installed an elder version of LWJGL, you can use the update manager to get the latest version.
You can test GEF3D by opening some diagrams with GEF3D. In case of ecore or UML2 (class, use case, activity diagram) the 3D-fied versions can open the very same files as the original 2D versions, that is simply open any existing diagram (Open With) with a 3D editor. If you open an UML diagram with the multi-editor, other diagrams can be simply drag-and-dropped on the editor to be opened in the very same 3D scene.
As of revision 157 (June 7th 2009), the graph example comes with a wizard for creating graphs with a given number of nodes. Simply create a new example and choose GEF3D Examples / GEF3D Graph Example Model.
While adding more features to GEF3D, we try to keep the examples updated. Creating nodes or connections should work in most cases, although the location of newly created elements might be not at the position expected; the same is true for direct edit.
Note: The old extensions of the graph example (*.graphSample etc.) are not working anymore!
If you run an GMF-GEF3D application, e.g., the UML2-3D editor, you'll maybe have a problem with the "pergen space". That is, you will probably see this exception message:
This is the java.lang.OutOfMemoryError: PermGen space at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(Unknown Source)
In order to solve that problem, you'll have to increase the size of the "pergen space". This can be done with the VM argument "-XX:PerSize", e.g.,