Tools for Artists

Michel Bret

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.


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 any situation.
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.


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 interpreter.
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.1 Mappings
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).

4.4 Lights
"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)-
* Spots
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.

4.5 Constraints
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).

4.8 Actors
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 aesthetic problem.
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 Thalmann, pp,230-246.

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).

Picture 1

Picture 2

Picture 3

Picture 4

Picture 5

Picture 6