#summary CORE and SDT3D info

= CORE and SDT3D =

SDT3D is a three-dimensional virtual globe GUI developed by NRL, based on NASA's [http://worldwind.arc.nasa.gov/java/ WorldWind Java SDK]. The primary SDT3D website is:
 * http://cs.itd.nrl.navy.mil/work/sdt/index.php

CORE can export its nodes and links so they appear in the 3D space. The Canvas Size and Scale dialog governs the origin latitude/longitude/altitude for the 2D canvas. Although the 2D canvas has a fixed altitude, EMANE-based mobility script could be used to move nodes around in three dimensions.

= SDT3D Ubuntu 12.04 install =

Notes on installing SDT3D under Ubuntu 12.04 amd64.

Successful build/run environment:
 # Ubuntu 12.04 x86_64 updated 2012-10-12
 # OpenJDK 1.7 (tested 7u7-2.3.2a) *Note:* Oracle Java 1.6/1.7 and OpenJDK 1.6 will not work when behind a proxy, but segfault
 # sdt-svnsnap.tgz (dated 2012-03-29) from http://downloads.pf.itd.nrl.navy.mil/sdt/nightly_snapshots/sdt-svnsnap.tgz
 # protolib-svnsnap.tgz (dated 2012-10-03) from http://downloads.pf.itd.nrl.navy.mil/protolib/nightly_snapshots/protolib-svnsnap.tgz
 # worldwind.zip and joglutils.zip from PROTEAN Forge website (login required); go to [https://pf.itd.nrl.navy.mil/sf/frs/do/listReleases/projects.proteantools/frs.sdt_3d PROTEAN Forge], click the _Protean Tools_ project, then _File Releases_, then _sdt3d_, and the _1.2_ release directory. If you do not have a PROTEAN Forge login, you can also find these files on the [http://worldwind.arc.nasa.gov/java/ World Wind Java SDK] site. 
 # 64-bit jar files from the NASA World Wind site as shown in their README.txt: [http://worldwind.arc.nasa.gov/java/jogl/webstart/jogl-natives-linux-amd64.jar jogl-natives-linux-amd64.jar] and [http://worldwind.arc.nasa.gov/java/jogl/webstart/gluegen-rt-natives-linux-amd64.jar gluegen-rt-natives-linux-amd64.jar]


Steps for build and run:

 * Install some pre-requisites:
{{{
sudo apt-get install openjdk-7-jdk g++
}}}
 * unpack SDT snapshot tarball; make a build/downloads directory
{{{
tar xzf sdt-svnsnap.tgz
cd sdt/makefiles
mkdir -p build/download
}}}
 * put a protolib.tgz, worldwind.zip, and joglutils.zip in this build/downloads directory; symlink works
{{{
cd build/download
# this assumes files are downloaded to ~
ln -s ~/worldwind.zip .
ln -s ~/joglutils.zip .
ln -s ~/protolib-svnsnap.tgz ./protolib.tgz
}}}
 * set JAVA_HOME environment variable; also ensure that javac, java, and jar point to the OpenJDK 1.7 install
{{{
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/
# this should point to the above JAVA_HOME version
update-alternatives --display java
update-alternatives --display javac
update-alternatives --display jar
# if you need to change the above, use the following for each:
# sudo update-alternatives --config java
}}}
 * build SDT3D
{{{
make -f Makefile.linux sdt3d
}}}
 * if something goes wrong with the above build step, you'll need to recover like this:
{{{
# assume we're in sdt/makefiles/
rm -rf build/bin build/build build/sdt3d
}}}
 * a successful build results in a file *sdt3d.zip*; unzip this somewhere to continue
{{{
cd ~
unzip sdt/makefiles/sdt3d.zip
}}}
 * the shared object libraries found in the sdt3d/lib/ directory need to be updated to their 64-bit counterparts.
{{{
cd ~/sdt3d/lib
jar xvf ~/sw/jogl-natives-linux-amd64.jar 
jar xvf ~/sw/gluegen-rt-natives-linux-amd64.jar 
}}}
 * fix the sdt3d.sh script to work properly, using the following:
{{{
#!/bin/sh
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/
THISDIR=`dirname $0`
export LD_LIBRARY_PATH=${THISDIR}/lib
java -jar -Dsun.java2d.noddraw=true -Xmx512m ${THISDIR}/jars/sdt3d.jar
}}}
 * create a `~/sdtConfigFile.txt` for SDT3D to automatically listen on port 5000 for messages from CORE:
{{{
echo listen 5000 > ~/sdtConfigFile.txt
}}}
 * now you should be ready to run SDT3D. It helps to first have an Internet connection (no proxy) to populate the map cache. Also helpful if you use the proprietary NVIDIA drivers (`sudo apt-get install nvidia-current`) or ATI drivers
{{{
cd ~/sdt3d
./sdt3d.sh
}}}
 * you can launch SDT3D from within CORE by choosing _View_ > _3D GUI..._. By default, CORE looks for a SDT3D launch script in `/usr/local/bin/sdt3d.sh`, which may look like the following. In this case, the home directory is used in order to use the `sdtConfigFile.txt` and `~/var/cache/WorldWindData` directories. Here the SDT3D folder has been moved to `/opt/sdt`.
{{{
#!/bin/sh
cd /home/$USER
/opt/sdt/sdt3d.sh
}}}
 * you can copy the WorldWind map cache between systems (helpful if you do not always have an Internet connection), look in `~/var/cache/WorldWindData`