A tool to generate face images and animated gif files for different angles and lighting using only a single face image. Also includes Face Matcher using Microsoft Face API.
Analyzing the Snake game, we'll study an application for the new Windows Phone 7 platform, focusing on localization, Inversion of Control, navigation, transition effects, triggers, Isolated Storage, audio and we'll also use Blend to create a rounded glowing button, and other things...
The source code and a simple demo program for a plug-in in Microsoft Managed Extensibility Framework (MEF) that provides visual display of email messages.
This article introduces a more flexible and secure method to configure Silverlight applications using the Web.config file from the ASP.NET host application.
This article describes building a sample Silverlight application with the MVVM Light toolkit, WCF RIA Services, and a pluggable application architecture using MEF.
UI and code-behind is executed in different threads. Long running processes need asynchronous execution. This artice shows a way of doing this in a ViewModel approach.
Part 2 of a series describing the creation of a Silverlight business application using MEF, MVVM Light, and WCF RIA Services. In this second part, we will go through various topics on how MVVM Light Toolkit is used in our sample application.
Part 3 of a series describing the creation of a Silverlight business application using MEF, MVVM Light, and WCF RIA Services. In this part, we will discuss how custom authentication, reset password, and user maintenance are implemented in the sample application.
A Silverlight application using the WCF RIA Services Class Library. Demonstrates how to implement a custom Authorization Service, utilize localized resources, and add unit tests for DAL.
Part 2 of a series describing the creation of a Silverlight business application using Self-tracking Entities, WCF Services, WIF, MVVM Light Toolkit, MEF, and T4 Templates.
Part 4 of a series describing creation of a Silverlight business application using Self-tracking Entities, WCF Services, WIF, MVVM Light toolkit, MEF, and T4 Templates.
SoapBox Core uses WPF's MEF to provide a base application framework that is easy to extend. This is a simple example that includes elements of a basic application (toolbar, statusbar, document area, etc.).
In this tip, we will discuss a quick way of how to locate a point in the Map and then adding a customized pushpin to these locations through a sample XML.
StateTriggers with multiple properties and initialization, setters for attached properties, deep property path, set values to null,custom attached properties, visual state group as resource and trigger inside datatemplates workaround
Published WPF resources discussing control customization focus almost exclusively on editing local copies of ControlTemplates, while implementing and interacting with an actual Custom Control library requires a DIFFERENT set of techniques and reference syntax to be used
In this article, I would explain the steps to create a simple WPF application that can read out text for you; using .NET framework's Speech API and Installed voices.
Here I share the code of an R&D experiment to explore an alternative approach to data virtualization, using Rx and a XAML ListView in a Windows Store app, where I consider the IObservableVector as an "Observing" collection that reacts to UI event streams
To work with Regions effectively in a Prism based WPF application, we must understand the relationship between WPF Controls, RegionAdapters and Regions. In this articles, we will learn about process of Region creation and critical role played by RegionAdapters with a demo application.
An introduction to async / await, popular mistakes and solutions for asynchronous programming, as well as usages and benefits from using asynchronous programming. We will also discuss interesting patterns based on concurrency.
This article is describing behaviors ala Intellisense. I'll talk about how to extend the RichTextBox display behavior without interference in the control, without overwriting any of the members, fully configurable in the Xaml code, with the possibility of dynamic control.
In this article, I will guide you to understand the functionality of this control. Also, I will guide you step-by-step to create your first PathListBox control demo application. Here we will create the above two samples where the collection of texts will position them in proper location on the edge
In this post, I will demonstrate how to animate the items in a specific direction in your PathListBox control. This will not only guide you for animation in PathListBox but also will help you understanding the StoryBoard creation (if you are very new to Silverlight).
In this article I want to show how binding controls directly to the View Model methods can simplify development of XAML UI, and completely eliminate manual work with Commands.
BindingHub is the best thing since sliced bread. After you finish reading this article, you will start wondering how you could survive for so long without BindingHub. I did wonder the same thing after creating it.
Developers need the best cross-platform framework that can produce highly flexible, customizable apps with great performance, and high code reusability, that allow them to build cross platforms apps in a loosely-coupled manner. The answer is here: Crosslight.
Learn how to build the body part of your DataGrid using Silverlight and the GOA Toolkit. Implement Virtual Mode, work with hierarchical data, and build cells and cells navigation.
This article provides a quick tour of the ImageGear for Silverlight toolkit from Accusoft Pegasus, while developing a multi-page image viewer that runs completely on the client via managed code.
This article will provide a quick tour of the ImageGear for Silverlight toolkit while developing a multi-page image viewer, running completely on the client, via managed code. Once the viewer is built, it will be ready for deployment to the Windows Azure Cloud via an Azure Cloud Service project.
A fun Xamarin Forms implementation of the game Sokoban, demonstrating how to port a UWP puzzle game to both Android and iOS while sharing nearly all code across platforms.
This article presents a flexible and practical reusable control that is essential to modular Silverlight applications. It helps to improve a large Silverlight application's composite structure and run time performance.
This article shows how to create a Tic Tac Toe game in C++ using different technologies such as Win32 and WinRT to prove that writing code in C++ is as fun and productive as in other programming languages.
Calcium provides much of what one needs to rapidly build a multifaceted and sophisticated modular application. Includes a host of modules and services, and an infrastructure that is ready to use in your next application.
Calcium provides much of what one needs to rapidly build a multifaceted and sophisticated modular application. Includes a host of modules and services, and an infrastructure that is ready to use in your next application.
This article tries to explain why you should use Catel as the (or one of the) frameworks when developing WPF, Silverlight, and Windows Phone 7 applications.
Character Map is a free utility found in Windows Machines. It is similar to the "Insert Symbol" tool in few MS Office applications. This article explains how to implement this tool using WPF.
A customizable log provider system that allows you to harness your existing logging system to log client side messages to your server. Includes a Silverlight interface and Log Viewer.
A customizable log provider system that allows you to harness your existing logging system to log client side messages to your server using WCF. Includes WPF sample applications.
Discusses a simple and testable way to bind Commands inside DataTemplates (Parent-Child scenario) in any WPF or Silverlight application built with the MVVM design pattern
Organize your DelegateCommands hierarchical in one Viewmodel-Object - A Style generates a proper Menu from that. You also can set individual CommandBindings, to Buttons or MenuItems.
In this series of articles, we will learn about Prism Framework by creating a demo Composite WPF application. We will learn how to use various components of Prism to build a Composite application by mocking practical organization level scenario.
This is second part of the article series with a demo WPF application using Prism and MVVM. In this part we will enhance the demo by adding common infrastructures and five modules.
This article describes a new approach by which an element can remove its visual and logical relationships to its children while maintaining a conceptual parental relationship with those children.
A Desktop and Silverlight user action management system, with undo, redo, and repeat. Allowing actions to be monitored, and grouped according to a context (such as a UI control), executed sequentially or in parallel, and even to be rolled back on failure.
A Desktop and Silverlight user action management system, with undo, redo, and repeat; allowing actions to be monitored, and grouped according to a context (such as a UI control), executed sequentially or in parallel, and even to be rolled back on failure.
Here is the solution to Conway's Game Of Life problem - Enjoy it , have fun ;) . Dead cells are in Red, Alive cells are in Green and Empty cells are in White. You can modify the colours as per your need.
This article demonstrates building a web based interactive chart and is my attempt to assimilate some of the recent updates and best practices that have emerged with Visual Studio 2010 and .NET Framework 4 into my software lexicon.
Often, when WPF developers have to write a custom window, they find themselves drowning in countless articles, blog posts, and StackOverflow threads each depicting a different approach to the problem.
This article demonstrates how to write a domain service factory to host plain old class object (POCO) entities and use them through RIA Services in Silverlight version 4.
In WPF, custom controls should be look-less. That means, that business logic and UI are strongly separated. When you create a control, you can provide a default template for the control, but anyone who uses the control can override it without touching the business logic.
Create, read, update, delete,Log in and Log out, (CRUD) operations are easy to perform in ASP.NET MVC. By using the default T4 scaffolding templates and strongly-typed views you can quickly build a web application that can create, update, and delete records.
This article is about implementing a simple Currency Converter Application using Windows Presentation Foundation (WPF) and Windows Communication Foundation (WCF) technology.
This article is the third in the series that describes a set of gauge controls for WP7. This article focuses on the implementation of the indicators used with the gauges.
Custom Rule Engine approach which can evaluate complex combinations of business rules. A sample application is provided in WPF following the MVVM pattern.
This article will definitely help you. Here, I will show you how to modify the XAML to add different content to create a multi level row group header too.
Control featuring design and animations specialized for mobile, but can be elegantly and structurally implemented using ListBox and Animation technologies available in WPF.
In this article, I will guide you through the steps of customization with the help of a sample application. We will need Microsoft Expression Blend for the full customization. Read the complete article to learn about it.
This article summarizes two utility classes used for data and command bindings in Silverlight MVVM applications and demonstrates how to use the two classes with a running example.
The storage APIs available to UWP applications are a little different than those in other .Net environments. This article will introduce you to the storage concepts specific to UWP with examples of how to use many of them.
This article will show how to use data binding and styles to show data coming from a Microsoft SQL database using the new object-relational model introduced in Visual Studio 2008, LINQ to SQL, allowing grouping, sorting and filtering of data with almost no code.
Read the complete article to know more about it and gather knowledge on the debugging feature with a simple code walkthrough. At the end, don't hesitate to leave your feedback. Appreciate your Vote.
In this article, we will learn about DelegateCommand and CompositeCommand provided by Prism Framework. To grasp the concept, we will create a simple demo with minimum functionality to highlight these concepts.
This article aims to supply a need for more detailed information on how to deploy a Windows Runtime component project as a Visual Studio Extension SDK.
This article shows you how to bring revolutionary UI provided by MS Silverlight to the world of ASP.NET control development with the help of the recently released ASP.NET 3.5 Extensions CTP.
Digital meter control is a custom control in WPF which can be used as a real time monitor for showing a decimal value in a formatted way with a nice animation.
Presents a helper class to easily display user-friendly enum value representations including customizable and localizable text, images, and arbitrary XAML content. This class can also be used as a general XAML switch statement for enum and non-enum classes.
The goal of this tutorial is to walk you through creating a simple Silverlight module in DotNetNuke that authenticates the currently logged in user through a web service.
Describes a technique for updating styles for multiple windows at once dynamically based on a property setting. This technique uses data triggers. It is demonstrated by creating two windows that support a day and night mode.
Engineering Calculator VOLTA-814 (Productivity Software contest submission) was originally developed as HTML5 web application and later converted into desktop app using Intel’s AppUp encapsulator. The latest version for Win 7/8 released in 2014 is built on .NET/WPF.
This chapter will lay out some of the basic principles of WPF and walk through a quick overview of the entire platform. You can think of this chapter as a preview of the rest of the book.
An introduction to Silverlight, the promising alternative to Flash, which enables the creation of rich web content and applications using a lightweight add-on that is friendly to both designers and developers.
This article introduces the .NET 2.0 Framework facilities — partial types, generics, nullable value types, the Lightweight Transaction Manager, and Role Providers — to better understand how to work with Windows Presentation Foundation.
This article shows how to create a custom control that extends an existing WPF control. It extends the WPF Calendar control by adding date highlighting.
In this article I will guide you creating a File Explorer in Silverlight 4. This step-by-step guide will help yoou understanding the API call and how to access local files, folders and drives using the Silverlight 4 COM APIs.
In this article, we will see how this PagedCollectionView will help us to filter out the records based on the search keyword. Not much code but the trick done with the same class will do everything for us in some easy way. We will learn about this here in this article.
This article demonstrates a very simple technique which can be used to easliy modify the standard Windows Presentation Foundation controls without creating an extended class or using a data template.
Reviews the “From Russia with Love” technique of simplifying the creation of ViewModel objects from other libraries, without compromising your MVVM architecture
This article introduces The Genesis Smart Client Framework v2.0 (Project Ruby). It focusses on the user interface component, dubbed the User Experience Platform (UXP), developed using PRISM for WPF and Silverlight.
Geolocation is one of the most frequently used functionality within mobile and beyond, with it we can retrieve the location and information about the place where.
Now that Windows 8 and Visual Studio are in RTM I wanted to put together a quick entry for those Windows Phone developers making the transition to Windows 8 development with their MVVM Light skills.
Do you work with Silverlight DataGrid and want to group your records inside the DataGrid in a proper manner? If so, this article is for you. Here we will learn about data grouping inside a DataGrid.
Create compelling, high-end Business Intelligence solutions with the new WPF 4 data visualization controls released as part of Infragistics NetAdvantage for WPF Data Visualization 2010 Volume 2.
Explore the fast and highly customizable UI controls in Infragistics NetAdvantage for WPF Line of Business from the perspective of a Microsoft Expression Blend user. In revealing much of the data grid’s object model, I cover some of the more popular ways to format and style grids in Blend.
IIS rejects files with unknown type and ISP providers may not have updated their servers with the XAML MIME type. This article suggests a workaround to host XAML files.
In this article, I will guide you through creating a UI Wrapper Library for the installation experience of your Silverlight Out-of-Browser application.
With minimal effort you can use LEADTOOLS V17 to load and save over 100 file formats, manipulate images with advanced image processing, and implement annotations directly within a Silverlight client application replacing the need for calls to an external server.
In this article, I will show you how to create an Drag and Drop ListBox using the Silverlight 4 ToolKit. Here you will learn how to drag and drop between two ListBoxes as well as in the same ListBox.
Silverlight BusyIndicator is not a new thing in Silverlight. It was first added in Silverlight 3 Toolkit in November 2009 release (if I am not wrong). In this post, I will describe about this for those who want to know about it.
The mystery of Benham’s top invented in 1895, as well as Fechner color effect, remains not fully uncovered so far. WPF and XAML help to accelerate the research greatly.
The advanced WinRT imaging technology in LEADTOOLS will include everything developers need to build imaging enabled Windows Store applications including support for loading and saving over 100 file formats, PDF and PDF/A, touch screen enabled viewer controls, annotations and image processing.
How to add a Firefox-like incremental search to WPF applications using the M-V-VM pattern. The search is performed directly on a CollectionView, so it can be used with any WPF items control.
Create a WPF 3D Bar chart in your .NET application easily. You can create interactive 3D bar charts in seconds using this WPF 3D bar chart custom control. You can even databind your input to see the '3D chart bar change live as you enter your input' effect.
Interop Forms Toolkit 2.0 is a new bridging tool allowing developers to use .NET Forms and .NET UserControls in VB6. This tutorial demonstrates how to add webservices, multithreading, and XAML to VB6 projects. It also provides custom C# Interop UserControl templates for use with the Toolkit.
Get analytical processing features similar to Microsoft Excel Pivot tables and charts with ComponentOne OLAP for Silverlight. This suite of Microsoft® Silverlight® controls allow developers to deliver the same Excel-like functionality into their apps, and deliver powerful data analysis capabilities
Make your life easier by inserting a Presentation Model layer (aka ViewModel) between your domain-model collection contents and template-generated WPF objects.
TV Screen in the Reception, When nothing happens (no one is in the reception) we can display videos on the screen but when someone enters the frame show him the Kinect Image, and if the user is doing something funny, capture his image and save it.
Legion is a grid computing framework that uses the Silverlight CLR to execute user definable tasks. It provides grid-wide thread-safe operations for web clients. Client performance metrics, such as bandwidth and processor speed, may be used to tailor jobs. Also includes a WPF Manager application.
Presents methods to handle some of the trickier aspects of MVVM, including error message localization, multi-control validation, validation with multiple instances of a View, and whole-View validation.
This article explorers how to use WPF’s document viewing and printing classes to inspect, scale, and output mail merge letters produced from a XAML based template.
This article describes a design, implementation and tooling of model driven WorkflowServices logically centralized in the Repository and physically decentralized for their runtime projecting.
Learn how you can migrate an application away from Silverlight and into HTML5/JavaScript in this new white paper. In the paper, Bernardo de Castilho takes a simple Silverlight application and walks through, step-by-step, porting the ViewModel and the View into an AngularJS application.
This article will compare and contrast the MVC, MVP, and MVVM, and suggest which pattern to use based on your technology of choice and the problem that you are trying to solve.
An application used to manage applications which are categorized by functionality which also prioritizes tasks necessary to manage a household. The application is back-end managed, controlled and operated through Microsoft's Azure cloud platform.
This article explains the creation of a Music Video Box using Windows Presentation Foundation 3D Geometry and Media classes to play music albums as chosen by the user.
Navigation in MVVM applications. Combined with navigation through DataTemplates, navigation through NavigationService provides a richer toolkit for WPF developers. I think it would be useful to utilize NavigationService, since the development of WPF applications then becomes similar to web developme
ObservableCollection attaches to the PropertyChanged events of its children and raises the ChildPropertyChanged event accordingly. Very useful when you need to update / select / arrange / move items.
This post describes a simple and easy way to change the current behavior of your Silverlight or WPF ComboBox by using an attached property and a ComboBox style.
Do you have a huge collection of data inside your DataGrid and want to integrate Pagination to show records page by page and don’t know how to do? Then this article will help you to understand the same.
Here I am presenting you how can you paste date time in photo. This article will be helpful to those devs who want to add CamaraCaptureUI in their apps.
This article is about the windows 8 metro style tour and travel app that use ultrabook features with ease of usability.The app is on its way to publish.
This article demonstrates how to generate plain old class objects (POCO) from the Entity Framework v4 (EF4) and use them through RIA Services in SilverLight version 4.
The project is a simple Temperature Converter WPF Application which will allow user to convert from Celsius to Fahrenheit and vice versa. The objective however is to demonstrate techniques that are important when building large-scale front-end enterprise software.
We all use icons everyday, but how do you design the icons in your application user interface to be user-friendly and professional-looking? In this article, I talked with Jose Salvador at Infragistics, and he shares quality pointers every icon designer should be aware of.
In this article we will learn about ReactiveProperty and ReactiveCommand from ReactiveProperty.NET4 library. These are used to create Reactive properties and commands in XAML base applications while working with MVVM pattern.
This article is for beginners about writing and reading Unicode data from different data sources; including text files, user input, databases. It also demonstrates how to display that data in .NET applications, including ASP.NET web applications.
Reminder: simple Windows Store App. In this App I try to use some specific features for Windows 8 app. As result - i got good experience and now i want to show what was done.
The core idea behind this code and article is to provide an uncomplicated approach to reset a view-model without having to adjust DataContext references in views.
Easily add advanced navigation to Line of Business apps with UI controls designed especially for the new navigation features in Microsoft Silverlight 3.
Browser control plays an important role in hybrid application development, when browser controls are used for a prolonged time its memory foot print starts to increase gradually. This article explains a way to host the browser control in a separate process which can be loaded/unloaded as needed.
The following is an example of an interesting way to integrate Silverlight and ASP.NET AJAX. The idea is to periodically pull information via ASP.NET AJAX, which is queued up and retrieved by Silverlight.
The article explain Server side image rendering using data bound XAML. You'll be able to render WPF controls and create data-bound image visualizations using this technique
Put image of products on the Canvas and drag and drop them to get them added to the cart. And use animation to sort them by id and price and recommend.
Silverlight 4 has the power to talk with any other application using the COM API. After reading this article, you will be able to pin/unpin any Windows application to your Windows 7 taskbar directly from your Silverlight 4 out-of-browser application.
Silverlight 4 Beta 1 has been released by Microsoft on 18th November 2009. Among the new features, I will demonstrate one of them “Accessing Default Webcam using Silverlight 4”.
In this article, I will guide you to create a simple customized OOB Window Application in Silverlight 4 RC. After the end of this tutorial, you will be able to create a Customized OOB Window in Silverlight 4.
Silverlight 4 has the feature to talk with Excel or any other application using the COM API. In this article, I will guide you to understand this feature step-by-step.
Silverlight 4 now supports printing functionality using the Printing APIs. Using the APIs, you can now print your whole application screen or a portion of the application. Also, you can customize the look while you printing your part/full application. In this post, I will step you guys to the depth.
A fun Silverlight implementation of the game Sokoban. Contrasting Silverlight 1.1 and WPF, while showcasing some new features of C# 3.0, Expression Design, Expression Blend, and Visual Studio 2008.
A set of Silverlight Experimental Hacks (1) A custom implementation of EventTrigger and PropertyTrigger (2) Invoking methods in your view model in MVVM (3) Conditionally invoking triggers and behaviors (4) ReactiveTrigger for exporting your custom events
Want to get rid of messy "PropertyChanged"-subscriptions and too many OnPropertyChanged("...") to manage value relations? Then DataBinder is what you're looking for!
This article presents the techniques and caveats of building Silverlight business applications. It describes breaking down applications into tiers, implementing a data access in N-tier applications, implementing a custom authentication, adding a support of https to Ria Services applications.
A quite simple notifier (a MessageBox substitute) to get a better message representation of messages in an executable. The idea is to get a solution similar to the "Toast", from Android, where the notifications are not invasive.It works for Windows Form and WPF.
Shows how to allow sorting of controls (e.g. a Listview) that are bound to an ObservableCollection using the MVVM (model, view, view model) pattern and the sorting takes place in the view model.
In the present article we'll see how to develop a simple Android solution, through the use of Visual Studio e Xamarin, the developer framework which allows the creation of cross-platform solutions.
Explore your data using statistical distributions: explore, initialize, create, estimate and use statistical distributions from the Accord.NET Framework using an application based entirely on reflection.
ImplicitDataTemplate is a new feature in Silverlight 5. Using ImplicitDataTemplate, you can declare multiple Data Templates for your control and based on the data type, you can load the proper data template automatically. In this article, we will discuss on the same step by step with a good example.
A simple solution that somehow mimics the real world application, changing it several times, using different UI technlogies and keeping the specific logic the same
In this article, I will demonstrate in a step-by-step manner how we can create a Text-to-Speech application using the COM APIs in Silverlight 4. Read it. Learn and Vote for this Article. Feedback and/or Suggestions are most welcome.
As explained in the previous article, the geolocation is one of the most frequently used features in the mobile and beyond, with it we are able to retrieve the location and information about the place in which we find ourselves, and used by an application to have other information, such as restauran
As explained in the previous article, the geolocation is one of the most frequently used features in the mobile and beyond, with it we are able to retrieve the location and information about the place in which we find ourselves, and used by an application to have otherinformation, such as restaurant
My Health Assistant is an app that helps individuals manage and track their medication use through a simple interface. The app also features a health diary, a GPS-based pharmacy and ER locator, and personal health information.
The Companion App: Its basically a utility app proposed for ultrabook which consists of the likes of a search tool, a geo location browsing tool and a language translator tool.
The second article in a series devoted to a WPF application that plays streaming audio podcasts off the Internet. This article discusses the idea and implementation of look-less applications.
The third article in a series devoted to a WPF application that plays streaming audio podcasts off the Internet. This article discusses the solution to a problem related to structural skinning.
This article gives details of the top 5 reasons that applications fail to pass the certification process in the Windows phone market place and few tips on how to avoid those pitfalls
This article will show you how to implement a class that will provide type conversion for another class. In this particular case will be providing conversion to and from a string.
In this article, I will show you how to fire Triggers to call some methods present in your ViewModel, instead of writing in the code behind file. Read more to learn about it.
Create a Xamarin Forms tabbed page or carousel page by binding to a collection of ViewModels; extending beyond the current capabilities of Xamarin Forms.
This article describes a design, implementation and usage of the custom service operation invoker for invoking a xaml workflow. It is based on the upcoming Microsoft .NET 4 Technology.
Reviews a WPF application that displays an object graph which can be rearranged by the user at runtime, and highlights circular dependencies in its nodes.
A Behaviour for windows universal plaform to force the WrapGrid itemscontrol of a List/GridView to dynamically change the width of childitems so as to fill the entire row space.
In this article, I'll walk you through using the built-in Validation classes that exist in Windows Presentation Foundation. I'll then discuss an alternative approach to validation that might suit a richer domain layer, by creating a custom WPF ErrorProvider.
See the new Ribbon Designer in Visual Studio 2008 allowing you to graphically create ribbons for your Office add-ins. Add images from the Yahoo Image Search API and analyse the content of your document
A tutorial explaining how to develop the "Turnstile" animation as featured in the Windows Phone 7 UI, along with an easy-to-use ItemsControl that applies the effect to its items.
This article describes how a Windows Azure BizTalk Service Bridge pipeline can be extended for message mediation by Workflow (VETER + WORKFLOW Pattern).
In this article, I am going to describe all the APIs of Masked TextBox control and the ways to use it to mask your input. Hope this will help you to understand the control in depth.
Silverlight 5 Beta has been announced with newly added feature called ClickCount. It's a property added to the MouseButtonEventArgs. Using this, you will be able to find out how many multiple clicks happened by the user.
Here in this article, we will learn how to use Telerik BusyIndicator control in your Windows Phone 7 and let the user know that some operations are going on in the background.
Exploring Windows Presentation Foundation 3D capabilities and building a sample application with a couple of cool features such as zooming and 3D rotation