Wednesday, June 17, 2009

Venturing into NURBS

If you have ever done 3d modeling on high end software (3Dmax, Maya) then you shouldnt be a stranger to NURBS. NURBS stands for Non uniform Rational B-Splines.

Although I have graduated from the academic world, somehow i still find myself creating having lot of interest in it. This time i will do a research on NURBS and hopefully produce some educational application with it. Drop me any suggestion that you think could enable a newbie in learning NURBS.

Friday, June 12, 2009

Tips on writing a final year project report

What is this article about?
This article will cover some important aspect of writing a good fyp engineering report that I learn thru my experience. If you are reading this, you probably are doing your own report and need more clues about it. Hopefully you got at least 2 month available to churn out a reasonable piece of work.

What is not included?
Trivial matters (eg. how to write introduction, how to write abstract, ....)

Some background on my final year project.
My university final year project is to assist my prof in creating an educational website on Inverse Kinematics; an animation technique. The targeted audience is for post graduate students. The information on the website is quite detailed, as such it could get too wordy at times. Most of my time were spent creating (approx 12) educational applications on IK. Unfortunately my prof has not decided whether to publish the website online but i have posted some of my applications in my blog. Anyway i written a 70 page report (lot of pictures) on my project and receive very good feedback for my work done. Ended up getting a distinction A+ for it.

What you really want to know
1) Your university should have posted their own article on how to write a report. Download it and read it. Some profs based their expectation on that article.

2) Visit your prof/supervisor and ask him about his/her expectation or any advise on writing the report. The answer is usually very general but enough to guide you on the right track.
If your direct supervisor wants you to write in a different style from (1) ask for the reason and include it in your introductory chapter (either objective or purpose).

My prof wanted me to include a very detailed introductory topic on IK therefore i produced about 20pages worth of it. Unfortunately the examiner(moderating prof) found it extremely boring having to read through them. Had to convince him that it was done according to my supervisor's request.

3) Read enough article and reference them in your report properly. Learn when you should reference and how you should do it (eg. IEEE standard). References are important to show your readers that you have done your research. Try to at least have 10 references. And do not CHEAT; putting references that you have not read is a big NO NO.

For my work i have approximately 30 references ranging from books, published articles, thesis report, internet articles. (pls do not include forum discussion).

4) Plan your report properly and have enough spare time for revision. Planning is crucial as this report is huge, probably the longest you have written so far. Layout the Chapters, sub topics and sections before writing is a good start. Each section/topic should serve a purpose.

5) Do not plagiarize. Every sentence that you write should be yours (except for general definition). Paraphrasing is an important skill set you should already have when doing your literature reviews.

After reading my 1st draft (2wks b4 deadline), my assigned examiner/(moderating prof) suggested that i copied my work from google zzzz. Claiming to have found areas that are identical but refuses to show me the "problematic" text. I was firm that the work is not copied and went as far as paying USD $5 to submit my paper to a website providing turing test services. I got a 2% score for it, which is extremely low!!! Wasted my 5 dollars.
It turned out that the examiner played bluff with me!! He merely wanted to test my reaction and determine if i did the work. what a tricky person. And i only found out 1 month later during my project presentation.

How to distinguish your work from the rest? (Distinction)
Contributing something NEW!!!! Something useful that the academic world have yet to witness. This is actually a requirement for (phd) students. Thus if you can achieve this then you have a great work on hand. You are above the average joe.

For my work i researched on some popular techniques of implementing IK. I also created applications based on those techniques. Finally using the applications I did some comparison study of the various IK techniques. Fortunately my work has not been done before and it distinguishes my work from the rest.


Wednesday, June 3, 2009

Java3D Inverse kinematics application

This is my early work on Inverse Kinematics. Basically i wanted to demonstrate IK in a 3D environment. I replaced this application with a nicer looking Flash version, but decided to still post it here because: 

1) IK on Java3D is hard to find (I didnt manage to find one)

2) Show that it can be done in Java3D (Some Java books claim Java3D scenegraph works against IK)

Java3D IK ARM : This arm runs on the Jacobian Transpose method. If you never worked on Java3d before, you will probably not be able to view it. You will need the Java3d API. If you are running mac, unfortunately the latest OS 10.5.x does not support Java3d. so much for being a portable language.

Educational Flash Application on Inverse Kinematics

These application were created for the purpose of illustrating Inverse KinematicsInverse Kinematics is a technique applied to manipulate robotic arms or articulated figures. To me IK is a broad and challenging topic unfortunately most text focuses mostly on the Jacobian methods. 

3D arm using Papervision3d : Runs on Jacobian Pseudoinverse and Damped Least Square. Click and hold on the mouse to have the arm move to the corresponding location on the blackboard.

Running skeleton : Using Forward Kinematics + Sinusoidal timer to create a simple animation

Cyclic Coordinate Descent : Illustrates the principle by which it works on. The movement of each joint is slowed down on purpose. This method is more suitable for computer animation as joint angles could be updated instantly. 

Comparison Application :  A general application to display how the various IK approaches manipulates their respective articulated figure. The approaches within the application were those that i have researched on. 

Snake Game : Remember the classic handphone snake game ? ? Well this is a remake of it by using Inverse Kinematics to model how the snake moves. The thought of creating this game seems to come naturally having created so many application related to moving a chain of links. Unfortunately it seems the idea is not new on the internet... ... Anyway this snake moves using the CCD approach. *This application is lacking of music/sound* If you are a interested to contribute your original audio works do drop me an email :)