Wednesday, July 23, 2008

What's in the EarthBrowser pipeline?

If you aren't interested in wading through my sleep inducing 30 minute Google presentation, I'm planning on detailing much of what I said in a series of blog posts.

Contrary to almost every bit of advice I've been given I'm going to lay most of my cards out on the table about the future of EarthBrowser. For a single guy trying to go up against multi-billion dollar corporations, I need as much attention as I can get. However I'm not going to reveal everything, I've got some pretty cool things under wraps for release later this year.

Flash 10: I'm very excited about Flash 10 and believe that it will open the door for real-time 3D in the web browser. For me the most important aspects of F10 are native matrix operations, hardware accelerated rendering and a shading language. This will enable EarthBrowser to have true 3D navigable terrain with mountains, valleys and even underwater exploration, right in your web browser or in the desktop authoring app. I am hoping to get a 50-100% increase in rendering speed and be able to do really pretty things like normal mapping and atmospheric scattering.

3D Collada models: I'm not really a big fan of the obsession by Google and MS to put accurate 3D buildings on the earth, but if you have the data it isn't really hard to do. I've got more interesting uses for 3D models which will become more apparent in future versions.

GPS track importing: A very easy feature to add for people to edit and share.

iPhone version: I still hold out hope for Apple and Adobe to get Flash running on the iPhone so I haven't allocated much of my bandwith to this project yet. However after some exploration of the problem space, I estimate it will be relatively simple to port from my current codebase due to the nicely abstracted rendering backend.

My next blog post will detail the geometry / time coordinate extension that I hope will make it into the KML standard at some point. Time coordinates are designed for use in feature animation, which is an obvious use but was never a design consideration for KML. I don't really have the time or desire to submit and shepherd a proposal through an OGC standards committee. Perhaps there could be something like the Boost Library for KML where proposed extensions are selected to become part of the standard after being tested and refined by use in the community. Seems like this would be a great place for me and the WorldWind developers to start taking a little initiative and advance the state of the art for virtual globes.

Monday, July 21, 2008

EarthBrowser presentation at Google

Last Tuesday I gave a 30 minute presentation at Google about the upcoming EarthBrowser Flash plugin. I also presented an enhancement to improve the expressiveness and utility of KML along with a demonstration with orbiting satellites. Many thanks to Michael Weiss-Malik and the great guys at Google for inviting me to talk about whatever I wanted to!

If you have problems with the embedded video you can see it on youtube.

In the presentation I go through some of the features and benefits of the EarthBrowser Flash plugin. Then I talk about giving time it's own coordinate in the geometry primitives in order to reduce KML file size and complexity as well as add new functionality. Toward the end I talk about future enhancements to the EarthBrowser desktop/web platform. I also mention that I'm developing an iPhone version.

Wednesday, July 09, 2008

Wow! C/C++, Python and Ruby running in Flash Player

Earlier this year I saw the demo of Quake running in Flash directly translated from C++. It was very impressive to say the least, Adobe has some great coders and the amazing advantage of having their code running on almost every computer with a web browser.

I just came across this post that talks about an open source backend to the LLVM that will enable C/C++, Python, Ruby, Perl, Lua and other languages to be targeted to ActionScript bytecode (the language the flash player runs). It sounds like it will need some more work and support of a new Flash player version but the possibilities are extremely exciting.

More detailed information on the initial LLVM work by Ryan Stewart here.