Some time ago a colleague of mine showed me a web browser addin called PicLens, that did some very funky 3D visualization of searched results.
I got quite jealous about this and had a think about it and set to work trying to give it a go in WPF. I think I actually got pretty close to the PicLens version and the only areas where I think it could be improved are in the following areas:
- Virtualization, such that item out of view are removed from the 3D viewport
- Video support, though I did figure a way to get YouTube videos into WPF using a WebBrowser component. Unfortunately the WebBrowser component is a Window based HWnd control, so doesn’t work like other WPF controls, and as such was unsuitable for being hosted in a 3D viewport.
Here is a screen shot of MarsaX running.
Ill just give you a brief run down of how it all hangs together
- The top right hand buttons use a StoryBoard to show a hidden search area panel.
- The search area panel contains buttons, which allow the user to search RSS feeds using XLINQ, which are read in asynchronously using a ThreadPool
- The search results are then used to create a new 3D item which is put into a 3D container
- The bottom control is a simple Slider control which has been Styled to look like this. When you move the slider the 3D container is animated around an angle and distance
- There is another Styled slider which can be used to zoom in/out of the 3D scene
- When a 3D item is clicked on it shows a popup window from where the user may save the image
- The application uses various different configuration items to control how it works
I did get some help with this article from a fellow geek called Marlon Grech whom I think is a uber smart kid. Marlon wrote some of the Styles that the control use and helped with some code areas.
All in all both Marlon and I were pretty happy with the results of this article.
Go check it out at the MarsaX link over at Codeproject