the example code presented in the appendix of this disclosure spontaneously animates the behavior of a pre - verbal infant . an infant was chosen because its behavior represents the purest and simplest functioning of the physiologically derived behaviors that our psychology engine models . the general method of the invention is detailed below with references to the specific infant example as illustration . the description below is broken into steps for logical clarity , so that each explanation builds on information revealed in preceding steps . in actual practice of the method of this invention , the order of these steps may be changed , or they may be performed concurrently , as long as the interconnection of the functionalities described in stepwise fashion below remains intact . this example begins by setting up an array of independent mathematical formulae , including equations capable of generating parametrically adjustable oscillations . these equations may be capable of specifying changes in a system over time in response to forces , or force - like factors , in the manner of the dynamics branch of physics . these formula will be used to mimic the artificial character &# 39 ; s physiologically derived behaviors , including emotional factors , body movements , and physiological processes . oscillators are chosen because the physiologically derived behaviors we are modeling tend to cycle and dwell within a certain range . it is tempting to use more sophisticated mathematical formula which are independently able to generate complex behavior — such as chaotic attractors — to model physiological components . however , for the sake of clarity , this introductory example will present an array consisting of simple damped springs , approximated ( and further simplified ) with the following mathematical formula : by adjusting two parameters of these approximations , spring constant , k , and damping d , one can generate crude renditions of the rapid , shaky behaviors of the earlier - mentioned subject on a powerful stimulant ( high k , low d ), and the sluggish behavior of the subject on a depressant ( high d , low k ), as well as other combinations the reader can easily imagine . in addition , the transitions between these extreme states are continuous , allowing every shade of grey . although extremely basic , these spring approximations have the advantage of being clearly understandable , nondistracting , and — as we will see in the following steps — they can be combined to create complex and nuanced behavior . the next step in our method is to link these independent component oscillators to separate mechanisms representing components of our artificial character &# 39 ; s behavioral state , so that each unique oscillator drives a unique component . components may include the following : these can be generated a number of ways , but our particular example uses morph targets — e . g . “ smile ”, “ frown ”, “ trusting ” vs . “ suspicious ” eyes ( lids shrouding the pupil from the top vs . the bottom ), and the often - neglected but highlyevocative characteristic of “ facial asymmetry ”. the relative importance and meaning of these separate characteristics can be discussed elsewhere and is easily alterable by future programmers using this method . the salient point here is that the attack , duration and decay of each individual characteristic is determined by a separate mathematical formula . separate body movements ( and separate rotational components of a particular body movement ) can be assigned to separate oscillators , just as was done with the separate emotional representations above . separate vocal parameters such as pitch , volume , speed , and hat rise ( the musical structure of a sentence or phrase ) are uniquely assigned to separate oscillators as above . breathing is assigned to a separate oscillator . in this case , our example adds a small element of complexity to the simple two - parameter spring approximation to allow the character to go from ventilation to hyperventilation . this modification will be further described in step 4 . the goal in this step is to recreate the global uniformity of behavioral patterns that exists across various physiological systems , as noted in our earlier description of pdb behavior of subjects under the influence of a drug or an emotional state . this uniformity is achieved by linking the parameters of the separate pdb oscillators . in the code presented in the appendix of this disclosure , the variable “ awake ” ranges from 0 ( character asleep ) to 1 ( wide awake ). this variable smoothly adjusts the k and d parameters of every pdb , so that all springs become increasingly sluggish ( lower k higher d ) as “ awake ” approaches 0 . however , the degree to which various pbd oscillators are effected by the “ awake ” variable differs , so that when awake == 0 , the character &# 39 ; s breathing , although slowed , continues , whereas it &# 39 ; s physical movements are shut down . in an interactive situation , as “ awake ” decreases and reaches zero , all the details of the character &# 39 ; s swoon and its final sleeping position are instantaneously calculated , with no input from any recalled animation . this means that a character &# 39 ; s behaviors are always original , and — by linking control variables like “ awake ” directly to user input — characters can create wholly original responses based entirely on the user &# 39 ; s input . the increase in realism achieved by this method &# 39 ; s infinitely - variable , absolutely - responsive characters is readily apparent and highly satisfying to users . the interactive linking of users to control variables will be further described in step 5 . coupling oscillators — connecting them in such a way that energy can be transferred between them — is a well - studied phenomenon of physics known to produce patterns of behavior that can be highly structured , yet unpredictable . the method disclosed here couples the separate pdb equations of a character to create such patterns in the emotions and physical behavior in the character . the coupling of oscillators can be hierarchical , such as when a second pendulum is attached to the swinging bob of a “ parent ” pendulum . the method of this disclosure uses such hierarchies to add organization and structure to the separate character attributes controlled by separate pbd &# 39 ; s . in the appendix &# 39 ; s code for an interactive infant , the pbd that governs the infant &# 39 ; s breathing is the root parent of the other pbd equations . although we are attempting to keep the formulae in this example as simple as possible , this breathing pbd has been slightly enhanced . the effect of this modification can be simply described by detailing the behavior of the breathing pbd as it responds to its control variable , “ excitement .” when excitement == 0 , the character &# 39 ; s breath rate is very slow and rhythmic . as this control is increased toward excitement == 1 , the breath rate climbs smoothly to a very fast rhythmic pace . at excitement == 1 , breathing breaks a barrier , similar to that seen when laminar flow becomes turbulent , such that when excitement & gt ; 1 , the character &# 39 ; s previously methodical ventilation becomes hyperventilation , wherein both the depth and the duration of each breath becomes random . this creates an emphatic , gagging output of the breathing pdb , which is used to power both laughing and crying in the character . in both cases the pbd &# 39 ; s that govern the motion of the character &# 39 ; s head , the openness of the jaw , and other related characteristics are all children of the pbd that governs breathing . the result is that the effects of hyperventilation are passed to these other characteristics . additionally , in our example the parameters of the affected pbd &# 39 ; s can be adjusted so that they either stifle or amplify the original breathing effect . again , this is all calculated spontaneously , requires zero recalled animations , and generates behavior that is precisely customized to the user , and never repeats . another advantage of this hierarchic coupling is that naturalistic transitions tend to spontaneously emerge in the code , such as an overexcited laugh flipping into a cry . these sorts of complex , unexpected , and human - like behaviors emerge because — even though our example relies on a trivially simple mathematical approximations of a damped spring — coupling these approximations creats sophisticated , complex behavior . as a hierarchical chain of dynamic oscillators grows longer , or becomes otherwise more complex ( e . g . wider , like in a cloth simulation ), the unpredictability of the position of any particular point tends to increase . yet , in the overall system , recognizable patterns of motion may emerge in which the frequencies of multiple coupled oscillators resonate in a stable and recognizable manner . these stable patterns of motion are seen , for example , in the emergence of visible patterns on the surface of water in response to varying sound waves , and in numerous formal experiments including swinney and gollub &# 39 ; s study of the emergence of highly structured chaotic patterns taylor - couette flow . when dynamically - linked equations are used to drive emotional and behavioral components of an artificial character , these sorts of stable and recognizable patterns of motion become analogous to moods or emotional states — emerging spontaneously , enduring in a mutable form , and then disappearing under changing conditions , as they do in life . we have created a character with emotional states derived from a tuned system of interconnected oscillators . our next step is to create an interactive scenario — or virtual relationship between the character and the human user . to do this , we must link our character &# 39 ; s artificial emotional state to the emotional state of the user . this requires an interface capable of transmitting emotions from the user . recent technologies provide a plethora of opportunities to input user emotions , including combining the now - prevalent user - facing camera with facial recognition software to analyze facial expressions . such interfaces provide excellent data on the user &# 39 ; s particular expression at any time . in fact , a number of recent researchers claim to have developed software that can surpass a human in analyzing facial emotions . the method disclosed here differs from that approach in that it focuses on the kinetic elements of emotion and body language rather than analyzing endpoints . for example , by focusing on kinetic elements like the attack and decay of a smile , rather than it &# 39 ; s exact shape , the method disclosed here can classify a face that smiles slowly , then very quickly returns to neutral ( nervous ), as different than a face that that smiles quickly , then very slowly returns to neutral ( relaxed ). because the method revealed here is more dependent on patterns of motion ( body movements as well as facial expressions ) and less dependent on the accurate measurement of endpoints , a simple mouse or touchpad can provide useful emotive data . the java script code in the appendix of this disclosure extracts emotive data from the user in this way . this mouse or touchpad typically extracts rational user decisions , as determined from the position of the cursor on the screen . to extract emotive , rather than rational , information from the user , the current method calculates kinetic factors including velocity of cursor movement , steadiness of path , periodicity of movements , attack , and decay , which reveal instinctive behavioral patterns within the user &# 39 ; s movements . these patterns of user behavior represent the output of the highly complex jumble of interlinked physiological oscillators within the user . the interlinked synthetic oscillators , which drive the behavior of the artificial character in the current method , create a dynamical system that is far simpler than the user &# 39 ; s pdb &# 39 ; s . despite this difference in complexity and the software / wetware gap , these vastly different dynamical systems can be coupled by using the patterns of behavior the interface measures in the user to drive the synthetic oscillators of the character . furthermore , once these highly divergent systems are coupled , characteristic behaviors of coupled oscillators emerge , including those described above . in the simplest form of coupling , the patterns of motion coming from the user become a primary root for the hierarchy pbd equations in the character , as described above . this allows for phenomenon , including frequency entrainment and harmonic resonances , to create complex patterns of behavior in the artificial character in response to the user . these complex responses by the artificial character include emotional progressions and apparent willful actions which can be generally recognizable and repeatable enough to “ make sense ” to a human observer , and yet ( being non - deterministic ) are different every time . as a result , these responses feel more natural , and less mechanical . this method also enables changing the nature of the artificial character &# 39 ; s response to the user in a manner independent of the user &# 39 ; s input . different responses can be created independently by parametrically tuning the natural resonances of the artificial character &# 39 ; s oscillators to reflect , amplify or contrast the patterned behavior measured from the user . the java script code presented in the appendix of this disclosure uses this method to alter the responses of a virtual infant as described below . the parameter “ awake ”, introduced in step 3 , affects the spring constant and the damping of springs that control the baby &# 39 ; s behavior , including emotional responses , apparent willful actions , and physiological behaviors such as breathing . as “ awake ” approaches zero , it lowers the spring constant ( slow acceleration ) and increases the damping ( resistance ) of all these springs . as result , the baby appears to become drowsy as its responses are slowed and dulled until they reach the point where they no longer respond at all to the linked motions coming from the user interface , and the baby appears to fall asleep . at the opposite end of the emotional spectrum , another broadly - applied parameter introduced in step 3 , “ excitement ” can raise the strength of these springs and drop their damping beyond their normal range . when this happens , the baby &# 39 ; s responses become hyper ( super - quick spring ) and can be made to spiral out of control ( negative resistance ). now that we have coupled the synthetic oscillators of our character to the organic oscillators of the user , our character can appear to reflect and respond to the user &# 39 ; s emotional state . the next step is to augment this emotion - centric system so that it can generate adult verbal behavior . at this point we re - introduce the stored interactivity method . when the character being animated is an adult , the method described here can run simultaneously with stored interactivity methods , such as those already known in the art which account for speech and other “ higher ” thought processes in current game characters and conversational agents . moreover , the pdb &# 39 ; s modeled in this process may be used to moderate and control the “ higher ” processes being presented by the stored interactivity partner in this alliance . mechanisms for achieving this control include using the emerging patterns of motion described in steps 4 and 5 above as ‘ triggers ’ to initiate mood - appropriate stored interactivity sequences . other mechanisms for linking the two methods include a hierarchical structure which assigns the artificial emotions of this invention &# 39 ; s spontaneous animation the role of parent , and any artificial intelligence method the role of child . one might argue that the validity of slaving artificial intelligence to artificial emotions in modeling human behavior is quickly confirmed by a casual observation of world history . but that , of course , would be outside the scope of this disclosure . what this disclosure does reveal is the creation of entertaining and dramatic interactive characters by slaving methods depicting the “ higher ” and more “ rational ” human behaviors to the more “ emotional ” physiologically - based behaviors , rather than the other way around .
the spontaneous animation methods disclosed herein generate apparent emotions and apparent willful actions in artificial characters using mathematical formulae . because these animations are spontaneously calculated , they are precisely tailored to interactive input . this is in contrast to current methods for creating interactive characters , in which the computer selects among predetermined animation sequences to approximate an appropriate reaction . in addition to spontaneously generating emotional states and actions , this method is further capable of spontaneously evolving a progression of emotive states and actions , thereby simulating an evolving emotional relationship and / or creating extended interactive sequences with a plot - like structure . because spontaneous animation replaces stored behaviors with realtime calculations , it can require thousands of times less data than animation methods currently used in animation and gaming .