Over the years, NASA has famously invented a number of technologies that have since entered into many of our everyday lives. For instance, NASA had a hand in the invention of insulin pumps, scratch-resistant lenses and memory foam(though not, despite what you may have heard, in the invention of Tang, Velcro or Teflon; it just helped make them popular). We may all soon benefit again from NASA brainpower thanks to the recent release of lots and lots of software code developed by and for the space agency.
Last week, NASA’s Technology Transfer Program published its Software Catalog, which documents code for over 1,000 projects which is being made available to the public. The catalog documents what the code does, what (if any) restrictions are placed on it (some code is released to the general public, some for use by U.S. citizens only, some only for use on behalf of the government) and how to get it. In most cases, you can’t just download this code; you have to request access to it explaining what you plan to use it for.
Of course, you’re probably thinking, “Cool, but this doesn’t really affect me, since I’m not designing a spacecraft to go into orbit or to the moon.” While it’s true that lots of this code has to do with pretty NASA-y type of stuff like aeronautics, life support systems and propulsion (e.g. Advanced Ducted Propfan Analysis Code, which “solves tightly coupled internal/external flows through future-concept short-duct turbofan engines”) , there’s also quite a bit of other code that may be of interest to your business or for personal use.
I took a spin through the catalog, which is currently only available in PDF form but will reportedly be made available via a searchable database and online repository, and identified some of the more mundane code that may actually be of use or interest.
Use these NASA-developed tools to help with the day-to-day tasks of running your company:
Electronic Timecard System – “The Electronic Timecard System can be utilized by any business or organization wishing to streamline its payroll department procedures. The automated system minimizes the consumption of paper and eliminates the need for weekly pick-up and delivery of time sheets. The tool also simplifies the daily recording of time worked by employees, and it allows employees to “sign” their “timecards” electronically at the end of each week. Supervisors can review an employee’s electronic timecards daily and sign them electronically.”
Goal Performance Evaluation System – “The Goal Performance Evaluation System (GPES) is an innovative interactive software application that implements, validates, and evaluates an organization’s performance by the achievements of its employees. The tool has been used for strategic planning, employee performance management, and center-wide communication. The system is Web-based and uses a relational database to host information.
Can I Buy – “The Can I Buy tool automates processes used to request and approve procurements. The software allows registered users to create, submit, un-submit, and delete purchase requests. Different capabilities are provided depending on a person’s ‘role.’ Privileged roles include branch head, assistant branch head, secretary, resource analyst, credit card specialist, and tool administrator. Email is the medium of communication in the system.”
Software developers and system administrators may find some useful tools in the catalog such as:
Ballast: Balancing Load Across Systems – “Ballast is a tool for balancing user load across Secure Shell Handler (SSH) servers. The system includes a load-balancing client, a lightweight data server, scripts for collecting system load, and scripts for analyzing user behavior. Because Ballast is invoked as part of the SSH login process, it has access to user names. This capability, which is not available in traditional approaches, enables Ballast to perform user-specific load balancing. In addition, Ballast is easy to install, induces near-zero overhead, and has fault-tolerant features in its architectures that will eliminate single points of failure.”
Multi-threaded Copy Program – “MCP is a high-performance file copy utility that achieves performance gains through parallelization. Multiple files and parts of single files are processed in parallel using multiple threads on multiple processors. The program employs the OpenMP and MPI programming models.”
NASA World Wind Java (WWJ) Software Development Kit (SDK) and Web Mapping Services – “NASA World Wind is an intuitive software application supporting the interactive exploration of a variety of data presented within a geospatial context. The technology offers a 3D graphics user experience with seamless, integrated access to a variety of online data sources via open-standards protocols.”
NASA has developed some tools which may not be particularly useful to most of us, but which still sound like they’d be fun to tinker around with, such as:
Spacecraft Docking Simulation – “This simulation is a simplified version of the rendezvous and docking scenario performed by Space Shuttle astronauts docking at the International Space Station (ISS).”
NASA Forecast Model Web – “NFMW reads weather forecast models outputs; subsets the data to the region of interest; interpolates the data to the specified size; generates a visualization of the data using colors, contour lines, or arrows; and sends the visualization to the client.”
Station Spacewalk Game App – “This video game features simulations of Extravehicular Activities (EVAs) conducted by NASA astronauts on missions to the International Space Station.”
While none of the offerings in the catalog may have the impact of, say, cochlear implants, it seems like there are still useful nuggets here. Or maybe you just want to contribute back to NASA by helping them out with their code? Either way, take a look and have fun!