Here is a video update of progress with Open Dialogue, the open source python based dialogue tree creation tool ma jig.
more details can be found with this other post here
October 31st 2014 Artist in Residence (A.I.R) Live With Josh Carey Rigging Dojo Co-Founder and Rigging Supervisor Reel FX Friday 2/3pm central Josh, taking a break after finishing up “The Book of Life” is currently teaching on location in Denmark so we have an earlier time than our other AIR events. Also we want […]
The post Rigging Dojo’s (A.I.R) : Halloween Treat no Tricks with Josh Carey appeared first on Rigging Dojo.
if sys.version_info.major == 7:
from collections import OrderedDict
from ordereddict import OrderedDict
# this function replaces the original
# it only knows what the original does
# because that was passed in when the
# decorator was called....
print "calling original"
result = original_func(arg)
print "original says : ", result
# return our new replacement function
# but bind it to the name of the original
example = size( [1,2,3])
# calling original
# original says : 3
return "and now for something completely different"
return "I’d like to make a complaint about a parrot"
# and now for something completely different
if '2015' in cmds.about(v=True):
# wrap it for safety in 2015
def safe\_ls(*args, **kwargs):
return original_func(*args, **kwargs)
# send it back unchanged in non-2015
if '2015' in cmds.about(v=True):
return original # untouched!
return object # the decorated class is now just object
from unittest import TestCase
assert '2015' in cmds.about(v=True)
assert '20' in cmds.about(v=True)
from unittest import TestCase
# in 2014 <, this TestCase class has been replaced by a dumb object() class
assert '20' in cmds.about(v=True)
There has most definitely been a lack of drawings lately. Not so much as in the amount I’ve been doing, but more in the aspect of the ones I post. I think it’s two fold. For one, I’ve been busy drawing I just don’t post as much. I’m finding lately that I’m getting even more critical of my drawings and I still don’t feel like many of them are ready for the public eye. Hence the quick journal flip thoughs. I’m forcing myself to draw, but every drawing doesn’t need to be under the microscope of the Internet. I need to draw to have fun, and the only way I can do that is to be able to fail and not believe its being made to get posted.
The second reason which is probably more of the reason why I haven’t been posting lately is because I’ve fallen in love with pottery. I’ve been taking a class near my house that is an 8 week course as well as practicing on the weekends. At first I thought it was going going to be a artistic doodling experiment, turns out it is much more scientific than I was hoping. I feel like I do so much science at work, I need the other side of my brain to relax. I’ve also found out all the things I like to do are a mix of the science and arts. Maybe that’s just part of my DNA and I’m forever cursed between the two sides. Either way, I’ve really gotten the pottery bug. I’ve been watching a lot of videos online as well as reading and investing as much material as I can. I feel creatively energized again. Anyways here are a few pictures, a big batch ready for glazing.
import maya.mel as mel
mel.eval("FBXExportBakeComplexStart -v " + str(start_frames[x]))
mel.eval("FBXExportBakeComplexEnd -v " + str( end_frames[x]))
mel.eval("FBXExport -f \"" + get_export_file(x) + ".fbx\"")
spaceLocator -p 1 2 3 -n "fred";
spaceLocator("-p", "1", "2", "3", "-n", "fred");
polyCube ("-name", "hello", "-width", "999");
def run_mel(cmd, *args, **kwargs):
# makes every value into a tuple or list so we can string them together easily
unpack = lambda v: v if hasattr(v, '__iter__') else (v,)
output = 
for k, v in kwargs.items():
output.append ("-%s" % k)
# if the flag value is True of False, skip it
if not v in (True, False):
for arg in args:
quoted = lambda q: '"%s"' % str(q)
return maya.mel.eval("%s(%s)" % (cmd, ",".join(map(quoted, output))))
run_mel("FBXExportBakeComplexStart", v = start_frames[x])
run_mel("FBXExportBakeComplexEnd", v = end_frames[x])
run_mel("FBXExport", f = get_export_file(x) + ".fbx")
def wrap (*args, **kwargs):
return run_mel(cmd, *args, **kwargs)
FBXExport = mel_cmd("FBXExport")
FBXExportBakeComplexStart = mel_cmd("FBXExportBakeComplexStart")
FBXExportBakeComplexEnd = mel_cmd("FBXExportBakeComplexEnd")
FBXExport(f = "this_is_a_lot_nicer.fbx")
ls -type transform -type camera
I was once told in a performance review that “perception is reality.” I was infuriated, and the words stuck in my mind as the most toxic thing a manager could say to an employee. I have avoided writing about it, but the “This American Life” episode about Carmen Segarra’s recordings at the Fed has inspired me to change my mind. Here’s the relevant section, emphasis mine:
Jake Bernstein: Carmen says this wasn’t an isolated incident. In December– not even two months into her job– a business line specialist came to Carmen and told her that her minutes from a key meeting with Goldman executives were wrong, that people didn’t say some of the things Carmen noted in the minutes. The business line specialists wanted her to change them. Carmen didn’t.
That same day, Carmen was called into the office of a guy named Mike Silva. Silva had worked at the Fed for almost 20 years. He was now the senior Fed official stationed inside Goldman. What Mike Silva said to Carmen made her very uncomfortable. She scribbled notes as he talked to her.
Carmen Segarra: I mean, even looking at my own meeting minutes, I see that the handwriting is like nervous handwriting. It’s like you can tell. He started off by talking about he wanted to give me some mentoring feedback. And then he started talking about the importance of credibility. And he said, you know, credibility at the Fed is about subtleties and about perceptions as opposed to reality.
Well shit, if that doesn’t sound familiar. Here I was, doing work that was by all measures extremely successful, yet pulled into a feedback meeting to be told “perception is reality.”
Let me tell you what “perception is reality” means, and why you should plan on leaving your job the moment you hear it:
The arbitrary opinions of your manager’s manager defines your situation. And they don’t like what you’re doing.
Your manager may be well-meaning (mine was, as was Mike Silva), but at the point you get this “perception is reality” bullshit, you can be sure there’s nothing that they are going to do to help you. Someone above them has taken notice, your manager has probably heard hours of complaints, and you can either shut up or get out. Perception isn’t reality everywhere; it is only the mantra in sick organizations totally removed from reality.
Today is a great day! Finally I can share with you all what I’ve been working on along with my good friend Daniel Santana and Jonathan de Blok! Nexus DBR is a plugin available for 3ds Max users based on the Nexus Framework.
Nexus DBR plugin allows fast iterations on renders without the hassle of network rendering while using your render farm in an interactive workflow. Some of its main features include:
But words are just words! So here’s a video showing it all Hope you like it and if you are interested in knowing more about price and licensing scheme contact us at email@example.com
Another one bites the dust. A bunch of #inktober in this one
Most people are familiar with “technical debt” in terms of code or architectural problems that slow down development. There are other forms of technical debt, though, that can be overlooked.
Dead Code: There are endless “dead code as debt” scenarios. You have a “live” function that is only used from dead code, hiding the fact that this function is also dead (this situation is cancerous). Every time you grep, you have to wade through code that is dead. Every time someone stumbles across the dead code, they need to figure out if it’s dead or alive. There’s no reason for any of this (especially not “keep it around as reference”). Dead code is a debt, but it’s also easy to pay back. Remove your dead code.
Unused Repos or Branches: Every time a new person starts, they will ponder what code is dead and what is alive. This pondering includes code, issues, and documentation. It is sloppy and unnecessary. Put unused repositories in cold storage. Delete stale branches.
Large Backlog: The larger the backlog, the worse the experience of using it. It’s harder to find, reclassify, and prioritize. Some developers will not even bother. A backlog is not a place for everyone to list anything they think should ever be done. Close stale and low-priority tickets. Close “symptom” tickets that you know won’t be addressed until a system is rewritten. Close everything except 3 months of work (and manage further out work on your roadmap, which should not be in your backlog).
Dirty Wikis/Documentation: Why out of date documentation is harmful should be pretty self-explanatory. Don’t let it get that way (or just delete the documentation). Make documentation someone’s responsibility, or make it part of the “definition of done.”
Every organization has these things. By recognizing them as debt, and thus detrimental to development, it can perhaps simplify any argument about what to do.
The Destiny talks at SIGGRAPH were really interesting, the material just went up and you should definitely check it out:
We are excited and happy to welcome and old friend, Ramahan Faulk, recently of Digital Domain, to Rigging Dojo as our new modeling Mentor! Ramahan will be teaching a course on professionally built topology for performance based deformations. A must-take course for modelers who need to build for animation as well as character TDs needing […]
The post Ramahan Faulk New Mentor, New Course at Rigging Dojo appeared first on Rigging Dojo.
TLDR: If you get that error for the code on page 163, see the fix at https://github.com/rgalanakis/practicalmayapython/pull/2/files
In August, reader Ric Williams noted:
I’m running Maya 2015 with Windows 7 64-bit. On page 163 when we open the GUI using a Shelf button, the GUI status bar does not work, (it works when called from outside Maya). This RuntimeError appears:
RuntimeError: Internal C++ object (PySide.QtGui.QStatusBar) already deleted.
I no longer have Maya installed so I couldn’t debug it, but reader ragingViking (sorry, don’t know your real name!) contributed a fix to the book’s GitHub repository. You can see the fix here: https://github.com/rgalanakis/practicalmayapython/pull/2/files
And you can see the issue which has more explanation here: https://github.com/rgalanakis/practicalmayapython/issues/1
Thanks again to Ric and ragingViking. I did my best to test the code with various versions of Maya but definitely missed some things (especially those which required manual testing). If you find any other problems, please don’t hesitate to send me an email!