Friday, 28 January 2011

Sick of Disney



After a term and a half at Central St Martins, I've now seen more Disney, Chuck Jones and generic US mainstream animation than I thought could ever be possible... and I've had quite enough of it!  Felipe, Maire and Amy suggested some of the films on the above playlist, and the rest I tracked down from plates in a history book that Krizstina found buried at the back of the studio bookshelf.

Playlist
Get your google translate at the ready if you plan on reading any of the links!
  1. Norman McLaren & Evelyn Lambart - Begone Dull Care.
  2. Norman McLaren - Boogie Doodle.
  3. Fantastic Planet Trailer. The best bit is the voice-over.
  4. Winnie the Pooh in Russian.  Felipe & Marie's simultaneous suggestion. Piglet's dilema with the gun at 8:20 is fantastically topical.  I keep waiting for him to say comrade.
  5. Henry Jacobs & Bob McClay - The Fine Art of Goofing Off.  0:25 The shot of the paint.  The intro to a 'philosophical sesame street'.
  6. Bruno Bozzetto - Allegro Non Troppo. 0:50-1:00 Fantasia's brooms revisited.
  7. Will Vinton - Mysterious Stranger by Mark Twain. 0:52 Seen this more recently perhaps... in a Gorillaz music video maybe?
  8. Frédéric Back - Crac! 0:58 The woodman animation.  6:15 The twinned movements of the cows are beautiful.
  9. Guido Manuli - Incubus.  Love the credits between animation, nice use of black.  Warped perspective at 1:13.  City shot at 2:04.  Possibly NSFW.
  10. Per Ahlin - The Day Alfons Killed his Father.  0:53 Terrifying.
  11. Canal 7 Argentina - Casimiro. (If anyone can work out who directed this let me know)  Love the use of lines not just as a way to cordon off blocks of colour.  Apparently this was used to scare children to sleep.
  12. Jordan Ananiadis - We Greeks.
  13. Josko Marusic - Riblje Oko (Fisheye). 4:23 Stunning Perspective Shot.  Beautiful style throughout, and shooting that's not just 'on twos' or 'on ones'.
  14. Miroslaw Kijowicz - Creative Escape.  Brave and stark drawings throughout.
  15. Miroslaw Kijowicz - Wiklinowy Kosz (The Wicker Basket).  I love how the main character holds one facial expression throughout.  Effective minimal animation without overdone expression.
  16. Yuri Norstein - Tale of Tales.  Absolutely stunning throughout, but the apple in the forest at 0:48 tops it for me.  The reflection at 4:26 is another exciting moment, and the lighting on the dance scene from 6:39 onwards is a rare treat in this style of animation.  Somewhat visually different to his most popular film the Hedgehog in the Fog.  Here's a documentary about him.
  17. Yuri Norstein - Hedgehog in the Fog. 5:11 onwards, the spiralling tree, then the cuts and camera moves from 5:54 onwards, and great use of synchronised music 7:00-7:30.
  18. Priit Pärn - Time Out.  Motion blur at 0:40.  Strong visual gags throughout.
  19. Vlash Droboniku - Ndodhite e Çufos.  The difference in line thickness between the animated character and the backgrounds, and a complete disregard for weight.
  20. Tulio Raggi - Maja Vivo. 0:22 Line of sight.
  21. Kihachiro Kawamoto - House of Flame.  Stop motion walking 0:26.  Great mix of drawings, not just as background elements, and stop-motion throughout.
  22. Bob Stenhouse - The Frog, The Dog and The Devil.Great special effects reference for animated water, lightning.  Some nice moving camera/perspective shots 2:22.
  23. Jon Minnis - Charade. Single character acting reference.  A student 4 minute film completed by one person in 3 months.
  24. Roman Abelevich Kachanov - Cheburashka (Topple).  Felipe's suggestion.  Still characters which aren't dead 1:45-2:02 no movement whatsoever from one of the on-screen characters.
  25. Soyuzmultfilm - СИТЦЕВАЯ УЛИЦА (Calico Street).  Felipe's suggestion.  Captivating run cycle at 4:21.
  26. Yevgeniy Sivokon of Kievnauchfilm (Kiev Science Films) - The Tree and the Cat.  Felipe's suggestion.  Russian "Aristocats" 1:19.  Backgrounds with much more interesting compositions that the Disney work of the same era.
  27. Yevgeniy Sivokon - Laziness. 1:45 Great POV shots throughout.
  28. Gainax - Daicon 3.  Felipe's suggestion.
  29. Gainax - Daicon 4.  Felipe's suggestion.
  30. Jiří Trnka - The Cybernetic Grandma.
  31. Marin Iorda - Haplea.  The earliest Romanian animated film still in existence today.
Are you suitably detoxed yet?

If you've got any suggestions which might fit into the above playlist let me know and I'll add them.

On a different note Leighton Pierce has at last published 50 Feet of String.  Its been on my most wanted to watch list for a long time.  I spent hours looking for this on the web after reading about it in The Garden in the Machine.

Monday, 24 January 2011

For The Crows, all over again

Nearly two years ago I started a project which I still wonder if I'll ever finish.  Whenever I'm on a long train journey I start to rework it.  I've started to formalise the storyboard at last.






Crits are always welcome.

Sunday, 23 January 2011

Personal Notation Project Completed

Rather than reiterating what I've neatly typed up I'll post a link to the pdf on scribd:
http://www.scribd.com/doc/47419979/Notation-Analysis-of-Bach-s-Prelude-No-1-846

In Summary

My younger brother (age 10) has recently started learning to play Bach’s Prelude No.1 on the piano. I asked him to follow a simple set of instructions, an algorithm of sorts, to investigate how, as a relatively naive musician, he interpreted the music:

Taking each note in turn:
  1. listen to the note and the note that immediately preceeds it.
  2. draw a pictogram which expresses how you feel regarding the preceeding note.
  3. on the same piece of paper draw another pictogram relative to the first one, expressing the relative diference between the two notes.
  4.  shape the ball of plasticine provided and place in on the grid in a way that expresses how you feel regarding the pair of notes.
  5.  repeat

Again, check out the scribd link for the accompanying analysis- if you want a higher quality copy of the pdf for any reason give me a shout and I'll yousendit.

Saturday, 22 January 2011

"Spiders"



For info on how the auto-walking, crowd simulation and 'scribbler' work see my notes on scribd http://www.scribd.com/doc/47412229/Crowd-Simulation-and-Auto-Walking-Algorithms

A crash test dummy for my work in progress collection of scripts for auto-walking and flock simulation in blender. The crowd simulation system used for these was programmed from the ground up in python (not using blender's built in boids), as was the auto-walker (though I took a glance at the old 2.4x insect walker but decided to go down a different route for more flexibility with different numbers of legs etc.)

I also coded the 'scribbler' and the motion trails in python (thanks to this unofficial port of Python Image Library to Python3 which enabled me to use PIL inside blender to read pixels). Inspiration for the scribbler's algorithm comes in parts from mr doob's harmony​ and zefrank's original scribbler.

The sound is a combination of my own python code (sampling differentiated fcurve data in blender) and audiopaint.

I also had a bit of time to type up some notes on the 'Mushroomer' Algorithm as well based on some work I presented at the blender conference with the rest of the 'tube' project team: http://www.scribd.com/doc/47412460/Mushroomer-for-Blender-2-5-Algorithm-Description

Friday, 7 January 2011

Success at Last

First efforts to combine the data generated by my boids simulator with my auto-walking algorithm were fraught with difficulty.  'Noisy' fcurves had loads of jitter on them due to some of the fuzzy approximation methods used by the boids sim to keep the simulations fast.  Added to this as I was doing much of the calculations for the boids rotations using matrices or quaternions rather than Eulers, rotations would often flip from +/- 360 to 0 and back again.  I wrote a quick 'filter and smooth' script which effectively corrects Euler flips and blurs the data generated by the sim to allow the walking algorithm to produce more regular leg movement.



Here's the first crash test dummy... not particularly exciting but at least it works now!  Running is yet to be implemented and the walking algorithm falls apart if the distance the boid has to move in any given frame step is too large.  Writing sub-frame steps would easily correct this however and would probably be faster than any more intelligent algorithms.

Stay tuned for more demos and hopefully in the near future some source code for you to disect.

Thursday, 6 January 2011

Leg Sequencing for the Auto-Walker



I've successfully implemented leg sequencing for the auto-walker I'm working on for the 'tube' project.  Its not a 'strict' method like many other auto-walkers use.  The legs can drift in and out of sequence if the bug turns a corner or so on, but the algorithm will then speed up or slow down each leg to reach the desired leg sequence order.

Hopefully by the end of the week I'll have stable enough source to release it!

Wednesday, 5 January 2011

Progress on the auto-walker



I spent most of yesterday just hitting dead ends.  My code became far too complex and it was almost impossible to find bugs.  I went for a full re-factor of the walking algorithm and now I'm getting much smoother motion.  It takes a few frames of pre-roll to get the legs in order - notice some jittering in the first second or so as legs are hurriedly placed to stabilise the bug.  By stabilisation I mean that if all the legs on one side of the bug (or in any given 'leg group' set by the user) become lifted then the algorithm will hurriedly place the leg which has been airborne the longest to keep the bug upright.  Still no body motion, but I've made a preliminary start on leg sequencing.

Monday, 3 January 2011

Autowalker Coding

Started work on coding the autowalker today... It's been harder than I expected!  Here's a first attempt without any kind of body movement.



All the extra bones (used for configuring the step size etc) get rather confusing in this quick video, but rest assured the feet are actually sticking to the ground.  Coding body movement comes next, then sorting out leg sequencing and step rates rather than the haptic steps that happen here!

Hopefully before long I'll get a chance to implement this with the boids sim.  Had a few helpful comments from Bassam on new features he'd like to see implemented, most of which require random movement which is not jitter - I'll need a time stable noise function to produce wavy paths rather than jittery ones... not too dissimilar to the noise modifier for fcurves.  Other features missing are the standard boid idle/rest states and a special option to 'playback' custom loops such as eating etc.

Sunday, 2 January 2011

Boid Brain Implementation

After spending two weeks working on LESS THAN THREE, then taking a few days off, I'm now back at work again continuing my efforts to code a new in-house boids system for the tube project in Python.  This will all be open sourced in due course once I've tidied up the code.

I spent a day or so bug-fixing and clearing out some redundant defs, then I implemented a 'flock metrics' system.  Rather than considering the entire collection of boids to be the flock (as the built in boids system does), in my boids system the flock is defined as all boids within a certain radius (the 'sight distance') making computations much faster (and more realistic for ground based creatures).  Each boid needs to know a set of statistics ('flock metrics') about the flock before it can make a decision on what to do (in the 'boid brain').  It needs to know how dense the flock is, how many boids are in the flock, where the centre of the flock is, who its closest neighbour is, and what the rate of change of all of these factors is.

For example if the flock is very dense but it is becoming less dense then the boid can stop panicking.  If the flock is not dense but it is increasing in density the boid may wish to align its direction vector with other boids in the flock so as not to cause collisions.  If the flock becomes severely dispersed a boid may wish to head for the centre of the flock for protection and so on.  This decision making is called 'emotion modulation'.  The boid considers the flock metrics and makes decisions about what to do automatically.  Emotions such as panic can change very quickly when a boid becomes blocked in by its neighbours (this is called ' high volatility' in the boid script) whereas emotions such as centring (heading for the flock centre) may need more gradual adjustments (low volatility) as boids slowly notice they have been left behind.



The next step is to allow the user to control emotions with 'emotion effectors' in the same way the boids can be physically directed with 'direction effectors' (shown in the above video).  The emotions implemented in the above video are panic, sleep, herd (copy neighbours directions/alignment), centre (head for the centre of the flock - traditional boid/shoal/flocking behaviour) and cluster (approach but keep a safe distance from closest neighbour).  The last emotion left to implement is not so much an emotion but a signal to other boids which is repel/attract (a boid can signal other boids to move closer or further away).

As you can see in the above video there is still a slight issue with collision stickiness which needs to be solved.

Fingers crossed I'll be able to start work on the autowalker pretty soon.