Tuesday, December 29, 2009

open moco touchscreen interface v002_001

Just another Iteration. This one has button images! Find out more in the Original Post

Tuesday, December 22, 2009

Open Moco Touchscreen Interface

I have started contributing to the OpenMoco project. It's basically a well thought out motion control engine and intervalometer that people can use to build their own motion control contraptions.

The first GUI is going to be based on the Touchshield Slide by liquidware. This is a very exciting time for us DIY moco enthusiasts.

The applet you see above is purely to test functionallity. There are already several people designing the look of GUI and I gotta say I like what I've seen so far. I will slowly add flashy buttons and sliders as the are discussed and agreed upon. If you want to contribute to the project I suggest you head on over to open moco forums and make yourself known!

You can check out the next iteration of the GUI here.

Saturday, December 19, 2009

APAC Panorama Event = Success!

In the last post I mentioned that I was going on a working holiday to Hong Kong. I was asked by Autodesk to join 3 other industry professionals to be apart of the APAC Panorama event.

My duties were:
- Critique and Mentor the Students to help them polish their films
- Give a 45min talk about Character Development and Animation for Visual Effects
- Be on the panel of judges to select the winners of the competition.

It was a surreal experience. Not only was it a complete culture shock. But the format of the event attracted lots of media. So there was a camera on me pretty much the whole time I was there!

The whole event was also covered be a TV crew from Animax an Asian anime channel. They are planning to do a series of short silhouettes on the event. The First one goes to air on Christmas Day! Unfortunately we do not get the Animax channel in Australia, but if clips end up online I will be sure to post them.

Here is a link to the winning team's film. It's called Tancho and I was lucky enough to be their Mentor as they polished it off in the last remaining days of the event.

You can follow all if the student's adventures throughout the event as they were all given flip cameras for a vBlog competition (Australia Team one this one).

I'll post more photos from the trip when I get time. But all in all it was an experience I'll never forget!

Wednesday, November 25, 2009

Asia Pacific Animation Challenge

The PANORAMA - Asia Pacific Animation Challenge 2009 ("Contest") is a creativity and skill-based contest allowing eligible entrants to compete for the opportunity to have their design selected as the following winners of the Autodesk Education PANORAMA - Asia Pacific Animation Challenge 2009 in one of the (4) categories and profiled on the Autodesk Website.Entrants will submit their original designs for judging according to the criteria for each of the specific Categories.

Congratulations to all the finalists in the APAC. This year I have the honor of speaking at the event which will be held at Cyberport in Hong Kong. Looks like it's shaping up to be an awesome event!

Saturday, November 14, 2009

Servo Tools For Maya Tutorials

Well it took a little longer than a few weeks. But finally I have the first three video tutorials ready for viewing! There is still more to come, but this should be enough to get you started.

PLEASE NOTE: If you have any questions about installation, I've created a thread on the creative crash forums. You can get to it from the Servo Tools For Maya download page . Just click on the forum tab.


Sunday, November 8, 2009

New Round Rectangle Example

I an earlier post, I described a round corner rectangle button class. Unfortunately my approach was a bit too hacky for some web browsers to be able to handle. So I have simplified things.

This time I am building the shape out of ONE rectangle using strokeJoin(ROUND) to give me my round corners.

Keyboard Controls are:
r + mouse x = radius
s + mouse x,y = size
p + mouse x,y = position

It's not a class yet. But I think this sketch shows that the concept will work

Wednesday, November 4, 2009

EasyDriver V4.2 is out!

Great News!

Brian Schmalz has released a new Easy Driver Board!

It has some great new features. The most notable one for me is the ability to access the chip's logic that can switch to micro, half and full step methods. It also now has pretty lights and a more usable trim pot.

I've just ordered three of these from sparkfun cause good things come in threes! Check out Brian's Easy Driver Site for all the details.

Thanks Brian for this brilliant piece of hardware!

Update! Check out my EasyDriver v4.2 Tutorial post.

Friday, October 16, 2009

Servo Tools For Maya Release v1.0.1

I have finally taken the plunge and released Servo Tools For Maya to the world!

Servo Tools For Maya is a Python Plugin that sends rotational values over USB the the Arduino Micro Controller. These values are then converted in to Pulse Width Modulation which is used to control multiple Hobby RC Servo Motors.

Applications for the plugin are only limited to your imagination. Some popular examples could be to drive complex animatronic puppetry or kinetic sculpture art installations.

Current Features Include:
- Control up to 4 Servos simultaneously. (see tutorials on how to add support for more)
- High Level GUI for building servoWrite node network.
- Ability to calibrate you servo's range and limits directly from Maya.
- Serial Connection over USB cable to hardware

Hardware Requirements:
- USB Cable
- Arduino Micro Controller
- At least 1 RC hobby servo

Software Requirements:
- The Scripts and Plugin available from this page
- Python (separate from the one that comes with Maya 8.5+)
- PySerial Python Module for Serial Communication
- Maya 8.5 or Higher (32-bit only)
- Latest Arduino Software

I'm still prepping the Documentation in Video Form. So unless you are familiar with all of the above concepts, I would wait for the videos before you dive in. They should be ready in a week or two when I get back from holiday.

Wednesday, October 7, 2009

My First Processing Class

So I recently bought a book on Processing. If you haven't heard of Processing CHECK IT OUT! It's an open source programing language with a strong enphasis on visual applications. I love it cause of it's ease of use. It reminds me of how quickly I was able to get started with the Arduino IDE. Infact the IDE for Processing and the Arduino are almost identical!

The book I bought is so well written, even I can understand it! And you don't need a computer in front of you to read it!

In the future I would like to design a generic animation timeline out of it for motion control applications. But for now I'm taking baby steps with this one as I really want to learn it well.

Here's a link to My First Processing Class (you will need java installed on your machine to interact with it) It's a Button that has rounded corners. Nothing too crazy here. But this class should prove usefull in future projects.

Sunday, October 4, 2009

Mental Ray MIA Portal Light Shader

Just Playing. Mental Ray physical_lens_dof, mia_portal_light and final gather.

Wednesday, September 16, 2009

Rick Baker (Monster Maker) Modcast Interview.

If you haven't heard of him. Check out his filmography! He is the master of Makeup FX.
Well worth the listen! Thanks to Brad Peebler from Luxology for setting up this very inspiring interview.

Check it out interview here!

Saturday, September 12, 2009

mia_envblur node

Just playing around with the mia_material in mental ray for maya. Reading through some of the docs on the mental images site and found a way to optimize glossy reflections with the mia_envblur node.

Sunday, August 30, 2009

Propeller Platform Module

This looks awesome. Exactly the kind of thing I'm after. I love it's modular design.

Check out gadgetgangster.com for more info.

Saturday, August 22, 2009

Panasonic Lumix GH1 Review

And here's another one.

Tuesday, August 18, 2009

Servo City PT-2100 Pan Tilt Head

A friend of mine recently brought this product to my attention. It looks to be acceptional value for money at an introductory price of $999.99(I'm assuming it's USD) . We are both curious about the timelapse and repeatable motion capabilities on this unit. From what I can tell, it's just a remote control speed and direction pan tilt head.

I'm wondering if anyone reading this has bought one or knows any more. If nothing else I imagine you could modify it with your own stepper or servo motors based on your moco requirements. This is the best value for money unit I have seen so far. As always, your comments are welcome.

Check out this link for more details on the PT-2100

Saturday, August 8, 2009

Open Moco Intervalometer Tutorial

Shutterdrone has done it again with another great tutorial. If you are into DIY timelapse photography then you can't go past this one. It's part of a fast growing body of knowledge on the open moco website. What is open moco? It's not to be confused with open moko(open source mobile phone platform). Openmoco.org is a website dedicated to DIY motion control.

This tutorial is not only an introduction to Inervalometers, but also a step by step guide on how to build your own with a few simple components.

For the full tutorial and more moco goodness visit the openmoco.org.

Friday, July 24, 2009

Social Media

LAMP (Laboratory for Advanced Media) recently ran a Seminar and Workshop called the Social Media Campaign about Connecting and Conversing with your Community through Social Media. This is a really interesting topic to me.

I don't pretend to know too much about the big picture. But I found that this video reasonated with what I do here on my blog and elsewhere in other online communities. The video goes for about 50 mins so you might want to get comfortable :)
Check it out:

For more info check out the LAMP web page.

Monday, July 20, 2009


Sunday, July 19, 2009

New Menus


In an effort to make my blog more user friendly I have added some snazzy new menus at the top of the page. They are designed to help you find common topics without having to sift though all the tags on the side of the page to find what you are looking for.

These menu's don't give you access to every topic or tag, just the ones that are important to me and apparently interesting to you.


Monday, June 29, 2009

DIY Moco Update

So it's been several weeks since I posted any real progress on the DIY Moco front. So here is a bit of an update.

I was almost ready to release the software, but as I was going over the code I came across a few fatal flaws in my design :( The most obvious was that my position engine could only support one stepper motor! I thought it would be easy to make it support more. But due to the dynamic nature of the engine, I would have to resort to some serious multi threaded type coding and interrupts to get it to work the way I want. If you are not familiar with the Moco Tools For Maya project, here's an example clip. This is just one piece of a much larger idea :)

I discovered a new micro controller platform which is slowly louring me into it's multi-core ways. It's called Propeller and it's made by Parallax. I'm interested in it because it can run up to 8 parallel loops due to it's multi-core design. So in my case I would use one for serial communication, one for file reading and buffering and the other 6 would each have their own position control engine. Each Proc is called a "Cog" and while they function independently, they can all talk to each other as well!

If I was just reading the move data from a file, all of this would be much easier. But I am really interested in the interactive position control for all six stepper motors at the same time. This is why I'm seriously considering the propeller for this for this project.

On the weekend I attended an Arduino Physical Computing class. It was run by a couple of guys for the Adelaide Dorkbot chapter. Check out this post for more info. Fun was had by all!

At my real place of work I have be learning pftrack. It's a piece of software used for extracting a moving 3D camera from 2D footage. It's not the funnest job I've had to do, but iteresting none the less.

I've also been learning Perl and Processing. Why Perl you ask? The current interface for the openMoco timelapse engine is written in Perl. So if I am to speak to it, I need to know it's language (well, a little :) Why Processing? It's visual! and it plays nice with Arduino and I am in the early stages of writing a generic animation editor. Like the ones you see in most animation packages, only much simpler.

A few weeks back I did a talk about my motion control adventures for our local chapter of Dorkbot. It was well received.

Tomorrow night I am doing a talk for the Australian Video Producers Association. I'm tag teaming it with a friend of mine who is a professional timelapse photographer. Check out his work! I think it's beautiful.

Sunday, June 28, 2009

I made the top 20!

A friend of mine just notified me that I'm on the HacknMod top 40 Arduino Projects on the Web! I can scarcely believe it myself! I came in at number 20. Check out the link for loads of other cool projects!

The project I'm listed for has been on the shelf for a little while. Maybe it's time to dust it off and release it to the world!

Sunday, June 7, 2009

This is Me!

Apparently this is me! :)

Thursday, June 4, 2009

First Light (Image Based Lighting Test)

Original Sculpted Maquette

3D Render A/B Composite (no textures)

So I had some time off work and decided to dust off the old film again. This time I did some RND on the Lighting Pipeline. I am using Mental Ray's hidden Production Shader Collection. These shaders are awesome. So far they do everything I need them to do and are fairly quick to render too! It's nice to know that this result can still be acheived with out proprietry tools like the ones I use at work.

This clip has obvious issues with the shadows and depth of field. These problems should go away, once I am able to render into separate passes.

There are still a few tests I need to do such as outputting render passes for comp and how to control specular with the mia materials. But I'm feeling pretty good about it. Once I am confident with the lighting pipeline, I will balance the textures ready for the final renders. Soon I will be able to see more than just grey characters slapped on top of the background footage. Yay!

Wednesday, May 27, 2009

Moco Tools For Maya (Under The Hood)

This Video covers the current state of the Maya/Python/Serial side of things. I will cover the Arduino side in another video.

Warning: Some viewers may find this a bit dry and boring.
Duration: 35mins.

Tuesday, May 26, 2009

Visualising Smoothstep Interpolation

Justin just posted this video in response to an earlier post I made on smoothstep interpolation. He is using the python module pygame to display the formula. Pretty cool stuff! Thanks for sharing Justin.

Saturday, May 16, 2009

DIY Motion Control Rig - Design Concepts

I'm currently in collaboration with a couple of chaps from Ohio of all places! I put together this video to explain the origins of my plans to build my own Motion Control Rig. I thought some of you might be interested also as it explains some of the core design concepts in regards to the rig's 6 degrees of freedom.

For an overview of the pipeline visit this post.

Saturday, April 25, 2009

Maya To Moco Sneak Peak

A sneak peak at a set of Maya Tools that can control servo and stepper motors. It uses the Arduino platform as a bridge between Maya and the Motors. I will be releasing the tools on the openMoco website soon.

Friday, April 24, 2009

openMoco Icons

click to enlarge

Just a quick update on some maya to moco related stuff. I'm very close to releasing something. I've been spending a bit of time on user interfaces of late. Here are some icons I've been working on. They start as 3D models in maya. Then I render them out in vector format for Adobe Illustrator.

Something tells me that I will have to go and "macify" them to make them more pretty. I'm a sucker for slick glossy graphics. But I always go full circle and make them simple again in the end :)

Saturday, April 11, 2009

Python + Arduino + Motor Shield + Stepper Motor (Part 1)

This is my first successful attempt at sending a number (higher than 255) from Python to Arduino using Serial Communication. Currently it sends 3 bytes per execution.

The 1st byte for packet identification, and the 2nd and 3rd byte makes up the Base10 number we are sending. I've used bit-wise operators to maximize the number I can construct from 2 bytes. Currently the maximum number I can send is 65535. The code can still be optimized, and currently it does not support negative numbers but hey, I'm taking it one step at a time (pardon the pun). FYI, this exercise is part of a much larger project. You can read about it Here

Edit: After several requests I have put a revised version of the code to make this work online.

Copy and Paste the Arduino Code into a text file and save as a .pde and upload it via the Arduino IDE. Copy and Paste the Python Code into a text file and save as motor.py

To run it in python, type:
import motor [Enter]
motor.position(1,1.8,360) [Enter]
motor.position(1,1.8,0) [Enter] 
This should make a 200 steps per rev motor turn 360degrees and then return to it's original position. The only thing that you may need to change is line 20 in the python code. It depends on what COM port you will be using.

Friday, April 10, 2009

DIY Motion Control Rig

Ok, so usually I'm not in the habit of blogging my over ambitious ideas. They never usually eventuate so I like to keep them in my head. But since I started this blog, I have noticed that all of my tinkering has began to carve it's own path to the one common goal. Building my own motion control rig of coarse! So in this post I will simply layout some of my plans and direction for all of my future tinkering with motion control.
I've been wresting with the idea of affordable motion control for years. Ever since I found out that the rig I was designing an interface for costs around 100 grand to buy! I was lucky enough to get to play with and study one of these rigs when I was studying at visual effects at film school. Through some reverse engineering and a lot of late nights I was able to discover all of the formulas that make this rig's movements so dynamic! but more about that in another post. I recreated a virtual version of this rig in a 3D animation program called Maya. I wrote some software (with help) that exported the move data to a file which could later be read by the real rig's software and translated into an actual move. The software has since proven itself as a reliable industry tool used on many TVCs and several short films. Less than a year ago I discovered micro controllers and stepper motors. I quickly realized that I had the basic ingredients and experience to make my own rig with the same six degrees of movement that I had already come accustomed to at film school. So here I am, a Full Time Visual Effects Artist, Married with a 1 year old boy and enough ideas to last several lifetimes. I guess that's why they call it a hobby :)
Software Features
- Maya to Motion workflow(already exists) - Ability to program Dual Scale Moves (I have the secret formula :) - Ability to play back the move at any frame rate - Processing timeline GUI with animation curves (Here's a WIP) - Move Data Exporter (not written yet) - Move Data importer and Cache system for playback (not written yet)
Hardware Features
- Arduino (1 or many, what ever it takes) - Stepper Drivers (still researching the right one for my needs) - Stepper Motors (synced to the sync pulse of the video/film camera) - Crane on a Dolly with Pan Tilt and Roll head (adjustable nodal point) - Tracks (custom to begin with) - Basic LCD programmable interface for timelapse shoots.
So these are just some of the Ideas I have kicking around. I must stress, this is a Hobby, not a business(not yet). So I am comfortable sharing this info without commitment. You know how it is no expectations, no let downs :) It works for me! Won't you join me as I push my brain until it hurts. Right that's the last time I ramble on about myself I promise. From now on it will be practical and hopefully helpful posts from me on motion control.

Saturday, April 4, 2009

New Worm Gear Box

Diagram for input shaft quote.

Well I have finally purchased my first major part for my DIY Motion Control Rig. It's a worm gear box which will be part of the Pan Tilt Head System. The pictures I took with my phone make it look much larger the it actually is. The gearbox weighs about 1.2kg which seems fairly light compared to some of the rotary tables out there used for the same setup.

It was about $150 AUS and if it's works the way I hope, I will buy another one for a second axis. The gear box ratio is 60:1 (60 motor revs = 1 output shaft rev) to ensure I have enough resolution in my camera pans or tilts. There seems to be a bit of backlash but I will need to run some tests before I know if it's of any concern.

I still need to make an adapter shaft between the motor an the gearbox. I'm getting a quote from a local machine shop for that.

I'm thinking of going for a nema23 stepper with this setup, but still need to do a bit more research. Can't wait to try this out!

Here's a link to the transmission suppler: www.tea.net.au

Saturday, March 7, 2009

Pay Per View Mocap Test

This was a motion capture test I did back in the film school days. I was learning Motion Builder at the time and wanted to test the motion builder to maya capabilities.

I cringe at the poor anatomy and bad smooth bind. But hey it's still fun to watch a TV Head do karate kicks!

Wednesday, February 25, 2009

Smoothstep Interpolation with Arduino

I have a friend who is crazy about timelapse photography. Lately he has been experimenting with motion control camera equipment to make his shots more dynamic . Most of his gear is built from combining off the self components in different ways. Nick is wanting more control out of his devices. So I introduced him to the world of electronics and micro controllers.

Now we are endevouring to break some new ground in timelapse (at least for us ;) The first task I have been appointed with is to come up with a way to go from no camera motion to full camera motion in the smoothest possible way.

Below is a snippet of Arduino code utilizing the smoothstep function. I very powerful formula for smoothing the interpolation from one value to another. Also check out this post for a python example video of the same formula

Check out some of Nick's beautiful timelapse work at nickgraalman.com

For more info and pics on the smoothstep method check out this link. This code is also featured on the Arduino Playground Wiki in the Code Library and Tutorials Section

// Smoothstep Interpolation Example //

// Dan Thompson 2009
// Inpired by the code and chat on this site.
// http://sol.gfxile.net/interpolation/index.html
// Use this code at your own risk.
// This sketch was written with motion controlled timelapse photography
// in mind. I have tried to make it generic enough to understand the smoothstep
// concept so that one might adapt this powerful formula in other areas as well.
// For the full tutorial visit http://danthompsonsblog.blogspot.com/
// Usage:
// 1. Upload the sketch to the Arduino.
// 2. Click on the Serial monitor to see some visual feed back of the SMOOTHSTEP function.
// 3. Scroll throught the print out to see the SMOOTHSTEP curve.
// 4. Play with the code and addapt it to your needs! ;)

#define SMOOTHSTEP(x) ((x) * (x) * (3 - 2 * (x))) //SMOOTHSTEP expression.

int j = 0; //Just an Iterator.
int i = 0; //Just another Iterator.
float A = 0.0; //Input Min Value
float B = 100.0; //Input Max Value
float X; //final smoothstepped value
float v; //smoothstep expression variable
float N = 100.0; //number of steps

void setup() {
9600); //establish serial connection for debugging

void loop()
if (j < N) // Keep looping until we hit the pre-defined max number of steps
= j / N; // Iteration divided by the number of steps.
v = SMOOTHSTEP(v); // Run the smoothstep expression on v.
X = (B * v) + (A * (1 - v)); // Run the linear interpolation expression using the current smoothstep result.
for ( i=0; i < X ; i++) // This loop could the relevant code for each time your motor steps.
"1"); //Prints the number "1" for each step.
" "); //Puts a space between each line of steps and their corresponding float value
Serial.println(X); // prints the soothstepped value
Serial.println("CLICK!!!"); // this could be where you trigger your timelapse shutter
j++; // Increments j by 1.

Monday, February 9, 2009


This is my first real attempt at a sculpt in zBrush. I started this sculpt with zSpheres and so far it's been lots of fun. I used this video from Ryan Kingslien as reference. I hope to do this sculpt 3 times before I try a different body part.

More stuff from the First Light Vault

Digging around my old Hard Drive I found these pics.

An unfinished Solem Model.

A model sheet of Solem and RB7

Saturday, February 7, 2009

First Light Robot Designs

These were the initial sketches I did when trying to come up with some characters for the film.


A Very old Render of the first ever 3D character I modelled. This guy was made in a program called Animation Master. He is the villain from a clay animated short film I worked on years earlier. Here's a link to the film. The Adventures of Egg Cup Boy

Friday, January 2, 2009

First Light Context Cut v010

This is the latest Context Cut for my short film First Light. It's still got a long way to go but it's getting there. This is an assembly of the first 2/3rds of the film.

The miniatures were built at 1:10 scale. The format was HD 1280 x 720. Shot on a Panasonic Varicam using a Genufelx Mark II Motion Control Rig. Lots of Toys!

First Light Previs

This was the previs for my yet to be completed short film school project. The previs was used to pre plot all of the motion control camera setups on the miniature shoot.

This was the only way I could justify 60 odd camera setups using miniature sets on a 3 day shoot. Ahh film school... I was so naive. Amazingly we pulled it off though. The real challenge lay ahead in post production. 60 full blown VFX shots in HD with one Artist on it for a few months. NO CHANCE!

So the film was put on the shelf. Occasionally I will dust it off and do a bit more on it every now and then... Sigh..