Thursday, November 5, 2009

World Wind Java selected for the 2009 NASA Software Of The Year Award

The NASA Software Advisory Panel has selected the World Wind Java SDK for the 2009 NASA Software Of The Year Award.

World Wind Java 2009 NASA Software Of The Year Award
See this World Wind Forum post for the announcement by Project Manager Patrick Hogan at Ames Research Center.

This is great news for the free and open source project which will certainly receive increased attention from the other departments of the space agency - and beyond. World Wind was initiated by NASA Learning Technologies in 2002.

Sunday, April 5, 2009

Sunlight package for WorldWind Java

Here is the very first iteration of a sun light package for NASA WorldWind Java. It includes a custom tessellator for terrain shading, an atmospheric scattering based sky layer, a sun position calculator and a lens flare effect. Some of the code has been contributed by WWJ Forum member Michael de Hoog aka Omega.

Sun shading in WorldWind JavaTerrain shading

Download the sunlight package (Zip 33K). Unzip in the SDK examples package and run the demo application.

Lens flare and atmospheric scattering in WorldWind JavaLens flare and atmospheric scattering

The demo application code will show you how to use the different components. Although this initial version works rather well, you may notice a couple issues. Dark or bright bands may show across the terrain in some places. The atmospheric scattering code is not optimal. It fails to produce a blue sky at ground level and the sky underlying geometry is too coarse to produce nice and smooth sunsets. The sun calculator reported position does not seem right either.

Lens flare and atmospheric scattering in WorldWind JavaSun occlusion


Friday, March 6, 2009

WorldWind Java 0.6 Source available

Access to the daily NASA WorldWind Java SDK 0.6 source code has been made public from the NASA WWJ build site. You will find the announcement and change list in this WWJ Forum post.

So much has been going into the SDK since the 0.5 release in May 2008 it is hard to sort out what the most notable changes and additions are. Here are a number of new features that come to mind.

WWJ 0.6 Airspace volumesAirspace volumes

WWJ 0.6 Airspace builderAirspace builder

You will find a new render.airspace package you can see at work with the examples.Airspaces application. It includes a number of geometric volumes that can follow the terrain. It's main application is to visualize 'air spaces' but there is no doubt it will serve many other purposes. Be sure to have a look at the AirspaceBuilder that allows you to create and edit 3D polygons and spheres.

WWJ 0.6 On-screen layersOn-screen layer manager, status bar and view controls

There are a couple new on-screen layers that replace the status bar and layer manager SWING version and offer control over the view. All the 2D layers have now a 'location offset' property that let you fine tune their screen placement.

WWJ 0.6 Contour linesContour lines

The default tessellator has been augmented with intersection code for line and elevation against the current terrain geometry. This allows to cast rays or compute contour lines that you can see at work in the examples.ContourLines.

WWJ 0.6 Rubber sheet imagesRubber sheet images

At a lot of work has been done on data import and image processing. There is code to import, manipulate, tile, stitch and transform imagery. You will find surface textures you can stretch and warp with the examples.RubberSheetImage application.

The icon layer and renderer can now use absolute elevations and will perform horizon and view frustum clipping if set to do so. This should help handle larger icon populations.

Work has been done to allow several elevation models and data sources to be compounded.

WWJ 0.6 Measure toolsLength and area measure tools

Interactive length and area measure tools have been added - see examples.MeasureToolUsage and util.measure package.

Tiled image layers can now use mipmaps and produce a cleaner terrain rendering without 'shimmering' in the distance. Image blending has been fixed and should allow proper application of semi opaque layers without the 'black edges' we have seen before. However this change had the fog produce 'white edges' so it has been dropped for now - the fog layer.

The applet package has been updated to take advantage of the latest Sun Next Generation Java plugin - more stable and flexible.

WWJ 0.6 Multimedia annotationsMultimedia annotations

A new examples.util package contains a couple useful tools like a browser launcher, an image viewer, an audio player or a slide viewer.

The view sensitivity can now be set. The TerrainProfileLayer can now follow a path. Track markers have been reworked and have now extended and more flexible capabilities. The FlatWorld example has been updated with code to switch from round to flat globe. The place name layer has been enhanced. Web Service Catalog support has been implemented - see applications.gio. There is code to convert cache...

Many bugs have been fixed, often in response to comments from the World Wind Java Forum users. Thank you all.

More screenshots dating back to October 2008 can be found here.

For all migration related issues, questions and comments, please use this WWJ Forum thread.

Saturday, January 24, 2009

Interview with Patrick Hogan WWJ Project Manager

Patrick Hogan is NASA World Wind Project Manager. He was kind enough to answer and comment ten questions regarding NASA virtual globe project and open source initiative.

Patrick Hogan at NASA Ames Research Center
1. World Wind came out in 2004 before Google Earth and is arguably one of the (if not the) first virtual globe. What is the 'short' history of World Wind - how and when did it all start, what where the goals and the context?

World Wind began in the 2002/2003 timeframe under NASA Learning Technologies, a program to get 'NASA content' into the classroom. In January 2004 World Wind became one of the first NASA programs to be released as open source. World Wind existed approximately coincident with Keyhole, though neither knew of each other until later.

2. World Wind is a free and open source project delivering technologies to the community that some private companies have spent large amounts of money to acquire. Who is paying for this and how come it’s given away just like that?

Same answer as to your previous question, World Wind began as part of NASA Learning Technologies, a program to get 'NASA content' into the classroom. NASA has more planetary information than any other entity on Earth. NASA, more than any other entity on Earth, needs to have the tools necessary to work with planetary data that is part of the public domain. Today, more than ever, it is vital that research, academia and the public have useful access to this data. This is made most possible with technology that can readily adapt to service those various needs. This includes the need for a broad spectrum of private companies who are free to use this technology in proprietary ways. World Wind open source technology stimulates entrepreneurial enterprise by helping to standardize the geospatial information exchange medium. This establishes the infrastructure for greater participation by the widest possible range of business enterprise from small to large.

The World Wind project is supported by several agencies within the US federal government, including of course NASA.

By using open source technology and open standards for data exchange, the government has the ability to adapt to rapidly changing circumstances. Building increasingly more sophisticated functionalities to a core technology that is open source continually challenges entrepreneurs and the world community to greater appreciation for what is possible. NASA provides the kind of leadership that allows for this. World Wind technology also provides the government with absolute control over use of the technology, as well as absolute security due to code visibility, while also making industry and the world community more competitive in the area of solutions based on use of this open and standardized technology. These solutions can be proprietary, free, or open. Advances in intelligence come from a combination of information access and increasingly sophisticated processing of that information. World Wind, although a very smart mechanism, is not intelligence. World Wind technology is about standardized and optimized delivery of pixels, picking them up and moving them around. Information intelligence is applied by others using this technology as the medium for information exchange, a lingua franca, if you will.

3. A common reaction to the World Wind project is to wonder why bother redeveloping something that already exist for free, namely Google Earth or Microsoft’s Virtual Earth?

Google, who bought Keyhole in October of 2004, delivers data that is proprietary and restricts use of its technology essentially to the KML file format. World Wind provides that same ability without any limitation on how one might use the technology. This stimulates business opportunities for a much larger solution domain.

4. It is a bit disappointing that one cannot access imagery as good as in other virtual globes with NASA software. Why is it so?

When you open World Wind, out of the box so to speak, it arrives with the base set of data needed for a 3D world. Although higher quality imagery is available that World Wind can certainly deliver, and does so for those who have access to that data, the base set of data that World Wind comes with is necessarily in the public domain. We are looking forward to higher quality imagery becoming increasingly more available. We are already seeing this happen. The great State of New York and the great country of New Zealand, having made higher quality imagery publicly available, prove this is already happening.

5. There does not seem to be any 'road map' for the World Wind Java SDK. How are decisions made regarding the implemented capabilities?

For those who can appreciate the degree of sophistication involved in developing an Application Programming Interface (API) -centric Software Development Kit (SDK), it’s easy to understand the unusual amount of *accommodation* required for how others will use the technology. Building an optimized and adaptable technology of this nature is a Herculean task. It is far more involved than simply building an application. World Wind technology must transparently 'plug-in' to other applications. The ability to do that well is as much art as engineering. Leonardo da Vinci was notorious for spending inordinate amounts of time working through ideas before ever putting paint to brush. World Wind is being crafted as an adaptable building block others construct with. Making it work requires accounting for many variables well beyond our control. Building for the future is an infinite challenge. We look forward to a time when much more of the world participates in the development. Although this is already happening informally, this will begin in earnest with release of v1.0.

6. How large is the development team?

I’ve heard it said that it’s not size that matters. So thankfully, we have a few of the best. At some point, after version 1.0, we’d like to see a collaboration of the world community to advance this core technology. We’re already seeing this technology applied by the European Space Agency, the Japan Space Agency, and a few Fortune 100 companies, as well as extensively within the US government.

7. A number of community users would be willing to contribute code to the project but there is no such established process to do so now. Are there any plans to allow contributions?

We welcome contributions and have already put some of those to good use. We want World Wind development in the hands of a well organized worldwide consortium. That takes a concerted effort by the world community. We look forward with great anticipation to that stage of this project. You don't have to be a rocket scientist to know that the amount of energy required to effectively process the input from a worldwide community is enormous. 2009 should be 'the' year for version 1.0 of World Wind along with the hope for a world community that hosts the ongoing development of this technology.

8. The WWJ SDK is still in alpha stage after two years. When can we expect a stable 1.0 release and what will be in it?

In the spirit of ‘we will serve no wine before its time,' version 1.0 is expected during the second half of this year (2009). What will be in it? More and better stuff!

9. The WWJ SDK departed from the World Wind .NET version in the sense it is not a 'ready to use' client application one can download and use right away. Although there are clear advantages in providing a SDK, are there any plans to produce a WWJ client application similar to the .NET version so many have been using?

World Wind Java is component technology purposed to be used as a plug-in by others in support of their visualization needs. We like playing a strong supporting role rather than the lead. We believe this provides the maximum opportunity for information exchange technology to advance.

10. The unique aspect of World Wind technology is that it also provides the WMS server software to deliver geospatial data. How did that happen?

World Wind SDK technology is there to visualize geospatial data, manage the pixels so to speak. Having the technology to see 3D is cool, but that's only half the story, maybe even the smaller half. Making data accessible, the data delivery mechanism, is where the information experience begins. The World Wind Server delivers data according to the Open Geospatial Consortium international WMS standards.

Together, the World Wind SDK client and WMS server provide the infrastructure for government, research, and business communities, as well as education and public outreach, to both deliver and experience information, hopefully increasing our understanding. And it is also true that sometimes we do things just for fun! World Wind technology unlocks the power to make all this happen.

Patrick Hogan - interview by Patrick Murris, January 2009.
Photo from

> Another Patrick Hogan interview by Scott Swigart, and Sean Campbell for the How Software is Built blog - July 2007.
> World Wind presentation at the Geological Society of America, May 2007. How the Java SDK got started.