Shotgun and 3ds Max, practical example

loocas | dotNET,maxscript,Python,software,technical | Monday, December 5th, 2011

Get the Flash Player to see this content.

Here’s a video demonstrating the power and practical usage of Shotgun (data) brought over to 3ds Max natively via our Python plugin, duberPython.

RVIO in a daily use

loocas | Python,RV,software,technical | Tuesday, November 1st, 2011


Every TD knows that command line tools are among the most powerful in their arsenal of tricks and secrets.

I want to mention RVIO, as today it saved me quite a lot of time (again), which is absolutely key when a deadline is coming.

My client requested a minor tweak of animation (a lip sync, to be concrete) on an almost finished shot. So, the general approach would be to do the change, have the animation data go through the pipeline and at the end have the finished frames ready to be loaded in an existing edit, which then gets rendered out and the final result gets showed to the client.

All fine, until you realize your render farm is completely full with other shots, so you have to skip the “beauty” pass rendering and only present the client with a, somehow, polished preview directly from your 3D package, which isn’t the safest way, trust me. But this client is great and understands that what he sees is actually only a preview of the animation.

So, the last piece of puzzle to solve is to get the preview assembled with additional layers of information (such as frame number, shot name etc…), basically a slightly customized overlay. All this sounds nice and simple, you just open up (in my case) Premiere Pro, swap the layers, render out the portion you need and be done with it.

But this certainly isn’t the TD way. ;)


duberPython runs the latest IronPython 2.7.1 without issues!

loocas | 3ds Max,maxscript,Python,showcase,software,technical | Thursday, October 27th, 2011


Just a quick shout about the compatibility of duberPython and the latest and greatest IronPython 2.7.1 release (released a couple of days ago). All working smoothly and quickly, as expected. ;)

Should you need more info on duberPython or what we’re doing with it and Shotgun or Tactic, just drop me a line and I’ll be more than happy to show you how cool duberPython is. ;)

Scripting Deadline Event plugins, tutorial

loocas | deadline,Python,technical,videotutorials | Sunday, July 24th, 2011

People have asked me how to actually write a plugin for Deadline that will automatically submit a Nuke scene (or any other, for that matter), so I put together a quick tutorial showing you just that. :)

Get the Flash Player to see this content.

Shotgun and 3ds Max integration preview

loocas | 3ds Max,maxscript,Python,showcase,software,technical | Friday, April 29th, 2011

Get the Flash Player to see this content.

If you’re interested in a live demo or more information about the duber Python and Shotgun integration in 3ds Max, drop me a line via e-mail at: ldubeda[at]

Using Dictionary data types in 3ds Max

loocas | maxscript,Python,software,technical | Thursday, April 28th, 2011

I’ve had a few customers and clients asked me specifically about getting Dictionaries from 3ds Max to Python using our 3ds Max Python plugin, but I wasn’t able to answer with an elegant or productive way of handling these data types in the MAXScript environment.

Until recently, I’ve been handling Dictionaries two ways:

  1. String parsing (i.e. a very primitive way of handling foreign data types, not really recommended)
  2. Manual wrapping (i.e. passing in a List or Array object and converting it back to a Dictionary object)

String parsing is the worst possible way of handling such an issue. It’s very cumbersome, highly unintuitive and with MAXScript string capabilities, extremely difficult. Manual wrapping, on the other hand, is rather more elegant, faster and you can use other, known, data types to construct your future Dictionary and have that converted in Python natively. The down side is, you have to be very careful with the way you’re handling the future Dictionary. The thing is, only a tuple of list pairs can be successfully converted to a Dictionary in Python. This is a bit limiting as we don’t have any specific way to tell what is a Tuple and what is a List in our Python implementation in MAXScript as there are no such data types available. So, what I did was I had an Array sent to Python (an actual .NET Array object, by the way) I had that converted first to a Tuple, which is pretty straight forward and then have that converted to a Dictionary. Worked fine, but it was a bit difficult to construct more complex Dictionaries, especially nested Dictionaries, in MAXScript.


Direct MD5 checksum object comparison behavior in IronPython prior to version 2.7

loocas | miscellaneous,Python,technical | Thursday, March 24th, 2011

I’ve recently bumped into a strange problem that kept on crashing on me on my Virtual machine testing my latest IronPython script.

The problem was that a dircet MD5 object comparison of files originating from the same source, i.e.:

from System.Security.Cryptography import MD5CryptoServiceProvider
md5 = MD5CryptoServiceProvider()

file1crc = md5.CreateHashs(file1Stream)
file2crc = md5.CreateHashs(file2Stream)

file1crc == file2crc

returned, in IronPython 2.7, expected True, but in earlier versions, I got False.

This is the actual checksum converted to a string, so you can see they really are both identical (though computed from different sources):

>>> System.BitConverter.ToString(destMD5)
>>> System.BitConverter.ToString(srcMD5)

Interestingly enough, when I compare the two strings, the result is True.

After an hour or so of experimentation, I had to re-write the script to compare the strings rather than the actual MD5 checksum objects directly, in order to make my script compatible in earlier versions of IronPython.

I still haven’t received an answer to this behavior on the IronPython public mailing list, so, I really don’t have an answer as to whether this is a bug or some kind of a feature that isn’t clear to me. I’ll report back when I get more info.

Still no Visual Studio goodness for me

loocas | opinions,Python,software | Thursday, March 24th, 2011

Visual Studio 2010

Once again, after the promising IronPython Tools for Visual Studio 2010 were included in the installation of IronPython 2.7, I decided to give Visual Studio Express another shot. Well, VisualStudio Integrated Shell, to be exact, as Express doesn’t specifically support IronPython.

I’m fairly inexperienced with Visual Studio and also I don’t code very large script/programming projects, thus a full Visual Studio suite is a complete overkill for my needs, however, I really like Instellisense and Autocomplete features it offers, but mainly I really dig the Forms or XAML designers.


duberPython features demonstration!

loocas | 3ds Max,maxscript,Python,software,technical | Thursday, March 4th, 2010

duberPython banner

I’m trhilled to be able to finally showcase, at least, some of our very own Python implementation into 3ds Max!

First off, our primary reason for writing our own, proprietary, Python connection to 3ds Max is Tactic by Southpaw Technology. An awesome asset management system entirely written in Python that I decided to invest in and integrate our tools and software packages into. Another reason for this connection, later came up, was the need for writing much more complex scripts with complex GUIs, since, as you probably know, a few functional lines of code are hardly enough in a modern, efficient, VFX production of today. ;)

The heart of our Python integration is dotNET from Microsoft. I can’t express myself enough how much I appretiate this framework! The brain of our Python integration is IronPython. Also a product from Microsoft, completely open source and free, which are two very important aspects for any pipeline tool in any production facility of any size. Not the price as much as the availability of the software. And with IronPython and Microsoft, I am certain that this piece of software will be around for years!


duberPython is coming to life!

loocas | 3ds Max,maxscript,Python,software,technical | Friday, December 11th, 2009

duberPython banner

I am very excited to present a very early development results for our own Python implementation in 3ds Max.

First a bit of an intro. At duber, I’ve setup everything around Python, the most versatile and powerful language I’ve ever seen. I felt in love with Python so much that it even influenced my decision to leave Fusion (my favourite compositing app) and dive into Nuke (my, now, most favourite compositing app). I even invested in a commercial data and asset management system, Tactic, that is entirely written in Python. I run tons of custom Python scripts to tie together programs such as Tactic, Nuke, FrameCycler, Photoshop etc… etc… But the last missing piece to the entire pipeline puzzle was 3ds Max.


« Previous Page | Next Page »

Powered by WordPress | Theme by Roy Tanck