Friday Flashback #148

Faux Pas (1989) by Softimage, Daniel Langois, Georges Mauro and Char Davies.

When I was Six (1993) by Michelle Robinson

Some commentary from Algorithmic Video Art: an internship report

Exemplary for this stage is the use of the Softimage software in some of the ISEA videos. Softimage is the creator and publisher of software tools for artist whom work with computer generated imagery (CGI). Though Softimage mainly focuses itself on graphic tools for the creators of commercial films and video games, the company also supports educational and artistic projects23. During an early ISEA symposia one such project was Faux Pas (1989) created by artists Daniel Langois and Char Davies amongst others. This short animation of the anthropomorphism of a giant board of chess on which a rook (a chess tower) stumbles to his death, is surprisingly (hyper)realistic for the time it was made. One revels in the level of technological complexity, rather than in the tragedy which befall the chess pieces. Softimage is credited in both the animation itself and in most background information on the video. This means the technology used is flaunted explicitly and it becomes an important element of the work itself (almost to the point of it being an advertisement for Softimage).

The display of the capabilities of the current technology in Faux Pas, as if it were a technical experiment, seems to outweigh the artistic content. Through its derivation of conventions of realism, technology becomes the object of the work. The video When I was Six (1993) by Michelle Robinson uses Softimage software as well, but here the technology seems more secondary to Robinsons creative input. When I was Six is an animation filmed entirely from one perspective. Presumably it is the perspective of an imaginative six year old lying in bed and scared of the dark, for we see a dim room with bedchamber furniture which turns alive (much like the chess pieces in Faux Pas). The furniture, such as a closet and a chair, looms towards the “camera”, casting eerie shadows and threatening the viewer/six year old.

Although the software has undoubtedly improved since Faux Pas, it does not appear to be the main focus of Robinson. However, the film still derives conventions from other media forms such as animation and cinema. The graphic technology used in this work is no longer the object, but more of a means to an end and though the basic aesthetics are visibly different from the aesthetics of either animation or cinema, not much has changed in either form or content. These videos exemplify the critique Greenfield refers to on computer art which merely uses technology and software as a set of tools.

Scripting: Getting the StrandPosition arrays

StrandPosition is an array of arrays: one array of positions for each strand.

Here’s a Python snippet:

from win32com.client import constants
xsi = Application

def dispFix( badDispatch ):
    import win32com.client.dynamic
    # Re-Wraps a bad dispatch into a working one:
    return win32com.client.dynamic.Dispatch(badDispatch)

attr = xsi.Selection(0).ActivePrimitive.Geometry.ICEAttributes( "StrandPosition" )
dataType = attr.DataType
data2D = attr.DataArray2D
for data in data2D:
   for elem in data:
      elem = dispFix(elem)
      xsi.LogMessage( "Vector3: " + str(elem.X) + ":" + str(elem.Y) + ":" + str(elem.Z) )

And here’s a JScript snippet:

a = Selection(0).ActivePrimitive.Geometry.ICEAttributes( "StrandPosition" );
LogMessage( ClassName(a) );

x = a.DataArray2D.toArray();
LogMessage( x.length );
for ( var i = 0; i < x.length; i++ )
   y = x[i].toArray();
   LogMessage( "=======================" );
   for ( var j = 0; j < y.length; j++ )
      LogMessage( y[j].X + ", " + y[j].Y + ", " + y[j].Z );

Troubleshooting 101: Startup Crashes

Here’s the basic recipe for troubleshooting a startup crash:

See also:

Friday Flashback #147

Private Revolution
SOFTIMAGE Animation Software Breaks New Ground
Some facts from this April 1992 article:

  • The beta version of the SOFTIMAGE 4D Creative Environment made its debut at the 1988 SIGGRAPH show, and SOFTIMAGE Version 1.0 was released in January, 1989.
  • A basic SOFTIMAGE software package is priced around $34,000; the full-blown system may cost up to $56,000 for the software alone.
  • SIGGRAPH 1991 in Las Vegas, NV, saw the debut of the SOFTIMAGE Actor module
InMotion_April1992_1 InMotion_April1992_2

Private Revolutlon
SOFTIMAGE Animation Software Breaks New Ground

Last summer, James Cameron’s Terminator 2 was widely hailed for revolutionizing the use of computer animation in the production industry- at a cost of about $80 million. But a quieter- and more cost-effective revolution in computer animation has been underway for some time in Montreal, Canada, which is home to software manufacturer SOFTIMAGE Inc.

In the four years since the introduction of the modular SOFTIMAGE Creative Environment, more than 230 companies around the world have licensed the 3D animation software, which also offers options that provide paint and compositing capabilities. Now, two recent developments have enabled SOFTIMAGE to offer previously-unprecedented animation capabilities to tele-production facilities and corporate communicators alike: the release of the SOFTIMAGE Actor module for character animation and the recent announcement of support for the economical Silicon Graphics IRIS Indigo Elan

In The Beginning

SOFTIMAGE founder and president Daniel Langlois began developing the SOFTIMAGE Creative Environment in 1986. A graphic designer who received wide acclaim for his codirection of the animated film Tony de Peltrie in 1985, Langlois dreamed of creating a software package that would free computer graphic artists from the tedium of programming. The beta version of the SOFTIMAGE 4D Creative Environment made its debut at the 1988 SIGGRAPH show, and SOFTIMAGE Version 1.0 was released in January, 1989.

“Right from the outset, Daniel designed SOFTIMAGE with the artist in mind- especially in terms of its user interface,” says SOFTIMAGE marketing coordinator Elizabeth Jones. “He wanted artists to feel like they were working with a powerful set of tools, not a computer.”

SOFTIMAGE runs on all Silicon Graphics workstations, from the IRIS Indigo and the Personal IRIS to the highpowered 310 VGX and 340 GTX platforms. The Silicon Graphics IRIS 4G35GT is currently the most popular platform among SOFTIMAGE users. A basic SOFTIMAGE software package is priced around $34,000; the full-blown system may cost up to $56,000 for the software alone.

“I believe I was the first licensed SOFTIMAGE user in the world,” says graphic artist Sam Hadley of Fast Cuts Inc. in Washington, DC, who currently runs SOFTIMAGE on the IRIS 4G35GT. Hadley began working with SOFTIMAGE in 1989, when he was a graphic artist at Vox-am Associates in Silver Spring, MD.

“The user interface is still pretty much the same- really intuitive- but SOFTIMAGE has gotten a lot more powerful in the last few years,” says Hadley. “The system I have now runs about 15 times faster than it could a few years ago.” A Betacam SP facility that caters to the government, corporate and association markets, Fast Cuts purchased its SOFTIMAGE system about eight months ago.

“The Pan-American Health Organization wanted us to do three 30-second animated PSAs showing people how to prevent the spread of cholera by boiling their water and cooking their food,” Hadley recounts. “The hardware and software for the system arrived in boxes one morning, and by night I had the first three seconds of animation on tape. In two and a half weeks, all three spots were on the air.”

Multiple Choice
Designed to provide artists with flexibility as well as creative freedom, SOFTIMAGE can output images at multiple resolutions to a wide range of formats,, including NTSC, PAL, HDTV, 35mm film and 4 X 5 transparencies. Both technical support and services for SOFTIMAGE users are available through the Customer Support Department at SOFTIMAGE headquarters in Montreal; its services include rendering and outputting to both film and video. With the PostScript option, SOFTIMAGE can also output line work to Post- Script-compatible printers, for applications such as storyboards or conventional cel animation. This versatility has contributed to SOFTIMAGE’s popularity as a tool for architectural and industrial design, education and scientific visualization.

At Northern Telecom lnc. in Research Park, NC, animation director and marketing specialist Paul Graham uses SOFTIMAGE to produce “everything from brochure covers and videos to high-res images for trade show display panels,” says Graham. Running on a Silicon Graphics 310 VGX workstation, the SOFTIMAGE system at Northern Telecom includes the Nefertiti paint program and the Eddie compositing module, which provides in-computer integration of live action and special effects.

“SOFTIMAGE lets me do everything Irom logo spinning to visualizing the concepts behind the services we market,” says Graham, who is particularly impressed with SOFTIMAGE’s Wave module.

Wave allows the artist to automatically animate multiple deformations of ob jects, such as raindrops falling on a pond or flags rippling in thewind. “Wave makes it a million percent easier to create ripple and water effects, and it allows me to use as many waves as I want in the same obiect,” says Graham. “Other programs limit you to a single wave.”

Graham recentlY used Wave to animate the background for a threescreen video presentation at the ITVA Silver Reel awards. “With Wave, I created lour or five water ripples that ran into each other and bounced back and forth across the three screens,” says Graham’ “Since you can actually see the deformations as they take place at the wireframe level, you have a tremendous amount of control over the effect.”

Enter Actor

SIGGRAPH 1991 in Las Vegas, NV, saw the debut of the SOFTIMAGE Actor module, which automates many of the oncecumbersome processes required to create detailed animation sequences.

Actor uses inverse kinematics to pre vide complex and realistic skeletal animation. The artist uses a “skeleton editor” to construct a hierarchical chain and specify the range of motion in each of its joints. When the artist moves one end of the chain, Actor automatically calculates the subsequent movements of the entire chain. The artist can specify environmental conditions such as wind or gravity, and the system will automatically assimilate them into its calculatiens. Deformable envelopes created with Actor automatically match the movements of an underlying hierarchical chain, allowing for the speedy creation of remarkably detailed characters.

The graphic artists at Manhattanbased Compugraph Designs, a division of MTI subsidiary The lmage Group, were among the first designers to work with Actor. “I had a storyboard that really required Actor, so SOFTIMAGE sent us a beta version,” says creative director Mike Saz.

“Professional animators appreciate SOFTIMAGE for features like latticebased deformation of shapes and skeletal control of figures through inverse kinematics,” notes Saz. “Other software isn’t addressing these features. And to have animation software that’s fast enough to use in production is even better. You know how the production industry is- if you can’t have it done by Tuesday, then it doesn’t matter.”

Compugraph designer/animator Lisa Suzuki used SOFTIMAGE to create two fanciful spots for Sony Corporation in Mexico. “Sony is moving into the VHS VCR market, so the spots take you inside a Sony VHS machine and show that there’s an entire world in there,” says Suzuki. “You see a fish scurrying through an underwater scene full of waving plants. Then the body of the fish changes into the body of a bird, through shapeto.shape animation, and Actor animates the bird’s flap ping wings.”

Mixed Media

At Manhattan’s VSC Post, computer animator Dave Throssel uses SOFTIMAGE on high-end commercial proiects where animated characters are composited with live-action sequences. In the past few months, Throssel has completed spots for Warner Cable, Norelco, Fixodent and the New York Lottery.

“I run SOFTIMAGE on a Personal IRIS, which is perfect for the kind of work I do,” says Throssel. “I usually don’t render whole scenes- just the heroes in the scenes. And SOFTIMAGE has a’drawover’ option that lets you see the live action behind your wireframe model.”

The New York Lottery campaign uses an animated champagne cork ricocheting around the home of two lotterywinners to make the point that, “‘You’d better be careful, because you might just win the lottery’,” says Throssel. Duringthe liveaction shoot, vases and cookie jars on the set were rigged to break on cue. Working with this footage, Throssel then used SOFTIMAGE to animate a cork that flies out of its champagne bottle and wreaks good-natured havoc on the room.

“Our clients like SOFTIMAGE because it has a single interface and they understand the terminology it uses,” says Throssel. “Our system paid for itself in just four months. SOFTIMAGE is the best animation package you can get your hands on, and the Silicon Graphics workstations keep getting cheaper and more powerful. Once you start using SOFTIMAGE , you don’t want to work with anything else.”

Getting values and fcurves for the port parameters of an ICE node

ICE nodes have ports, and the ports have parameters. It’s the parameters that you work with in an ICE node PPG.

For simple types such as float, integer and boolean, you can access the port parameter value through ICENodeInputPort.Value. However, for more complex types, like a 3D vector, you need to go through the ICENodeInputPort.Parameters.

In either case (simple or complex types), to get an Fcurve, you get a parameter and then use Parameter.Source.

For example, suppose you have a Scalar node:
To get the value from a Scalar node, you’d do this:

si = Application
node = si.Dictionary.GetObject( "pointcloud.pointcloud.ICETree.ScalarNode" )
port = node.InputPorts(0)

# For scalars, you can just use the port.Value property
print port.Value

# Or you could go through the Parameters
print port.Parameters(0).Value
# 0.428628623486
# 0.428628623486

# It's a little confusing because the port and the parameter have the same name:
print port.FullName
print port.Parameters(0).FullName
# pointcloud.pointcloud.ICETree.ScalarNode.value
# pointcloud.pointcloud.ICETree.ScalarNode.value

# Now get the Fcurve
fcv = param.Source

Now consider the case of a 3D Vector node, where you have one port (value) and three parameters (value_x, value_y, and value_z):
In this case, you cannot use ICENodeInputPort.Value, so you have to go through the parameters collection:

si = Application
node = si.Dictionary.GetObject( "pointcloud.pointcloud.ICETree.3DVectorNode" )
port = node.InputPorts(0)
print port.FullName # pointcloud.pointcloud.ICETree.3DVectorNode.value
param = port.Parameters( 0 )
print param.FullName # pointcloud.pointcloud.ICETree.3DVectorNode.value_x
print param.Value # 0.933080613613

# Now get the Fcurve
fcv = param.Source

hat tip: Alan Fregtman

Scripting: Toggling the constraint compensation mode

Here’s one way, using the not operator.

si = Application

The “problem” with this approach is that you’re toggling between 0 and -1, not between 0 and 1 (when you click the CnsComp button in the UI, you set the pref to either 0 or 1). The -1 happens because not 0 is -1.

Application.LogMessage( True == 1 )
Application.LogMessage( False == 0 )
Application.LogMessage( not False == -1 )
# INFO : True
# INFO : True
# INFO : True

So here’s a couple of other ways to toggle the preference value:

si = Application
si = Application
toggle = [1,0]

Linking an ICE compound to a help page

The short answer is that you can’t do it, not really. The best you can do is provide a URL in the compound properties
and then right-click the compound and click Open Netview on URL.

For ICE compounds, a CompoundNode property is loaded into the PPG when you inspect the compound.
This CompoundNode is like a proxy container for the actual compound, and it takes care of populating the PPG with the required controls, and finding the right help page. To do that, it just takes the name of the compound and constructs a URL like (Hmm, having just said that, I figure if you had a local version of the help, then you could stick your own help page there, and Softimage would find it.)

For shader compounds it’s a little better, because you can put something like this in your PPG Logic, and it will work.

#ppg logic start
from win32com.client import constants

def OnInit():
    Application.LogMessage( "OnInit" )
    PPG.PPGLayout.SetAttribute( constants.siUIHelpFile, "" )
#ppg logic end

hat tip: everybody on this thread

Screenshots of the week

Arnold shader “OSO” in emTools version 1.910
by Mootzoid

A script that applies fur via ICE. And Compression Matting on the fur

feathers and script improvements

Compression Matting on fur controlled by texture map

UV to position
by Mathaeus

Transform UVs in the render tree
by NNois

Select in Array until Max Sum

Read color information of a texture map
by face