Hi, my name is Daniel. This is a blog of my 4th year software engineering project at The University of Sydney (ELEC4707).
The title of my project is Painting with the Wii. In short, this project involves integrating DirectX into a program designed for painting with a Wii remote (or Wiimote).
I will be continually updating this blog throughout the course of the project. Please check back reguarly for updates!
Friday, August 29, 2008
I have managed to partially complete the first 2 chapters so far, and my aim is to have done this, and outlined my current initial prototype in the results section of the treatise by the 5th of september.
The introduction chapter (1) consists of a discussion of the project, the requirements and scope limitations, and a brief description of the contents of the thesis.
The background chapter (2) consists of a history of input devices (mouse, keyboard, graphics tablet etc...), an outline of current research into the Wiimote, and a discussion of the existing paint prototype, WiiPaint.
I have given my project a name, which is WiiPaintPlus. From now on in this blog, I will use this to refer to my work.
Saturday, August 23, 2008
So far I have done the following:
- Created a better mouse movement algorithm, so that the Wiimote can control the mouse cursor all the way around the screen (if the user is far enough away from the sensor bar).
- Implemeted draw methods for a number of shapes in DirectX (Rectangle, Circle, and Spray Paint).
- Made a button that clears the drawing panel.
- Added a custom hand cursor (similar to the Wii menu cursor) that appears when the user is over the drawing panel.
- Added several basic colours that can be selected to paint with.
Here is a video of this program in action:
Since the partial treatise is due in 2 weeks, I will be putting most of my effort into getting that done from now.
Sunday, August 17, 2008
WiiPaintOver the last week, I have made some good progress on the project.
I have done more testing of the existing prototype created by a previous student, and have come to realise that I was using the system incorrectly in previous tests. The existing prototype does make use of the Wii sensor bar to pick up movement, and the mouse cursor can then be controlled by the Wiimote. This eliminated a number of issues that I had documented in the project plan:
- There is a visible cursor for the user to see their current location.
- The user has the ability to move the cursor to a new location and continue painting.
Here is a video of me using the WiiPaint program:
As you can see, the pointing capabilities of the remote are still quite poor, and it is difficult to paint anything that resembles an object. Also, you can see that the colour selection tool is quite jumpy when switching between colour gradients.
DirectX Cursor ProgramI have also been working on a simple DirectX program which has a cursor that is moved by the Wiimote. This is based on some of the projects by Johnny Lee (see link in the right menu), particularly the head-tracking project.
Here is a video of me using this basic program:
I will update more as soon as I can.
Monday, August 11, 2008
I am making use of the Wii sensor bar, and the managed code library for the Wiimote, which includes functions for reading the sensor bar information through the camera in the Wiimote.
Thursday, August 7, 2008
I have had a short play around with DirectX within C#, and it looks like quite a huge product. I am starting to change my mind slightly about the reason for implementing the whole paint program in DirectX - paint programs are (generally) 2 dimensional. Of course, I could still use DirectX for creating aspects of the program (ie, a 3D colour selection cube). Either way, the experimentation I am doing with DirectX now will no doubt help.
I also noticed that there was a system called XNA, which is a managed version of DirectX specifically for C#. However, this looks to be more tuned for developing 3D games... it could be used to make a paint program I guess... we'll see.
I am also thinking about questions I might be asking in a usability study on my system. This is quite difficult, since I have not come to a detailed understanding of what I am building just yet. I am told by my supervisor that I have to submit my questionnaire to an ethics commitee, to have it approved, before I can use it.
Saturday, August 2, 2008
With the news about the machine learning part of the project being perhaps unnecessary, the task looks to have become simply a programming task (not ruling machine learning entirely however - there still might be a place for it).
I am looking to improve martins program by integrating DirectX graphics with it, to provide a more aesthetically pleasing system that is also more user friendly. This may mean a complete overhaul of the current system, which relies on the inbuilt System.Drawing library for C#, or, it may mean simply implementing DirectX in portions of the program (like the 3D colour selection cube).
I have also been busy setting up my development environment at home on my new computer. I have installed the necessary programs (like Microsoft Visual Studio), and am playing around with the managed library for the Wiimote (available here).
I had a few issues with connecting the Wiimote to my computer via Bluetooth. The software that came with the Bluetooth dongle that I purchased was causing my computer to crash. Eventually I managed to get it to work using Windows Vista's inbuilt Bluetooth devices section (see here).
I am also looking into DirectX development. Hopefully my limited knowledge of OpenGL will help with this side of things...