This document introduces Windows Presentation Foundation (WPF) and the Model-View-ViewModel (MVVM) pattern. It discusses how WPF uses XAML and DirectX for 2D/3D rendering and animation. It also explains how MVVM separates user interface logic from application logic and data models. Finally, it describes how WPF and MVVM can be combined to create maintainable, testable applications using data binding and commands to connect views to view models.