USNavalResearchLaboratory / sdt

Scripted Display Tool (SDT), a 3D network visualization tool
https://www.nrl.navy.mil/itd/ncs/products/sdt
Other
13 stars 4 forks source link
network-visualization visualization-tools

Scripted Display Tool(s)

This project contains source code and build scripts for the "Scripted Display Tool" (both sdt 2d & sdt3d applications). The applications were developed by the Protocol Engineering Advanced Networking (PROTEAN) Research Group of the Naval Research Laboratory (NRL).

The intent of these applications is to provide tools that support real-time visualization of mobile communication network field tests, emulations, or even simulations. The applications may also prove suitable for other purposes.

SDT3D

sdt3d is based upon the NASA WorldWind Java (WWJ) SDK available from:

http://worldwind.arc.nasa.gov/java/index.html

and joglutils available at:

https://kenai.com/projects/jogl/sources/jogl-utils-git

Details of modifications required to these distributions are available in the docs directory.

sdt3d also relies on the following jar files. See the getDependencies file for jar locations for manual download.

apache: commons-io-2.6.jar commons-lang3-3.10.jar commons-text-1.8.jar

mozilla: juniversalchardet-1.0.3.jar

SDT (2D)

sdt is written in C++ using the freely-available, cross-platform wxWindows library for graphical user interface applications.

BUILDING

See the sdt documentation in the docs directory for the latest build instructions for both sdt and sdt3d or the README-SDT3D.txt and README-SDT.txt files located in the src distribution.

Release 2.3

  1. Now supports loading openFlight models.

  2. Cone rendering improved.

  3. New log debug dialog available on file menu. Options to turn debug loggin off, log to console, or log to file. Option to change default debug log file name.

  4. New node offset attribute. Offset positions a node's sprite at a cartesian x,y offset or elevation z.

node offset <x,y,z>

Offset is also available in sprite.xml

  1. Parsing of sprite.xml files improved. (Attributes no longer required, only attributes in file are applied)

  2. Kml model sizing and symbol sizing improved.

  3. 3d model symbol sizing improved.

  4. Hybrid model sizing fixed.

    length dimension set: model is fixed at length size regardless of view

    size dimension set: model is sized at size in pixels and uses size as "real-world" length

    length & size set: "hybrid model" model is sized at size in pixel but uses length as the "real-world" model length

  5. Link end bug fix.

  6. Command to set name of any model-jar file. models in jar file will be autodetected.

  7. Code has been refactored.

Release 2.2

  1. Sdt version updated to 2.2 as the performance enhancements are significant.

  2. Multiple input flows (including multiple TCP clients) can now be successfully inteleaved.

    A gentleman's agreement to not clobber link state between two input feeds should be enforced.

  3. Command logging

    logDebugOutput on,

    If no fileName provided output will go to sdtout.

    Toggling logDebugOutput off from the file menu will disable any file logging.

    Toggling logDebugOutput on from the file menu will enable logging to sdtout as does the command line argument with no filename.

    If exists, will be incremented, e.g. .n

    Care should be taken when resetting sdt to clean up any obsolete debug files established in the sdt settings or configuration files.

    If no path provided, will be colocated with the sdt3d app.

    The "wait" command interval is the delta between key value command pairs, irregardless of thread. The "wait" command is not logged until the interval between commands is greater than 100 milliseconds.

    "Wait" commands are first logged when the first input command is received by any thread. Depending on when scenario events are initially logged, it may be necessary to remove long wait intervals logged before the scenario began running.

  4. “Hard” and “soft" reset menu option.

    A “soft" reset

    will disable debug logging

    remove user defined layers

    remove all nodes, regions, tiles, linkLables, kml files, and elevation tiles

    reload any configuration file.

    A "hard" reset will perform a soft reset and:

    shutdown any udp/tcp sockets

    stop reading any input file

    reset system state (offlineMode off, elevationData on, stereoMode off, background color, uncollapse links, unfollow any nodes, disable node focus, restart the view controller, and reset to basicOrbitVies)

    reload the any user preferences file

    Note the distinction between the user perferences file (sdt.settings generally) and the user configuration. Any settings that should be applied only during a hard reset should be in the sdt.settings file while "reset" like commands should be in the user configuration file.

  5. The "remove user defined layers" menu option will now clear all renderables from all user defined layers (useful in the event of dangling links or markers).

  6. Performance efficiencies:

    link line positions will now only be recalculated when a node position or link attribute changes.

    link line positions will only be recalculated for displayed links.

    the node render function (called during each rendering pass) will now only render visibible nodes that have had a node attribute change or a link attribute change.

    wwj redraw bug fixed. Redraw is now done only at 100 ms POLL_INTERVAL

  7. Sdt node and link object attribute changes will be applied immediately (no position update requried).

  8. Lines can now be stippled.

    line ,,,,

    Stipple Factor: stipple pixle value. use 0 for no stipple. Default 0

    Stipple Pattern: Numeric or hex, e.g. 0xABAB or 43947. Default 0xAAAA

  9. Gazette is disabled by default.

  10. Compass and worldwind view controls can now be toggled on and off by layer checkbox and layer command, e.g. layer "Worldwind::Compass,off"

  11. Tcp connection via menu item no longer required confirmation of success.

  12. New eclipse formatter included in distribution. All classes reformatted to new format.

  13. Misc bug fixes:

    Marker heading bug fixed.

    Link initial hangle changed in support of many links. Over threshold, links limited to 5 degrees aroudn radius.

    User defined directional links bug fixed.

    linkId hashMap now TreeMap

  14. User defined links distinguished from sdt layers. User defined checkboxes added.

  15. TODO:

    complete implementation of separation of user defined layers and sdt layers (e.g. removing user defined layers removes node and links from sdt layers) Other bugs. Currently only user defined links are distinct from sdt link layer. Do we need to support other objects likewise? E.g. nodes, symbols etc.

    Occasional link flicker problem

    create new distributions

    test out multi-frame support

    checkbox tree improvements

    true "sdt player"

    multi-color line stipple

    update documentation

    add ability to set log file name from gui.

Updates in Release 2.0 include:

kml models can be assigned to sprites

kml models can be loaded and positioned independently of sprites (e.g. buildings/cities)

symbol cone - defines the new cone symbol

symbol cylinder - defines the new cylinder symbol

orientation can be set for a node (pitch, yaw[a|r], roll)

pos <lat,lon,[alt],[g|c],[msl|agl] - objects can be positioned at geodesic and cartesian coordinates and at MSL or AGL

origin - geodesic coordinate from which to offset cartesian coordinates

symbol sphere,x,x,300s,300s - new "scaleable" fixed size symbols.

symbols can be oriented. Symbol orientation can be relative to a node's orientation or absolute.

symbol <symbolType|none>[,,[ [,<x_radius[s]>[,<y_radius[s]>[,[, [<orientation[a|r]>,[]]]]]]]] - expanded symbol attribute list

path - sets directory prefix to search for files

instance - overrides the default pipe name of "sdt"

region - creates a region object

listen [udp,|tcp,][off|/] - directs sdt3d to listen to the given udp port, multicast address, or tcp port

link ,[,<linkID|all>[,<dir,all>]] - multiple directed or bidirectional links are now supported

link color thickness and opacity can be set

links can be assigned a linkId

multiple links can be collapsed from the view menu

colors can be specified in any rgb or hex value

delete <objectType|all>,<objectName|all>

clear <objectType|all>

listen [udp|tcp],[off|/] - tcp support

follow - the view can be told to "follow" specified nodes

lookat - sets the camera position

kml - limited kml standard supported (tour)

geoTiff - image or elevation geoTIFF overlay

tile - overlays a specified image over terrain

popup - popup window attributes

user defined layers now supported

nodes, symbols, layers, links, regions, and tiles can be assigned to user defined layers

user defined layers can be nested

views can be bookmarked and saved to disk for subsequent reload

flat earth view support

background color can be changed (useful for non-geodesic views)

user preferences file available (e.g. path, load default icons, set view)

user Configuration File loaded upon system reset

elevation model (terrain) can be disabled

Open Street Map layer available

Stereoscopic viewing mode available

See the documentation for the full command set.

Commands not yet supported are simply ignored.