Friday Flashback #54

It now goes by the name “Autodesk Softimage”, but before that it was “Softimage XSI”, and before that, during development and beta, it was code named “Sumatra”. So where did the name XSI come from?

Originally, XSI was the name of a file format used to SOFTIMAGE|3D scene data. The file format was based on the Microsoft DirectX .X file format, so we used the file extension .XSI (“X” + “SI” for Softimage), and that’s where “dotXSI” came from too. The XSI File Format was part of the SOFTIMAGE|GDK; here’s a page from the documentation (which I wrote, btw):

From a 2002 xsibase interview with Michael Sheasby, then the Softimage Business Dev Manager:

What does “XSI” stand for?
When Microsoft owned Softimage, the directX “.X” format was extended with modern templates such as IK, enveloping, and constraints. This enhanced version was labelled the dotXSI format, which stood for .X – Softimage. The name was clean enough to adopt for the product itself, to reflect the central nature of data pipelines to 3D software.

Here’s some of the suggested product names that didn’t make the cut when we were looking for a product name to replace the code name “Sumatra”. These suggestions came from both internal and external people…

Suggested Names ‘2000

    …because you wouldn’t give a XXXX for anything lesss
  • SOFTIMAGE | Acid
    You would have to ship it in a plain crate with ACME 3D
  • SOFTIMAGE | Alchemy
    For obvious reasons…. The name conjures up a notion of magic and special effects – this is what a 3D package does… It also sounds cool.
  • SOFTIMAGE | Ani / motion
    it’s an invented word. Covers motion, feeling and has a punctuation mark which is always cool.
  • SOFTIMAGE | Animation Factory
  • SOFTIMAGE | Artamus
  • SOFTIMAGE | Avatar
    a variant phase or version of a continuing basic entity
  • SOFTIMAGE | Catalyst
  • SOFTIMAGE | Continuum
    Continuum is used in “Space time Continuum” this constitutes openess and and never ending.
  • SOFTIMAGE | Cosmos
  • SOFTIMAGE | Cyclus V1.0
    sounds like movement
    Two people suggested “Diva”. One because “…it is a short, sexy, memorable name that means lead performer and has creative connotations in several languages. DIVA also sounds good with AVID, DV, Digital Studio, etc.”
    The other because it is Avid spelled backwards.
  • SOFTIMAGE | eclipse
    because it surpasses (or eclipses) the competition – it’s at the top of the field
  • SOFTIMAGE | Elixir – ZD
    Elixir for the Z Dimension
  • SOFTIMAGE | Elixir
  • SOFTIMAGE | Escher
  • SOFTIMAGE | Factory
  • SOFTIMAGE | Generator
    Another way to go around the widely used word of Genesis
  • SOFTIMAGE | Helix
  • SOFTIMAGE | Hyperion
  • SOFTIMAGE | Kama Sumatra
    All the flexibility you need…
  • SOFTIMAGE | Mantra
    Inspiring. Linked to your mind. Maje reach the next level.
    Its magic
  • SOFTIMAGE | Nliven
    NL – Non Linear Enliven…well, you get the idea
  • SOFTIMAGE | Nucleus
    Radioactive package
  • SOFTIMAGE | Praxis
  • SOFTIMAGE | Primal
  • SOFTIMAGE | Revolve
  • SOFTIMAGE | Revolv
  • SOFTIMAGE | Samsara
    The extinction of desire and individual consciousness
  • SOFTIMAGE | Tethys
  • SOFTIMAGE | Tonic
    Add more life to your animation
  • SOFTIMAGE | Turbo
    the acceleration of CG work
  • SOFTIMAGE | Velocity
    Do everything faster. Get where you want to go at a higher speed.

Selection filter for objects with ICE trees

Here’s a custom filter for selecting objects with ICE trees: psCustomFilters.xsiaddon. The filter appears as Obj_w_ICETree in the filter list of the Select panel in the MCP:

You can use this filter in the MCP Select panel (choose the filter and then press Ctrl+A to select all objects with an ICE tree).

Or you could make a toolbar button with these snippets:

// JScript
SelectAllUsingFilter("Obj_w_ICETree", siCheckComponentVisibility, null, null);
from siutils import C		# win32com.client.constants
Application.SelectAllUsingFilter("Obj_w_ICETree", C.siCheckComponentVisibility, "", "")

Scene Search – searching for objects by type

In this video, I take a look at how to use Search for type to find objects based on their type. For example, you can find all models by searching for “#model”, or all polygon meshes by searching for “polymsh”.

I also show how to use the Scene Explorer to find the type of an object.

Note: You can’t use the “ICETree” type to find all ICETree operators, that was a disappointment.

Copying a polygon attribute to vertices

This question came up last weekend (on si-community and xsibase): how do I copy a polygon attribute to a point attribute?

As Chris_TC and gray pointed out, a point can be associated with multiple polygons. So you use VertexToPolygons to either build a per-point array of polygon attribute values, or you do something like average the polygon attribute values and store that as a point attribute value.

Using arrays to avoid Repeat part II

Part I is here

Another building block for using arrays instead of Repeat loops: an array that looks like [0,0,0,0, 1,1,1,1, 2,2,2,2, …].

Again, the trick is to use this array as the indices for Select in Array.

Here’s how to build this kind of array:

Here’s a simple example. I get the positions of the objects in a group, and then use those positions to add points in a point cloud. Basically, I have a group of objects, and an array of vectors (the interpolated array). When I add a point, I take an object position and add a vector to it to get the point position.

In pseudo-code:

For each object in group
      for each vector in array
             Add Point
             Point Position = vector + object position 

If that ICE tree is hard to follow, then it may help to use some attributes to store intermediate values(arrays). That way you can separate out some branches of the tree: