My Little Adventures, Poetry

The Little Surfer

Waves crash against my heart
With the strength of a hundred voices
From the deepest ocean part
Giving me strength to make bold choices.

My nimble limbs hang onto thee,
Oh smallest of all ships of man
And though you bruise and twist my knee
You take me safely to dry land.

A wave is like a thousand tales,
With many plots and twists and turns
Some raised with offshore veils,
Others bold from ground swell storms.

The captain of the ships stands strong,
With the whole sea against his chest
‘Don’t be afraid to get it wrong.’
He gives us courage when we rest.

Why do we ride the waves?
Are we worthy of their strength?
We can’t tame them, only gaze
How our spirits bind at length.

Now I sit here, on this train,
Filled with bruises, cuts and burns
But the biggest wound of all
Is leaving heaven at Sagres.

Standard
Animation, Character Essences, Research & Coding

Character Essences Begins

After a few years of improv theatre, animation research and coding I think it’s time to begin my dream project. Character Essences will combine theatre techniques of character creation with traditional and procedural animation. Drawing on character archetypes from Commedia dell’arte and the physical theatre methods of Jacque le Coque and Rudolf Laban, the main focus is to find movement parameters (constants and variables) that define well established characters.

Once the parameters of movement have been identified, they can be manipulated to create a large variety of characters procedurally. The uses include video game automated character generation, extra characters in films and autonomous robot movements. One of the goals is also to simplify movement patterns without the need for large data sets like in machine learning. My belief is that by focusing on the intrinsics, rather than the extrinsics of character movement one can better identify the corresponding building blocks.

Characters can range from simple primitive models to animals and humans. Early experiments included Expressing Emotions Through Mathematical Functions (see description HERE) for primitive models. I found that combinations of fast, sinusoidal movements can create the illusion of joy in spheres and cubes, for example. These observations are linked more to psychology and to the Heider-Simmel experiment. If human emotion can be identified in such simple entities, surely adding a recognizable shape to the character (eg. biped, quadruped) will produce more relatable experiences with the observer. Let the adventure begin!

Keywords: Archetypes, procedural animation, psychology, biomechanics, equations, theatre, characters

Standard
Chasing the Light, Chasing the Light Poetry, Poetry

The Invisible King

Light, light of the heavens above,
Where shinest thou, we are bare of love.
Light that fillest the earth,
Invisible king of wisdom, give birth
To hearts that will lead us on the path
Which shows a calling we had before wrath,

Darkness approaches but we are aflame,
Hiding our voices in the howlin rain,
Our minds bring words to search for your face,
But our hearts sculpt your likeness in the hidden place
You are forever silent but we know how you speak,
Holding the keys to the kingdom we seek.

(From Voice Mountain and Chasing the Light)

Standard
Chasing the Light Poetry, Poetry

They Speak of Truth

Christ my Lord, my love, my truth,
In my heart you are forever king,
But people try to lock your voice
In endless chains of suffering.

They speak of virtue, art and meaning,
But are afraid to speak Your name
They seek the light and softly mould their words,
And drown Thy presence in names of fame.

I ache, for I have been transformed,
Through crafts of men that seek the truth,
My friend, it is not you that brightens up the day
But thy eternal Father, who brings you youth.

So I must speak…Christ, Christ, Christ!
The sweetest Word in all the world,
I need not movement nor technique
To weep in silence at Your feet.

Standard
Acting & Improv, Research & Coding, Research & Play

World Problems: Ep.1 – Global Warming and the Magic Box Designs

“Scientists have recently determined that it takes approximately 400 repetitions to create a new synapse in the brain – unless it is done with play, in which case, it takes between 10 – 20 repetitions.” (Dr Karin Purvis)

Motivation of World Problems Series

I’m starting Ana’s Research and Play with Episode 1 of the World Problems (WP) series. WP will have longer episodes (~15 mins) that combine ideation, design, prototyping and testing of sometimes crazy inventions. It is intended to experiment with possible solutions to help “save” the world. The approach is a playful one, rather than a worried and tense one. The reasoning is my belief that people achieve their best when fear of failure is out of the way.

The inventions that result from this series might or might not be viable. In this sense, WP presents a humble method to saving the world. My ambition is not to come up with precise inventions that will give accurate results (although they are very welcome). In my experience, having such pressures, under the constraint of limited time, leads to mediocre solutions and headaches. What I am trying to do is follow my curiosity and allowing myself to both innovate and fail (first attempt at learning).     

In the best case scenario, the world will benefit from an invention. Worse case scenario, I will have brainstormed some ideas that fill people with such indignation at my nerve, that they’ll just go and make their own creations. Empathy also motivates me and it is necessary to prevent an attitude of carelessness and lack of responsibility. It is important, however, to use empathy as a driving energy rather than an energy draining one. We should all make a contribution to saving the world we live in, but it mustn’t destroy us in the process – unless it’s a sacrifice of love, but that’s a different story. Let’s begin!  

Episode 1 Summary

In this episode I come up with a few crazy designs to help save the world from global warming, by using random household items. It all starts with choosing the problem out of a list of possible world problems. I then have a warm up (of my mind, not the world) by finding different uses for household items via lateral thinking.

The Magic Box, which is often seen in clowning exercises comes into play. This leads to shotfire brainstorms from Experimental Ana, who gives up grammar for creativity. It all ends with a set of crazy invention designs (see below). One of them or a combination of up to three of them could be prototyped in the future.

The Research

Episode 1 is linked more to brainstorming ideas, but research elements also find their way through. Please see the video description for the references used. Here are some research inspired elements from the video.

  • Choosing the problem
  • Motivation of play based approach
  • Review of a few accidental discoveries
  • Background on Lateral Thinking
  • Ideation of designs
  • Designing possible prototypes

The Play

The structure of Episode 1 is linked to an improv game called Fix it MacGyver! In this game, a character called MacGyver is given a problem and three random items. He or she has to come up with a solution to fix the problem by utilizing the given items.

For example, let’s say someone’s house is on fire. MacGyver has a cat, a sandwich and a chainsaw. One solution is of course to use the cat as a scout to check if there are any survivors. The chainsaw can be used to cut through the fallen parts of the house, so that the trapped victims can be reached. Once they are out, a sandwich is provided for nutrition, while waiting for the firemen.

The idea of the game is not to “get it right”, since there are “no mistakes, just opportunities in improv” (Tina Fey). Letting your thoughts imagine the wildest solutions is very liberating because it cuts out inner criticism. What improvisers experience with this game is also linked to Julia Cameron’s theory, described in her book The Artist’s Way. She recommends evading the inner critic by free writing three pages of whatever comes to mind every morning.

My Experimental Ana from the video uses this technique of free and spontaneous thought. Censoring of ideas is kept to a minimum, giving priority to the joy of discovering where my own thoughts take me. In the paraphrased words of Keith Johnstone, one of the pillars of improv, “You must trust that your mind, God or the giant moose will tell you what to say.”

The elements of play in Episode 1 are the following:

  • Defining the game guidelines (box of objects + find different uses for them)
  • Magic box game linked to clowning exercise
  • Lateral thinking solutions to a problem breaks patterns of thinking
  • Experimental Ana uses free and spontaneous thought
  • Experimental Ana uses jump and justify improv technique (say the word first and then justify its meaning)
  • Creating designs with commitment

Designs

After the research and play collaboration, seven designs emerged. These are not necessarily viable designs, but they open up a world of possibilities! Please have a look and tell me which of these designs you would like prototyped in the future!

MinivacuumShoesFlowerShapedFlowerpotBadAirSmasherSmartRopeEDangeredSnifferFreshLifeBalancerBoaCleaner

Standard
Character Essences, Research & Coding

Robin Animator V1.0

The Robin Animator V1.0 is a Maya plugin written in python for animation prototyping. It can be used to generate basic procedural animations of little bird characters. These animations can then be exported for your games, rendered in your films or can serve as reference for more complex animations.

Motivation

The question behind this project was to see whether we can create complex bird animations using simple movement components. This can be linked to emergence theory and subsumption architecture. The former talks about how a complex system is greater than the sum of its parts, while the latter shows how apparently intelligent looking behaviour can arise from a set of simple, separate component behaviours. In other words, complex character animation CAN be the result of simple movements working together!  In our case, the component behaviours link to the way each body part moves and tend to act independently from each other.

I chose to focus on little bird characters, robins, to be more precise. The reason behind this is that I’m fascinated by how these little creatures move. Their speed seems to be in a different time frame from ours, due to their minute proportions.  After looking at robins in the real world for a while, I decided to approximate their movement with a geometric prototype model.

Geometry and Movement

The geometric body parts link to the movement components that our robin displays. The following list shows the link between the two.

  • The Head
    • Geometry: Sphere and cone
    • Movement: Shake (Rotate Y), Nod (Rotate Z)
  • The Torso
    • Geometry: Sphere scaled along Y axis
    • Movement: Bend (Rotate Z) – Moves with Feet
  • Wings
    • Geometry: Flattened spheres
    • Movement: Lift (Rotate X)
  • Tail
    • Geometry: Extruded cube
    • Movement: Wag (Rotate Y), Lift (Rotate Z)
  • Feet
    • Geometry: Modified cubes
    • Movement: Bend (Rotate Z) – Moves with Torso

The robin’s movement is controlled by the RobinCTRL, a circle at the base of the character. The added attributes inside of it (eg. Lift Tail, Wag Tail etc.) are connected to the corresponding rotation fields for each geometric component of the character. These rotation fields usually have a minimum and maximum rotation limit to avoid self-intersections.

The main rule behind the rotation of any character component is a sine wave:

Where R is the rotation angle, A is the amplitude, S is the speed and is the angle linked to the current frame. The amplitude and speed can be set from the graphical user interface for each character component. The current frame is usually the one being considered for the addition of a key. To better understand the process, let us have a look at the GUI and the python code behind it.

The GUI and the Code Behind It

The GUI has the following components:

  • Reset Robin button
    • Clears all the key frames of the animation
  • Animation Start Frame
    • Sets the start frame for any animation component
  • Animation End Frame
    • Sets the end frame for any animation component
  • Component tabs
    • Feet control the hopping movement
    • Torso controls the bending of the torso
    • Wings controls the flapping of the wings
    • Head controls the shaking and nodding of the head
    • Tail controls the wagging and lifting of the tail

Each tab usually has fields for setting up the frames per movement, the amplitude and speed. The frames per movement refers to the number of frames necessary to perform that action once. A hop taking place over 10 frames is faster than a hop over 20 frames for example. Speed can be used to tweak this effect of course.

In the case of the Feet tab, once these settings are typed into the fields, the user can press the Hop button, which calls the following method.

#Head nodding animation
def createNodHeadAnimation():
    robinCtrl = cmds.select('RobinCTRL', r=True)
    getAnimationStart()
    getAnimationEnd()
    getNodHeadFrames()
    getNodHeadAmplitude()  
    getNodHeadSpeed()     
    flip = 1
            
    for i in range(animationStart, animationEnd, nodHeadFrames):
        if mirrorNodHead:
            flip = -flip    
        
        for j in range(0, nodHeadFrames, 1):
            if (i+j < animationEnd):
                teta = j*pi/nodHeadFrames            
                headRotation = flip * nodHeadAmplitude * math.sin(nodHeadSpeed * teta) 
                        
                if headRotation > 90.0:
                    headRotation = 90.0
                cmds.setAttr('RobinCTRL.NodHead', headRotation)
                cmds.setKeyframe('RobinCTRL', attribute='NodHead', t=i+j )  
            else:
                break

The RobinCTRL circle is first selected. Then the animation start and end frame values are extracted from the GUI.  Next getNodHeadFrames(), getNodHeadAmplitude(), getNodHeadSpeed() extract the frames per hop, amplitude and speed values from the GUI. The flip parameter is a boolean which decides whether the movement should be symmetric or not (ie. hopping up and down, rather than hopping up and then jumping to a down pose briskly).

The two for loops that follow travel through the frames of animation and set a keyframe at every step. The inner loop is the one that creates the individual hopping movement, while the outer loop makes sure all the frames between the start and end frames are covered. The  angle, which controls the point on the sine wave we’re currently at, goes from 0 to  in nodHeadFrames steps. This is the parameter set by the getNodHeadFrames() methodThe last two lines from the inner for loop set the calculated headRotation in the NodHead field of the RobinCTRL circle controller and add a keyframe to this new value.

Similar steps can be seen in the remaining movement component tabs. Individual methods were written for each tab, but I believe they can be reduced considerably as the current code is repetitive. For future work, it would be nice to introduce techniques for creating animation sequences (eg. hop for 30 frames, stop, look around etc.). Also, saving parameter settings would be useful for recreating popular animations like flying or whatever the user enjoyed doing.

The code and Maya file are available on GitHub.

Please have a play and tell me what you think! Thank you!

Standard
Chasing the Light, Flash Fiction, Stories

Murmur

A writing exercise done during a Bath Writers: Beyond the Margins meeting…

Someone let the cat out in the rain. Or did it leave by itself? Doing what most people at the Broken Institute could not do. The cat stepped reluctantly onto the wet grass. Its white persian fur was covered in hard dents of rain. It shivered, but stepped forward.

Soon the windows of the building were filled with faces. Porcelain faces of people wrung with regret. Their hands flattened against the glass. One red haired lady mouthed the word ‘Murmur’. She was dressed in her lavender nightgown at four in the afternoon. ‘Come back!’ she whispered.

Her eyes were swollen from the tears she had cried in the morning. But Murmur had comforted her then. The cat would come to each room, to be stroked. It would start with her, Lorelei, and then walk to each of her neighbours. From morning till dusk Murmur was the sole comforter. It would hear each sigh, and wipe even the smallest tear away. It would listen to stories of woe, of lost children, of burnt down houses or harsh words, spoken at a wrong time.

At night, Murmur would rest by the fireplace, where it could lay aside the worries of the day. But now someone had let the cat out. Or maybe it left by itself. Maybe it thought people could comfort each other. Or at least step out into the rain.

Standard
Formal and Polite, Poetry

The Shiny Shoes

Hubert Rhubarb makes great shoes
Of all sizes, shines and soles,
Him, George Ginger and Bob Booze,
Are co-craftsmen at “Stuffed Holes”.

They’re all shoeglots from the Shoeglot clan
With round noses, crass hands and tiny feet,
They shuffle quickly with their plan,
To make bright shoes for King Plum’s fleet.

Hubert Rhubarb was ordered by the king
To make the brightest shoes of all,
‘My men’s feet should sparkle as this ring,
When sailing back with the victory call’.

On the day of King Plum’s battle
The men shone bright from head to toe.
They were so proud they caused a rattle
Competing in whose shoes had the best glow.

The enemy fleet of King Pomhen
Sailed anxiously to meet its doom,
But seeing the distracted men
They shook off their prior gloom.

King Plum’s soldiers stared at their shoes
Flinging their swords round without aim,
Neither brother nor king made such great muse
As gawping at their feet, bent, without shame.

The king returned with a dozen men
Weeping that their feet were bare
The king wrote to “Stuffed Holes” again
‘From now, dull shoes are my men to wear.’

Standard
Chasing the Light, Essays, Stories, Thoughts About Life

The Songs of Birds

magnolia

God gave the sweetest melody to the smallest of birds. A cluster of goldcrests fly from branch to branch. Their little tails shake with anticipation, while their beaks are picking at the sweet flowers. Ah and the tree, a magnificent giant covered in ivy! I can’t even see its trunk or begin to decide what family of trees it belongs to. It stands there, with its crooked branches pleading to the heavens. Covered in parasitic veins and leaves, it breathes heavily. The bark bleeds under the tight grip of the ivy, but it still finds love for the little creatures that play amongst its withered forms.

The tree reminds me of a man, whose once rich possessions have succumbed to decay and misfortune. His status, albeit stained by wretched gossip, strains to stay afloat. He sits on a chest in the middle of his once grand, now empty, ballroom. His eyes close with delight as the soft voices of songs once sung there caress his soul. ‘I have lost my worldly glory.’ he whispers. ‘I have seen the cruelty of man at its peak and have tasted the bitterness of poisonous lips!’

‘Alas’, he sighs, ‘But I cannot forget the beauty of man’s soul when he loves. And when one loves, one sings! I shall have one last ball here, with the last of my earthly possessions. Let the grandest singers and musicians come and share their tunes! And after everyone has heard their songs and got their fill of gladness, I shall go into the world happy. Poor in my attire, but rich in my heart.’

Such is this tree as it listens to the goldcrests and black birds nesting in its wounds. For this tree is wiser than me. It bears its pain with patience, listening for what rings true and lets it rest on its shoulders. It does not shake the winged messengers away, but rejoices in their gifts. The tree knows that its roots are deep inside the earth and that the ivy is tight around its neck. It also knows that the songs of birds speak of a world it cannot yet see, but whose beauty and truth bring a promise of freedom.

Standard
Animation, Character Essences, Research & Coding

E-StopMotion

Digitizing stop motion animation has been my Engineering Doctorate project for the past three years. The aim was to simplify the workload for artists and offer them tools to bring their handmade creations in a 3D environment. The following video shows a simple pipeline for digitizing characters from the game Clay Jam, by Fat Pebble. This is now published work and open for film and game companies to use.

Publications

[1] Anamaria Ciucanu, Naval Bhandari, Xiaokun Wu, Shridhar Ravikumar​, Yong-Liang Yang, Darren Cosker. 2018. E-StopMotion: Digitizing Stop Motion for Enhanced Animation and Games. In MIG 18: Motion, Interaction and Games (MIG 18), November 8-10, 2018, Limassol, Cyprus. ACM, New York, USA, 11 pages.  [PDF]

 

hellidropter2_1_0024-e1496355516523.png

Hellidropter says Hi!

Abstract

Nonrigid registration has made great progress in recent years, taking more steps towards matching characters that have undergone non-isometric deformations. The state-of-the-art is, however,still linked more to elastic or locally shape preserving matching, leaving room for improvement in the plastic deformation area.
When the local and global shape of a character changes significantly from pose to pose, methods that rely on shape analysis or proximity measures fail to give satisfying results.
We argue that by using information about the material the models are made from and the general deformation path, we can enhance the matches significantly. Hence, by addressing mainly plasticine characters, we attempt to reverse engineer the deformations they undergo in the hands of an artist.
We propose a mainly extrinsic technique, which makes use of the physical properties we can control (stiffness, volume) to give a realistic match. Moreover, we show that this approach overcomes limitations from previous related methods by generating physically plausible intermediate poses, which can be used further in the animation pipeline.

Project Links

You can follow the research progress on Vimeo and GitHub. This is a work in progress project, in collaboration with the Centre for Digital Entertainment at University of Bath and Fat Pebble, under the supervision of Darren Cosker.

Standard