Archive for the ‘Tech’ Category

Wii Nunchuk to Maya

Sunday, April 11th, 2010

Simple proof of concept: A Wii Nunchuk controller connected to Maya via an Arduino, which sends the Nunchuk’s accelerometer data through the serial port. Maya uses PySerial to open the serial port, reads the data, and converts it to an attribute value.

You can see that the accelerometer has quite a lot of “ring” from sharp shocks.

I based this test on Tod Kurt’s BlinkMChuck code. The Nunchuk is connected to the Arduino with this connector from Todbot. Here’s an archive containing the test files:

And here’s a link to the setup required to configure pySerial:

Code follows.

Arduino to Maya Mocap II

Saturday, August 1st, 2009

Another proof of concept: Maya processing and recording three simultaneous data streams from the Arduino at ~30 fps. There’s still only the one button on the Arduino, but I’m faking three sensors by reading and transmitting its state three times.

The keys for the spheres’ “simultaneous” state changes are never more than about 50 milliseconds apart. In every mocap test I’ve run so far, every key has wound up quantized by multiples of 10 milliseconds in the timeline, perhaps due to the pySerial sampling rate or some internal Maya clock… suspicious.

Code follows:

Basic Arduino to Maya Mocap

Wednesday, July 29th, 2009

Once again, The Mystery Hand starring in Proof of Concept: MOCAP.

I’m transmitting from the Arduino 10 times a second, which is slow enough for the Python to behave in an orderly fashion.

The Arduino code and board setup is the same as before. Highlights of the new Python code include the ability to break the script out of an otherwise infinite loop, using the GUI’s snazzy built-in progress-bar.

Code follows:

Basic Arduino to Maya III

Tuesday, July 28th, 2009

Baby steps while I bonk my head against the Maya API:

Code follows:

Basic Arduino to Maya II

Monday, July 27th, 2009

Here’s Maya reading real-time input from an Arduino board, set up in the circuit from the Arduino Button tutorial, and assuming the environment setup from my first Arduino post:

I’ve tweaked the code for the video to make the readout easier to see.

Code follows:

Basic Arduino to Maya Communication

Sunday, July 26th, 2009

This article describes a basic setup allowing an Arduino microcontroller board to communicate with Maya via a serial connection.


  1. You have an Arduino board.
  2. You have successfully uploaded sketches to it.
  3. You have Maya 8.5 or later, and can execute Python scripts from within Maya.
  4. You are running 32-bit Windows.

Disclaimer: I only barely understand why this works. If you know how these instructions could be simplified, better generalized, or otherwise improved, please comment.


Since Maya 8.5, Maya has come with an installation of Python — for Maya 2009, it’s 2.5.1, and you can run it right in the script editor. The separately-downloadable pySerial module allows Python scripts to communicate with serial devices such as the Arduino. However, pySerial requires certain files from the Python for Windows extensions, aka PyWin32. PyWin32 apparently requires that a full installation of Python be available, and pySerial requires that the Python install and the PyWin32 files be of the same version number. So, I installed Python 2.5 first, which wrote appropriate registry entries. Then I installed PyWin32 for Python 2.5, noted the paths, and installed pySerial.

After futzing with test scripts to ensure correct installation, I uploaded a sketch to Arduino which wrote “hello world” to the serial port, and ran a Python script in Maya which listened, and heard, oh yes.

Details and code follow:

Rhonda drawing tool

Saturday, July 25th, 2009

Rhonda :
Drawings by James Paterson aka presstube.

This trackball/stylus/cintique combo would make a great texture-painting interface.

Combine it with teddy, and you’ve really got something.

[Via Drip.]

3ds Max Viewport Problems

Friday, March 28th, 2008
3ds Max logo

This just in from the Troubleshooting Desk: 3ds Max 8 and 9 do not play well with Microsoft’s Direct3D 8 or 9 drivers as served by this author’s Nvidia GeForce card in XP, at least with ForceWare Release 169.21. Both versions of Max, while using Direct3D, exhibit periodic viewport refreshes that overwrite any other UI elements including windows, menus, and dialog boxes.

Switching from the Direct3D driver to OpenGL in Customize > Preferences > Viewport has solved my problems. Your mileage may vary.

YouTube Quality Boost

Sunday, March 16th, 2008
YouTube logo

In a satisfying validation of my Internet heavyweight status, YouTube finally took the hints I’ve been dropping and started the slow, insidious process of upgrading their image quality.

According to this Motionographer post, YouTube has begun offering higher-quality versions of some of their videos, available either via a link underneath the video or via an alternate link, which is the original URL plus “&fmt=18”.

There’s also a Firefox plugin available which will select this option by default when viewing videos.

More info at the Wired how-to wiki..

(via Motionographer.)

Adobe Light-Field Lens

Thursday, February 28th, 2008

Adobe’s got a prototype of a 19-lens lens array which allows after-the-fact focus and depth-of-field modifications. The main impetus for the lens (apart from The Awesome) is the spectre of 20-megapixel cameras; current lenses can’t focus sharply enough to take advantage of so many pixels.

An infographic and detailed write-up is available at Popular Science.

(via Feed.)