<h2>Discovery site AMP software information</h2>

If you use the AMP download provided through the Modeling Discovery site, note that it includes software that is not
provided by Eclipse and is delivered through a third-party download site.
<h3>Why?</h3>
The LWJGL 3D libraries are not Eclipse IP approved and so we can't provide them from the Eclipse website. These
libraries are included in the installation because the AGF3D component which provides support for 3D visualization
depends on the
<a href="http://wiki.eclipse.org/GEF3D_Installation">Eclipse GEF3D</a>
project, which in turn depends on the
<a href="http://lwjgl.org/">LWJGL Java library</a>
. While LWJGL has been released under an Eclipse compatible (BSD) license, there are two concerns that prevent it from
meeting the Eclipse Foundation's strong IP approval process. First, there are some potential technical licensing
issues that make the status of some of the included files unclear. Second, the LWJGL project has not firmly established
the provenance (who wrote the code and when) of all of the code contributed.
<h3>Does that matter?</h3>
Only you or your organization can decide that, but it should only be a concern if you have a need to use only software
that meets the very high standards of Eclipse hosted software projects.
<h3>What should I do if I don't want the third party software?</h3>
You can simply install the Eclipse AMP components directly from our
<a href="http://www.eclipse.org/amp/installing/updates.php">Eclipse hosted update site</a>
. Select all of the main components but do not select any of the items from the "Agent Modeling Extensions" category.
Without the AGF 3D libraries you will not be able to view 3D visualizations of your models, but all other AMP features
should function normally.
