Sunday, January 11, 2009

Week 11

Week 11

29/12
Create a drawing application using the GL tools but the result was not what I had expected. So I Google for other drawing application and see what kind of patches they used to create lines or shapes. I found the WiiDraw using quartz composer and explore on the program. I found a painting patch in the program and I make use of the patch for our whiteboard application. Modify the program slightly to make us of the painting patch.

30/12
Ming Hong help with the with the painting patch, he changed the output image to GL line and GL point. Even though the painting patch is working properly but it could not change color yet. After that, I tried to integrate with OSC but did not work because I am not familiar with the OSC patch.

31/12
Explore on the OSC patch and look at wilson and ryan pong game to see how OSC work in Quartz Composer. Half day off, public holiday eve.

1/1 (2009)
Public Holiday

2/1
Modify the program by adding 4 different color on the bottom of the screen so that the output color will change whenever the mouse is over the color. Added erasing as well, so the drawing part for the whiteboard application is completed but it only worked for the mouse. Therefore, tried to integrate with OSC but it did not work. 

Weekly Reflection :
Learn new things on GL tools. In order to draw a line we need to create a rectangle with 2 circles on each end to make it look natural when we draw a lot. Learned on how the OSC worked in Quartz Composer even though the integration had failed. 

Week 10

Week 10
22/12
As we need to develop a whiteboard application so we need to research the various patches available in Quartz Composer. I research and explore on Kineme Particle Tools which allow me to create a series of particles which look like a line. However, there is a small problem which is the frame rate will drop whenever I create a series of particles. Therefore, it is not the best solution for the whiteboard application.

23/12
After realizing that the frame rate drop after a series of particles are created, I needed to find other patches to work. I researched and found that there are a set of GL tools which can draw various shapes and other functions related to image rendering. As I was unfamiliar with GL tools, so Ming Hong gave us a quick lesson on the GL tools and some of it uses. 

24/12
Explored on GL tools patches, attempted to create a simple program that make use of GL tools. By creating a simple program, I can have better understanding on the output results of the different patches and how they worked.  Half day off because it was christmas eve. 

25/12
Public holiday

26/12
Day off given by Kevin

Weekly Reflection:
Learned a lot on GL tools and how they can affect the rendering of images. I also have a better understanding on how the quartz composer patches worked such as there is only 1 value for each input. 

Wednesday, December 31, 2008

Week 9

15/12
Had our presentation in the morning, I think it was one of my most prepared presentation out of so many. We were told to prepare for it because if we were to do to our best, mistake then can be spotted and we can improve. Indeed, mistake were spotted and I had a great lesson on presentation skills. We updated Kevin on the whiteboard application that we had discuss last week. After the update, I continued with the quartz composer.

16/12
I start to do the whiteboard application and research on the background to be overlay on top of every application including Keynote. We did not manage to do it.

17/12
I continue with the application overlay, had a hard time finding the codes for overlay because we were not familiar with cocoa programming. Ming Hong manage to find the command to overlay the application on top of everything. Find some icons for the palette like some brushes, pens, and others.

18/12
First time doing design work for an application because the past project that I have done, the design is handled by my other team members. However, I manage to design the palette and everybody was satisfied with the design. We were told to do a demo for the kids that are coming to IHPC tomorrow. Each of us were to handle a group, and we prepared for the demo. I also tried finding some patches for whiteboard application.
















This is the design for the palette.

19/12
It is "Back To School celebration" with Beyond Social Service where kids come to IHPC for a visit and learn about scientific things. We volunteer our help for that day. We were in charge of Lightdraw section where we will do a simple presentation to the kids about lightdraw. We did some preparation but we did not get to present because Kevin was scared that we could not handle the kids as the age group was smaller than we had expected. In the end, Kevin handle the presentations to the kids but we learned as well throughout the presentation such as how Kevin talks to the kids and gain their attentions.

After the kids had visited all the other stations, we helped them to complete the crossword puzzle  and went to the pantry to have lunch with the kids. We helped Jerry to carry the kids' present down to the seminar room and ushered them to the room to settle down. Then, the prize presentation starts and the kids were happy to receive their presents. Even though it is a simple gift but they were delighted and excited when they unwrapped their presents.

We had a group photo with all the volunteers and kids in the lab.  

Weekly Reflection:
Learned a lot in presentation skills and mistakes during my presentation. Explore a lot on quartz composer, it was quite complicated and not as easy as you think. Did design work and manage to create a design that everyone was satisfied with it. 

Tuesday, December 16, 2008

Week 8

Week 8

8/12
Today is public holiday so no work.

9/12
I watched the video on Steve Jobs presentations on Apple products to learn about the presentation skills. The whole video lasted bout 2hours, it was a great video because we can learn how Steve Jobs present his products to the audience. After the video, we brainstorm ideas on the Whiteboard application such as different ways of displaying the drawing tools and stuffs.

10/12
As we are told to do a presentation next Monday so I prepared for the presentation. As I am using Keynote to do the presentation so I need to complete asap because I don't have a Mac at home and tomorrow we are going to SiggraphAsia.

11/12
Went to SiggraphAsia.

12/12
Prepared the script for the presentation. Did several dry run with ryan, wilson and hock to pin point each other mistakes. We also told each other what can be improved in the slides. I feel that this session really help us a lot because not only we can improve on our slides, we can also correct each other mistakes.

weekly Reflection:
Learn different presentation skills from steve jobs presentation videos. Saw alot of interesting stuffs at Siggraphasia.

Tuesday, December 9, 2008

Week 7

Week 7

1/12
The tile display was down so we could not do anything until it is fixed. Kevin suggested that we do some research on the different data format supported for scientific 3D model. Found out some common data format in 3D model such as .3ds, .x , .msh and many other more. We also read up on Fluent which is a software used to create the 3D models. At the end of the day, the tile disp

2/12
The tile display was up so we did our testing without the hold detection. Found out that there was a problem with the frame rate. When we implement the hold detection the frame rate was 6-8 fps but after removing the hold detection the fps increase to 20-23fps. Kevin came and see the testing, we told him the problem and we discussed on some possible solutions and issues that lead to the frame rate problem.

3/12
We tested the tile display again using the RGB lightdraw code that Ming Hong rewrote. Ming Hong suggested that we should combine the remote calibration and receiver together so we do not need to run seperate program. I combine the 2 program codes together but it did not compile properly because of the makefile problem. Did some simple research on Keycode as we needed the keycode value to do some actions for VMD such as rotation, scaling , transform.

4/12
Went for NS medical checkup, took me the whole day so did not went to work. I will do a compilation of our testing, results and findings for the tile display project up till now on the next post.

5/12
Went back to work and hock manage to compile the combination of remote calibration and receiver. I missed out quite a bit because Kevin gave them a short lecture of presentation skills. We were told to give a presentation on the application that we have done which is Puzzle for me and hock, Pong for ryan and wilson. Continue some research on Keycode and Hock found a keycode value chart. Help Ming Hong to test VMD lightdraw with functions such as rotate,scale and transform.

Reflection :
Learned alot on the different data format of 3D model and some simple information on Fluent. I also learned about the keycode value which is a number value for the keyboard. There are different values for different OS such as Mac, Windows and Linux. I also learned how to run VMD and paraview and also some functions avaliable in the 2 3d model viewer.

Sunday, November 30, 2008

Week 6

Week 6  

24/11
Tested the OSC to X11 because we suspected that it might be the firewall that is preventing the OSC from sending packets. We solved the problem by disabling the firewall and we managed to do it. We play around with the new DV cam and Ming hong told us about the settings for the cam to setup for lightdraw.

We went over to the tile display room and tested the new DV cam with lightdraw using MacBookPro.
Results and Findings -
1tile - Successfully detect but there are some blind spots where the light will flicker.

4tiles - Even though the camera has been place properly. Some area could not be detected by the camera. I should say we failed for 4 tiles. 

6tiles - Only some area could be detected in the center. We failed for 6 tiles also.

Updated Kevin with the results and he suggested some camera positions that we could try capturing laser from a postion where the camera is placed at a certain angle. He also gave us other suggestions.

25/11
After confirming that it was the firewall was blocking the OSC from sending, we need to configure the firewall such that OSC can send packets to the other computer. Helped Hock a little on the port opening before switching my task. I went over to lightdraw room to test the puzzle application because we need to give a presentation to Kevin on or updated application. Always get prepared is better than not.

After the short presentation given by the 2 teams, we went down to FusionWorld to take a look on the lightdraw setup. We had discussions with Kevin on the possible solutions to the setup of lightdraw in tile display. One of our solutions was to reduce the area of capture because the application that was used in tile display did not need the whole screen. The suggested area to capture was 1.5x2 instead of 2x3. Went over to tile display room to test the remote calibration but we had problems because opencv was not installed and there was errors in the Makefile. Even though Bernard installed opencv, we still could not get the MakeFile to compile in the computer.

26/11
Bernard taught us how to change the makefile according to where the opencv is installed. After trying for several hours, we still could not get it to work. We went for lunch and had a little tour around Fusionpolis. We went to the skygardens in the building and the Student Room for interns which is at level14. After visiting the room, we were glad and happy that we get to be in level 16. 

Kevin and Ming hong came over to help us with the makefile,  we solved the error by including all the things that are needed in the makefile and it can compile. We did some testing and we realize that our port is blocked by the computer so we disable the firewall for 5 mins. We were able to send OSC packets among the 2 computers. However, there were consequences for disabling the firewall which was the computer went crazy and could not start up. Bernard help us to restart the computer by going the cluster computer room. He help us to open the ports that we need to use also.

27/11
Most of the staffs were at level 15 for retreat session, so we were left alone in our lab to do our stuffs. We did not do any anything in the morning because there was a demo in the tile display room and we were told to that the room was free in the afternoon. 
We tested all the opened ports and it took us quite some time before we got to the correct port which is 53.  We could not use the remote calibration so we tried the manual calibration but lightdraw could not work properly because the coordinates that were received were coordinates of the MacBook instead of the tiles.

28/11
Tested lightdraw and remote calibration with 2 macbook and it work fine. Ming hong found out that there are some problems with the lightdraw. After he has changed the codes, we continued testing but the frame rate was very low so the movement of the mouse is very slow. 

Reflection :
I learned how to change makefile according to the installed path, add more include paths that was needed. I also learned how 2 computers can communicate with each other, like when 2 users using the application at the same time.

Saturday, November 22, 2008

Week 5

Week 5

17/11
You hock completed the snapping for multi user puzzle in the morning. After that, we fixed some of the rotate corners problem. Finally, the multi user puzzle is working well. We carried on to the 2x3 tile display project. We brought one Macbook Pro and the logitech webcam over to the tile display room. We look around the room deciding where to put the webcam so that we can capture the whole screen. We even tried to put the webcam at the back of the room but there are too many frames and racks which block out some capture area. Our only choice to place the camera is at the front. So we started to set up the camera, we manage to capture the whole screen but the camera cannot detect the laser because the screen material allows light to pass through. Therefore, the camera could no capture the screen properly.

18/11
As the DV cam was not here yet, so we continued the 2x3 display by coding the receiver for the tile display. So when the lgithdraw is running, whenever laser is detected the coordinates will be send to the client computer which is the tile display terminal. We read the lightdraw codes trying to understand how the X11 works. Attempt to code the sender but fail.

19/11
Had a little team meeting with bernard on the tile display. We discussed the difficulties on the integration of lightdraw with tile display. We also discussed on the possible solutions to the problems that we could try. Bernard set us some tasks that for this week. For today, we need to test whether lightdraw can work on 1 tile instead of capturing all 6 as suggested by Harold. We went to back of the room and capture the tile using the webcam. After which we went to the front and hang the webcam on the lights and started the testing. Below is the results and findings for the 2 different camera positions.

Results and Findings :
Putting the camera at the back is impossible because there is glare from the projector which will block out the center of the screen and it will confuse the program becuase it detect the brightness of the glare and the laser could not be detected.

Putting the camera at the front is our solution but we need to hang the camera in the celing as there are audience standing viewing the tile. Therefore, we cannot place the camera on the ground with tripod because it will block the audience's way. Eventhough we manage to detect laser after changing some camera settings but the laser can only be detected at the center but not the whole frame. We suspect the calibration because we used manual calibration instead of auto therefore might cause the result. We also suspect is the qulity of the camera because we used webcam instead of the DV cam therefore the setting could not be set to our requirements. However, we will test again using the DV cam on Monday because it will be here on Monday. Below is the result of the debugging when the camera is place at the front.











20/11
We started the day by doing writing the application to receive the coordinates from lightdraw. We failed in writing the application. We continued the day by doing some testing and checking the puzzle because Cheng Teng told us that they will be using the puzzle app for tommorrow event where the staffs will bring their kids to the office and we will show them our app. From the exprience of the last demo, we decided to do testing and checking ensuring that everything is working properly before using the app on the actual day.
We actually found bugs in our program, I will use diagram to explain the bugs found.

Above is a simple illustration of one of the bug found. If the user try to snap the pieces together but the overall piece after snap will over shot the canvas which is the red part. Result of the above bug is the program will CRASH.

At the end of the day , we manage to solve the bug that is found. Lucky we did the checking before the event, I cannot imagine if we were to discover the bug during the actual event itself. It will be embarrassing.

21/11
The very first thing I did in the morning was a final check and test before the kids starts to come in. While Hock is coding the sender for the tile display. I did the testing and checking and Ming Hong helped me and we discovered another bug which was quite unexpected because I never knew that it will happen. The bug that we discovered was if one of the user is rotating the pieces and the other trying to snap. The result is the snapping will not happen until the rotation is stop. Luckily we manage to fixed the bug before the event starts. After solving, I did not stop testing and checking because I was scared that there were more bugs. Finally, everything is settled down and the check was over. No more bugs were discovered.

We were told that the kids will be coming in to our lab around 2.30. Around 2.30 the kids came in and Cheng Teng showed the kids by using a lightdraw in Google Earth. All of them were amazed by it and Cheng Teng gave them some explanation on how Lightdraw works but I don't think the kids are interested. They are more interested in trying it instead of listening. After the short explantion, the kids were given chances to try and the whole room went in to total chaos because everyone wan to play. So the drawing board was switch on because it allow more kids to play with it. We did not give them laser because we do not want them started to shine each other's eyes with it. We gave them torches and they started to draw with it. I can see that they are enjoying themselves with the drawing. Even some of the adults were having fun with the board. The second batch came in 5 mins later after the first batch has left. They played with our puzzle app and the room went in to chaos also because everyone was trying to control each other pieces. They also tried the drawing board too. After that, we went to the pantry for light snacks and for the first time the pantry is filled with kids.

After the event, we continued with our work which Hock has completed the sender and we were able to run the app on local computer. We tried the app on 2 computers but we were unable to let the app work properly. We suspected that it is the firewall is prventing the receiving of the packets. We will fixed the problem on Monday.

Pictures :













































Weekly Reflection :
Things I have learned for this week is testing and checking for an application is very important because you will never whether your program is bug or have errors. Testing and checking can never be done by one person because you might not know as others might find a bug which you did not expected. I also learned that we must always communicate with team members in a project to establish common understanding on the objectives and tasks for a project.