One of NASA’s primary objectives has always been to share its research and discoveries with the world. NASA’s success as an agency depends not only on the outcome of our missions, but more importantly, on how effectively we can engage the public in our mission and enable others to leverage the agencies discoveries and scientific advances to improve the standard of living for the average person and encourage economic growth. This is why Open Source Development is a cornerstone of the NASA Open Government Plan.
NASA was an early adopter of open source and has been using and releasing code for years in order to address project and mission needs, accelerate software development and maximize public awareness and impact of research. However, there was never a central repository for the code; someone looking for software needed to visit desperate field center-specific websites, many of which did not offer version control. To unify the agencies open source activities under one umbrella, the NASA Open Government team launched code.NASA one month ago. The site is an easy to use directory of open source software released by the agency and will serve the purpose of publicly surfacing existing projects, providing a forum for discussing projects and processes, and guiding internal and external groups in open development, release, and contribution.
Code.NASA has generated a lot of media attention since its launch with over 76,000 visitors and 140,000 page views, dozens of news articles, top-rated stories on Reddit and Slashdot, tens of thousands of hits to the site, and great feedback on Twitter, Facebook, and Google+. It’s clear that people are genuinely excited about the opportunity to contribute to the space program through software development. Still, there are incredible challenges in fulfilling our open source goals. Since 2003, the agency has released more than 60 software projects under the NOSA [NASA Open Source Agreement], but many of these packages are not hosted on a public repository and are virtually inaccessible to the public. As an agency, we are just now starting to release software under other (more popular) licenses and truly embrace the potential of open source software development.
We’ve been continually adding new projects to the site since it’s launch and now feature 29 projects from around the agency, ranging from frameworks for satellite flight software to solar physics libraries to SSH-based load balancing. To be listed on the site, the software must not only be released under an open source license, but also make the code available on a public repository. We’ve created the NASA github account to host any code that doesn’t have a public home elsewhere. We are adding new projects daily and encourage you to help us uncover more. The latest projects were sent to us by Chris Mattman at NASA Jet Propulsion Laboratory and include:
- Apache OODT – NASA’s first project to be stewarded by the open source Apache Software Foundation.
- Earth Science Datacasting – a RSS publish-subscribe method for delivering Earth Science data
- Data Productivity Toolkit – a collection of linux command-line tools designed to facilitate the analysis of text-based data sets
- Interplanetary Overlay Network (ION) Software Distribution (DTN) – an implementation of Delay-Tolerant Networking (DTN) architecture
NASA’s Open Government Plan lays out an ambitious vision for the future of open source development at NASA. Code.NASA is a step in the right direction and we continue to work to establish the processes, policies, and culture needed so that non-NASA developers will be able to contribute to on-going NASA projects in real-time. We encourage you to visit code.nasa.gov and check out our code. Fork it, clone it, break it, or improve it. If you do something useful with it, let us know by emailing email@example.com with your ideas on what software you’d like to see on the site or success stories about how you have used NASA code.