Project Description

Blake.NUI is a collection of helpful controls, utilities, and samples useful for multi-touch and NUI development with WPF 4 and Surface. Much of this code was used in samples in my book, Natural User Interfaces in .NET.

Blake.NUI currently is focused on WPF 4 multi-touch development, including both Win7 Touch and Microsoft Surface. This scope may expand in the future as I create useful and interesting reusable components.


Blake.NUI contains several different types of components.

Getting started

Head over to the Source Code tab, click the latest changeset, and download the source code. I would recommend just referencing the binaries from the /bin folder, but if you want to you can add the actual projects to your solution.


Natural User Interfaces in .NET coverI want to get this library out there and not restrict how it can be used, so I'm making it available under the MS-PL. You should read the license, but basically it means you can do whatever you want with the code, including make modifications and use it in commercial products.

I would request to every developer that uses Blake.NUI, especially for commercial projects, please buy my book, Natural User Interfaces in .NET. Feel free to try out the library first, of course. I'm not making any money from open-sourcing this library, so buying my book is the best way to show support. If you buy it after clicking the link above, I'll get a few extra dollars.

There is no way for me to enforce this, of course, so I consider it the honor system if you find Blake.NUI useful. If you have already bought a copy, thank you! Please recommend it to a friend or colleague.


Provide feedback about the library. You post on the discussion tab or email me (joshblake at gmail dotcom) to let me what you like and what you don't like and what kind of project you're using it for.


All of the code should be considered alpha status. I'm still refactoring certain parts as I use this library in my book and in other projects. At this point in time, I will make no attempt to avoid breaking changes. If you use the library, you may need to make updates to your code if you update to a newer version. I will commit to documenting changes as I go, so that users can keep up. I'll update this status in the future as the library stabilizes.

There is also no formal documentation aside from links from this wiki and the discussion forum. I will be working on documentation as the code refactoring settles down. If you want to see this library in action, then you should check out my book.

Last edited Jan 20, 2011 at 8:13 AM by JoshB, version 12