Text Size

Flagship Initiatives
This is a link to download the webpage as a PDF
Link to the website to contribute ideas, provide comments, and vote on ways to assist in NASA's Open Government plan.

This is a link for you to share this webpage with your friends.

NASA Open Source Software Development

Improve the Quality, Impact ,and Reuse of NASA Software through Open Source Development

opensource.arc.nasa.gov

this signifies a fact sheet with 'transparency.'
transparency |
this signifies a fact sheet with 'participation.'
participation |
This signifies a fact sheet with 'collaboration'.
collaboration


Open source development-which allows free access to software source code to allow anyone to make improvements-is revolutionizing the way software is created, improved, and used. The open source software movement is inherently transparent, participatory, and collaborative. Open source at NASA gives the public direct and ongoing access to NASA technology. Its adoption by NASA also helps lower the barrier to entry into space by enabling private industry to better make use of NASA investments. Although open source release has already provided numerous benefits to NASA and the public, the full benefits of open source can only be achieved when we establish the processes, policies, and corporate culture to favor open source development. This would shift our open source activities from its one-way direction of giving the public access to finalized software products, to allowing two-way collaboration as part of the development process. The benefits of allowing the public to assist in development of NASA software include increased software quality, accelerated software development, and a higher rate of technology transfer both to and from NASA.

NASA Vision Workbench
ti.arc.nasa.gov/project/ nasa-vision-workbench

3D Terrain Image 3D terrain model of the Apollo 15 site created with Vision Workbench

The NASA Vision Workbench is a general purpose image processing and computer vision library under development by the NASA Ames Intelligent Systems Division. Vision Workbench has been available as NASA open source software since 2006 and has been used to create interactive explorable panoramas (gigapan.org) and produce high-resolution two- and three-dimensional maps of the Moon for robotic exploration. Vision Workbench is currently in use at NASA, Carnegie Mellon University, Google, and by computer vision researchers worldwide. During 2010, Vision Workbench will be used as a test case for incorporating third-party (non-NASA) source code contributions.

NASA World Wind
worldwind.arc.nasa.gov

Screenshot of World Wind NASA World Wind is a 3D "virtual globe" that has been released open source

World Wind is an open source "virtual globe" that allows users to explore different planets in 3D. World Wind overlays NASA and USGS satellite imagery, aerial photography, topographic maps, and publicly available GIS data on 3D models of the Earth and other planets. Many people using World Wind are adding their own data or expanding the functionality by using "add-ons" and making them available through various sources, such as World Wind Central (worldwindcentral.com). World Wind is publicly available via the SourceForge open source hosting site.

Evolving Policy
  • 2003 – Creation of the NASA Open Source Agreement (NOSA)
  • 2008 – Continuous release authority
  • 2009 – Contribution License Agreement (for individuals and companies) for NOSA projects
  • 2010 – Source Forge modified Terms of Service for NOSA software distribution

Overview

The rapid growth of the Internet has changed how we use computers. For software developers this has led to new forms of collaboration and code reuse. Perhaps the most exciting development has been the growth of open source software. Open source involves the joint production, release, and distribution of software that is freely and widely available. The number of open source projects and amount of open source code is growing at an exponential rate and in some cases, allows work created for one project to be applied to another.

NASA has used open source to address project and mission needs, to accelerate software development, and to maximize public awareness and impact of our research. The NASA Open Source Agreement (NOSA) is an Open Source Initiative (OSI) approved license to allow public release of NASA-funded software. Since 2003, we have released more than 60 software projects under the NOSA. Part of NASA's charter (Space Act of 1958) is to "provide for the widest practical and appropriate dissemination of information concerning its activities and the results thereof." Open source directly addresses this by facilitating rapid and wide dissemination of software with minimal overhead and cost.

To date, NASA's use of open source has focused on two types of software release:

  1. Point release, which is infrequent release of completed software (subject to NPR 2210.1A).
  2. Continuous release, which is on-going, frequent release of software under development within well-defined bounds and periodic review (subject to NPR 2210.1A).

Recently, however, we have created the NASA Contributor License Agreement (CLA). The CLA allows code from third-parties to be incorporated for future release under NOSA. Moreover, we are starting to distribute released code via popular software forums (e.g., SourceForge), which makes NASA software more readily accessible to open-source developers. Finally, we are developing the capability to host source-code on NASA and public servers for software under development.

Although NASA and the public have already derived numerous benefits from open source release, the full benefits of open source can only be achieved if we establish the processes, policies, and corporate culture for open source development. In short, this means providing a path for non-NASA developers to contribute to on-going NASA projects in real-time. With recent innovations, such as continuous release and the CLA, NASA is ready to adopt policies and the processes needed to support such development.

How This Fits into Open Government

Open source development makes NASA more transparent by enabling the public to better understand what types of software NASA needs to fulfill its mission. The public can directly see how NASA software is designed, implemented, and improved. Open source development makes NASA more participatory by allowing the public to assist in NASA software development. Students, scientists, and programmers can directly contribute their expertise, skills, and work to NASA projects and missions. Open source development makes NASA more collaborative by providing an efficient and effective means to transfer software to, and from, NASA. This results in higher quality software and increased reuse of software for other purposes.

Open Government Goals

  • Three Months
    • Obtain approval to use multiple public, open source development sites (e.g., SourceForge and GitHub) for hosting NASA open source software releases.
      v1.5 Status Update: NASA has created processes for releasing Open Source projects on both Sourceforge and GitHub.
    • Establish tools to facilitate NASA open source release process (e.g., database of third-party libraries cleared for use by NASA software).
      v1.5 Status Update: This goal is currently in progress.
  • Six Months
    • Establish opensource.nasa.gov Web site as a "one-stop shop" for NASA open source (e.g., policies, guidelines, process documents, project links), which will serve NASA developers, NASA software release authorities, and the public.
    • Implement all-electronic processes for handling third-party contributions (including electronic signature of contributor license agreement).
  • One Year
    • Implement streamlined review process for NASA open source release (both point and continuous), which reduces approval time to two to four weeks.
  • Two Years
    • Establish processes for NASA software projects to be open source from inception, including the use of community development and public source code hosting.

Useful Links

  1. The NASA Open Source Agreement (NOSA)
  2. Ames Research Center Open Source Agreement
  3. Goddard Space Flight Center Open Source Agreement
  4. NASA COSMIC Collection
  5. Open Source Initiative