I wish I could say I am a cool kid for figuring this out but this code has been around for some months now, but finally I got to see what all the fuss is about the past couple weekends. I feel like my first steps are pretty insignificant when you look at all the creative stuff that’s already been achieved with this, but still it’s so much fun to build these projects from source and play around with just my macbookpro and iSight.
It’s no excuse but I’ve been too busy with other side projects to get around to it ’till now. At long last I cloned the openFrameworks github repo along with ofxFaceTracker. After a couple years almost of knowing about these projects, the veil has finally been completely lifted!
After learning a bit about openFrameworks and cloning it I realized how clean and organized it is, making it easy to learn and extend.
I think this is my new playground for a while. There are so many add-ons already to play with even ones for arduino and iphone. Plopping in ofxFaceTracker was really much easier than it could have been, although I did do some clean-up of some libs and subsequently tweaking and reconfiguring the projects and solutions
Plowing through all the opencv and openFrameworks examples became a breeze and after soaking in all that information I decided to see if the face tracker software would work. It’s stunning to think that this is freely available out there and, above all, works! I have in my hands technology once only available through proprietary channels and I can dig in and see how it all works. I’m a kid in a candy store!
I hope to apply my expertise in facial animation to write an ofxFaceRetargeter to collect and remap data from the tracker onto a creature/character although it seems this has already been achieved through proprietary software like faceshift available in Autodesk App Exchange. Things are changing so rapidly… I need to dip my toes into Unity3d and C++ more in the coming weeks.
Free yourself from relying on other people to compile your beloved 3rd party plugins. If you are interested in learning to write plugins it’s a great exercise to do it yourself. Also take a look at the source code. If it doesn’t make sense at first, sooner or later it will if you are dedicated to learning c++ or python or other OOP language for that matter.
Here are some concise steps to downloading, editing, and building the source of Micheal Comet’s poseDeformer yourself. I’m not supplying the link to the source but you should do a quick search to find it. If you weren’t aware of this awesome plugin dig in to figure out what it does by reading all about it and actually look into the code! There are also download links out there that have the plugin completely compiled for you on Windows up till 2014. To really learn, try building it from just the source and then undo from last to first the steps to setup the environment to see what happens when a project fails and actually read the debug output to try and make the connections yourself.
Start a new empty project in a directory other than source, name it poseDeformer
Add the source files and header files by right clicking > add > add existing > choose files from extracted source.
Right-click on the project and choose “properties”
It’s probably a good idea when you’re following along to click “apply” after each step when you’re editing in the “properties” dialog
Pull up the “configuration manager”
Find your project, hit the Platform drop-down, select New, then select x64. Now change the “Active solution platform” drop-down menu to “x64.” ”copy from” drop down can read <empty>
Change your toolset. In the Properties menu of your project, under Configuration Properties > General, change Platform Toolset from “v100″ to “Windows7.1SDK”
Go to General under Configuration Properties
Set the target extension to “.mll”
Set the platform toolset to “Windows7.1 SDK”
Set the configuration type to “dynamic link library (.dll)”
Go to the VC++ Directories panel
Append “;C:\Program Files\Autodesk\Maya2012\include” to the include directories
Append “;C:\Program Files\Autodesk\Maya2012\lib” to the library directories
Navigate to C/C++ and Preprocessor
Append “;NT_PLUGIN;REQUIRE_IOSTREAM” to Preprocessor Definitions
Navigate to Linker and Input
Append to additional dependencies the following list: “;Foundation.lib;OpenMaya.lib;OpenMayaUI.lib;OpenMayaAnim.lib;OpenMayaFX.lib;OpenMayaRender.lib;Image.lib”
This step is optional, some instructions out there say to append: /export:initializePlugin /export:uninitializePlugin to Linker > Command Line Additional Options. Don’t do it and run debug compilation to see if it works first!
Open up poseDeformer.cpp and poseDeformerEdit.cpp and append this line at the top of the includes: #include <maya/MIOStream.h>
Next up: Speed up build for future Maya releases with precompiled Maya headers & compile for Linux.
Thanks @Dave Finch for this great example! This is my favorite of all the Minecraft scripts out there already. I’ve update this great tool with a little more Python fancy schmanciness. Made it object oriented and added some functionality with the idea of upgrading the algorithm to generate the maze, make it 3D, and add some funkiness. Stay tuned!
These are my first explorations with the RaspberryPi in conjunction with Arduino. I try to keep things as simple as possible and only use Cygwin terminal to administer the Raspi remotely via ssh or sftp. Sometimes its just easier to use WinSCP to graphically drag and drop a bunch of files though. For forwarding X11 I use Cygwin’s installation of XWin on my Windows machine as the client. It’s as simple as setting the DISPLAY env variable and opening a ssh connection in conjunction with using the display forwarding option.
Windows 7 PC running Cygwin with XWin
RaspberryPi running Raspbian — Debian Wheezy for RPi
Arduino powered with an old Linksys modem DC adaptor
This post includes some additional important support material for what was discussed in [Maya-Config] Phase I. I felt it needed a bit more elaboration than what I had time for. I will continue with Phase II next time.
Felix Baumgartner Red Bull Stratos Space Jump Oct 14 2012
How do you tame the beast that is your ever growing collection of mel, cpp/python plug-ins, and python scripts?
Curate a library of cross-platform, multi-language extensions!
Teach yourself how to setup a proper library of Maya tools by following the steps outlined here. This is by no means the only way to do it. [edit: This is strictly for learning purposes and not intended for production use, but by all means apply what you learn to your specific production needs at your discretion!] It can get as sophisticated as time permits and as your production demands. To put it simply, this is a great starting place for people wanting to learn some of the basics of how to manipulate your Maya environment. The techniques described are simple, however this isn’t a Maya beginner task so I assume the reader knows a bit about scripting, how to use a shell or command line, and other Maya internals of course. I am willing to break it down in further posts of course. There is a lot of information to go over so this topic will be have to be continued in a series of posts.
Surfers Dane Gudauskas, Alex Parker and Keith Malloy normally carve up the golden beaches of sunny California but made the trip to the Arctic, where temperatures as low as just 2-3C, after hearing about the smooth waves.
Say you have an environment variable named PYROOT with a lis of a few paths where python libs are stored. Use python’s site module to add your lib directories as site directories like this:
PYTHONPATHS = 
if os.pathsep in os.environ.get('PYROOT'):
for p in str.split(os.environ.get('PYROOT'), os.pathsep):
for j in PYTHONPATHS:
This quick script works cross-platform using os.pathsep to test for environment variable separators ‘;’ (win) and ‘:’ (linux) and using that to split the PYROOT string variable appending each of the paths to the PYTHONPATHS buffer list. By using the site.addsitedir module, python will treat these directories as normal site-package directories with all the built-in abilities to customize such as sitecustomize module and .pth files. If subdirectories are already organized into packages using __init__.py then they are already ready to be used and imported into Maya right away, or else if the directory has a .py file and no __init__.py just add an empty one.
To add your custom user site-packages directory just append the lines of code or create a new userSetup.py and make sure it is on your PYTHONPATH when you start up, previously explained here, or just put it in any one of the default maya scripts areas.
Find Out How to Turn Custom Text to Realistic Metallic Objects
This is for those of you interested in working with custom curves exported from Illustrator or created in Maya to make a custom logo or raised text for a reel or for work. I’m actually doing this type of thing for some extra cash and maybe I will throw a little into my demo reel at some point just to have some more professional looking animated text. Have fun, and I hope you find it useful! You can even download the curves to get started. Read on!
What do you do when you screw up and delete all your history and input code in Maya script editor usually do to a right-click muscle memory FAIL? First of all, DON’T close Maya! Navigate to your prefs directory, depending on the system you’re using that is in different locations, and then open up the handy little mel file called “commandExecuter”, and that file name may have a hyphen and some numbers behind it depending on how many tabs you have going. Open the corresponding file based on the tab you mistakenly erased in notepad or favorite text editor and then copy the contents back into your script editor.
This won’t get you everything back however, sad, I know, but if you can get back to where you were before the melt-down without too much hassle this way then that’s better than nothing. That’s why I like using external IDE’s for longer coding sessions and the script editor for little things that make my life easier in the particular scene I’m working on.
Use windows clipboard data in your Maya Python scripts or other generic python.
Dependencies: setuptools – You should have setuptools installed. pip – If you have setuptools and/or use easy_install switch to pip by using easy_install to download and install pip, you won’t be sorry. Pip is awesome, setuptools sux. pyWin32 – Use pip to download pyWin32 from the commandline using pip install pyWin32. Copy the installation to your Maya site-packages folder including any .pth, .txt, or .egg-info files. Tip: open .pth files in a text editor of choice and check out where pip’s libs are.
based on mel script found here: http://bit.ly/e4qdyH
d = win32clipboard.GetClipboardData( win32clipboard.CF_TEXT )
win32clipboard.SetClipboardText( text )
t= 'test text'
This is based on what I found on teacup’s techy art stuff, written a while ago. I though it deserved an update, plus I needed it for something specific. It is a really handy module to have in your repertoire. I posted these in a hurry so you probably need to add in some checks to make sure the datatype you are trying to retrieve is text only or else you’ll get errors.
PyQt and Qt obviously are way more powerful for getting other types of data including pixmap and slew of others. This is simplified for a specific purpose. Maybe soon I will be able to post a Qt version including drag and drop functionality.