In this interview, we spoke with Patrick Hogan about open source at NASA. Patrick has been managing NASA open source projects since 2002, incubating competitive technologies to deliver scientific content. The goal has been to engineer open source solutions that leverage open data standards for sustainable technologies that can be extended in both open and proprietary ways. Several successful projects have come out of this program, including a virtual scanning electron microscope, software that allows the blind to aurally visualize mathematical equations, and the very successful NASA World Wind, a fully navigable 3D geospatial data visualization platform.
In this interview, Patrick talks about:
- The NASA World Wind open-source project
- Preventing a strong fork
- Spec’ing features on an open-source project
- World Wind extensibility, even for non-programmers
- Not everything the government writes is open-source and/or public domain
- You add value on open source, not in open source
Scott Swigart: Hi, Patrick. Thanks for taking the time to chat. You head up World Wind, which is an open source NASA project. Can you tell us about World Wind?
Patrick: NASA World Wind began with a program called NASA Learning Technologies, and was purposed to get NASA content into the classroom. NASA has lots of data, but we needed continuous dynamic access to deliver that information in a manner that was video-game-like. So World Wind began as a skunk works project to build this 3D geospatial visualization technology. And that’s where World Wind came from — out of NASA Learning Technologies.
It was successful enough that NASA independently funded it for about a year. Following that, the Department of Energy has gotten behind development of this project with a cross-platform approach, so now we have World Wind Java.
Scott: Talk a little bit about how the community integrates with it. Do you find the value of open source to the project to be that people can look at the source code, learn from it, and better utilize it, or do you get a significant amount of contributions from the external community at large?
Patrick: World Wind Central grew out of an IRC gathering of hobbyists who wanted to participate with the NASA World Wind effort. That interest evolved into what you see today at www.WorldWindCentral.com. They formally call themselves the Free Earth Foundation, but World Wind Central is their website.
Together they have made significant contributions to World Wind. These have improved World Wind’s ability to deliver pixels and greatly expanded its functionality. If you visit that website and look at the full add-on list, you’ll see hundreds of additional functionalities.
Scott: Does this run like a typical open source project where proposed changes are posted to a mailing list, they get scrutinized, and people post feedback on them?
Patrick: Right. The code is on SourceForge, and there are branches – these tend to coalesce when we get to a release. And then it starts all over again with sandboxes where people are playing with new ideas. And some of these ideas get put back into the main branch, and it goes from there.
I will say that as a NASA World Wind release, NASA gets to ‘approve’ the official release, probably similarly to the way Sun runs Java. Everybody can make a contribution, but still some entity is trying to focus that effort.
Scott: I think all open source projects run as enlightened dictatorships. Even in the case of Linux kernel, Linus decides what’s in and what’s not in.
Patrick: We have that here, too; it’s the same circumstance, and I think you’re right. The real art is in being able to prevent a strong fork — to have enough confidence within the community that they stick around and focus on a singular effort. As long as we can maintain that, I think we’ve got a good future.
We have a really active and very supportive community.
Scott: What about the modularity? You mentioned that there are hundreds of add-ons. What does the extensibility story for World Wind look like?
Patrick: Both the idea of a NASA open source project and the visualization technology itself have evolved. We’ve learned a lot from when we first started this project in 2002. The API for World Wind .NET was built after the basic code was established.
It wasn’t originally built with the architecture of having the API at the core, which is what we’ve done now with the Java version, and which is what we would love to go back and do with the .NET version.
Open APIs allow people to add things and leverage it in ways completely independent of the actual — for lack of a better word, we’ll call it an application — whether that’s a free add-on, plug-in, or whatever, or whether it’s an actual marketed vale-added functionality.
NASA World Wind is being used internally by the government and it is my understanding that it’s also being used internally by some private companies. These entities are doing things with this visualization technology that services their particular needs. I’m sure that many of these activities qualify as proprietary, even if it’s not something that they’re out marketing.
Scott: Does the licensing of it allow you to distribute a closed-source proprietary program that includes World Wind?
Patrick: Absolutely, and it’s the same as with the HP security module for Linux. You have to put some additional code into Linux to get that to work the way it needs to; I think it costs a few grand a year.
Scott: I thought GPL required anything that uses it to also be open source?
Patrick: Let’s say you need a special hook for your independent application, and World Wind doesn’t already have the hook that you want. So, you put that hook into the open source code. That hook would fall under the NASA open source agreement license.
Scott: So if you have an application that does a whole bunch of stuff, and World Wind is a small piece of it, you’re not required to open source your application if you make extensions or derivatives of World Wind as part of integrating it into your application? That small piece has to be open source, but not the entire app?
Patrick: Right. You can distribute World Wind, with that additional code if you want. The optimum idea would be to participate with NASA to get that particular need included as a standard part of successive releases. That way, whenever a new World Wind comes out, your particular module, application, extension, whatever you want to call it, is still viable. That’s the advantage of working with us, but there’s nothing to prevent you from doing this independently.
Scott: So, I see you’re on version 1.4. Talk a little bit about how features get spec’d. How does that work where you decide what’s going to go in 1.5 or 2.0 or how features go from being concepts to being actually in the product?
Patrick: The World Wind central group organizes meetings that we participated in prior to that release, with a wiki for the agenda to determine what the next release was going to have.
Everyone supplied their wish list and then everyone made comments about those particular features that were proposed for inclusion, in terms of what they think is important, what they think is not so important, and what they think is really cool. Then we would IRC chat over these issues and discuss on the forum.
For release 1.4, after we all had made comments on what we liked or didn’t like about the features that were proposed, we had meetings to hash it out. Then we agreed on a release date, and certain things — if they weren’t buggy — were included. And if they were on the final list to be included but were buggy, they were not included. So it’s been a community effort.
Scott: A lot of times in the open source world people can propose an idea if they’re able to propose the code that goes along with it. So, in other words, the way an idea gets proposed is that a developer codes something up and submits it. But it sounds to me like you have a process where you wouldn’t necessarily have to be able to code it to request the feature and maybe get it slated for development.
Patrick: Right. If it’s a good idea and you can inspire someone to deliver against it, then that’s definitely part of the mechanism. So, that’s true, although it really does boil down to having somebody who’s qualified to pick up that branding iron.
But somebody might also have a really good idea and kind of teach themselves, even if they’re not quite developers. There’s a difference between add-on and plug-in — a plug-in is a little more serious, and an add-on is often based on an XML file. There are people that have looked at other XML files and used them as templates. They make a template of other add-ons and just tweak it to better serve their particular interests.
So you can make an add-on without being a programmer, but to actually make changes to the code to help that particular add-on do what you want it to do, that’s some of the stuff where this community has really provided technical expertise in concert with other folks who have a good idea and a lot of energy to gather and organize the necessary data for the add-on.
The two analysis tools for earthquake events were developed in that kind of mode. In this case, Chad Zimmerman assembled the data and designed how the functionality would work, he may not be a developer per se, but he’s built the necessary XML files. Then he got someone else, a ‘real’ programmer, to help make the necessary changes to the World Wind code.
Scott: So, what are some of the advantages you see? I imagine it would be difficult for NASA to do something kind of closed source proprietary — just release the lib but not the source. But that said, what do you see as being some of the advantages, what are some of the strengths of building this as an open source?
There’s an application, The Morning Report, just recently licensed to the FAA that was built here at Ames Research Center. This application analyzes logs on commercial aircraft for anomalies that are not normally visible — not the expected anomalies, but anomalies that are very subtle. And this software analyzes for that.
The visualization tool for that is World Wind, so they just include World Wind with it, but the rest of the technology is very much a licensed intellectual property-based technology.
NASA has also developed things that remain intellectual property, that were developed internally. This can be done with NASA developing the licensable technology, and it can be done in concert with an outside entity who wants to partner or collaborate with NASA.
Scott: Talk a little bit about what you think some of the decision points are when an organization like NASA is looking at writing code. What are some of the decision points around whether it should be open source or not?
Patrick: Well, I think right now, NASA World Wind pretty much defines what should be open source — the ability to deliver pixels. NASA World Wind is visualization technology, it’s infrastructure.
NASA World Wind would like to increase the opportunity for others to continually take advantage of the latest video technology, which as you know, is constantly changing as video cards get more sophisticated. We want to optimize the delivery of a pixel, and leave it to others to provide the information intelligence that’s needed for people to understand ideas, tell stories or whatever.
I think the opportunities for taking advantage of this medium are pretty much wide open and unlimited. NASA World Wind really wants to stay out of that fray and just operate at the pixel delivery level.
Scott: At some point a technology becomes something that you want to build on top of. You expect that it just works — it’s sort of a piece of infrastructure, and not so much a piece of intellectual property anymore. In that kind of a case, a lot of times you see things become open source.
For example, at some point you just want an operating system, and you’re not really looking at building a lot of intellectual property into it. You just need something that will let you talk on the network, serve up files, run a web server, and so forth. A web server is another example where there doesn’t need to be a ton of IP. There doesn’t have to be a ton of IP in a web browser. And in your case there doesn’t have to be a ton of IP in serving pixels.
What you’re doing is you’re pushing people up the stack where you’re saying, "Instead of inventing your own rendering and instead of doing all this stuff, just consider it to be a piece of infrastructure and build on top of that." Right?
Your value isn’t going to be in rendering a pixel better. Your value is going to be on what is the data, what is the analysis, what’s the meaning that you’re trying to derive from this data? And the rendering of it isn’t probably where you’re going to move the world forward.
Patrick: Right. And we want something that is in a sense standardized, so that it’s a huge market that you’re dipping into. As you build that intelligence, anybody anywhere can run it because they have that basic, as you say, infrastructure.
Scott: Some of your funding comes from Congress, and you’ve mentioned too that Microsoft, and it looks like Sun are also providing corporate sponsorship. Talk a little bit about corporate sponsorship. First of all, are there other corporate sponsors? Do you have Intel and AMD doing processor optimizations? Things like that. And in general, what do you feel like the importance of corporate sponsorship is around open source products, especially those of this scope and complexity?
Patrick: Right now we’re benefiting from the support provided by corporate sponsors — Microsoft, AMD, Sun, Isilon, C-Map and others. In each of these cases, mostly it’s been hardware and consultation.
I-Cubed, www.i3.com, recently provided NASA with a Landsat set for planet Earth of Landsat 7 — the best I have ever seen. Normally, Landsat imagery is a mosaic of different days — the most cloudless day possible — and so, its imagery taken at different times of the year. You zoom in on Earth and you see what looks like assembled puzzle pieces and this can take away from the experience.
What i-cubed did was to put into the public domain an extraordinarily beautiful and color-balanced Landsat dataset that they had developed in concert with Isilon. Now, that type of gift, which normally is worth a quarter million dollars just for internal use, is now available for the world to share. This gives the world a wonderful base-level set of imagery for Earth.
The government has begun to recognize the value of open source visualization technology, which is why these different federal agencies are now supporting us. Open source visualization technology allows them to build all kinds of specialized functionalities. They’re able to take advantage of the world community pushing this technology, evolving this technology, advancing this technology, and they really appreciate benefiting from that opportunity. They also appreciate the synergy of being able to easily share these developments between federal agencies.
There’s a real benefit to the government in terms not only of cross-agency ability to communicate on a standards-based visualization platform, but there’s also the ability to save lots of money. Because if they have a need, they can either build it internally or they can spec it out then put it out to bid and say, "Who’s going to build this for us?" So, it saves the U.S. taxpayer a huge amount of money as well as making the government more efficient and more effective.
The open source model is being appreciated for its value, not only to government, but for its ability to stimulate new ideas in the marketplace as well.
Scott: Patrick, thanks for taking the time to chat with us.