This action might not be possible to undo. Are you sure you want to continue?
application and Bubble-touch game NAME: Suyog Appasaheb Patil GSoC HANDLE NAME-Suyog Patil EMAIL IDfirstname.lastname@example.org BLOG- http://sprobotics.blogspot.in/ FACEBOOK PAGE ABOUT ROBOTICS:http://www.facebook.com/roboticsin SHORT DESCRIPTION: I am student of 3rd year B.Tech of Electronics Engineering in Veermata Jijabai Technological Institute,Mumbai,India .I am a guy who loves programming and have vast experience in algorithm developments .I help other programmers by writing programming tutorials in Matlab,OpenCV on my blog and by giving them useful links and updates about robotic activities on my facebook page. I am not much familiar with android development but I am familiar with OpenCV which is mainly required to develop my ideas in Android.I am a quick learner so getting used to android development won’t be difficult for me. 1.GSOC PROPOSAL Ideas: Contact data: Country: India City: Mumbai University: Mumbai university IRC-@suyogp Github-@suyogpatil Email IDemail@example.com Blog- http://sprobotics.blogspot.in/
I have three ideas in my mind based on Gesture Recognition technology and Augmented Reality 1)Catroid Gesture Paint: In this fingertip detection and color recognition will be used.This techniques will be applied on video captured by front camera of Android device. This paint application will be having two modes as following: a) Paint with fingertip: I. It will paint on device screen with just fingertip action of user in air as fingertip of user will be tracked and painting will be drawn according to its path of movement. II. Color of object to be drawn can be set runtime. III. It is more user friendly paint application giving a feel of writing in air which is usually shown in Sci-fi movies. b) Paint with colors:
II. III. IV.
In this user will show object of particular color to camera and camera will track that color and according to its coordinate figure will be drawn with same color as that of object. Advantage of this method is that one can simultaneously draw with different objects.Kids will love this kind of painting with lots of colors. This method is easy to implement than fingertip detection and will require less processing and hence it will be fast. This will give feel of colors in air like ‘Holi’(the festival of colors in India).In Holi people apply colors to faces of each other and celebrate the divine season.
Paint background can be real-time video captured by front camera or just white screen with small camera view at corner of display. 2)Control of IDE and scripts using gestures: I. In this using gestures by hand user interface of Catroid can be controlled. II. For example if user want to go to next screen then he will just move his hand in front of camera from left to right and to go back to previous screen he will move his hand from right to left. III. Zoom in and zoom out can be also done by gesture which will be similar to gesture we do on touch screen devices. IV. This again will give fantastic feel of controlling devices without touching them.This technique can be thought as next step of advancement in technology after touch screen devices. V. This technology requires lot of processing and can be implemented efficiently using training of user hand gestures at the start. 3)Finger Bubble-touch game: I. II. III. This game will be basically developed for kids. In this game Augmented Reality and Fingertip detection will be used. In this game bubbles will be plotted or augmented on real-time video captured by front camera. Small kids will pop this bubble with touching bubble by fingertip in air and gain points. The game will have increasing difficulty levels which will include more speed of bubbles and negative points for popping wrong bubbles. Kids like to play with bubbles and hence this game can become famous among kids due to its uniqueness.
I have already done this kind of project using Gesture Recognition Technology with Augmented Reality on PC in my past project. The project was based on color recognition algorithm.
Software tools that can be used to develop proposed applications are: 1. Eclipse and Android SDKs 2. OpenCV for Android 3. AR toolkit INTEREST: I always prefer innovative and attractive technology development hence I have proposed this kind of technology to Catroid. I am also interested in User interace enhancement idea using skins and actionbars.I like deigning user interfaces.If given a chance then I am ready to work for it. MOTIVATION: I always prefer technology which make life of user more sophisticated rather than complicated. I like playing with kids and to make tool for their enjoyment will be awesome experience for me. This technology will definitely trigger everybody’s mind and this has been observed by me when I exhibited my project in various colleges of Mumbai,India. So developing this technology in android devices will be motivational for me as it can be carried anywhere unlike Personal computers. ANDROID HARDWARE: I don’t have android device now but I am planning to buy Samsung Galaxy S in May 2012.It has Android 2.2 (Froyo) can be upgraded to 2.3. I will work on both emulator and my device. OTHER HARDWARE: I have beagleboard XM rev C on which android can be installed. Beagleboard specificationsARM Cortex -A8 Processor frequency-1 GHz DDR RAM.- 512MB USB slots-4 Ethernet connection It is called fan-less PC due to its computer like specifications and performance. We can implement catroid applications on beagleboard. TEST DRIVEN DEVELOPMENT: Native language I used is Marathi.I am totally unfamiliar with Marathi typing hence I have written it on paper and uploaded photos as said by Mentor on IRC.
Test-driven development is a software development process related to the test-first programming concepts of extreme programming. . In this developer writes a failing automated test case in which desired improvement or new function is defined. After the above process developer produces code to pass that test. At the end developer refractors the new code to acceptable standards. In this test should always fail and if it does not fail, then 1) The proposed new feature already exists or 2) The test was defective
Due to TDD more tests were performed which resulted in good products. In TDD total code time is less than traditional methods which is its major advantage. TDD is flexible and shorter. Large numbers of TDD tests help to limit the number of defects in the code. There are different types of test suites for different kind of applications. Unit tests and functional tests are one of them. Unit tests are testing one unit or class in isolation.
Functional tests are testing the behavior of whole system in general and interaction between components. Why TDD should be used in Catroid? TDD is ideal for Opensource projects where lots of developers are involved. If we use TDD then bugs can be eliminated to greater extent.
EXTREME PROGRAMMING: Native language I used is Marathi.I am totally unfamiliar with Marathi typing hence I have written it on paper and uploaded photos as said by Mentor on IRC.
Xtreme Programming (XP) is one of the software development methodoligies. Xtreme Programming is a type of Agyle software development process. It has been proven to be very successful at many companies and industries worldwide. 1) Testing- XP uses high percent of code coverage with tests of TDD. 2) Short iterations-It is used in planning next application releases. It provides early and frequent users feedback.
3) YAGNI principle (You Ain't Gonna Need It)-All redundant functionality is not implemented. Developers will not implement something that is not needed at the moment . 4) Planning games-Approximate plan is formed and written on page. It is continuously updated as the project development occurs. This style is effective because the customer is responsible for making business decisions, and developers are responsible for making technical decisions. 5) Simple design-. Always most simple design is used.It tells us to avoid complexity in algorithms development. 6) Refactoring-This is the improvement of the code without changing its functionality. It increases readability of the code. Refactoring makes it more easier to change the code in future and introduce new features. 7)Detailed Code reviews- Code review practices fall into three main categories: pair programming, formal code review and lightweight code review. Formal code review- It is traditional method of review in which developers review each line of code step by step.It is more effective. Lightweight code review- Lightweight reviews are often conducted as part of the normal development process.It includes review by email, pair programming.
8) Continuous integration- System integration is done frequently in XP. Sometimes it is scheduled once a day or sometimes on each commit. This allows to find integration problems and bugs early. 9) Coding standards- All the developers of group should follow the same project coding standards. Due to this debugging becomes simple and usability increases. This standard simplifies the refactoring and avoids unproductive argues,confusion in the team. 10) Collective code ownership-Each and everyone in development process of code is responsible for the entire code and database. I have practical experience of continuous integration,coding standards, pair programming and lightweight code review in my past projects.I always go for simple design and follow YAGNI principle.I am going to use the same principles in Catroid along with other XP methodologies.
USABILITY: Native language I used is Marathi.I am totally unfamiliar with Marathi typing hence I have written it on paper and uploaded photos as said by Mentor on IRC.
Usability of application depends on how simplified and foolproof user interface is. Main goal of implementing Gesture recognition technology is to increase usability. Usability of Applications is increased by proposed applications in following manner: 1. Children like gestures in the applications they use.They want to try as many gestures as possible.Gesture recognition technology gives them this freedom . 2. Children can use many gestures on one single application if they train those gestures in device. 3. Children can use lot of gestures in Gesture Paint to paint their imagination.
4. So the usability is not restricted by gestures. 5. Interface becomes so simple and yet interesting with hand gesture control. In my project I will follow official Google Android guidelines to increase usability. I will make my programs as light as possible by decreasing the processing time and increasing the efficiency of code.
EXPERTISE: I have two years of experience in image processing in Matlab and OpenCV. I have implemented flash based augmented reality applications using flarkit. I am familiar with android OpenCV ( https://github.com/suyogpatil/OpenCV-Android) HUMAN LANGUAGES SKILLS: I speak English,Marathi,Hindi. Marathi is my native language. I speak English,Marathi and Hindi with equal fluency.I generally use English for communication in college. GRAPHICAL DESIGN SKILLS: I have good graphic design skills for which I can rate as 7/10. I can design various icons of Catroid IDE if given a chance to do so along with its User Interface design.
May 26 – June 15: 1) Developing algorithms for fingertip detection(the most difficult part) for various light conditions as detection depends on light exposure. 2) Developing algorithms for color detection for various light conditions.
June 16- June 30: Development of Catroid Gesture Paint and testing. July 1 – July 20: Implementation of gesture recognition technology on Catroid IDE ,scripts and testing July 21 – August 5: Development of Finger Bubble-shooter game and testing.
August 6 – August 10 Make improvements in code without changing functionality i.e. refactoring process Make code more efficient 11 August – 15 August Fixing minor bugs and cleaning code. Documentation writing PHOTO:
INTERACTION WITH CHILDREN: I have a cousin. She is of 12 years of age. I can get feedback from her of catroid applications developed by me.I communicate with children very well. I can go to school and test my applications by giving demonstration to kids of different ages.
COMMENTS: Other Idea in Catroid: I am thinking of making android application which will teach various study lessons with animations to students of different classes in school. This application will be customizable i.e. On the download site there will be application features list which will be arranged according to class and student can chose his class (application feature) and download application with that specific feature(class syllabus). There will be also feature of choosing a subject which is general to all like Social sciences. Syllabus of a particular class will be university specific but basic subjects like Maths,Science will have nearly same syllabus in different universities. Features: 1. Teaching with animations will have greater impact on students mind as they will understand the concepts better and fast. 2. Lessons in database can be updated from internet. 3. Quick revision notes and formula sheets with their tricks to remember. 4. Teachers can upload their notes on the Catroid application website which can be accessed by students at their home.
Advantages: 1. Teaching with animations will become more interesting 2. If student misses a lecture in school then also he can learn that lesson by this application. 3. This technology will save time of students as quick revision topics will be provided by this application
This Idea is also good and require large database development.If this Idea is implemented then life of school students and college students will become more sophisticated.
I am very passionate and positive about this project and will love to work at any time. I want to make kids aware of this advanced technology(Gesture Recognition Technology and Augmented Reality) so that they will also take interest in developing the technology in feature. This Catroid platform will help me to do that.