The Autodesk Book: Imagine Design Create


THE AUTODESK BOOK
In March, 2011, Autodesk released its first book: Imagine, Design, Create: How Designers, Engineers and Architects are Changing Our World. The book provides a wide-ranging look at how the creative process and the tools of design are dramatically changing – and where design is changing in the coming years. Bringing together stories of good design happening around the world, the book shows how people are using fresh design approaches and new capabilities to solve problems, create opportunities and improve the way we live and work.

WHY A BOOK
Imagine, Design, Create expresses Autodesk’s vision for design as a means to help people innovate and prosper. As a physical artifact, it is a tangible representation of the power of design, which we can give to our customers and partners, providing them with a continual source of inspiration as well as a persistent reminder of Autodesk’s role to foster design.

You can buy the book on Amazon. As an employee, I got a free copy.

The book doesn’t really focus on Autodesk products: in fact, they’re hardly ever mentioned. It’s all about the end results and the general design process. I haven’t read the book yet, but one thing caught my eye in the chapter about the massively multiplayer Lego game:

Making LEGO bricks look real on
the screen became the next engineering
stumper. It turned out that a single 2-by-4
brick required more polygons than a World
of Warcraft avatar—the tiny studs and
surfaces contain a lot of detail. The solution
turned out to be “hidden surface removal,”
which preserved the integrity of each brick
while a player manipulated it onscreen,
but removed the polygons once the piece
snapped into place in a user’s creation. It
took forty engineers four years to build
code so that a computer could understand
when and where to remove surface detail
without harming the look of the model.

40 engineers for 4 years? Imagine what you could do to Softimage or Maya or Max with those kind of resources 😉

Friday Flashback #26


Softimage customer story from 2004/2005 for Drop, a television spot for Absolut Cut Vodka, done by The Mill. See the spot here.

Created for Absolut and McCann Erickson NY by The Mill New York, the striking spot relies heavily on the intricate CG work of Swedish artist Stefan Andersson, a long-time aficionado of SOFTIMAGE|XSI.

EAGAIN Resource temporarily unavailable for tmp/.X11-unix/X0


This post is for Softimage 2011.5 on Linux, and for Google (I’ve posted about this before, but I didn’t include the strace output that time).

If Softimage doesn’t seem to want to start, or if it is taking forever to start, and you see something like this in your strace log. Note lines 02,03, and 18:

socket(PF_FILE, SOCK_STREAM|SOCK_CLOEXEC, 0) = 19
connect(19, {sa_family=AF_FILE, path=@"/tmp/.X11-unix/X0"}, 20) = 0
getpeername(19, {sa_family=AF_FILE, path=@"/tmp/.X11-unix/X0"}, [20]) = 0
uname({sys="Linux", node="homer", ...}) = 0
access("/var/run/gdm/auth-for-xxx-Q2I4go/database", R_OK) = 0
open("/var/run/gdm/auth-for-xxx-Q2I4go/database", O_RDONLY) = 20
fstat(20, {st_mode=S_IFREG|0600, st_size=50, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f3360deb000
read(20, "\1\0\0\5homer\0\0010\0\22MIT-MAGIC-COOKIE-1"..., 4096) = 50
close(20)                               = 0     
munmap(0x7f3360deb000, 4096)            = 0
getsockname(19, {sa_family=AF_FILE, NULL}, [2]) = 0
fcntl(19, F_GETFL)                      = 0x2 (flags O_RDWR)
fcntl(19, F_SETFL, O_RDWR|O_NONBLOCK)   = 0
fcntl(19, F_SETFD, FD_CLOEXEC)          = 0
poll([{fd=19, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=19, revents=POLLOUT}])
writev(19, [{"l\0\v\0\0\0\22\0\20\0\0\0", 12}, {"", 0}, {"MIT-MAGIC-COOKIE-1", 18}, {"\0\0", 2}, {"\367\371\200\336\321\\\37\4\22\0324\274\3356|\313", 16}, {"", 0}], 6) = 48
read(19, 0x27ae690, ) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=19, events=POLLIN}], 1, -1)   = 1 ([{fd=19, revents=POLLIN}])

then you probably need to put back our x11 patch.

Send to Maya: Destination folder is invalid or not writable, operation cancelled


You may get this error when you try to Send to Maya.
The problem is that Softimage is trying to write a file in the folder Data/XSI_SAMPLES/Simulation, where it doesn’t have write permissions.

The solution is to set a new active directory (so that you no longer see XSI_SAMPLES listed in the XSI title bar). You’ll have to restart Softimage, because Softimage appears to cache the current project location at start up.

When you do a Send to Maya, the OneClick plugin writes an FBX file to the Simulation folder.

Copying envelope weights


Simple brute force example that copies the envelope weights between two shoes.

I read on the XSI list that the Blur Tools have a skinpanel tool that can copy/paste weights.

var oRShoe = Dictionary.GetObject( "Man.RShoe" );
var oLShoe = Dictionary.GetObject( "Man.LShoe" );

var oEnvelope = oRShoe.Envelopes(0);
oDeformerEnum = new Enumerator( oEnvelope.Deformers ) ;
for (;!oDeformerEnum.atEnd();oDeformerEnum.moveNext() )
{
	var oDeformer = oDeformerEnum.item() ;
	
	var vba = new VBArray( oEnvelope.GetDeformerWeights( oDeformer ) );
	var jsa = vba.toArray();

	var targetDeformer = oLShoe.Envelopes(0).Deformers( oDeformer.name.replace("R","L") );
	LogMessage( "Copy Env weights: "+ oDeformer.fullname + " -> " + targetDeformer );
	oLShoe.Envelopes(0).SetDeformerWeights( targetDeformer, jsa );
}

// INFO : Copy Env weights: Biped_Rig.RShin -> Biped_Rig.LShin
// INFO : Copy Env weights: Biped_Rig.RFootBone1 -> Biped_Rig.LFootBone1
// INFO : Copy Env weights: Biped_Rig.RFootBone2 -> Biped_Rig.LFootBone2
// INFO : Copy Env weights: Biped_Rig.RlegEff -> Biped_Rig.LlegEff
// INFO : Copy Env weights: Biped_Rig.RFootEff -> Biped_Rig.LFootEff

64-bit Softimage and Netview and Flash


As I mentioned in my video posting yesterday, if you’re running 64-bit Softimage then you won’t have Flash in Netview. That’s because Netview will be using the 64-bit version of Internet Explorer, but Flash is 32-bit only.

Outside of Softimage, back in Windows, you’re almost always running a 32-bit version of a browser, which is why Flash is available.

Netview uses an embedded web browser (an ActiveX control ) which it creates and embeds within a Softimage view.

  • On Windows, this ends up being whatever version of Internet Explorer the user has installed on their machine. However, for IE8 and later, the WebControl runs in IE7 compatiability mode.
  • On Linux, I believe Netview uses IE v5.5, which comes with Mainwin.

Luceric tweeted the other day about a beta 64-bit version of Flash. That “Square” preview release is relatively new (Nov 2010), but I know they had previous betas back in March 2010.

There’s a Linux version too of 64-bit Flash, but I don’t think it’s possible to get Flash into Netview on Linux. On Windows, Flash is installed in IE, and Netview picks up on that because Netview uses the version of IE installed with the OS. On Linux, however, we use a version of IE that ships with Softimage. So even if you had some version of IE running on Linux (unlikely), that wouldn’t be enough to get Flash into Netview. Flash would be installed just in that other IE. More likely, Flash will be installed in whatever other browser you have installed on Linux.

AAARGH! Licensing frustrations on Linux


As I’ve mentioned elsewhere, in support I’m often doing the opposite of what users do: I’m trying to break the licensing, because I’m testing something. And sometimes it can be really hard to do 😉

The other day I was trying to force Softimage (on Linux) to use a certain license server that didn’t have the right licenses, but no matter what I did, Softimage kept getting a license from somewhere else. After an extremely frustrating 30 minutes, I tracked it down to the ~/.flexlmrc file, which had a list of the license servers that Softimage has successfully used at some point:

ADSKFLEX_LICENSE_FILE=@mtl-blairs:@mtl-licserver

If Softimage can’t check out a license from the server specified in .xsi_2012, then it tries the servers listed in ~/.flexlmrc.

So all I had to do was remove the extra license servers and leave only the server specified in my .xsi_2012 resource file.

~/.flexlmrc is the Linux version of the HKEY_CURRENT_USER\Software\FLEXlm License Manager\ADSKFLEX_LICENSE_FILE registry key on Windows.

JScript Array.push on Linux = Object doesn’t support this property or method


On Linux, Array.push will give you this error: “// ERROR : Object doesn’t support this property or method.” That’s because Softimage ships with an older version of JScript (5.1) on Linux.

You can add the following to your JScript to add a push method to the Array object:

// Add a push method to the JScript Array Object
// (Array.Push was added in Jscript 5.5 but we cannot rely on this)
// @cc_on
// @if (@_jscript_version < 5.5)
var push = function(){
	for( var i = 0; arguments[ i ] != null; i++ )
		this[this.length++] = arguments[ i ];
	return( this );
	}
Array.prototype.push = push;
// @end