Wiirtual.Earth – A WPF Virtual Earth 3D Experiment … featuring the Nintendo WII Mote

Disclaimer: this is a hack, an experiment, not a finished application – no guarantees are given and the code is probably pretty horrible. It might max out your computer or break something, so use this at your own risk. Also, be sure to check out the great work of the poeple whose projects/source code I have used and studied to build this. Also, make sure to read the setup instructions before you start.

I have been digging deep into Virtual Earth recently – and the more I play with it, the more excited I get. I am especially intrigued with Virtual Earth 3D and have built a little project that pulls Virtual Earth into a WPF desktop application just to see what can be done with it. Well, I am proud to post this very first version of my little application up here. I have also demo’ed this application at Microsoft events in several countries and it seems that people like it …

In a nutshell, here is what it does:

  • Pretty WPF UI.
  • Virtual Earth 3D in a WPF application – using this code.
  • Control Virtual Earth properties from WPF via WPF data binding and UI.
  • Get VE info and bind it to WPF UI elements.
  • Pull in data into VE (GeoRSS, KML, Live collections, plain XML, Wikipedia, Flickr).
  • Control VE with a WIIMote (WIIMote acceleration sensors) – using Brian Peeks WIIMoteLib.
  • Control VE with the WII Balance Board – using Brian Peeks WIIMoteLib.
  • Win32 > WPF interop for mouse and keyboard.

All in all it is a pretty cool project but since I am not a developer undoubtedly there is a lot of crappy spaghetti code in there. I wrote it for a demo as an experiment. Anyways, if somebody has some comments, hints or can use this code, any feedback would be greatly appreciated! I am planning to turn this app into a series of WPF tutorials soon. In the meantime, here are the setup instructions (very important to follow those, otherwise it won’t work correctly or even start!), here is the executable (for Windows) and here is the source code. If you want to know what you can do with this app, read this quick intro document first.

Cheers
Koestie