Tools for Artists
in Computer Animation´91, Spring-Verlac, pp. 187-195Tokyo 1991.
Artists seldom have the choice other than to put up with softwares which they did not develop
or to build their own tools. The first choice, being by far the most frequent one, has left most
of them hopeless. The second one really affects a small amount of creative people.
This paper proposes an in between solution, namely a simultaneously interactive and
programmable system offering not only all the synthesis standard techniques but also the
power of a programming language : the latter easily obtained , needs a perfect control of
the former in order to modify them as well as to make up new ones.
Keywords : art, computer animation, language.
Some devicemakers (such as APPLE) stress on their equipment friendliness and their
easy-to-use softwares. It is quite true that for simple applications, standard programs based
on menus are sufficient. However, when we are faced with complexity and requirement,
these systems are limited and other tools have to be drawn up.
Sorne authors (SELTZER 65), have admitted that programming was the royal path
of the synthesis and of animation by computer. On the other hand, a lot of image synthesis
producers, besides standard softwares (such as EXPLORE , TDI France, or PIXAR, U.S.A.),
conceive complementary programs on request. However, even very sophisticated programming
languages do not offer yet the adaptability of analogical tools and discourage most creators.
So, ergonomic interfaces have been created allowing a non technician user to manipulate
sophisticated graphic systems, but the sole use of the "mouse", excluding writing, limits
inevitably the access.
Between the genuine programming, accessible to a minority only and servo-assisted
systems, a third possibility must exist : interactive and programmable simultaneously softwares,
giving the artists not only the synthesis traditional methods (ray tracing, texture) but also the
means to modify them or to conceive other ones.
One should not forget that if the painter´s style does not depend on his paint-brushes
and color brands, it is not the same as far as the computer is concerned, knowing that implicit
aesthetic choices are cabled in the code itself : such an algorithm of the rendering is not
accidentai but can vsry well be the reflexion of the program conception on the Universe and
the means to represent it.
2. ABOUT TOOLS
Tools from the past are constrained, definite : pliers will not gain anything by changing form.
On the other hand, up to date tools are "soft" : they are adaptable, evolve, we can say they
are "smart" : a skilled system can considerably increase their knowledge. In this sense, any
closed program is an outdated tool, whereas any open system is potentially adaptable to
If electronics paddles constitute a decisive improvement for traditional tools, they are
not fundamentally different from the previous ones, apart from when they become
programmable, they make the difference. In the same way, synthesis softwares operating
only through manual interface (via the mouse) lose all power pertaining to their own foundation,
i.e. the language.
Are ergonomics and user-friendliness supposedly to be the giving up of all
thoughfulness and "writing" ?
I will try to demonstrate there is nothing of the kind once I have described some of
the tools proposed by ANYFLO software.
3. A LANGUAGE
In order to give the creators immediate access to the synthesis standard methods, without
rewriting everything and without being dependent of aesthetic choices made or not, I have
designed the ANYFLO software which is an interactive open system built around an
Menus, no matter how complexe they are, do proceed only by designation, and finger
pointing is not talking yet. And so, a language was necessary. The easiest way of course was
to draw inspiration from the most known of them all : the C language. In order to free the user
of the burdensome aspects of all programming language, the syntax has been simplified and the
compiler has been made tolerant. So, there is no need of declaration (the variables type and
dimension are dynamically managed), semicolons, parenthesis can be left out as long as there
is no ambiguity.
The graphic vocation of this software has required objects of specifie type : polygonal
lines, volums, lights, fictitious cameras, fogs etc..., are as many entities the user can name,
modify and rnanipulate through calculation.
Finally, the notion of "actor" has been implemented in local functions and in statistical
memory forms which can be assigned to any object. These functions, unknown on the outside,
allow to define "behaviors", the static memories playing the role of "knowledge". Messages
can be exchanged among objects, and among the latter and the system operating the scene
or the animation.
4. EXAMPLES 0F PROGRAMMABLE TOOLS
Normally, a classic 2-D mapping (with antialiasing if the mappe is bigger
than the facet or extrapolation on the contrary) as well as a reflecting mapping
(with spheric modification of a 2-D mapping to avoid deformations) can be
allocated to volums or to facets by simple writing as follows :
mappe vol num = nume, type, parameters
num = number of the mapping image (illimited number)
type = reflecting or 2-D mapping
parameters : indicating the mapping and surface reciprocal
influence as well as the coefficients allowing to "make a hole in the mappe".
The computer user can also write a C function, linked to ANYFLO, which will be used for
each pixel : a soft interface which allows the reprocessing of useful parameters is planned for this purpose.
Picture 1 is an example of "auto mapping" (film extract "AUTOMAPPE 89), a technique which
consists in taking the image itself as the mappe. After a certain number of iterations, new forms appear.
On the other hand, the time-lag between the image and its mapping can produce interesting effects.
4.2 3-D Texture
Besides standard 3-D textures (BLINN 76, PEACHY 05) assigned to volumes, calculating specifie
parameters, the computer user can also make his own textures. He can do that two ways :
the first one consists in writing functions (in ANYFLO language) which will used for each pixel
display. Such a function holds commands which can collect the space point coordinates, the pixel of
which is the projection, as well as a set of instructions concerning this point (surface color, normal
on this point surface, etc.). A new color can then be calculated according to these values and passed on
the display unit. The syntax of such an operation reads :
texture vol num = func "toto"
which indicates that the function named "toto" will be the function using the texture assigned to
the volume number num.
The second way, sof ter and more effective, consists in writing such a function directly in C and
linked it to ANYFLO. A soft interface allows to collect any useful information relative to the database
without knowing its internai coding.
Both methods can be applied to a lot of other operations , lights for example
(see the following).
4.3 Lighting models
Standard lighting models (BLINN 77) are characterized by the data of parameters (of reflexion,
brightness, refective transparency, etc.), and some laws can be specified by the user. For instance, the
functton W(alpha) which controle the reflecting value according to the angle alpha of the light incidence
to the enlightened point can be applied to the volume number num by writing
law vol num = w
where w is a variable (which can be drawn for instance by means of the mouse or calculated by function).
"Light" type objects are normally white sources, punctual, radiating an even constant energy in
all directions. The user can build more attractive lights : (FORTIN 65)-
A spot is define dby :
-a position P
- an aimed direction V
- a variation law W of lighting according to the angle obtained by the ray on
the axis PV
- a variation law of lighting according to the distance to the source
- a color R,G,B,...
These informations can be applied to the light number num written as follow :
poi lum num = P
fui lum num = V
loi lum num = W
* Extended sources
They are defined by an emitting surface simulated by a set of luminous points. The latter can be exhaustively
characterized (for instance through reproduction of the points of a volume in the light) written as follow
poi( 1,12) lum num 1 = poi( 1,12 ) vol num2
or proceeding as statistic distribution
in a sphere of a given radius and a given density.
Noisy coefficients can be created between lights and volumes. Certain lights can light up only certain volumes and
vice versa. This ability allows the plastic reinterpretation of a realistic scene.
A hierarchy of mechanical constraints can be defined on a set of volumes in order to make it as an articulated
structure. Each tree knot correspond to an object, each link represents a constraint. The latter can have two degrees
of freedom (link type "ball-and-socket joint"), zero degree of freedom (motiontess).. These links are made
independent of the objets on which they are determined (elastic links), calculating the positions of
anchoring points according to external parameters (angles, forces, amplitude intervais, etc.). (KENNA 90).
Picture 2 shows a mechanical toy all the parts of which are subject to constraints, in order to animate
it one needs to act on one of the parts (for instance a wheel) which automatically set in motion all the
other parts (film extract "AUTOMAPPE" 1989).
Picture 3 shows a waggon pulled by an individual : all the waggon parts (wheels, subframe, sliding
and articulated rods, etc.) are subject to mechanical constraints. The wheels are forced to wheel on the
ground pulling along the remaining parts which are automatically animated. The individual himself is
operated in the same manner and is linked to the waggon. The waggon cloth roof is subject to dynamical
constraints and to the wind strenght.
Picture 4 shows some characters walking in the wind : their hair as well as their clothings undergo
forces (wind, body straps), and are automatically managed by the resolution of these constraints
(film extract "TOCCATA" 1990).
These methods have been developed for the need of realistic animation, but it is interesting to
use them for plastic purposes. And so, picture 5 shows a bird the structure of which is generated by a
hierarchy of the preceeding type, but its flight influences its environment. Picture 6 shows the fictious
links which have been established between the positions of the points of the bird body and those of the
landscape. This programmed interaction leads to reconsider the relations of content and form in terms
other than basic physics and agree with the painters questionnings on the subject.
4.6 Collision detections (HERZEN, 1990)
A function :
internai vol num 1, num2
turns over the list of volumes vertices number num 1 internal to the volume number num2 : if this list
is empty, there is no intersection between the two volumes, if not, this list can be used to determine the
normals to the surfaces at the impact point and to calculate a reaction force according to the distance and
the velocity of penetration.
Some other functions allow one volume to adhere to another one, to block one volume (or just
specific points) by another one, to control the volumes movements (or just some points of these volumes)
when they have been affected with masses and placed in a force field (ZELTZER, 65), etc.
4.7 Adaptable perspective
The same method has been applied to the perspective implementation by interfacing its calculation
with a user function. More precisely, this calculation is no longer a processus isolated frorn its context,
but can, on the contrary, adapt itself to whatever it deals with : just like real vision or the eye, during the
multiple steps it takes to analyse its environment, fits itself with what it is "looking at" ; this function will
have the ability to modify the parameters defining the fictious camera according to what is seen. The
famous painting of Sandro BOTTICELLI " Portrait of a stanger", (Florence, Musée des Offices, around 1474)
is a good illustration of this processus. One can see a man presenting a medal, but the main interest of this
painting lies in the form of the river banks, situated in the background which, oddly enough, follows the
portrait shape instead of converging on a point of the horizon as expected according to traditional perspective
rules. In the same way, if we take certain paintings of the italian "quatrocento", a perspective (with a vanishing
point to the left) is attached to left panel, whereas another perspective (with a vanishing point to the right)
is attached to the right panel. Such pictorial effects can be easly obtained through the writing of an adequate
function which will be used for each calculation of a perspective point.
The same procedure goes for all ANYFLO objecte which can be controled by local functions which
role consiste in adapting them to their environment : such the virgin Mary portrayed taller than the donor
(not because she is nearby, but because she is more important), or such part of the painting more luminous
than others (not because it is better lit up, but because the artist wants to particularly attract the spectator´s
attention on this spot).
All ANYFLO objects (volumes, lights, views fogs, trajectories, motion law, etc) can be provided with a set of "local
functions" and with static memories. The former allow to simulate a "behavior", the latter playing the role of "knowledge".
These functions, unknown outside the objects where they are defined, can be specifically used inside
of a same object, or again, from a user function. Thus, a volume placed in a given environment (constituted
of other volumes, of force fields, of contact conditions, etc.), can fit itself to it (by decoding the received
messages), take decisions (with regards to these informations and according to knowledge a priori stocked
in static memories). It can also transmit messages and modify the state of its memories.
Thus, the animator sees his role of puppet manipulator changing to the one of producer which can
control situations having a certain autonomy.
For instance, we can write :
local(1) vol num = func "toto"
which takes the text of function "toto" as first local function of the volume number num
(this function will have a compiled coding proper to this volume)
exec local("shift") fac(5) vol(2) var(´move") var( 10,20,30)
calls the local function named "shift" corresponding to the facet number 5 of the volume number 2 by giving the
string "move" and the vector (10,20,30).
In a certain way, synttiesis has enabled the automatic making of images, but, just like photography, it has not solved the
The coming out of a ray tracing software has no reason, no more than a camera, for producing attractive
images. The latter only take up a plastic dimension through the creator ´s touch who, beyond the simple use
of tools, will be able to make them show more, and use them other than for what they have been created for.
(BLINN 76) BLINN J.F., NEWELL M.E."( 1976)Texture and reflection in compute* Generated
images " Communicatioas of the ACM, Vol 19, Num 10, pp. 542-547.
(BLINN 77) BLINN J.F. (1977) "Models of Light Reflection for Computer Synthesized
Pictures" SIGGRAPH Proc., Computer Graphics, Vol 11, Num 2, pp. 192-196.
(BLINN 78) BLINN J.F. (1978) "Simulation of Wrinkled Surfaces", SIGGRAPH Proc., Vol 12,
Num 3, pp. 206-292.
(FORTIN 85) FORTIN M., LEONARD Nv MAGNENAT-THALMANN N, THALMANN D. (1985) "Ammating Lights and Shadows" M., ZELTZER D. in Computer
Generated Images". Editors Nadia Magnenat-Thalmann and Daniel Thalmann pp 4S-55.
(HERZEN 90) Von HERZEN B, BARR A.H., ZATZ H.R. ( 1990)"Geometric Collisions for
Time-Dependent Parametric Surfaces" Computer Graphics, Vol 24, Num 4, pp 39-40.
(KENNA 90) Me KENNA M., ZELTZER D.( 1990) "Dynamic Simulation of Autonomous Legged
Legged Locomotion" Computer Graphics, Vol 24, Num 4, pp 29-30.
(PEACHY 05) PEACHY DU. (1965) "Solid Texturing of Complex Surfaces" Computer Graphics,
Vol 19, Num 3, PP 279-266, Juillet
(ZELTZER 85) ZELTZER D. ( 1985)Towards an Integrated View of 3-D Computer Animation"
in "Computer-Generated Images". Editors Nadia Magnenat-Thalmann and Daniel
Michel BRET is Assistant Prof essor of A.T.I. (Arts andTechnologies of the Image) at the University of Paris 6. He works in
the field of "Computer Animation" since 1976. Author of several technical books, he has also written some animation and
synthesis softwares (used for different Systems). He has produced a large number of animation films some of which have
obtained International Prizes (IMAGINA 69, PARIGRAPH 69, IMAGE DU FUTUR 69).