NASA Prepares to Open Source Code
comforteagle writes "According to this story at O'Reilly, NASA is looking for approval for their own open source license. The NASA submitter (lawyer of course) states that none of the current licenses meet their needs, but more interesting is that NASA needs a license at all. It makes one wonder what we, and other space agencies, might see coming out off NASA. It's also nice to see code that taxpayers paid for anyway being released for their use too. There must be at least one slashdotter who could dream up a use for NASA software. X Prize participants maybe?"
I thought all goverment programs were automatically uncopyrighted, not even public domain? Like they were completely outside of the copyright system.
24 beers in a case, 24 hours in a day. Coincidence? I think not!
There must be at least one slashdotter who could dream up a use for NASA software.
Absolutely there is. I can think of a number of potential applications of NASA image processing software to our research in neuroscience. Right now, we are having to either purchase code written for the GIS markets to do what we want, custom write routines in a language such as IDL, or get some computer science graduate students to work for us custom creating code. We are doing the first two and I am going to start recruiting CS grad. students next week, but things might go a lot faster if we already had a source code base to start with.
Visit Jonesblog and say hello.
It's sad that NASA won't simply release the code into the public domain.
I have been pwned because my
Jeez, who's next, Microsoft?
The coolest voice ever.
I am most having got need for rocket open source. Now do open source me want for get. Sincerely, North Korean Military
Well, Microsoft already did so earlier today, so NASA is a bit behind the times for this one. [wink]
I've built this six-wheeled golf cart in my back yard, and I was hoping to find a good OS for it!
This side up.
with me being in another country,would i be able to use the [OPEN] source code for my government space agency? Would the US govt permit that, nasa being a govt agency. ;-)
They would probably only release code which would not benefint most people don't you think?
Lord of the Binges.
NASA's first "A" stands for "Aeronatics", and that's only part of their name. Lots of applications can be thought of. For instance, the source for their 3d ranging application would be very beneficial to many people. I mean, the rovers are able to compute their surroundings in 3d using only 2 cameras. The degree of success and repeatability of these 3d measurements far exceeds any other available 3d ranging software. This type of code could be useful for anyone who wants to make a 3d model of something using only a camera and some precise alignment. Indeed, JPL has a lot of experience in robotics and the gain in knowledge when such code is released is sure to be great for anyone in the field of robotics. Even the Darpa robot competition would be different with such technology freely available.
what we, and other space agencies,
;-)
Is this guy referring to Slashdot?
I have discovered a truly marvelous
NASA does a lot of stuff, and much of it is indeed cutting-edge. Don't discount this so quickly.
We can have more success at landing spacecraft on Mars. At least the metric/imperial error would have been caught before it went to alpha...
From excellent karma to terible karma with a single +5 funny post...
Not likely to be very workable. NASA can't release a lot of stuff because of ITAR restrictions. The US of A treats most space related items as being ITAR Restricted.
For those asleep at the keyboard, ITAR is International Traffic in Arms Regulations.
For example, check out Flight Linux:
http://flightlinux.gsfc.nasa.gov/
You'll note that even though required by the GPL, NASA refuses to release the sources because of ITAR prohibitions.
Move along, there is nothing to see here.
Darwin Award, maybe?
They won't touch the existing licenses because they are not affected by locality. I'd imagine this will suffer from the usual export restriction bollocks that the US Government likes so much.
Forget thrust, drag, lift and weight. Airplanes fly because of money.
I hope NASA gets their Open Source software out soon. I'm getting thoroughly frustrated trying to write an OS for my planetary rover.
I've been itching to get my hands on NASA's Photoshop filters since 1969!
This was originally developed while he (Gary Riley) worked for NASA at the Johnson Space Cener. It was available in source form since before I started working with it in 1993.
I completely agree.
It would be flat out wrong for tax supported software to be made and then not be able to be used by businesses that helped pay for the software.
Nasa seemed happy releasing code under the GPL for quite some time, and I find it odd that that is changing now.
Ever use a network card under Linux, much of the networking code came from NASA (mostly from Donald Becker).
Still dreaming about that Beowulf cluster? That also came out of NASA.
Perhaps the lawyers felt left out, so they're trying to do thier part and look useful. Why would NASA find that a license that has served them well for years needs replacing? Any lawyers opine on the new license yet?
Read, L
As an enginneer who once worked for NASA (through a contractor), I can tell you that there are many pieces of software created at NASA which are useful outside of the space program.
This might be one possible use for such a thing.
GJC
Gregory Casamento
## Chief Maintainer for GNUstep
For instance, nedit, a great editor for people coming from Windows/Mac, was developed by Fermilab, a particle physics laboratory.
I get the impression that NASA develops a lot of software for image processing. I'm picturing some really powerful GIMP plug-ins... "Make Mars Red", "Color Galaxy", "Add UFO"....
Actually, the code on the older hardware may well be the most impressive. IIRC, the software that runs the Space Shuttle is the most bug free non-trivial program ever written. On hardware from the late 70's and early 80's.
I think there might be a few "Holy crap you can do that!?!?!!?" moments reading those sources. Tight optimizations, tricks for doing things that normally require massive support libraries linked together... might be some interesting techniques there.
For those wondering about the software produced, they employ folks from all branches of knowledge. Except finance, me thinks.
It would be cool to see other nations being able to make useful progress in non-weapons science, being able to actively thank and give tribute to NASA advancements along the way.
I just hope the sharing might keep going if it starts being seen as a good thing. For some reason, I get the impression we'll get some crazy results too, like French agencies stipulating that no documents may be translated to non-French and still be visible in France. Still, it's definetly problems I'd rather have to deal with then not.
Ryan Fenton
The thing about it is that it seems that any NASA source code would be a monument to overbuilt, overengineered, triply-redundant failsafeness. This isn't entirely on point to your (witty) comment, but, I dunno... it seems like looking at this code might be like looking on some absolute crystal perfection of 1960s-1970s code-writing. No fancy classes or object-orientedness. None of this fun stuff. Just raw, uninteresting, bulletproof code (well, except that one little bit that forgot how much flash memory the rovers have... and the unit conversion problem... ok, anyway).
/really/ churning out scientific algorithms that are far superior to those coming out of the private sector or universities? (Note that I'm not trashing NASA software folks... I'm just saying they write code for an almost entirely different set of priorities.)
My question is: how much would we learn from this? When people writing code for business are optimizing for speed and redundancy mainly in the parallel sense (i.e., a failsafe swap to a sister server), how RELEVANT is that to blocks of code written never, ever, ever, ever, ever to fail on tested but "outdated" hardware?
Furthermore, if we ever get around to privately-built spacecraft, how much NASA code will they want to use? I dunno, it's a neat idea in an historical sense, and it's an admirable sign of government openness when the government is more and more closed to us citizens... but is it more?
I'm not saying it's not. I'm just curious how it would be. Is NASA
Or maybe not?
Seastead this.
For over 30 years NASA code was available through a program called COSMIC which was administered at the University of Georgia.
http://www.cosmic.uga.edu/
In fact for awhile they operated out of one of the many buildings previously occupied by the 40 Watt Club
Since 1998 the code has been available through the Open Channel Foundation
http://www.openchannelfoundation.org/cosmic/
If you're refering to Maestro, that is not the code I was refering to. If you look on this page, you will see this picture, which shows some pretty darn good 3d processing for only using a few still cameras! And if you look here, you will find this picture which shows a representation of what the Spirit rover's software uses to find its own way, without need of constant instruction from Earth. Pretty good software, if you ask me! The public Maestro program is pretty slow, but so is Java in general for high-performance applications. Maestro doesn't actually generate the 3d range information from the raw images, it just displays it (and apparently is used to figure out the rover's schedule of stuff to do).
What's in use on the Shuttle might be 8086's
;-)
Which is more advanced than what's in use for a lot of traffic signal control boxes. They have something like 8 bytes of memory. But they really don't have to do much... just get data about where the cars are, and turn the right lights green for the right amount of time (while not allowing the opposing lights to be green).
The reason they use such "archaic" hardware, even in brand-new boxes, is because they have to withstand ambient temperatures up to 150 degrees farenheit for long periods of the day. The boxes can't be ventilated very much without exposing them to the elements (and destructive teenagers), and it gets hot as an oven inside when the sun is hitting them all day.
I imagine all kinds of infrastructure that needs redundancy and reliability over flexibility and power would find NASA's code useful in one way or another. (Even if it's just as an example of what NOT to do.
Don't you wish your girlfriend was a geek like me?
If we keep working on this independently, we will have a much harder time of accomplishing our goals than we will if we all work together. But like i said, its not likely to happen. not only will the US want to keep the upper hand in everything, but there is the chance that the code could be used by the wrong countries for malicious purposes - or even possibly independent terrorists. 9/11 #2 anyone? It may be far-fetched, but i'm sure the authorities are taking stuff like that into consideration, because once released the code cannot be unreleased. If only the different countries could for once look for the common good of all the world and work on a collective space program...
the source for their 3d ranging application would be very beneficial to many people. I mean, the rovers are able to compute their surroundings in 3d using only 2 cameras. The degree of success and repeatability of these 3d measurements far exceeds any other available 3d ranging software.
Are you certain of this?
MER's stereo imaging and navigation software is indeed well made. Still, I suspect it's incorrect to claim that it is the best ever written. Stereo imaging and 3-D structure from motion are very well established fields, and improvement is ongoing. It would probably be straightforward for you to find some recent conference papers and code up something in MATLAB that works better than the rover's flight software.
The quality of the 3d ranging results from Mars are impressive, but for more reasons than you might suspect. I spent summer 2002 interning at JPL. One day, Mark Maimone, the MER mobility software engineer, mentioned to me that images of Martian terrain (with scattered rocks, etc.) are just about mathematically optimal for stereo ranging. (He wrote his thesis on this stuff.) On Mars, it's easy to find correlations between pixel patterns in images. Now imagine how well it would work if the robot were staring at a blank wall--no vision algorithm can handle that!
So--don't think that the success of the imaging is just the well-made software.
JPL has a lot of experience in robotics and the gain in knowledge when such code is released is sure to be great for anyone in the field of robotics.
True, to a point. Bear in mind that while JPL does work on novel robotics research, they're also extremely concerned about preserving expensive, hard-to-replace robot systems. As a result, a lot of the software is based on well-established systems that, in the research world, have been surpassed a while ago. The rover autonomous navigation software, for example, is related to navigation software written here at Carnegie Mellon some four or five years ago.
Furthermore, a lot of the research advances made by JPL are presented at conferences and published in journals. It's not like they work in isolation and keep everything quiet. In fact, some of my fellow grad students work on large projects alongside JPL researchers and researchers at other institutions. So, in an academic sense, there's already a lot of sharing going on.
--Tom
MAN SHOOTS ROVER!
When I first read about goto staements being harmful when dinsaurs ruled the earth, NASA code was often referred to by my betters as horribly written "spaghetti code". I am no programmer but I would like to see some of this code to see just how bad it supposedly is. Some of it did get us to the moon didn't it?
But code quality aside, what about applications elsewhere? NASA's codebase presumably does a wide variety of things in addition to running gazillion-ly redundant life support on the space shuttle. Think about all the design and testing it does of hardware, the software it writes for image processing and signal analysis, running the deep space network. How about making models of satellite structural integrity? Surely something useful -- although it might take someone within the field to realize the similarity between a problem they face and one NASA has already solved.
And, of course, scientists love to write their own tools for text editing, data analysis (often these are incredibly powerful and extendable -- naturally more so than, say, commercial software products which remain close-sourced), collaboration software, yadda yadda ad infinitum
Protect your liberties. Donate to the ACLU
(expanding a bit on my earlier comment)
I've read the license quickly and I can definitely say that section 3F will cause problems. Requiring registration does not meet the open-source definition, nor the Debian free software guideline. It discriminates people who either 1) do not have access to the Internel (the "desert island" test) 2) people who can't say they are using the software (the "chinese dissident" test). It also prevents any inclusion in a distribution because it implies that merely buying a Linux distribution that includes the software requires you to register it. If you forget, you are breaking the law (just imagine if all software was released under this license).
Last thing, by requiring registration, this license seems to cover the *use* of the software, going even further that what copyright law requests. The GPL gives you rights that copyright law alone does not give you (e.g. right to redistribute the code), but it does not *remove* rights (line the right to use the software without telling anyone). This also means that to be valid, the license would actually have to be signed (hence it becomes a contract). The GPL (or other free software licenses) does not require that since it only gives you additional rights (if you don't agree to the GPL, you still have all rights provided by copyright laws).
Opus: the Swiss army knife of audio codec
Given the ancient hardware nasa still seems to be using on their machines (still essentially powered by '91 era powerpc's) i doubt that the source will be THAT impressive.
In my experience, the opposite is true. Older code is generally leaner, more stable, and much tighter than newer code.
Crap code tends to get weeded out, and good code tends to stick. Witness many of the key parts of Unix which have remained largely unchanged for decade(s).
Why change what is clearly working well?
There's a perception in the computing industry that "old==bad" and "new==good". But in many areas, the opposite is clearly true.
Security algorithms, for example. Only when an encryption algorithm has been out for a while, beaten up, tested, reviewed, and studied by many peers will people begin to trust it.
There's always the risk of a short-cut to decrypting any algorithm, so, in general, the older ones are nearly always better.
But let's put it to the test... You're getting a pacemaker on which your life will depend. Do you prefer the 15 year old software that has an installed base of many thousands, or the new stuff that just came out last month?
I have no problem with your religion until you decide it's reason to deprive others of the truth.
This is probably the package you are looking for: Integrated Software for Imagers and Spectrometers. It's been distributed freely for many years, and is, indeed, public domain. It's funded by NASA for use by NASA-funded researchers and the planetary science community in general.
Note, Isis 3.0 has not been released yet, look for the beta in coming months - look at Isis 2.1 for the stable release. Download/Install instructions are on this page: Isis 2.1 Installation Guide.
Automatic mosaicking is generally done using the spacecraft positioning information. Automatic registration? It doesn't exist (yet). Registration involves varying levels of human intervention, and when some level of automation is achieved, it's mission-specific and under special circumstances. Isis is primarily a cartographic package - IDL is generally used for statistical work.
Another image processing package that's public domain is USGS MIPS. It's a (non-NASA) terrestrial image processing package that evolved from the same roots as Isis, so you'll find it has many of the same capabilities.
I don't know what other NASA packages there might be out there like this, if there are any. I'll ask around.
A lot of it is "free", if only you can get it. The problem is that it costs agencies (and hence taxpayers) time and money to distribute, so there is no incentive to do so. For instance, government publications cost money, to defray the cost of producing and distributing them to the public. IMHO it makes sense for this cost to be paid by those who use the material, rather than by a lot of taxpayers who have no interest in it.
As for the rest, well, that's why we have the Freedom of Information Act. If you want source code for the accounting system for the Bureau of Public Works, put in an FOIA request and they'll either give it to you (for the cost of distribution, I guess) or give you a good reason why they won't.
NPR is not a government agency, but a private nonprofit organization, so your questions don't apply to it. However, even if it were, the government tends to use "industry standard" formats, and Real could certainly be considered that. As an example, all the forms on the IRS web site are in PDF, and they recommend (free but commercial) Acrobat Reader for viewing. Probably a lot of other files are available as Word documents, since that's how they are produced.
The reality of the situation is, the iss orbit is not where it is to 'satisfy the Russians', it's to satifsy the laws of physics. There are two ways to achieve an on orbit rendevous, the first is to go charging up to orbit, and then later maneuver the orbit to match that of the target. This can be hugely wasteful in terms of energy expended in maneuvering. The second method is to wait for the target object to be on an overhead pass, so that a pure ballistic trajectory can take you directly from launch to the on orbit rendevous. This is the most efficient method of launch, allows the maximum payload delivery for a given launch vehicle.
The ISS orbit is determined by simple ballistics. It's where it is to provide maximum availability of direct launch windows from the Kennedy Space Center AND the Balkinor launch facilities. With shuttles all parked in the garage, I suspect there's a lot of folks at nasa today that are quite thankful for the decision to place ISS in an orbit that provides equal accessibility for the Soyuz and Progress vehicles. With no shuttle missions bringing up the groceries, it's very important that those progress launches pack in every possible pound of payload when they do get sent up.
Like everything else in life, ISS decisions are often a big compromise, most compromises are driven by physics, others by politics. To many uninformed folks, much of the decision making driven by physics appears to be political, because they dont understand the reality of the situation. Orbit selection for ISS was not chosen to 'satisfy the russians', but to optimize availability of resources in many scenarios. Lack of shuttle availability was one of those scenarios, and today it's reality. The ISS orbit is skewed a little from optimum shuttle inclinations due to the lifting capacities of the progress vehicles. With 20/20 hindsight, this was a brilliant decision. At the time, it appeared political to americans. It wasn't, it was driven by the need to have contingencies available in the event of prolonged periods of unavailble shuttles. We are currently a year into one of those periods.