Recent Projects Rollup

A few things I’ve worked on or written have gone up in the past couple of months, so here’s a quick list of what they are and where you can get them:

Kinect Service v1.6

Download

The Coding4Fun Kinect Service allows you to stream Kinect color, depth, skeleton, and audio from one PC to another PC or a Windows Phone via sockets. This new release now includes Windows Runtime Components written in C++ which target x86, x64 and ARM. Now you can stream Kinect data to a Windows Store app!

Maelstrom

eb2a8836-cf09-473e-a2a4-25640aaf5781

For //build/ 2012, us Coding4Fun folks wanted to showcase what Windows 8 can offer developers. There are a lot of projects showing off great things like contracts and Live Tiles, but we wanted to show off some of the lesser known features. This project focuses on one of those: stereoscopic 3D with DirectX 11.1. Imagine ridiculously over-engineered 3D pong, and that’s Maelstrom!

MJPEG Decoder v1.2

The latest release of my …

Read More

TechEd North America 2012

I'm off to TechEd North America later this week where we'll be showing off the Project Detroit car and our BoxingBots project previously demonstrated at SXSW in March. 

09615539-1a33-49f7-b438-ca1b9543d712 IMG_0296[5] 

Dan Fernandez and I will also be giving a talk on Kinect goodness.  Here are the details:

Coding4Fun: Build Fun, Cool, Commercial Applications Using the Kinect for Windows SDK

Session Code: DEV330
Speaker(s): Brian Peek, Dan Fernandez
Tuesday, June 12 at 5:00 PM - 6:15 PM in S320A

Come to this must-see session to find out how you can use the Kinect for Windows SDK to build commercial applications! Learn how the RGB and depth cameras work, how to use and fine-tune skeletal tracking, how to read an audio stream from the Kinect microphone array and even how to send Kinect data over the network including to your Windows Phone

This same session will be given at TechEd Europe in two weeks, with Clint Rutkas playing the part of me.  I will not be at the Europe conference.

So, if you're attending …

Read More

Joining the Mothership

imageAt long last I have accepted a full-time position at Microsoft, working on the Channel 9 team, mainly doing Coding4Fun stuffs.  I'll be telecommuting from NY as I have been these past 8 years.  It's hard for me to believe that I've been doing Coding4Fun articles and projects for the team since 2006, but I'm excited that I now get to do it full-time.

Also joining the team is master UX-man Rick Barraza.  He brings a pile of amazing talent and skill that will really allow us to create some fantastic projects.  And, of course, we're joining the existing team of Dan Fernandez and Clint Rutkas, with Greg Duncan heading up the Coding4Fun blog and Kinect Project blog.

Also note that Coding4Fun is looking for a junior developer/program manager.  So, if you want to join the team, now's your chance!

Anyway, I'm very excited to be joining Microsoft, and I'm really looking forward to seeing what we can crank out as a team…

Read More

Kinect for Windows SDK is here!

image

Hooray!  I can finally talk about this!  As I've alluded to previously, I had a hand (one of many) in the managed portion of the SDK and what was originally shown at MIX. Since then the SDK has changed a bit but it's finally ready to go!

The Kinect for Windows SDK is now available for download on the Microsoft Research site.  We have also launched several samples over at Coding4Fun that you can begin using immediately:

Coding4Fun Kinect Toolkit

You definitely want to download this one when you get started.  This toolkit contains a variety of extension methods and controls to make using the Kinect for Windows SDK even easier to use.  Some of my code appears in this one.  Smile

Kinect Mouse Cursor

This sample is entirely mine.  Kinect Mouse Cursor is a demo application that uses the Kinect for Windows SDK and its skeletal tracking features to allow a user to use their hands to control the Windows mouse cursor.  Use your right hand to move the …

Read More

MJPEG Decoder v1.1

A quick update to my Motion JPEG Decoder is now available at CodePlex.  Version 1.1 adds the ability to specify username/password credentials for cameras that require a login.  For example:

MjpegDecoder _mjpeg;

_mjpeg = new MjpegDecoder();
_mjpeg.FrameReady += mjpeg_FrameReady;

_mjpeg.ParseStream(new Uri("http://192.168.2.200/img/video.mjpeg"), "user", "password");

As always, questions/comments welcome.  Enjoy!

Read More

MIX11

imageIt's almost time for another MIX conference! Once again I'll be there with the Coding4Fun crew showing off some spiffy new projects for attendees to play around with, along with a few other surprises. I'll also be taking part in John Papa's Open Source Fest on Monday evening, demonstrating WiimoteLib and my MJPEG Decoder.

Anyone else heading to the conference? If you are, be sure to stop by the Coding4Fun area in the Connect Lounge and say hello, and stop by the Open Source Fest on Monday night to take a look at over 50 great open source projects and vote for your favorites. I'd say I'd trade drinks for votes, but those are free, too.

And finally, if anyone attending is working on a fun or interesting project and would like to do an interview for my Coding4Fun Show on Channel 9, please let me know.  Almost anything goes, so I'd love to see what everyone out there is working on.

Hope to see you there!

Read More

MJPEG Decoder

209653324My latest article and library is now live on the brand new Coding4Fun site, now on Channel 9, and over at CodePlex.  This project allows you to very easily decode a MJPEG (Motion JPEG) stream from a network camera (or any other source) into a consumable type for WinForms, WPF, Silverlight, XNA and Windows Phone 7 (both Silverlight and XNA).

The MJPEG Decoder library started life as a project for the t-shirt cannon built for the MIX10 keynote.  The original plan was to have an IP camera attached to the robot for a real-time video stream from the bot's perspective, but the feature wound up being cut for time, and due to some issues rendering the video on the very early Windows Phone 7 tools.  The library has been sitting around a while, has gone through several rewrites and now supports almost every platform I can think of.  With the new Coding4Fun up and running, it was time to polish it off and get it posted.

Take a look at the article, download the binaries and …

Read More

Visual Studio Live! Orlando 2010

Update: Slides and source for my sessions are posted over on my Events page.  Have a look!  Thanks to everyone that came to my sessions!  Comments and critiques are welcome.

imageI have been selected to speak at the Visual Studio Live! conference in Orlando.  In addition to presenting two sessions at the conference, I’m also coordinating a special event on Tuesday night which we’re calling Devopalozza.  I have created and will host a team Jeopardy! style game-show which will pit three teams of speakers and attendees against each other for fabulous prizes.  I previously created the hardware and software for the Visual Studio Live Redmond conference, which turned into an article on Coding4Fun for those that might want to create a game-show at home or the office.

The two sessions I’m presenting are:

M15 What's New in Visual Studio 2010 Debugging
Date: Monday, November 15, 2010 
Time:  3:00 PM – 4:15 PM
Level: Intermediate

Visual …

Read More

TweeVo v1.1 Released!

A new version of TweeVo is finally available.  This version allows the program to work once again now that Twitter has switched over to a mandatory OAuth/xAuth authentication scheme.  Chris Miller deserves all the credit for this one for handling the implementation of the new security scheme with some sample code from Shannon Whitley.  You can find downloads over on the original TweeVo page.  Give it a try and let me know if you run into any issues making it go.  Enjoy!

Read More

ThinkGearNET 1.1

imageI released version 1.1 of ThinkGearNET over at CodePlex last week.  ThinkGearNET is a library that allows developers to easily use the Neurosky MindSet device with .NET.  This version now matches Neurosky’s latest SDK and supports eye blink detection.  Nothing else has changed.  If anyone has used a prior version of the library, please give the new version a try and let me know if you have any problems.  Thanks!

Read More

VSLive Devapalooza and Jeopardy on Coding4Fun

imageTonight I hosted the Devapalooza event for Visual Studio Live in Redmond.  For the event, we played a Jeopardy-like game using software and hardware I created.  You can find an article on how the software was created, how to build the hardware, and full source/binary downloads over at Coding4Fun and CodePlex  This can be a fun way to host training at your office, or a way to liven up a user group.

A huge thanks to Dan Waters and Clemens Vasters from Microsoft, VSLive speakers Rocky Lhotka, Deborah Kurata, and David Platt, and our three attendees who played the game.  I think it was a great time.  Hopefully you did too if you were in attendance.

After playing the game tonight for real, I have a few ways to fix up the software and make it a bit easier to use, especially on the scoring side.  Also note that the code isn’t the best example of great coding.  With this being a side project and the deadline looming, I took a few dirty shortcuts.  But, …

Read More

VSLive! Redmond 2010

n190107439474_2070I have been selected to speak at this year’s VSLive! conference on the Microsoft Campus in Redmond.  I’m very excited about this conference for a couple of reasons.  First, it’s on campus, which will allow me to get together with my Coding4Fun/Channel 9  friends to do some planning.  Secondly, VSLive! attendees are also allowed to spend some of their own cash at the Microsoft store.  And finally, in addition to presenting two sessions at the conference, I’m also coordinating a special event on Wednesday night which we’re calling Devopalozza.  I am creating a team Jeopardy! style game-show which will pit Microsoft Speakers against VSLive! Speakers against VSLive! Attendees.  I’m currently creating both hardware and software to drive the game, which will later turn into an article on Coding4Fun for those that might want to create a game-show at home or the office.  And, I’ll even be hosting the show at the event.

The two sessions I’m presenting …

Read More

The Coding4Fun Show – Ep 5 with Josh Blake

The fifth episode of my Coding4Fun Show, is now up on Channel 9.  In this episode of the Coding4Fun Show, I chat with Josh Blake about Natural User Interfaces and Multitouch programming with .NET.  Josh has written a multitouch PowerPoint replacement called NaturalShow, which was demonstrated during his NUI session at MIX10. Watch and learn a bit about how this application was created as well as how you can write multitouch applications with WPF.  And for even more multitouch programming goodness and more on NaturalShow, Josh is currently working on a book titled Multitouch on Windows, which can be purchased and read while he's writing it!

    You should see the video below if you have Silverlight installed, otherwise head over to the episode on Channel 9 to watch and download in a variety of formats for offline viewing.


    The Coding4Fun Show: Natural User Interfaces with Josh Blake

    A big thanks to Josh for the interview!

    Read More

    WiimoteLib Future

    image I’ve been working on a version 2.0 of WiimoteLib which reorganizes the library quite a bit to clean up the codebase.  It’s not quite ready for release, and I don’t have an ETA currently, but I wanted to note some of the changes and get some feedback as I finish things up.

    • I will be including a VS2010 solution for the project in addition to the original VS2008 solution
    • I’m hoping to have support for both sound and the WiiMotion Plus extension completed
    • Support for the Taiko Drum and DJ Hero turntable (testers welcome for the DJ Hero turntable)
    • Extensions have been broken out into separate classes so their code is self contained:
      • image
      • All extensions inherit from ExtensionController
      • All state objects for extensions implement the IExtensionState interface
      • Here’s an example of the new Nunchuk class.  As you can see, everything related to the Nunchuk is located in this class:
      • using System; …
    Read More

    ThinkGearNET Library

    mindset I have written and posted a new library that allows .NET developers to easily connect to and use the Neurosky MindSet headset from any .NET application.  You can find the source code and a binary of the library at CodePlex.  Usage is very simple and may seem familiar to those that have used my .NET Wiimote LIbrary; set a reference to the library and you can connect to a headset as follows:

    private ThinkGearWrapper _thinkGearWrapper = new ThinkGearWrapper();
     
    private void Connect()
    {
        _thinkGearWrapper = new ThinkGearWrapper();
        
        // setup the event
        _thinkGearWrapper.ThinkGearChanged += _thinkGearWrapper_ThinkGearChanged;
        
        // connect to the device on the specified COM port at 57600 baud
        _thinkGearWrapper.Connect("COM4", 57600, true);
    }
     
    void _thinkGearWrapper_ThinkGearChanged(object sender, ThinkGearChangedEventArgs e)
    {
        // write out one of the many properties
        Debug.WriteLine("Attention: " + e.ThinkGearState.Attention;
    }
    

    The …

    Read More

    MindBlaster Article Posted

    mindblaster My latest Coding4Fun article on the creation of my game MindBlaster is now available!  This is a game I wrote using XNA Game Studio 3.1 that combines a Nintendo Wiimote and a Neurosky MindSet headset to create a game you play entirely with your head.  If you were at PDC09 and stopped by the Coding4Fun area you may have seen it, or, if you’ll be at MIX10, please stop by the Coding4Fun area and see this and 3 or 4 more even better projects by Coding4Fun authors.

    Links

    Read More

    MIX10, Coding4Fun Show, and You!

    c9logo I will be at MIX10 showing off MindBlaster once again.  More on that shortly…

    But, more importantly, are you going to MIX10?  Do you have a fun or interesting project you’d like to talk about?  Let me know!  I’m looking for people to interview for the Coding4Fun Show.  I’m always interested in talking to people who want to chat about what they’re working on, even if it’s just a hobby or something that’s incomplete.  That’s what Coding4Fun is all about!  So please, if you’ll be at the MIX, have a few minutes to chat, and want to be the envy of your friends, contact me!

    Read More

    TweeVo

    10/28/13: TweeVo 1.4 Released!

    This should fix up things with the latest Twitter API changes…again…

    11/19/12: TweeVo 1.3 Released!

    This should fix up things with the latest Twitter API changes…

    12/8/10: TweeVo 1.2 Released!

    TweeVo 1.2 has been released which now works with some modifications Twitter made to OAuth around 11/30. A huge thanks to Chris Miller and for doing the heavy lifting on this one and implementing the fix. The binary and source code are updated and can be found at the links below. Let me know if you run into any trouble with this new version.

    10/14/10: TweeVo 1.1 Released!

    TweeVo 1.1 has been released which now works with Twitter’s mandatory OAuth authentication scheme. A huge thanks to Chris Miller, Conrad, and Mark Zaugg for testing the changes. The binary and source code are updated and can be found at the links below. Let me know if you run into any trouble with this new version.

    TweeVo, my latest article and application, is now up at …

    Read More

    Coding4Fun at PDC Video Recap

    c9logo It looks like all of the Coding4Fun videos pertaining to PDC09 have been posted along with most (all?) of the Channel 9 Live videos.  For those interested in the Coding4Fun recap vids, have a look…

    Get Microsoft Silverlight
    Channel 9 Live at PDC09: Coding4Fun
    Clint Rutkas, Brian Peek and Tim Higgins with Scott Hanselman
    Recorded Live, November 19th 2009 at 11:00AM (PST)

    Get Microsoft Silverlight
    Coding4Fun at PDC 2009
    With our lab coats in hand, we brought Drinktendr, Mind Blaster, Laser graffiti, Wi-Fi Warthogs and finally Goblin XNA (augmented reality)!

    Read More

    PDC09, Coding4Fun, and Mind Blaster

    Another PDC is over and I’m happily relaxing before work starts again on Monday.  Lots of announcements, free laptops for attendees (not me, sadly), and plenty of time spent in our Coding4Fun area with my project.  We even had the opportunity to take part in a live broadcast on Channel 9!  The recording for that show should be available shortly.

    We had 5 fantastic projects in the Coding4Fun area this year:

    image
    Drinktendr by Clint Rutkas
    image
    Laser Graffiti by Jeremiah Morrill
    image
    Goblin XNA by Ohan Oda
    image
    Wi-Fi Warthogs by Tim Higgins

    And what was my big project this year?  A fun little game titled Mind Blaster, a space shoot ‘em up game played entirely with your head!

    Mind Blaster

    How does one do that? Well…

    This past July I found a brain-wave sensing headset from Neurosky called the MindSet.  They are now shipping headsets at $200 each and provide a free …

    Read More

    PDC 2009

    Before and AfterPDC 2009, starting November 17th, is almost upon us and I’ll be heading out to the conference once again with my Coding4Fun/Channel 9 playmates.  Anyone else heading out to the big show?

    We won’t be doing a Coding4Fun session like we did last year, but I will have another fun project for people to check out in the Coding4Fun area.  I can’t give out details until after the show begins, but you can probably guess there is a Wiimote in the mix somewhere.  And some spiffy new hardware.  And maybe some XNA.  Look for the details here after the show, and an article with full source code shortly thereafter.

    We also have 4 or 5 other developers with their latest and greatest projects, all of which are nothing short of incredible and put mine to shame.  I will likely be doing a compendium Coding4Fun Show with all of this year’s project authors so those not in attendance can see their incredible work.

    I will also be hosting a table during lunch on Monday, …

    Read More

    The Coding4Fun Show – Ep 4 with Jeremiah Morrill

    c9logo The fourth episode of my Coding4Fun Show, the second show live from Las Vegas, is now up on Channel 9.  In this episode I interview interview Jeremiah Morrill who has written WPF MediaKit, an amazing library to quickly build DirectShow and MediaFoundation media player controls in WPF.  It's amazingly powerful and, as a developer, can be used with just a few lines of XAML.  In fact, you can create a full-blown DVD player or webcam capture control in your application each with a single XAML tag!  Learn all about this great project, how it was written, and how to use it in your own creations.

      You should see the video below if you have Silverlight installed, otherwise head over to the episode on Channel 9 to watch and download in a variety of formats for offline viewing.


      The Coding4Fun Show: WPF MediaKit with Jeremiah Morrill

      A big thanks to Jeremiah for the interview!

      Read More

      The Coding4Fun Show – Ep 3 with Rick Barraza

      c9logo The third episode of my Coding4Fun Show, live from Las Vegas, is now up on Channel 9.  In this episode I interview Rick Barraza of Cynergy Systems, who has put together several very unique applications and accompanying tutorials demonstrating advanced rendering techniques using Silverlight 3.  During the show, we discuss Silverlight 3, UX design, and the three demos he has created showing off advanced rendering techniques.  For more on how these amazing demos were made, check out his (currently) three part series at his blog:

      You should see the video below if you have Silverlight installed, otherwise head over to the episode on Channel 9 to watch and download in a variety of formats for offline viewing.


      The Coding4Fun Show: Advanced Rendering with Silverlight, Rick Barraza

       

      A big thanks to Rick for taking a few minutes out of his vacation …

      Read More

      Anyone in Vegas for C4F Show Interview?

      logo Is there anyone in or around the Las Vegas area between September 7th and September 12th that would like to be my guest for an episode of the Coding4Fun Show?  I’ll be in the area for the week and would love to do an in-person show with anyone doing a cool project with Microsoft technologies.  If you’re interested, please contact me so we can set something up.  Maybe you’ll even get a free lunch out of it.  :)  Thanks!

      Read More

      The Coding4Fun Show – Ep 2 with Arian Kulp

      logo The second episode of my Coding4Fun Show is now up on Channel 9.  In this episode of the Coding4Fun Show, I interview Arian Kulp, creator of the MEF Utility Runner, a unified host for system tray utility applications.  Learn a bit about MEF and how it can be leveraged to create a plugin architecture for any application, as well as how it was used to create the MEF Utility runner, and how you can write your own plugins for this application.

      You should see the video below if you have Silverlight installed, otherwise head over to the episode on Channel 9 to watch and download in a variety of formats for offline viewing.


      The Coding4Fun Show: MEF Utility Runner with Arian Kulp

      Enjoy!

      Read More

      WiimoteLib 1.8 Beta 1 Posted

      image I have posted a new version of WiimoteLib as a beta for people to play around with the Wii MotionPlus accessory.  Please note that this is not a stable release and should only be used if you wish to mess around with the MotionPlus.  Also note that only C# source code is included in this release as it is not a final build.  Here’s the change log:

      v1.8.0.0

      • Taiko Drum Master's TaTaCon drum controller supported (Dean Herbert)
      • Bare-bones Wii MotionPlus support (wiibrew.org, testing by Tyler Tolley)
      • WiimoteTest UI changed to add MotionPlus data
        • Please note that the current version is VERY flakey and may not work at all for you.
        • Pair your Wiimote, plug in your MotionPlus, call InitializeMotionPlus()
        • Extensions plugged into the MotionPlus will give wacky results...not supported...yet!
        • Internal changes to perhaps fix some threading issues

      So remember, it’s a beta, it may not work for you, and the data you’ll get back from the accessory is …

      Read More

      Status of Wii MotionPlus Support for WiimoteLib

      Update: See this post for a beta release

      wii-motionplus Ok, I get about 10 emails a day on this, so I figure a status update is in order.

      The Wii MotionPlus extension for the Wiimote was released last week.  Since then, I and others have been working to figure out how the device works.  Unfortunately, it does NOT work as every other extension controller has worked up until this point, mostly due to the fact that the Wii MotionPlus accessory has an expansion port of its own so all of the other extension controllers can plug into it.

      In the past few days, some progress has been made thanks to the folks over at wiibrew.org, although functionality is nowhere near complete.  For example, it’s currently impossible to have the Wiimote notify you when the Wii MotionPlus is inserted into the bottom of the Wiimote, like all of the other extension controllers do.

      I have been working with the information at wiibrew.org and am trying to get things working reliably with my library so that …

      Read More

      The Coding4Fun Show – Ep 1 with Andy Beaulieu

      logo The very first episode of my new Coding4Fun Show is now up on Channel 9.  This is a show I plan on doing monthly, interviewing developers creating fun and interesting projects, and showcasing what they’re doing.

      In this first episode, I interview Andy Beaulieu and we discuss his Physics Helper for Silverlight, Blend, and Farseer.  You’ll learn a bit about how he made the library, and how you can use it in your own applications for some pretty cool effects.  You should see the video below if you have Silverlight installed, otherwise head over to the episode on Channel 9 to watch and download in a variety of formats for offline viewing.


      The Coding4Fun Show: Physics Helper for Silverlight by Andy Beaulieu

      Have a look and let me know what you think.  It’s my first time trying this out, so I’d love to hear your feedback.  Thanks!

      Read More

      Brian and Dan on .NET Rocks!

      image This week, Dan Fernandez and I had the opportunity to be on the .NET Rocks! show with Richard and Carl.  We spent some time chatting about our Coding4Fun book (available at fine booksellers everywhere!) and several extremely interesting projects Richard and Carl have created in the past, including an anthromoporphic remote-controlled car, and a parrot who enjoys extremely right-wing politics.  I think you’ll just need to listen to the show to understand what those are about…

      Read More

      WiimoteLib v1.7 Released

      image I have just put up the latest version of WiimoteLib at CodePlex.  The changes for this release are:

      v1.7.0.0

      • Writing registers is now properly waiting for the Wiimote to reply before continuing...this removes all of the Thread.Sleep() calls and should *greatly* improve performance when setting LEDs and rumble (Serial Nightmare & wwibrew.org)
      • Guitar Hero: World Tour Guitar and Drums now properly recognized and used (wiibrew.org, tested by Tyler Tolley and Mauro Milazzo)
      • Guitar whammy bar is now a 5-bit value instead of 4 (wiibrew.org)
      • Position of 4 IRs now properly reported in Basic reporting mode (Dan Carter)
      • Found1/2 now properly reported in MSRS (reported by akka243)
      • MSRS project updated to Microsoft Robotics Developer Studio 2008

      Please give this new version a try and let me know how it works for you, especially if you have one of the newly supported controllers.  And, as always, what features/bugs would you like to see added/fixed?  Please …

      Read More

      Hanselminutes Podcast

      image At the very last minute before Scott left for Africa, Dan Fernandez and I were able to do a quick episode of Hanselminutes to promote our book.  Have a listen to learn a bit more about our book, the projects it contains, how they were developed, and some issues we ran into when trying to use some technologies in a way they weren’t intended to be used.  Head over to the main site to stream the show in your browser or download in a variety of other formats.

      Read More

      Coding4Fun Book News and Preview

      9780596520748_catI received my first copy of the book on Friday afternoon and it looks great!  It is now also listed as “In Stock” on Amazon.  Additionally, there is now a Google Preview of the book If you’d like to see a preview of the book, you can do so by clicking the Google Preview link below, or navigating directly to the Google Book Search page for this book.

      We have also been busy updating the book’s main site, www.c4fbook.com, with source code, color images, project links, etc.  It’s not complete, but we should have it wrapped up in the next few days.

      I can’t think of a better holiday gift for the geek in your family than this, but, I may be a bit biased…

      Read More

      Animated Musical Holiday Lights at TVUG

      image I’ll be presenting a session on building your own holiday musical light show using Phidget boards and .NET at this month’s Tech Valley User Group.  I’ve previously written an article about this topic on the Coding4Fun site, and there will be a full chapter on this in our upcoming “Coding4Fun: 10 .NET Programming Projects for Wiimote, YouTube, World of Warcraft, and More” book.  Here are the session details…

      Abstract: This month, learn how to build an animated light show set to music, much like the famous holiday light show videos you may have seen on YouTube.  This session will cover how to build the hardware, how to build the software, and how to combine them to create a synchronized musical show for your home.
      When: Tuesday November 18th, 2008 - 6:30-9PM
      Where: VersaTrans Solutions, Latham, NY

      Hope to see you at the session!

      Read More

      WiiEarthVR Article and Source Code Posted

      I previously talked about my WiiEarthVR project shown at PDC project, and now I have posted the article for the application up at the Coding4Fun site.  Full source code is available.  You’ll need some hardware to make this go, namely a Wiimote, Nunchuk, Wii Fit Balance Board and a pair of Vuzix VR920 glasses, but the hardware can be toggled on or off depending on your own setup.  The VR920 glasses are pretty cool in that they also work with a variety of FPS games on your PC with a custom driver they include.

      The article will, among other things, teach you how to use Virtual Earth 3D from a managed host (i.e. a WinForms app, not a web page), how to talk to the Wiimote, Nunchuk and Wii Fit Balance Board, how to retrieve the head tracking data from the VR920 glasses from .NET, and how to draw stereoscopic 3D images to the VR920 glasses from .NET.  Quite a bit packed in there…

      Anyway, have a read and, as always, questions and comments are welcome.

      Read More

      WiimoteLib v1.6 Released

      image A new version of my managed Wiimote library for .NET has been released.  You can find version 1.6 up at CodePlex now.  The changes are as follows:

      v1.6.0.0

      • Added "center of gravity" calculation to the Wii Fit Balance Board (thanks to Steven Battersby)
      • Structs are now marked [Serializable] (suggested by Caio)
      • Battery property is now a float containing the calculated percentage of battery remaining
      • BatteryRaw is the byte value that used to be stored in the Battery property
      • WiimoteTest app now reads extensions properly when inserted at startup
      • Exposed HID device path in new HIDDevicePath property on Wiimote object
      • Changed the time delay on writes to 50ms from 100ms...this should improve responsiveness of setting LEDs and rumble

      I feel like I’m running out of things to implement and bugs to fix.  I know that’s not true.  So, I want to hear from the people using my library…

      What features/bugs do you want to see …

      Read More

      TL39: Coding4Fun: Windows Presentation Foundation Animation, YouTube, iTunes, Twitter, and Nintendo's Wiimote

      image Well, PDC2008 is over.  I had a lot of fun, met a ton of interesting and fun people, and learned about a lot of exciting new technologies.  I hope to make it back out there next year.

      Our PDC2008 session video has been posted up at Channel 9 along with the PowerPoint slide deck.  In this session you will learn about four of our current projects:  WiiEarthVR by myself, InnerTube by Dan Fernandez, TwitterVote by Clint Rutkas and BabySmash by Scott Hanselman.

      If you’d like to check out the video, you can watch it “live” or download the deck and video in various formats with the following links:

      Source code for all projects will be available soon and I’ll provide an update when it’s available.  WiiEarthVR will also have its own Coding4Fun article within a week or two.  InnerTube and TwitterVote are also featured in depth in our new book, “Coding4Fun: 10 …

      Read More

      WiiEarthVR at PDC

      Update 1/20/09: Here’s a vid from Channel9 showing the WiiEarthVR project:

       

      Time to talk a little bit about my PDC demo…

      About a year ago, I wrote an application to control Virtual Earth 3D with the Wiimote named WiiEarth and a corresponding Coding4Fun articleon how it was done.  Since that time VE3D has been updated several times and code changes have broken my application.  Since their API is undocumented and unsupported, it was bound to happen.

      For PDC this year, I decided to write a new version of WiiEarth, now named WiiEarthVR, using the Wiimote and some additional hardware, namely the Wii Fit Balance Board and a pair of Vuzix VR920 glasses.  Using the Balance Board, the user can shift their center of gravity (i.e. lean) and control the VE3D environment as if they were on a hovering glider.

      Wii Fit Balance Board VR920

      The VR920 glasses contain sensors to allow head tracking in 3 degrees of freedom.  A very simple API provides a way to determine the yaw, pitch and …

      Read More

      PDC2008

      pdc Anyone heading out to PDC2008 this year?  I will be in attendance with (hopefully!) a new Wiimote project and perhaps a few old ones as well.  More details on that when the project is a tiny bit further.  We will also be giving away a free chapter of our new book “Coding4Fun: 10 .NET Programming Projects for Wiimote, YouTube, World of Warcraft, and More” to lucky PDC attendees at the O'Reilly booth.

      I will also be co-presenting a lunch session at PDC:

      Title: Coding4Fun: Windows Presentation Foundation Animation, YouTube, iTunes, Twitter, and Nintendo's Wiimote
      Date/Time: Tuesday, October 28th, 12:45pm-1:30pm
      Speakers: Dan Fernandez, Scott Hanselman, Brian Peek, Clint Rutkas
      Room: 403AB
      Abstract: Spend time with Coding4Fun authors as they walk through some DIY Development projects: TwitterVote, Wiimote, InnerTube, and BabySmash.

      You can add this session to your agenda by visiting the PDC site and searching for “Coding4Fun”.

      If anyone will be …

      Read More

      Coding4Fun Book News

      Now that we have finished writing the book, we finally have an official title and chapter listing.  Someday we may even have a cover.

      The title has morphed into Coding4Fun: 10 .NET Programming Projects for Wiimote, YouTube, World of Warcraft, and More and the final chapter listing (not necessarily in this order) is:

      • Alien Attack: Create a 2D clone of Space Invaders with XNA for the PC, Xbox 360, and Zune
      • LEGO Soldier: Create an action game using Popfly with a custom-built virtual LEGO character
      • World of Warcraft RSS Feed Reader: Use WoW's customizable interface to have feeds pop up while you're gaming
      • InnerTube: Download YouTube videos automatically and convert them to a file format for off-line viewing
      • PeerCast: Stream video files from any PC
      • TwitterVote: Create custom online polls on Twitter
      • WHSMail: Build a website with ASP.NET for Windows Home Server that lets you view the messages stored on a computer with Outlook
      • "Wiimote" …
      Read More

      SQL Server 2008, Visual Studio 2008 SP1 and Visual Studio 2008 Express

      I ran into a bit of weirdness yesterday when trying to install SQL Server 2008.  I have Visual Studio 2008 installed as well as a couple of the Visual Studio 2008 Express products (for testing solutions for the Coding4Fun site and the upcoming book).  I installed Visual Studio 2008 SP1 and all went as planned.  After looking at the Help –> About screens, Visual Studio and all of the Express products showed the proper version tag:  9.030729.1 SP1.  So I figured all the products were updated and good to go.

      Next I tried to install SQL Server 2008 and got an error stating Rule “Previous releases of Microsoft Visual Studio 2008” failed.  I re-installed SP1 figuring something had gone wrong, but no dice.  After digging through the SQL Server 2008 install logs I realized what was happening.  The installer was using the HKLM\SOFTWARE\Microsoft\DevDiv\XXX\Servicing\9.0\SP keys to determine if SP1 had been installed and the registry settings were set …

      Read More

      WiimoteLib v1.5.2 Released

      Sorry for all of the previous confusion.  Version 1.5.2 is now up at CodePlex.  This release now has the Wii Fit Balance Board working for everyone who has tried it.  Please let me know if you have any issues with it.  The changes:

      v1.5.2.0

      • Ok, Balance Board support is really fixed this time (thanks to Manuel Schroeder, Eduard Kujit and Alex Wilkinson for testing)
      • LED checkboxes are properly set on the WiimoteTest tabs

      Enjoy!

      Read More

      WiimoteLib v1.5.1 Released

      UPDATE 2: Sorry, but I've removed this release from CodePlex.  It's just too buggy (though it continues to work just fine for me).  Look for version 1.5.2 very soon...

      UPDATE:  It appears some people are still having issues with this build as well due to some Balance Boards being a bit finicky in their response times.  Stay tuned for build 1.5.2 soon…

      Oops.  Apparently the one new thing in version 1.5, Balance Board support, was actually broken.  I have just put version 1.5.1 up at CodePlex which fixes the Balance Board operation.  Sorry about that…

      Read More

      WiimoteLib v1.5 Released

      Wii-Balance-Board-1I’m really cranking out the releases these days.  Today I have released WiimoteLib v1.5 at CodePlex.  The big news is that the Wii Fit Balance Board is now supported.  The balance board is simply a very heavy piece of plastic with 4 weight sensors located at the corners.  The library reads those individual sensors to determine how much weight is applied to each sensor, and the total weight applied to the entire board.  You can use it as an impromptu (and very expensive) scale.

      Comments and bugs welcome…

      Read More

      WiimoteLib v1.4 Released

      In an effort to put out more frequent builds with fewer changes, I’ve released WiimoteLib v1.4 to CodePlex.  This release contains the single most requested feature:  multiple Wiimote support.  I’m very interested to hear bug reports and suggestions on this release, so please do let me know how it works for you.  The original Coding4Fun article has also been updated with some details on how to use multiple Wiimotes, as has the WiimoteTest application included with the distribution.

      Changes

      • Multiple Wiimotes supported!
      • Slight change to ExtensionType enum for better extension detection
      • Decided I didn’t like the dependency on System.Drawing for the 2D point so am now using my own Point structs.  Sorry…
      • WiimoteTest app updated to show multiple Wiimotes working

      Read More

      WiimoteLib v1.3 Released

      Time for another WiimoteLib release!  You'll find the new version in the usual place at CodePlex.  What's new you ask?  Why, check out this list:

      • All projects updated to Visual Studio 2008 format
      • SetReportType contains an overload taking a new IRSensitivity parameter which will set the IR camera sensitivity when using an IR report type
      • Created new WiimoteException type which is now thrown by the library
      • Moved InputReport enum to namespace level
      • Events now using the generic EventHandler class instead of custom delegates
      • Refactored the state structures to use Point/PointF and my own Point3/Point3F
      • Refactored IR sensors to be an array
      • Added support for the Guitar Hero controller (tested by Matthias Shapiro, Evan Jacovier)
      • Test app will run without Wiimote connected (Andrea Leganza)
      • ReadData now returns the proper amount of data for requests of more than 16 bytes (reported by David Hawley)
      • Test application updated with above changes
      • Lots of breaking changes, but the survey …
      Read More

      Silence...

      Where have I been?

      Sadly, nowhere good.

      My father passed away extremely unexpectedly on March 4, 2008 and life has been hectic and chaotic ever since.  I'm finally back into some sort of routine, so it's time to update here and explain what's going on outside of the unpleasantness.

      First off, I've been contracted to co-author a book for O'Reilly (tentatively) titled Coding4Fun with Dan Fernandez from Microsoft.  The book will be a compendium of 10 (give or take) projects that, as the title suggests, combine fun and coding.  I'll update as we go through the process.

      Secondly, I'll be presenting a session titled Introduction to Microsoft Robotics Studio with Lego NXT at the Tech Valley Code Camp this Saturday, April 19th.  If you're in the area, as always, stop by.  It should be a fun and informative day.

      And finally, I will be back to work on some Wiimote goodness soon.  I was right in the middle of Guitar Hero controller support when the above …

      Read More

      WiimoteLib Survey

      Update:  Wow!  In just over a week I reached Survey Monkey’s limit of 100 responses for the survey.  I’ll be posting results soon.  Thanks to everyone who took the time to give me their feedback!

      For those of you that use my Managed Wiimote Library (and if you’re not, why aren’t you?), I’ve put together a very short, 3 question survey to gather some opinions on how to move forward with upcoming releases.  Please take the 30 seconds to click responses to the 3 multiple choice questions and let me know how you’d like to see the library evolve.  Thanks!

      Click here to take the survey!

      Read More

      Yet Even More .NET-based Wiimote Applications

      In the past couple of weeks, several very interesting projects using my Managed Library for Nintendo's Wiimote have appeared.

      First off, Johnny Chung Lee has created some amazing and unique user interface demos with the library which can be found at his site.  Here are a few videos showing off what he's done:

       


      Wiimote Whiteboard

       


      Head Tracking Display

       

      Cynergy Labs has used the library in conjunction with WPF and some of Johnny's ideas to create a Minority Report-style interface with some Microsoft Surface-style effects:

       

      Incredible stuff.  I'd also like to toot my own horn and state that, at the time of this writing, my Wiimote library is the #1 most downloaded project at CodePlex.  I wish I could take credit for that, but I'm certain these talented folks and their amazing work with the library are the reason for that.

      As always, if anyone out there is using the library, please contact me so I can add you to the master list.

      Read More

      Animated Musical Holiday Light Show - Version 2.0

      I finished this a bit later than I wanted to, but a brand new version of my Light Sequencer application and article is now available at Coding4Fun.  You may recall my previous article on creating a musical light show for the holidays.  If not, here's the video showing the output:

      New Features for 2.0

      • MIDI support
        • Load a MIDI file and a sequence will be automatically created based on the data contained in the file.  You can automatically create your own show with barely any effort at all!
      • Playlists
        • Load up several sequences and have them play in order to create a multi-song show!
      • More accurate timing
        • The timing algorithm used in the last version was very imprecise...it worked, but it wasn't perfect.  The new version uses a method which gives millisecond precision timing
      • Cut/Copy/Paste
        • One can now cut/copy/paste cells on the grid...makes it easy to repeat chunks of sequences without having to tap out the rhythm by hand over and over again
      • Edit existing …
      Read More

      Possessed PC Pranks for Halloween

      It's time for more Halloween article fun at Coding4Fun.  This year I developed two applications based on movies to scare your friends.  One displays the "cursed video" from The Ring at 50% transparency against the victim's display, while the other possesses Notepad to type "All work and no play makes Jack a dull boy" over and over again as in The Shining.

      Source and executables are provided.  Prank you friends and co-workers again this year!

      Read More

      Coding4Fun Article Ideas

      If you visit my site, you're likely here because of an article I wrote on Microsoft's Coding4Fun site.  Or perhaps someone doesn't like you and punished you with a link to my blog.  Assuming the former, I am continuing to write articles on topics that are fun and/or interesting for me, but I wonder what the readers find fun and/or interesting.  So, with that in mind, do you have ideas for a future article?

      If you have any ideas, I'd love to hear about them!  Please feel free to leave ideas as a comment on this article, a post in this general forum thread (easier for discussion), or contact me directly.  Coding4Fun is a Microsoft site that is geared toward development in .NET using the free Visual Studio Express products, so please keep that in mind when offering suggestions.

      I look forward to hearing what you readers would like to learn about.

      Thanks!

      Read More

      Wiimote Library Update

      Finally!  I have updated my Wiimote library with quite a few bug fixes and a few new features.  Here are the important links:

      Starting with this version (v1.2), the library is licensed under the Ms-PL.  This will likely change nothing for 99% of you, but be sure to read through the license before redistributing your applications compiled against this new version.

      The new version also includes a CHM help file for the entire API.  For now, the C4F article will remain the source for the basics, and the CHM will remain up-to-date with each release of the API itself.  Hopefully that will be able to provide some more detailed information than the base article, though the API itself isn't very complex.

      And finally, here's a list of things that changed since v1.1 .  Note that this list may not be 100% complete as I was a bit lax in keeping my changes noted.

      • Moved to CodePlex! ( …

      Read More

      WiiEarth -- Wiimote Interface for Virtual Earth

      Long time no blog.

      My latest article is up at Coding4Fun.  This time I created a Wiimote interface for Virtual Earth 3D.  You can now drive around Virtual Earth like you're playing a first-person shooter on the Wii.  I think it's fun.  Hopefully you will too.  Here is a video of the demo in motion:

      As always, full source code provided.  Give it a try and let me know what you think!

      Additionally, I'll have a new version of my Wiimote library up in the next day or three.  Check back for more details...

      Read More

      Outlook Webmail Add-in for Windows Home Server

      My latest article is posted to Coding4Fun.  This time, I wrote an add-in for Windows Home Server that allows one to view their email stored in Outlook via the web.  Perhaps I'm the only one, but I have 6 or 7 email accounts all of which POP into Outlook.  Hardly any of them support IMAP or have a webmail interface.  When I'm away from home and want to check my messages, either I have to remote desktop into my home machine and use Outlook that way, or I need to remember to shut down outlook, and then check all accounts separately.  With this add-in, I can now view my Outlook messages via a web browser.

      I'm doing something a little different with this article by offering the source code and binaries via CodePlex.  My hope is that you folks out there might find a use for this and decide to extend it.  Hopefully CodePlex will make that process easier.

      Check out the article and, as always, comments and questions welcome!

      Read More

      Head Banger

      XNAiconBack in May, I posted about my involvement in Maker Faire 2007.  For one of my projects, myself and several friends, collectively known as Ganksoft Entertainment, created a game from scratch using the Microsoft XNA Framework and Game Studio Express called Head Banger.  It's a rhythm-based music game in the vein of Dance Dance Revolution (DDR) and Guitar Hero.  If you are a fan of either game, or the genre in general, you'll likely enjoy what we've created.  I have posted the game up to our website in both Windows and Xbox 360 flavors.  Sometime soon I will be writing an article that will appear on Coding4Fun on how the game was created along with the full source code of the game.

      But, in the mean time, try out the game and enjoy!

      Read More

      Even More .NET-based Wiimote Applications

      I've received a few more emails from folks using my Managed Wiimote Library to do some cool things with the Nintendo Wiimote in Windows.  Here are a few more:

      Amazingly fantastic stuff.  I've created a list of projects using the library here.

      If anyone out there is using my library for a project, please let me know and send me a link so I can add you to the list!

      Read More

      New Wiimote Goodness

      My latest article has been posted at MSDN's Coding4Fun site.  This article explains how to create a Wiimote Controlled Car using my Managed Library for Nintendo's Wiimote.  At the end of the article, you will have a remote controlled car that can be driven with a standard Nintendo Wiimote.

      Also note that my original Wiimote library and article have been updated with some new features including x64 support, a potential fix for those with incompatible Bluetooth adapters/stacks, and a Microsoft Robotics Studio service.

      As always, comments and questions welcome.  Enjoy!

      Read More

      Wiimote Applications

      I've received a couple emails in the past week of people using my Managed Wiimote Library to do some spiffy things.

      Brent Rossen's project allows one to interact with a virtual patient and is described as:

      This project was primarily created to allow the Wiimote to be used as a novel interface for a virtual environment. The goals were to create a Wiimote server, allow interaction with a virtual environment, and provide haptic as well as audio feedback. Six degrees of viewing freedom and stereo vision are provided via a Head Mounted Display and optical tracking system. Sound is provided through FMOD. Much of this project is built on top of code from the Virtual Patient Project.

      Evan Merz has created a virtual drum kit available at his site along with a video showing its operation.

      Great stuff, guys.  Anyone else using my library for a project?  I'd love to hear about it!

      Read More

      Maker Faire 2007

      I will be attending this year’s Maker Faire with the Coding4Fun gang.  We will have a variety of spiffy projects to play around with, including two I have done:  several “Wiimote-controlled” cars using my Managed Wiimote Library and Microsoft Robotics Studio, and a game written with my Ganksoft Entertainment cronies using Microsoft’s XNA Game Studio Express.  So if you’re in the San Mateo area, stop by May 19th and 20th and have a gander.  At only $15 for admission, there’s plenty to see and do…

      More details at (also linked above):

      Read More

      Mix 07

      Anyone heading out to Mix this year?  I'll be there once again, but this time I'll be (partly) working the Coding4Fun booth.  We should have a few interesting toys to entertain the masses between sessions.  Stop by and throw a Wiimote at my head or something.

      Read More

      April Fools' Day Application

      My latest article is up on MSDN's Coding4Fun.  Take a look and download a fun application to annoy your friends and co-workers on April Fools' Day.

      As always, questions and comments welcome.  If it's a question or comment that could benefit the masses, please create a new post over on the forum and I will reply there.

      Read More

      Wiimote and .NET

      Update 3/17/07: A new version of the code and assembly is linked from the article below which fixes a bug with the calibration data.

      My latest article has been posted on MSDN's Coding4Fun.  This time I have created a fully managed library to use a Nintendo Wiimote (and all current extensions) in C# or VB.NET.  You will find a description of what was done, source code for the fully managed library, a test application, and compiled libraries for you to start using immediately.

      As always, if you have questions, problems, feature requests, etc. please contact me and let me know.  If it's a question or comment that could benefit the masses, please create a new post over on the forum and I will reply there.

      Head on over and check it out!

      Read More

      The King

      Update 2/13/07: After reading this post, check out and bookmark this page for a list of all videos to date!

      Today, someone sent me a video of what is undoubtedly one of the coolest things I have ever seen.  If you are a regular reader, I'm sure you recall my Animated Christmas Lights article at Coding4Fun and accompanying video.  Today, I received a video of someone using my software and Phidget boards to animate something other than lights.  If you've ever been to a Chuck E. Cheese, you may recall one of the animated characters known as "The King" (photo from http://sp-com.tripod.com/):

       

      I have been told that The King shown in the video below was broken and left for dead.  After being salvaged from a dumpster, he was carefully repaired and restored, and once again animated and set to music using my Light Sequencer application normally used for Christmas lights!  I distinctly remember The King at my …

      Read More

      Holiday Light Show Part 2

      I have updated the article with some new source code and executables, and a video of the beginning of my first sequence using what I’ve built.  Take a look!


      Update: If readers of the article/blog have questions regarding the project, please use the Contact link above or use the new Forum topic so that I can respond to you.  If you have a comment which doesn’t require a response from me, please leave that comment below.  I’ve received several questions over the past few days entered as anonymous comments and I have no way to respond to them without cluttering up the section below.  Thanks!

      Read More

      Coding4Fun and Holiday Light Shows

      My latest article is now posted on MSDN's Coding4Fun website!

      We've all seen those animated, musical holiday light shows videos on the internet, or perhaps the beer commercial last holiday season.  I set out to create my own show using off-the-shelf components and .NET .  So, with one or many Phidget Interface Kits, some extension cords, and Visual C# Express 2005 or Visual Basic Express 2005, you too can create your own holiday light extravaganza!

      I'll be posting updates to the article as time goes on, including a video of my own show once completed, so check back often...

      Read More

      Coding4Fun

      I was recently selected as a member of Microsoft's Coding4Fun writing team!  Coding4Fun is a site on MSDN devoted to geeks like me that enjoy building fun and quirky hardware and software projects using Microsoft technologies. My first two articles were for Halloween and can be viewed here:

      I will be contributing about one article per month.  I'll post here when new articles become available.  Lucky you.

      Read More