This section contains several example projects users can import and run with STEM. STEM is designed to allow collaboration
and sharing of work by simply importing and exporting projects from your workspace. For information on how to import a project
please see: http://wiki.eclipse.org/Importing_and_Exporting_Projects
for more information on each demo please see:  http://wiki.eclipse.org/Sample_Projects_available_for_Download


The evacuation demo requires a STEM built from July 15 2011, or later

The Automated Experiment Example requires a STEM build from Sept 2, 2010 or later

The Multi-population Example requires a STEM build from Aug 31, 2010 or later 

The Square Lattice Demo available here Require STEM version dated July 1, 2010 or later

The SuperContinentExample project requires GlobalGeography to exist in the STEM workspace before it any of the examples can run.

Some of the example projects you can download are very large as they contain continents or even groups of continents. Before you 
try to run any of these large scenarios you must make sure you allocate enough system memory for STEM. If you don't do this the 
application may hang or crash with a "Heap Space" error.

To allocate enough memory in Windows, create a shortcut for launching STEM. You may place this anywhere (e.g., on your desktop or on the quicklaunch
bar). 

Right click on the shortcut.
Select "Properties"
You should see a field in the Properties Dialogue labeled Target:
to the right in the text field you will see something like
C:\stem_builds\stem\STEM.exe -vmargs -Xms812M -Xmx812M

To launch STEM with more memory you must add "virtual machine arguments" to the target line.
For example, Target: 
C:\stem_builds\stem\STEM.exe -vmargs -Xms896M -Xmx896M
Should work for the demo projects available.

On MAC OS X, using the finder, navigate to where the STEM application is located, right click and select "Show Package Content".
Navigate to Contents->MacOS and open the STEM.ini file in an editor. Change the -Xms and the -Xmx lines to increase the
memory, e.g. -Xms896M -Xmx 896M or more depending on how much memory is available.


