Surf's Up Computational Thinking Seminars Shiv's Corner Computer Graphics
IT AND MOVIES
Animation Documentaries
Surf's Up
By Amar
Surf's Up
"  I had never seen a full length animated documentary..."  - Chris Buck
From shorts to features, the Hollywood animation industry has come a long way from the days of the mouse with the girlfriend to his more recent nerdy French counterpart, Despereux from The Tale of Despereux. Waltz with BashirBut what really took the virtual and the real world alike, by storm, were the arrival of animation documentaries. A number of films released in recent years fall under this unusual category, the most recent one being Isreali film-maker Ali Folman’s Golden Globe winning animation film, Vals Im Bashir.


Documentaries, for a long time differentiated themselves from mainstream cinema by using their cinema verite’ approach which made them unique. Cinéma vérité combines naturalistic techniques with stylized cinematic devices of editing and camerawork, staged set-ups, and the use of the camera to provoke subjects.


So when Sony’s Imageworks realized that, just as they had mimicked conventional techniques of cinematography in The Polar Express and Monster House, they could incorporate the unconventional Cinéma vérité style in their films as well using a virtual hand-held camera. And this was how 2007’s Oscar nominated mockumentary, Surf’s Up was born.

Surf's Up


“This’s what attracted me to the film,” says and excited co-director Chris Buck. “I’d never seen a full length animated documentary. We could have a character do an action and be interviewed about it. Now that’s unique.”


The film’s layout department used a special motion-capture camera system mounted on an old Sony video camera to give the illusion that the movie was actually being made with a real hand-held video camera, a Sony M3A bought for $250 on eBay.. This was used to make the film look like a documentary.

Surf's Up


“We boarded the film like any other animation, but the trick after that was to create the illusion of spontaneity,” says director, Ash Brannon. “That you aren’t quite sure what a character was going to do at any moment and you had one chance to catch it with a handheld camera.” All the actors got to record in the same room together, which is unusual for an animated movie.


By using a real camera, the layout artists, who act as a camera crew on animated features, wouldn’t need to try to fake that motion. At first, James Williams, chief layout supervisor for the film, expected to use the system only for sweeping shots that would be especially difficult to give a handheld look in the computer. But, the realism achieved by physically placing a camera on his shoulder became addictive. “It was the first time I felt as a cameraman that I truly knew where I was and thus could place the audience in that position, too,” Williams says.

Surf's Up


The entire process ran through Autodesk’s Maya. What the camera operator saw in the viewfinder of the handheld camera was the animated scene as seen through a Maya camera, thanks to development work early on by the Imageworks crew. “We stripped the geometry to the essentials and optimized it to a great degree,” says Williams. As a result, when the camera operator turned, the scene in the viewfinder moved as a real scene would in the real world. And, because this all happened through Maya, there was no need for data translation. The animation team got exactly what a layout artist shot and quickly too.


The layout artists filmed between 85 and 90 percent of the movie with the handheld camera.
To film the action, layout artists created a 12-by-12-foot ‘stage’ by moving their desks against the walls of their room and taping markers on the ground. On the ceiling above the stage, the crew attached an array of more than 3,000 infrared LEDs arranged in a grid. A lightweight, HiBall optical sensor from 3rd Tech attached to the handheld camera, viewed the array with its six lenses and rapidly calculated the camera’s position based on feedback from the array.
Surf's Up To add authenticity, the crew shot with wide-angle and telephoto lenses. They could even zoom using a rocker switch close to the lens. In addition to the handheld camera, the crew also devised other types of cameras. “We start with Cody in Shiverpool, and imagine that we have a small crew,” says Williams. “One cameraman who could go into the water, and another shooting the documentary. As the film progresses, the number of cameras increases.”


One of the consequences of using the handheld camera is that many shots in this film are long, as they would be in a documentary. “We have probably 300 to 400 fewer shots than a typical animated feature,” says Williams. “This was one of the most exciting and interesting movies I’ve ever worked on from the point of view of pushing the ability of animation to simulate live action.”


In terms of the audience – it was easier to laugh with a handheld camera, and enjoy the movie. The movie, which featured in the 2007 SIGGRAPH conference went on to win a couple of Annie awards in 2008.

A few scenes of from the movie:

Surf's Up Trailer
Cute Penguins
Chicken Joe

*****

Computational Thinking Seminars
By Bipasa
" The techniques described in the course are very useful in solving complex problems..."
In semester 1 of 2008-09 Prof. Lee Wee Sun with the help of NUS ACM conducted the module CS3108A, Computational Thinking. Students attended a set of 9 seminars and the speakers were professors from the School of Computing. The speakers spoke on how concepts from different fields of computer science can be applied to various other fields of study. To complete the module students had to write a summary of the knowledge they acquired from the module. The following are extracts from the best summaries that the students handed over.

Chia Ban Herm Bruce: " .. computational thinking provides us a basis of very powerful techniques which can be categorised into structural designs and problem perspectives or perhaps even other categories not discussed here.  Structural designs allow us to formulate problems into easier arrangements and layouts while problem perspectives allow us to devise clever and powerful ways to solve the same problem. "  

“With the increasing complexity of computers, both in terms of hardware and software, we are and will have to rely heavily on these established techniques to produce the increasing complex solution.  Yet, as we formulate our designs for our solution, let us not forget that there are multiple ways to solve a single problem and that no one way may be the perfect one.”

Muhamad Rozmail bin Omar: “.. the techniques described in the course are individually very useful in solving problems. In addition to using them exclusively, they could be used in a combination to achieve a more desired result. An example could be combining the use of modelling using graph to solve a very complex problem that has been divided into smaller parts using divide and conquer. “

“Employing two or more people to work on the modelling could speed up the solving process further, exploiting parallelism. The possibilities of obtaining solutions are endless when we employ computational thinking into our everyday problem solving, as it is all about thinking systematically when dealing with problems, big or small.”

Sheng Yexiang: “.. Though computer technology evolves fast, many basic concepts in computing remain unchanged. To get insight of these knowledge helps people to understand the mystery world of computing. Some of the topics are invented before computer era, like invariant, randomness, divide and conquer and compositionality etc. Many of those are intuitive and been already adopted by human brain. For instance when we make a schedule for our study for exam, we apply divide and conquer strategy to separate each chapter..“

The NUS ACM would like to congratulate these students.

*****

Shiv's Corner
Android
An Open Alliance Handset Project
"Android is a software stack for mobile devices..."

What is Android?

Android is a software stack for mobile devices that includes an operating system, middleware and key applications. This beta version of the Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language.

Features

  • Application framework enabling reuse and replacement of components
  • Dalvik virtual machine optimized for mobile devices
  • Integrated browser based on the open source WebKit engine
  • Optimized graphics powered by a custom 2D graphics library; 3D graphics based on the OpenGL ES 1.0 specification (hardware acceleration optional)
  • SQLite for structured data storage
  • Media support for common audio, video, and still image formats (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
  • GSM Telephony (hardware dependent)
  • Bluetooth, EDGE, 3G, and WiFi (hardware dependent)
  • Camera, GPS, compass, and accelerometer (hardware dependent)
  • Rich development environment including a device emulator, tools for debugging, memory and performance profiling, and a plugin for the Eclipse IDE

Android Architecture

Applications

Android will ship with a set of core applications including an email client, SMS program, calendar, maps, browser, contacts, and others. All applications are written using the Java programming language.

Libraries

Android includes a set of C/C++ libraries used by various components of the Android system. These capabilities are exposed to developers through the Android application framework. Some of the core libraries are listed below:

  • System C library - a BSD-derived implementation of the standard C system library (libc), tuned for embedded Linux-based devices
  • Media Libraries - based on PacketVideo's OpenCORE; the libraries support playback and recording of many popular audio and video formats, as well as static image files, including MPEG4, H.264, MP3, AAC, AMR, JPG, and PNG
  • Surface Manager - manages access to the display subsystem and seamlessly composites 2D and 3D graphic layers from multiple applications
  • LibWebCore - a modern web browser engine which powers both the Android browser and an embeddable web view
  • SGL - the underlying 2D graphics engine
  • 3D libraries - an implementation based on OpenGL ES 1.0 APIs; the libraries use either hardware 3D acceleration (where available) or the included, highly optimized 3D software rasterizer
  • FreeType - bitmap and vector font rendering
  • SQLite - a powerful and lightweight relational database engine available to all applications

Android Runtime

Android includes a set of core libraries that provides most of the functionality available in the core libraries of the Java programming language.
Every Android application runs in its own process, with its own instance of the Dalvik virtual machine. Dalvik has been written so that a device can run multiple VMs efficiently. The Dalvik VM executes files in the Dalvik Executable (.dex) format which is optimized for minimal memory footprint. The VM is register-based, and runs classes compiled by a Java language compiler that have been transformed into the .dex format by the included "dx" tool.
The Dalvik VM relies on the Linux kernel for underlying functionality such as threading and low-level memory management.

Linux Kernel

Android relies on Linux version 2.6 for core system services such as security, memory management, process management, network stack, and driver model. The kernel also acts as an abstraction layer between the hardware and the rest of the software stack.


So if you feel you are ready to write some of your apps for the platform you can check out this site

*****

Computer Graphics
Using OpenGL
By Ramchander
" OpenGL is a graphics standard and is hardware-independent..."

What is OpenGL?
OpenGL or Open Graphics Library is a tool that can be used to create 2D and 3D applications such as videos and games. It is just a collection of library files that define some basic graphic functions that you can use to create your applications.


What can OpenGL do?
It is sometimes better to show visually than to explain in words. So watch the videos below to get a feel of what can be done using OpenGL. All the images in this article were also made using OpenGL.

OpenGL Animation
OpenGL Graphics
Game using OpenGL

Oh! So is OpenGL quite useful?
OpenGL is a graphics standard and its specialty is that it is hardware-independent. It is very easy to model shapes using OpenGL. Like for example to draw a cube of edge length 1 unit all that you need to do is type


glutSolidCube(1.0);


However, you do need to include the necessary header files and call some routines to set the camera view and the properties of the cube. 


Okay. How do I learn OpenGL?
Every single graphic animation is created in OpenGL by typing code. So in order to excel in it a basic knowledge of C++ is needed. Once you have that knowledge there are a lot of websites which have lessons and tutorials for learning the basics of OpenGL. Here are a few really good ones :

NeHe Productions Tutorials

OpenGL Video Tutorials

Online OpenGL Handbook

These websites include complete instructions to install as well as to setup the environment for you to start typing code using OpenGL.

Apart from this, if you happen to be an NUS student then you are lucky indeed! CS3241 (Introduction To Computer Graphics) is a module being offered by the School of Computing. This module covers all the essential basics of OpenGL. Details regarding this module can be viewed HERE

 

Hmmm.... You are talking about graphics but... I do not find a mention of Maya...
No worries. Wait until the next issue!

*****

The IT Bytes Archive
First Edition
Second Edition
Third Edition
Fourth Edition
Fifth Edition
Sixth Edition


Send your feedback to
newsletter@nusacm.org

Register on our website

Are you really IT crazy? Try out our i-Trivia Here