NASA Logo, National Aeronautics and Space Administration

Open Source Projects


BigView allows for interactive panning and zooming of images of arbitrary size on desktop PCs running linux. Additionally, it can work in a multi-screen environment where multiple PCs cooperate to view a single large image. Using this software, one can ...
+ View BigView

CFD Utilities

The CFD Utility Software Library consists of nearly 30 libraries of Fortran 90 and 77 subroutines and almost 100 applications built on those libraries. Many of the utilities apply to multiblock structured grids and flow solutions, but numerous other reusable modules in such categories as interpolation, optimization, quadrature, rapid searching, and character manipulation appear from several decades of software development in the Aerodynamics Division and Space Technology Division at NASA Ames Research Center.
+ View CFD Utilities


CODE is a software framework for control and observation in distributed environments. The basic functionality of the framework allows a user to observe a distributed set of resources, services, and applications. A user can also use the framework to manage ...
+ View CODE

E-Standards for Mass Properties Engineering

The purpose of this Opensource forum is to promote the development of a JAVA based Application Programming Interface for the field of Mass Properties Engineering. This project started as a NASA LaRC Innovation Institute project in 2007 to promote the ...
+ View E-Standards for Mass Properties Engineering


The concept of ECHO has been many years in the making. The initial charter and Plan development began in June of 1998 and was called the Independent Information Management System (IIMS). The goal was to provide a tool that would ...
+ View ECHO

Geometry Manipulation Protocol (GMP)

The Geometry Manipulation Protocol (GMP) is a library which serializes datatypes between XML and ANSI C data structures to support CFD applications. This library currently provides a description of geometric configurations, general moving-body scenarios (prescribed and/or 6-DOF), and control surface ...
+ View Geometry Manipulation Protocol (GMP)


Growler is a C++-based distributed object and event architecture. It is written in C++, and supports serialization of C++ objects as part of its Remote Method Invocation, Event Channels, and in its Interface Definition Language. Its primary application has been ...
+ View Growler

IND: Creation and Manipulation of Decision Trees from Data

IND is applicable to most data sets consisting of independent instances, each described by a fixed length vector of attribute values. An attribute value may be a number, one of a set of attribute specific symbols, or omitted. One of ...
+ View IND: Creation and Manipulation of Decision Trees from Data

IPG Execution Service

The Execution Service allows users to submit, monitor, and cancel complex jobs. Each job consists of a set of tasks that perform actions such as executing applications and managing data. Each task is executed based on a starting condition that ...
+ View IPG Execution Service


JavaGenes is a fairly general purpose evolutionary software system written in Java. It implements several versions of the genetic algorithm, simulated annealing, stochastic hill climbing and other search techniques. JavaGenes has been used to evolve molecules, atomic force field parameters, ...
+ View JavaGenes


Libibvpp is a C++ wrapper around libibverbs, which is part of the OpenFabrics software suite ( For the most part, Libibvpp provides a minimalistic C++ wrapper interface to libibverbs, while providing complete resource management through the use of C++ TR1 ...
+ View Libibvpp


Livingstone2 is a reusable artificial intelligence (AI) software system designed to assist spacecraft, life support systems, chemical plants or other complex systems in operating robustly with minimal human supervision, even in the face of hardware failures or unexpected events. Livingstone2 ...
+ View Livingstone2


Mariana is an algorithm that efficiently optimizes the hyperparameters for Support Vector Machines for regression and classification. It currently uses Simulated Annealing for optimization but can be extended to use a variety of stochastic optimization techniques including, Markov Chain Monte ...
+ View Mariana


Mesh is a secure, lightweight grid middleware that is based on the addition of a single sign-on capability to the built-in public key authentication mechanism of SSH using system call interposition. Each Mesh installation is dedicated to serving a particular ...
+ View Mesh

Mission Simulation ToolKit

The Mission Simulation Toolkit (MST) is a flexible software system for autonomy research. The MST was developed as part of the Mission Simulation Facility (MSF) project, which was started in 2001 to facilitate the development of autonomous planetary robotic missions. ...
+ View Mission Simulation ToolKit

The Multiple Kernel Anomaly Detection - MKAD

The Multiple Kernel Anomaly Detection (MKAD) algorithm is designed for anomaly detection over a set of files. It combines multiple kernels into a single optimization function using the One Class Support Vector Machine (OCSVM) framework.
+ View MKAD


Mutil is a set of standard utilities that employ multiple types of parallelism and other optimizations to achieve maximum performance on modern file systems. Multi-threading is used to ensure that nodes are kept as busy as possible. Double buffering allows individual operations within a single task to be overlapped using asynchronous I/O. Multi-node cooperation allows different nodes to take part in the same task. Split file processing allows multiple threads to operate concurrently on the same file. Finally, additional optimizations such as buffer management help eliminate other bottlenecks that can reduce performance. Mutil currently includes drop-in replacements for cp and md5sum from GNU coreutils, which have achieved 10/30x rates on one/many nodes.
+ View Multi


NodeMon is a resource utilization monitor tailored to the Altix architecture, but is applicable to any Linux system or cluster. It allows distributed resource monitoring via the Growler software infrastructure. It is modular, with existing modules for monitoring of cpu, ...
+ View NodeMon


Pour is a framework for Periodic, On-Demand, and User-Specified Information Reconciliation that accepts periodic information updates, collects information on-demand as needed, and accepts user-specified information while presenting a single unified view to the user. The primary functionality of Pour is ...
+ View Pour


QuIP (QUick Image Processing) is an interpreter for image processing, graphics, psychophysical experimentation and general scientific computing.
+ View QUIP


The ROBUS-2 Protocol Processor (RPP) is a custom-designed hardware component implementing the functionality of the ROBUS-2 fault-tolerant communication system. The Reliable Optical Bus (ROBUS) is the core communication system of the Scalable Processor-Independent Design for Enhanced Reliability (SPIDER), a general-purpose ...
+ View ROBUS-2


Save is a lightweight framework for creating high availability systems. Save manages IP addresses shared between multiple servers with the same function and monitors the health of those servers to determine which should be actively servicing requests at any given time. Save has additional features to facilitate the administration of high availability systems. Synchronization mechanisms allow configuration files to be kept consistent between systems as well as allowing commands to be executed across all servers of a particular type. Archival mechanisms provide automatic version control of configuration files to aid in recovery in case of errant configuration. Validation mechanisms allow configuration files to be automatically checked for correctness before they are installed on all peer servers.
+ View Save


sequenceMiner was developed to address the problem of detecting and describing anomalies in large sets of high-dimensional symbol sequences. sequenceMiner works by performing unsupervised clustering (grouping) of sequences using the normalized longest common subsequence (LCS) as a similarity measure, followed ...
+ View sequenceMiner


Shift is a lightweight framework for high performance local and remote file transfers that provides resiliency across a wide variety of failure scenarios through various techniques. These include end-to-end integrity via cryptographic hashes, throttling of transfers to prevent resource exhaustion, balancing transfers across resources based on load and availability, and parallelization of transfers across multiple source and destination hosts for increased redundancy and performance.
+ View Shift

SLAB Spatial Audio Renderer

SLAB is a software-based, real-time virtual acoustic environment rendering system being developed as a tool for the study of spatial hearing. SLAB is designed to work in the personal computer environment to take advantage of the low-cost PC platform while ...
+ View SLAB Spatial Audio Renderer


Surfer is an extensible framework designed to select and rank grid resources where a resource is defined to be anything that may need selecting such as compute resources, storage resources, data resources, etc. The user specifies the set of resource ...
+ View Surfer


Swim is a Software Information Metacatalog that gathers detailed information about the software components and packages installed on each grid resource. Information is currently gathered for Executable and Linking Format (ELF) executables and shared libraries, Java classes, shell scripts, and ...
+ View Swim

World Wind

World Wind allows any user to zoom from satellite altitude into any place on Earth, leveraging high resolution LandSat imagery and SRTM elevation data to experience Earth in visually rich 3D, just as if they were really there. Particular focus ...
+ View World Wind

First Gov logo
NASA Logo -