Maya

Maya is a high-end 3D computer graphics and 3D modelling software package, originally by Alias Systems Corporation but now owned by Autodesk under its Media and Entertainment division. Autodesk acquired the software in October 2005 upon purchasing Alias. It is often used in the film and TV industry, as well as for computer and video games.

Overview
Maya, used in many films today, is named for the Sanskrit word meaning illusion and is a popular, proprietary integrated 3D software suite, evolved from Alias PowerAnimator. Maya comes in two main versions, Maya Complete (the less powerful package) and Maya Unlimited. Maya Unlimited is now priced similarly to other proprietary 3D programs, but used to be considerably more expensive. Maya Personal Learning Edition (PLE) is available for non-commercial use, and is available at no cost. Images rendered with Maya PLE are watermarked.

Maya was developed by Alias and is released for the Microsoft Windows, Linux, IRIX, and Mac OS X operating systems. The latest version of Maya, version 8.0, was released in August 2006. 6.5 was the last version that supported IRIX, due to the platform's declining popularity in recent years. When Autodesk acquired Alias in October 2005, they agreed to continue the product line. At the time of the acquisition, the question among Maya users was if Autodesk would merge Maya and their 3D Graphics Software 3D Studio Max creating a hybrid dubbed "Mayax". Subsequent interviews clarified that they will be kept separated. The acquisition was completed in January 10th, 2006.

The most important feature of Maya is its openness to third-party software, which can strip Maya completely of its standard appearance and, using only the Maya kernel, can transform it into a highly customized version of the software. Apart from its intrinsic power and flexibility, this feature in itself made Maya appealing to large studios which tend to write quite a lot of custom code for their productions using the provided software development kit.

Maya also features a powerful, interpreted, cross-platform scripting language called Maya Embedded Language (MEL), which is similar to Tcl. It is not only provided as a scripting language, but as means to customize Maya's core functionality (much of Maya's environment and tools are written in the language). Additionally, user interactions are implemented and recorded as MEL scripting code which users can view and drag onto a toolbar to create new 'macro' tools instantly. This provides animators with the power to add functionality to Maya without experience in C or C++ programming and compilers, though that option is provided with the software development kit.

Project files, including all geometry and animation data, are stored as sequences of MEL operations which can be optionally saved as a 'human readable' file (.ma, for Maya ASCII), editable in any text editor outside of the Maya environment and allows for a tremendous level of flexibility when working with external tools. It can also be edited to allow the file to be opened on previous versions of the software.

Hotbox provides instant access to the majority of features in Maya via a large menu that surrounds the mouse pointer at any time when a user holds down the space bar.

Modeling

 * NURBS Modeling
 * NURBS is an acronym for Non-Uniform Rational B-Splines.
 * ‘’Non-Uniform’’ refers to the parameterization of the curve. Non-Uniform curves allow, among other things, the presence of multi-knots, which are needed to represent Bezier curves. ‘’Rational’’ refers to the underlying mathematical representation. This property allows NURBS to represent exact conics (such as parabolic curves, circles, and ellipses) in addition to free-form curves. ‘’B-splines’’ are piecewise polynomial curves that have a parametric representation.
 * Splines are types of curves, originally developed for ship-building in the days before computer modeling. Naval architects needed a way to draw a smooth curve through a set of points. The solution was to place metal weights (called knots) at the control points, and bend a thin metal or wooden beam (called a spline) through the weights. The physics of the bending spline meant that the influence of each weight was greatest at the point of contact, and decreased smoothly further along the spline. To get more control over a certain region of the spline, the draftsman simply added more weights. This scheme had obvious problems with data exchange. A mathematical way was needed to describe the shape of the curve. Cubic Polynomials Splines are the mathematical equivalent of the draftsman's wooden beam. Polynomials were extended to B-splines (for Basis splines), which are sums of lower-level polynomial splines. Then B-splines were extended to create a mathematical representation called NURBS, which are used by Alias® Maya®.


 * Polygonal Modeling
 * A polygon is an n-sided shape, defined by its corners (vertices) and the straight lines between them (edges). When you model with polygons you usually use triangles or quadrilaterals ("quads"), although Alias® Maya® supports polygons with more sides. An individual polygon is often called a face, and is thought of as the filled area defined by its vertices and edges.


 * SubDivision Surface Modeling
 * Commonly abbreviated as SubD Modeling with subdivision surfaces is an easy way to create intricate objects such as human hands. It combines the best features of NURBS and polygonal modeling. Subdivision surfaces allow you to use a single surface to model complex shapes. A single subdivision surface can have different levels of detail in different regions. That is, a region that has a complex shape can have more control points to allow finer detail, while a simple or flat region needs fewer control points.
 * Subdivision surfaces get their name from their characteristic "dividing into regions of greater detail". You start with a base mesh and divide and subdivide regions into finer and finer detail, with each subdivision giving greater control in that area.
 * You reshape subdivision surfaces by modifying control points at the different levels of the hierarchy. The base mesh (or "level 0" mesh) allows you to reshape large areas of the overall surface. The subdivided levels allow finer control in specific regions of the surface.
 * ’’’Advantages of subdivision surfaces’’’
 * Subdivision surfaces allow higher level control over shape than polygons.
 * They allow you to only use complex geometry in the complex regions of your model.
 * They allow creases (sharp edges) and arbitrary topology (not just four-sided sheets like in NURBS).
 * The continuity of subdivision surfaces eliminates many of the problems that can occur at seams when you animate NURBS surfaces.
 * You can bind subdivision surfaces to skeletons at a coarse level and the effects will translate smoothly to the finer levels.

Animation, Character Setup, and Deformers

 * Keyframe Animation
 * Nonlinear Animation
 * After animating a character with keyframes or motion capture, you can collect its animation data into a single, editable sequence. This animation sequence is called an animation clip.
 * In Maya, there are two types of clip: source clips and regular clips. Maya preserves and protects a character's original animation curves by storing them in source clips. You do not use source clips to animate your characters. Instead, you use copies or instances of source clips called regular clips to animate your characters nonlinearly. See Animation clips.
 * Moving, manipulating, and blending regular clips to produce a smooth series of motions for a character is the basis of nonlinear animation. The tool with which you manage all these aspects of a character's nonlinear animation is the Trax Editor.


 * Path Animation
 * A path animation controls the position and rotation of an object along a curve. A NURBS curve cannot be designated as a motion path. An object must first be attached to the curve for it to become a path curve. See To create a motion path by attaching an object to a curve. You can also generate motion paths by animating objects using motion path keys. See To create a motion path using motion path keys.


 * Motion Capture Animation
 * Skeletons
 * Skeletons are hierarchical, articulated structures that let you pose and animate bound models. A skeleton provides a deformable model with the same underlying structure as the human skeleton gives the human body.
 * Just like in the human body, the location of joints and the number of joints you add to a skeleton determine how the skeleton's bound model or `body' moves. When you bind a model to a skeleton, it is called skinning.
 * Forward Kinematics
 * The reverse of Inverse Kinematics, Forward Kinematics is an animation method that involves moving each joint without the restriction of an expected final position. Thus, the 'goal' is to move a joint (or series of joints) as desired, and the final pose is a consequence of those movements. Forward Kinematics is often used for finely-tuned joint movement (such as hands & fingers), as it allows for more complete control over posing. For more information, see Forward kinematic animation.
 * Inverse Kinematics
 * The reverse of Forward Kinematics, Inverse Kinematics is a method that involves defining a final pose, and generating joint movement as needed to reach that pose. Thus, the 'goal' is for all joints to be in a final pose, and the individual joint movements are a consequence of getting to that final pose. Joints must have carefully defined limits to their possible motion for Inverse Kinematics to work well, or the joints can end up 'flopping' before reaching the goal pose. Inverse Kinematics is often used for large limb movement (such as walking, reaching, etc.). For more information, see Inverse kinematic animation and Inverse kinematics.
 * Full Body IK Solver
 * When Alias bought Kaydara, Maya got an upgrade, from Kaydara Motion Builder, with a full body IK solver (FBIK Solver) which simulates real body kinematics. The package comes with a biped and a quadruped FBIK samples.


 * Skinning
 * ’’Skinning’’ is the process of setting up a character's model so that it can be deformed by a skeleton. For more information on skeletons, see What are skeletons?. You skin a model by binding a skeleton to the model. You can bind a model to a skeleton by a variety of skinning methods, including smooth skinning and rigid skinning. Smooth skinning and rigid skinning are direct skinning methods. You can also use indirect skinning methods, which combine the use of lattice or wrap deformers with either smooth or rigid skinning.


 * Constraints
 * ’’Constraints’’ enable you to constrain the position, orientation, or scale of an object to other objects. Further, with constraints you can impose specific limits on objects and automate animation processes.


 * Character Sets
 * In Maya, a character set is a node that brings together into a set all the attributes of any collection of objects that you want to animate together. The character set could be anything: a well-armed robot, an automobile, or even some seemingly unrelated collection of objects. Maya enables you to bring together all the attributes together in a character node, so you only have to select one node, the character node, when you want to animate all the various attributes.


 * Deformers
 * ’’deformers‘’ are high-level tools that you can use to manipulate (when modeling) or drive (when animating) the low-level components of a target geometry. In other software packages, the terms modifiers and space warps are used to refer to what Maya calls deformers. The following are the many types of deformers: Blend Shape deformer, Lattice deformer, Cluster deformer, Nonlinear deformers, Sculpt deformer, Soft Modification deformer, Jiggle deformer, Wire deformer, Wrinkle deformer, Wrap deformer, Point On Curve deformer.

Dynamics and Simulation

 * Particles
 * ’’Particles’’ are points that display as dots, streaks, spheres, blobby surfaces, or other items. You can animate the display and movement of particles with various techniques; for example, keys, expressions, and fields such as gravity. Effective for smoke, water droplets etc.


 * Fields
 * the motion of natural forces can be simulated with dynamic fields. For example, you can connect a vortex field to emitted particles to create swirling motion.


 * Soft Body Simulation
 * You can recreate a geometric object as a flexible object called a soft body. You can use various animation techniques to make the soft body bend, ripple, and bulge like soft objects in nature.


 * Rigid Body Simulation
 * A rigid body is a polygonal or NURBS surface converted to an unyielding shape. Unlike conventional surfaces, rigid bodies collide rather than pass through each other during animation. To animate rigid body motion, you use fields, keys, expressions, rigid body constraints, or collisions with particles.


 * Effects
 * Maya effects are built-in programs that make it easy for you to create complex animation effects such as smoke and fire. Each Maya effect offers many options and attributes for tuning the results.

Rendering and Render Setup

 * Shading
 * In the real world, what an object is made of is one of two main factors that determine the appearance of its surface (the other is light). This is because when light hits the object, some of the light is absorbed and some of it is reflected. The smoother the object, the shinier it is; the rougher the object, the more matte it is.
 * In Alias® Maya®, the appearance of a surface is defined by how it's shaded. Surface shading is a combination of the basic material of an object and any textures that are applied to it.
 * In Maya, materials (also called shaders) define an object's substance. Some of the most basic attributes of materials include color, transparency, and shine. For more information on materials in Maya, see Maya materials.
 * Factors beyond basic color, transparency, and shine that determine the appearance of an object's surface (such as more complex color, transparency, shine, surface relief, reflection, or atmosphere) are defined by textures.


 * Toon Shading
 * Toon shading creates the look of 2D cel or cartoon animation using 3D modeling and animation software. Elements of the "toon" look include profile lines (outlines), border lines, crease lines, intersection lines, and solid color shading. Combined, these elements recreate the look of traditional animation's "ink and paint" technique, where ink refers to lines and paint refers to shading.


 * Lighting
 * In the real world, when light shines on a surface, the parts of the surface facing toward the light source appear illuminated, and the parts of the surface facing away from the light source appear dark. If one object is located between a second object and the light source, the first object casts a shadow onto the second object.


 * PaintEffects
 * A component of Maya used to paint brush strokes and particle effects on a 2D canvas or on or between 3D geometry. Paint Effects can be used as a traditional paint program to paint images on a canvas, to paint repeatable textures applied to 3D geometry in scenes, or to paint in 3D space
 * ’’Paint Effects’’integrates 2D painting tools into a 3D rendering environment. Libraries include numerous trees, grasses, and plants which can be painted to 'grow' off the surface of an object.


 * mental ray
 * Native mental ray renderer.


 * RenderMan for Maya
 * In 2005, Pixar released its highly anticipated RenderMan for Maya renderer which incorporates the full RenderMan Pro Server features into a native Maya plugin. The workflow involves the use of maya materials converted into RenderMan .slo which constitutes a low learning curve.

Unlimited
Maya unlimited version comes with an advanced set of tools not available in the Maya complete version.
 * Maya Fluid
 * A realistic fluid simulator (effective for smoke, fire, clouds and explosions, added in Maya 4.5)


 * Maya Cloth
 * Cloth simulation to automatically simulate clothing and fabrics moving realistically over an animated character, for example. The Maya Cloth toolset has been enhanced in every version of Maya released after Spiderman 2. Alias worked with Sony Pictures Imageworks to get Maya Cloth up to scratch for that production, and all those changes have been implemented. Although the big studios opted to use third party plugins such as Syflex instead of the (relatively) cumbersome Maya Cloth.


 * Maya Fur
 * Animal fur simulation similar to Maya Hair. It can be used to simulate other fur-like objects, such as grass.


 * Maya Hair
 * A simulator for realistic-looking human hair implemented using curves and PaintEffects. These are also known as dynamic curves.


 * Maya Live
 * A set of motion tracking tools for CG matching to clean plate footage.

Scripting & Plugins
A feature that makes Maya ever more powerful is that you can connect anything to anything. E.g. you can use a color intensity of a shader to control the movement of a door opening and closing. To control the node based system of maya, fully reconfigurable user interface can be scripted with MEL script code which can be dropped onto a shelf to create a new icon that executes that code)
 * List of Maya plugins

The History of Maya
Maya is the culmination of three 3D software lines: Wavefront's The Advanced Visualizer (in California), Thomson Digital Image (TDI) Explore (in France) and Alias' Power Animator (in Canada). In 1993 Wavefront purchased TDI, and in 1995 Silicon Graphics Incorporated (SGI) purchased both Alias and Wavefront (due to pressure from Microsoft's purchase of Softimage earlier that year) and combined them into one working company, producing a single package from their collective source code. In the mid-1990's, the most popular pipeline in Hollywood films was a combination of tools: Alias Studio for modeling, Softimage for animation, and PhotoRealistic RenderMan for rendering. This combination was used for numerous films, such as Jurassic Park, The Abyss and Terminator 2: Judgment Day. The combined company was referred to as Alias|Wavefront. It took Alias|Wavefront two more years after the merger to release the highly anticipated Maya.

Both Alias and Wavefront were working on their next generation of software at the time of the merger. Alias had taken a Macintosh product, "Alias Sketch!", moved it to the SGI platform and added many features to it. The code name for this project was "Maya". The first scene ever animated with Maya was the cave-mouth from Disney's "Aladdin".

After much discussion it was decided to adopt Alias' "Maya" architecture, and merge Wavefront's code with it.

In the early days of development, Maya used TCL as the scripting language. After the merger, there was debate amongst those who supported TCL, Perl and Sophia. Sophia was much faster than the others and won out. However, once error checking was added, it ended up being equally slow.

Upon its release in 1998, Alias|Wavefront discontinued all previous animation-based software lines including Alias Power Animator, encouraging consumers to upgrade to Maya. It succeeded in expanding its product line to take over a great deal of market share, with leading visual effects companies such as Industrial Light and Magic and Tippett Studio switching from Softimage to Maya for the animation software.

Later Alias|Wavefront was renamed Alias. In 2005 Alias was sold by the cash-strapped SGI to the Teachers' pension fund of Ontario and the private equity investment firm Accel-KKR.

In October 2005, Alias was sold again, this time to Autodesk, and on January 10, 2006, Autodesk completed the acquisition and Alias Maya is now known as Autodesk Maya.

Maya has also been used to animate popular shows. Maya is used in combination with Corel to animate the cartoon South Park, and has been used to make 3D segments on the show Futurama.

Version release dates history

 * 8.0: August 2006
 * 7.0.1: December 2005
 * 7.0: August 2005
 * 6.5.1: December 2005
 * 6.5: January 2005 (last shipping IRIX Version)
 * 6.0: May 2004
 * 5.0: May 2003
 * 4.5: July 2002
 * 4.0: June 2001 (no Mac OS X Version)
 * 3.5.1: September 2002 (Mac OS X only)
 * 3.5: October 2001 (first shipping Mac OS X Version only)
 * 3.0: February 2000 (first shipping Linux Version)
 * 2.5.2: March 2000
 * 2.5: November 1999
 * 2.0: June 1999
 * 1.5: October 1998 (IRIX only)
 * 1.0.1: October 1998 (Windows Version)
 * 1.0.1: June 1998 (IRIX Version)
 * 1.0: June 1998 (first shipping Windows Version)
 * 1.0: February 1998 (first shipping IRIX Version)