Unfortunately, the PC code is NOT trivial. It performs the following functions:
- Communicates with the paired Wiimote to receive the X, Y wand positions from the IR reflection
- Shows the trail of the wand movements to help the user see what movements they are making
- Detects when the wand has paused so it can check if a correct movement was made (IIRC - either the comparison is constant, or it waits for a pause, but I can't remember)
- Converts the last 2 seconds of points into a matrix of X, Y positions
- Does some matrix calculations against a neural network and makes a "best guess" as to which spell was cast
- Since it always returns with some answer, it only approves if the confidence level is above a certain threshold
- Even so, it does some other reality checks (how far away is the start point from the end point, relative to the other movements, and in which general direction did the end point go relative to the start?) to filter out bad guesses
- If there is a successful match AND the match is configured to call the CloudBit, the software sends the message out via the web
So, responding to your idea to do it for the Mac (I WISH I had - I own a Mac!), the first thing you'd need is a library for pairing communicating with a Wiimote on the Mac. I did actually find some in my research for this project (http://sourceforge.net/projects/darwiin-remote/), but learning Objective-C was a little much for me at the time. If you go this route let me know and I'll help! I don't know what good I'll be with the interface, but I can help you understand and translate the math.
Now, it's probably possible to go straight from an IR camera to the Arduino, or at the very least a Raspberry Pi. If you got this way, you can actually do without the CloudBit (and the Internet) altogether - great for a portable toy! In either case, you'll need to rewrite steps 3 through 7 above to be done right on that board. I'm not sure if an Arduino is powerful enough, but there's a good chance it is. The C# project uses threading, but it's just because the display and the input would trip all over each other. What you'll lose is the feedback to the person, so they won't understand why it's not working, nor how close they are to getting it right (in Orlando they have the same problem - that's why there are nice park Wizards wandering from spell to spell showing kids what they're doing wrong).
Keep in touch, and I'll do what I can to help!
(Btw, I've got this working on Android now, but without the wand )
Bummer! We were hoping for more data. Looks like I'll need to find another excuse to go "investigate" again Did you guys have a good time?