VISTAS Architecture

An Overview

VISTAS (VISualization of Terrestrial Aquatic Systems) aims to provide a dynamic and loosely coupled solution for combining disparate data with 2D and 3D visualization resulting in a comprehensive visual analytics tool, usable by end users via a flexible, graphical user interface, and by software developers via an Application Programming Interface (API). The architecture has two main components: the VISTAS Core (Dynamic Library), and the Core API and User Interface.


The VISTAS Core contains the bulk of VISTAS’ functionality. It handles visualization and data plugins, combines data and visualizations in a flexible manner (e.g., data from multiple plugins and sources can be used with one or more visualization plugins), provides a 2D renderer, and an interface to a 3D graphics rendering engine. The VISTAS Core compiles as a dynamic library, which can be used with the VISTAS UI as a stand-alone, desktop visual analytics application, or embedded in existing 3rd party software, such as the GIS-based simulation application ENVISION.

User Interface

The standalone application and VISTAS UI provide a flexible method for users to visualize data. The user can customize the interface; adding or removing views, graphs, statistics, options, and controls. They can also control camera movement, and create animations such as fly-throughs and export these animations as movie files which can be distributed or included in presentations.


VISTAS provides two plugin APIs: for data interpretation and visualization. Data interpreter plugins read data from a source (a file on disk, a database connection, or data in memory) in its native format and expose those data to VISTAS in a common representation. VISTAS provides the data to the visualization plugins, which generate 2D and 3D visualizations via the 2D Renderer and 3D Rendering Interface components. Plugins are compiled as dynamic libraries and loaded at run-time, making it easy for end users to add additional data formats and visualizations to VISTAS and for programmer-users to create and use their own plugins.