Thursday, February 26, 2009


In Flash or image, the x-axis is the same to the one we use in math usually, which is called Cartesian coordinates. The exchange between them is simple:

Site: H-Anim

A site for humanoid animation. Specifications and so on.

Shape representation

Shape Representation.

Four basic shape using our representation:





A combined shape:


Skeleton used in Humanoid Animation

To animate the humanoid character, a well defined skeleton is used. Following is the skeleton we studied and used in our work.

The skeleton(using maya joint):

The hierarchy of this skeleton is:


The hierarchy also can be seen from following selections in Maya:




The annotated reference skeleton model is:

The one we use is slightly different in the neck area:


Wednesday, February 25, 2009

K-Sketch for animation

Thanks for David's seminar.

Their goal for this K-Sketch is:



Expressive: handle varieties of tasks

Related works:

Child tool: Sketchy    ....Simplicity

Professional Tool:      ....Expressive

Special Case Tool: Pivot Stick Figure Animator

KoKa,2005 A New Static Depiction and Input Technique for 2D Animation

Assist,2001 Resolving Ambiguities to Create a Natural Computer-Based Sketching ...

Race Sketch,2001 Animation Sketching: An Approach to Accessible Animation

18 animation operations

Change Goal to optimizations problems.


Comfortable  level

Concepts & Techniques

Monday, February 23, 2009

Computational Geometry Code

This page lists "small" pieces of geometric software available on the Internet. Most of the software is available free of charge. Unless otherwise specified, C or C++ source code is available for all programs. Software libraries and collections and programs that can be run interactively over the web are listed on separate web pages.

Caveat Surfor! I can't make any claims about the usefulness or quality of the programs listed here. I don't have the time or equipment to try them all. If you have experience with any of these programs, either positive or negative, please tell me about it.

The programs on this page are divided into several categories, some of which are divided into further sub-categories. (Eventually, each category will get its own separate web page.) Each program is listed only once, but I've provided cross-links between overlapping categories, and I've tried to arrange similar categories near each other.

Each category also includes links to relevant pages in Nina Amenta's comprehensive Directory of Computational Geometry Software, which I strongly encourage you to visit!

Items marked [NEW!] have been recently added or modified.

Robust low-level primitives

Avoid roundoff and precision errors! Use this code instead of naïve floating point or integer arithmetic.

Combinatorics and discrete math

Geometric optimization

Convex hulls and convex polyhedra

Most convex hull programs will also compute Voronoi diagrams and Delaunay triangulations. (Actually, all of them do, if you look at them the right way.)
Relevant pages from DCGS:
Low-dimensional convex hulls
Arbitrary-dimensional convex hulls
Measure properties
Boolean operations on polyhedra
Interesting and/or pathological polytope data

Voronoi diagrams and Delaunay triangulations

See also the implementation page from Christopher Gold's site
Relevant pages from DCGS:
Voronoi diagrams and Delaunay triangulations of points
Many convex hull programs can also compute Voronoi diagrams and Delaunay triangulations.
Constrained Delaunay triangulations
See also mesh generation and manipulation.
  • Super Delaunay, a commercial fully dynamic constrained Delaunay triangulation package from David Kornmann (description only). Interactive demo versions for Sun Solaris and Linux are available here (binaries and data only). Demo versions for other architectures are available from the author.
  • Dani Lischinski's incremental constrained Delaunay triangulation program CDT.
  • Robert J. Renka's TRIPACK, Collected Algorithms of the ACM #751, computes constrained Delaunay triangulations, convex hulls, polygon areas, nearest neighbors, and shortest paths. (FORTRAN)
Medial axes and Voronoi diagrams of line segments

Operations on polygons

Relevant pages from DCGS:
Point location
Boolean operations
Triangulation and quadrangulation
See also the sections on Voronoi diagrams and Delaunay triangulations and mesh generation and manipulation.

Mesh generation and manipulation

See also the sections on Delaunay triangulations and geometric modeling.

Geometric modeling

See also the section on mesh generation and manipulation.
Relevant pages from DCGS:
Binary space partition trees
Collision detection

Visibility computation

Visualization tools

You should also look for the thing being visualized! See also my list of programs that can be run over the web.



Web 3D platform

Unity - A good commercial engine. Development only supports MacOS.


Blink 3D

Commercial. Provides a free version.




Saturday, February 21, 2009

Bezier Curves

Linear Bézier curves

Given points P0 and P1, a linear Bézier curve is simply a straight line between those two points. The curve is given by

\mathbf{B}(t)=\mathbf{P}_0 + t(\mathbf{P}_1-\mathbf{P}_0)=(1-t)\mathbf{P}_0 + t\mathbf{P}_1 \mbox{ , } t \in [0,1]

and is equivalent to linear interpolation.

[edit]Quadratic Bézier curves

A quadratic Bézier curve is the path traced by the function B(t), given points P0, P1, and P2,

\mathbf{B}(t) = (1 - t)^{2}\mathbf{P}_0 + 2(1 - t)t\mathbf{P}_1 + t^{2}\mathbf{P}_2 \mbox{ , } t \in [0,1].

A quadratic Bézier curve is also a parabolic segment.

TrueType fonts use Bézier splines composed of quadratic Bézier curves.

[edit]Cubic Bézier curves

Four points P0, P1, P2 and P3 in the plane or in three-dimensional space define a cubic Bézier curve. The curve starts at P0 going toward P1 and arrives at P3 coming from the direction of P2. Usually, it will not pass through P1 or P2; these points are only there to provide directional information. The distance between P0 and P1 determines "how long" the curve moves into direction P2 before turning towards P3.

The parametric form of the curve is:

\mathbf{B}(t)=(1-t)^3\mathbf{P}_0+3(1-t)^2t\mathbf{P}_1+3(1-t)t^2\mathbf{P}_2+t^3\mathbf{P}_3 \mbox{ , } t \in [0,1].

Modern imaging systems like PostScript, Asymptote and Metafont use Bézier splines composed of cubic Bézier curves for drawing curved shapes.


Constructing Bézier curves

[edit]Linear curves

Animation of a linear Bézier curve, t in [0,1]

Animation of a linear Bézier curve, t in [0,1]

The t in the function for a linear Bézier curve can be thought of as describing how farB(t) is from P0 to P1. For example when t=0.25, B(t) is one quarter of the way from pointP0 to P1. As t varies from 0 to 1, B(t) describes a curved line from P0 to P1.

[edit]Quadratic curves

For quadratic Bézier curves one can construct intermediate points Q0 and Q1 such that as t varies from 0 to 1:

  • Point Q0 varies from P0 to P1 and describes a linear Bézier curve.
  • Point Q1 varies from P1 to P2 and describes a linear Bézier curve.
  • Point B(t) varies from Q0 to Q1 and describes a quadratic Bézier curve.

Construction of a quadratic Bézier curve
Animation of a quadratic Bézier curve, t in [0,1]

Construction of a quadratic Bézier curve
Animation of a quadratic Bézier curve, t in [0,1]

[edit]Higher-order curves

For higher-order curves one needs correspondingly more intermediate points. For cubic curves one can construct intermediate points Q0, Q1 & Q2 that describe linear Bézier curves, and points R0 & R1 that describe quadratic Bézier curves:

Construction of a cubic Bézier curve
Animation of a cubic Bézier curve, t in [0,1]

Construction of a cubic Bézier curve
Animation of a cubic Bézier curve, t in [0,1]

For fourth-order curves one can construct intermediate points Q0, Q1, Q2 & Q3 that describe linear Bézier curves, points R0, R1 &R2 that describe quadratic Bézier curves, and points S0 & S1 that describe cubic Bézier curves:

Construction of a quartic Bézier curve
Animation of a quartic Bézier curve, t in [0,1]

Construction of a quartic Bézier curve
Animation of a quartic Bézier curve, t in [0,1]

(See also a construction of a fifth-order Bezier curve.)




Friday, February 20, 2009


Density-based clustering methods: can discover clusters of arbitrary shape and filter out noises.


Preparing for the Qualification Examination, I found a sentence on the Operating System very meaningful.

"In biology, extinction is forever, but in Computer Science, it is sometimes only for a few years."

"An idea that is obsolete today may be the star of the party tomorrow!"

These words really emphasize the importance of the existing works in the field of computer science.

For my own case, the basic foundation in computer graphics is rather necessary!

Get more understanding of this area will give my research great foundation. Therefor, I plan to start my own work plan - ODOP (One Day One Paper)

So start work now, the first day begin!

Thursday, February 12, 2009

News Digest Feb 12

Cognitive Computing Project Aims to Reverse-Engineer the Mind

Wired News (02/06/09) Ganapati, Priya

IBM Almaden Research Center cognitive computing project manager Dharmendra Modha has a plan to engineer the mind by reverse-engineering the brain.  Neuroscientists, computer engineers, and psychologists are working together to create a new computing architecture that simulates the brain's perception, interaction, and cognitive abilities.  The researchers hope to first simulate a human brain on a supercomputer, and then use new nano-materials to create logic gates and transistor-based equivalents of neurons and synapses to build a hardware-based, brain-like system.  The effort has received a $5 million grant from the Defense Advanced Research Projects Agency, which is enough to run the first phase of the project.  The researchers say if the project is successful it could lead to a new computing system within the next decade.  "The idea is to do software simulations and build hardware chips that would be based on what we know about how the brain and how neural circuits work," say University of California-Merced professor and project participant Christopher Kello.  The researchers started by building a real-time simulation of a small cerebral cortex, which has the same structure in all mammals.  The simulation required 8 terabytes of memory on an IBM BlueGene/L supercomputer.  Modha says the simulation, although not complete, offered insights into the brain's high-level computational principles.  A human cerebral cortex is about 400 times larger than the small mammal simulation and would require a supercomputer with a memory capacity of 3.2 petabytes and a computational capacity of 36.8 petaflops.  While waiting for supercomputing technology to improve, the researchers are working on implementing neural architectures in silicon.

Tuesday, February 10, 2009

Using OpenCV

After installation, you must add "{installation folder}/OpenCV/bin" and "{installation folder}/OpenCV/lib" to the system environment path.

In Visual Studio, add "{installation folder}/OpenCV/cv/include", "{installation folder}/OpenCV/cxcore/include", "{installation folder}/OpenCV/ml/include" and "{installation folder}/OpenCV/otherlibs/highgui" to Tools->Options->Projects and Solutions -> VC++ Directories :Include files.

Moreover, add "{installation folder}/OpenCV/lib" to library files.

Then, open the property dialogue of the project, add "highgui.lib cv.lib cxcore.lib ml.lib" to Linker-> Input.

Photography tips







如图所示,ISO感光度与画质之间有着密切的联系。提高ISO感光度时产生噪点的原因之一是在对影像信号进行增幅时混入了电子噪点。如果希望保持尽可能高的画质,应该使用低ISO感光度。但低感光度拍摄昏暗的室内或夜景,快门速度会非常低,所以需要注意很容易产生手抖动和被摄体抖动。此外,噪点本身有在昏暗部分比明亮部分更显眼的倾向。所以在室外明亮处拍摄照片时候将感光度提升到ISO 400 噪点不会太醒目。越提高ISO感光度快门速度就越高,可以有效防止手抖动和被摄体抖动。但在使用高感光度的时候,要注意画质劣化的问题。


















拍摄首饰时,也要使用能让画质更漂亮的ISO 80左右的低感光度。此外拍摄光源使用能自由改变角度的台灯虽然方便,但很多时候明亮度并不理想。而荧光灯的光线与数码相机自动白平衡的相性比较好,是推荐使用的道具。不过这样快门速度会变慢,需要防止手抖动,为此准备了可以在桌上使用的迷你三脚架。拍摄使用微距模式,对焦于希望展示的部分,靠近拍摄特写。这次的被摄体比较小,因此使用了能够拍出更大画面的广角端,然后仔细对焦后拍摄即可。然而如之前所料,快门速度相当慢,即使使用了三脚架也还是不太放心。于是使用了自拍功能,注意不给相机带来冲击。此外在拍摄首饰类有光泽的反光物体时,可能操作相机的拍摄者会映到被摄体上。因此通过使用自拍功能,拍摄者可离开相机拍摄,十分方便。



Drawing books

Technical Drawing - rev3
Andrew Loomis - Successful Drawing
How to Draw Anime

Drawing Guide

Drawing Guide

News Digest Feb 10

Google Makes it Easy to Spy on Kids, Workers

Associated Press (02/05/09) Liedtke, Michael

Google recently upgraded its mobile maps software with a feature called Latitude that allows users with mobile devices to automatically share their location with others.  The feature expands on a tool released in 2007 that allows mobile phone users to check their own location on a Google map.  The new feature raises several security concerns, but Google is trying to address this issue by requiring each user to manually turn on the tracking software and making it easy to turn off or limit access to the service.  Google says it will not retain any information on its users' movements, and that only the last location recorded by the tracking service will be stored on Google's computers.  The software uses cell phone towers, global positioning systems, or a Wi-Fi connection to find users' locations in the United States and 26 other countries.  Each user can decide who can monitor their location.  Latitude will initially work on Blackberrys and devices running on Symbian software or Microsoft's Windows Mobile.  Eventually the software will be able to operate on some T-1 Mobile phones running Google's Android software and Apple's iPhone and iTouch devices.  Google also is offering a PC version of the feature.  The PC program will allow people who do not have a mobile phone to find the locations of contacts or keep track of their children.


UAHuntsville Lab Combines Psychology With Technology for Unique Research Projects

University of Alabama in Huntsville (02/02/09) Maples, Joyce

University of Alabama in Huntsville (UAHuntsville) professor Anthony Morris directs the school's Human Factors and Ergonomics Laboratory, which combines psychology and technology to research work performed by human factors engineers.  Experimentation and research projects include human operator interactions with complex systems such as aircraft, and designing work stations that are logical, user friendly, and can help prevent injuries.  For example, Morris and UAHuntsville graduate student Sage Jessee have been working with the Human Research and Engineering Directorate of the Army Research Lab to evaluate the head and eye movements of Black Hawk helicopter pilots.  The project involved using eye-tracking in a video game-like simulator to monitor the pilot's point of gaze and head position during flight scenarios.  The researchers created an "attentional landscape" that characterized the general gaze of the pilot, and identified specific eye measures that correlate with mental workload.  The result of the project was a new ergonomically designed cockpit that enabled pilots to spend 90 percent of their time looking outside windows instead of continuously staring at the instrument panel.

Monday, February 9, 2009

A survey of shape analysis techniques

This paper, published in 1998, is about the techniques in shape analysis. It talked about shape representation and description aspects of shape analysis.

Briefly introduction about Human Perception of Visual Form.

Boundary space & Body space techniques.

Polygonal & Spline approximations.

Medial axis.


This paper started from the human visual perception to introduce a large amount of shape analysis techniques. A good overview of shape analysis techniques.


[1998]a survey of shape analysis techniques


Useful papers from reference:

39. Decomposition of three-Dimensional objects with spheres.

40. Minimal rectangular partition of digitalized blobs.

48. Visual Perception

61. Visual cognition: an introduction, Cognition

139. Shape design, representation, and restoration with splines.

145. An Introduction to Splines for use in Computer Graphics.

173. Ordered structural shape matching with primitive extraction.

Saturday, February 7, 2009

[Lyrics] Owl City - The Saltwater Room

I opened my eyes last night and saw you in the low light 
Walking down by the bay, on the shore, staring up at the planes that aren’t there anymore
I was feeling the night grow old and you were looking so cold
Like an introvert, I drew my over shirt around my arms and began to shiver violently
Before you happened to look and see the tunnels all around me
Running into the dark underground
All the subways around create a great sound
To my motion fatigue: farewell
With your ear to a seashell
You can hear the waves in underwater caves
As if you actually were inside a saltwater room

(Time together is just never quite enough)
When you and I are alone, I’ve never felt so at home
(What will it take to make or break this hint of love?)
We need time, only time
(When we’re apart whatever are you thinking of?)
If this is what I call home, why does it feel so alone?
(So tell me darling, do you wish we’d fall in love?)
All the time, all the time

Can you believe that the crew has gone and wouldn’t let me sign on? 
All my islands have sunk in the deep, so I can hardly relax or even oversleep
I feel as if I were home some nights when we count all the ship lights
I guess I’ll never know why sparrows love the snow
We’ll turn off all of the lights and set this ballroom aglow
(So tell me darling do you wish we'd fall in love)
(All the time)

(Time together is just never quite enough)
When you and I are alone, I’ve never felt so at home
(What will it take to make or break this hint of love?)
We need time, only time
(When we’re apart whatever are you thinking of?)
If this is what I call home, why does it feel so alone?
(So tell me darling, do you wish we’d fall in love?)
All the time, all the time

(Time together is just never quite enough) 
(When we're apart whatever are you thinking of?)
(What will it take to make or break this hint of love?)
(So tell me darling do you wish we'd fall in love)
(All the time)