[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[pygame] GSOC: Extending Camera support for PyGame to Mac OSX Updates!



Hoi,

I recently posted my proposal for GSOC to socghop. There where some comments about the content, so I have updated my proposal, and hereby posted it to this mailing list so guys can comment further on my proposal...


Rene Dudfield maid the following remark about my original proposal:

"
Also a section on user testing would be good.  Where you ask others to download pygame to run your tests - to make sure it works ok with their computer/camera.

Finally a change in your proposal to seek feedback from the community on what changes you will do after the osx stuff is finished would be good.  Since I have a feeling that you should have some time left over at the end.
"
I am planning to make a branch of my code available on github.com so everybody who like can follow my daily work on the project.
Later on in the project I intend to make some blog post about my work and post them on reddit.com/r/python, reddit.com/r/mac,
pygame ML and other communities so people can test my code. I have 2 mac at home and know some other people with macs who
would be willing to test out my work.

Pattern recognition is a complicated subject, But I think that it would be a good thing if there where some basic pattern recognition
included like a steering wheel or a face. This would allow any gygame programmer to use this feartues in there game without any
additional work. A possible interesting project to experiment with could be http://code.google.com/p/ehci/wiki/pyehci

If you have any suggestions, remarks or questions please comment.

original proposal: http://socghop.appspot.com/student_proposal/show/google/gsoc2009/abe/t123872941171
updated proposal: http://socghop.appspot.com/document/show/user/abe/gsoc_updates


=====================================================================

Updated proposal:

Instructions

Start by getting in contact with the mentor(s) familiar with your proposed project.  They will help you polish your proposal and introduce you to the developer team you'd be working with over the Summer.



Summary:

Nirav Patel has recently implemented camera support into pygame as a way to interact with a game. However, this camera module is limited to the Linux platform. The goal of my project is to extend this camera module to the Mac OSX platform, and thus extending the portability of games written in pygame that use a webcam as mean to interact with the player.

I will be using the OSX QiuckTime multimedia framework to work with the camera. The camera module shall be implemented in C as a python extension. It is my intension to fully port the capabilities of the existing camera module. If there are any existing capabilities in the QT Isight framework, that could be useful to have in the pygame module, I will make these available by writhing a wrapper around them.

I will use pyobjc to experiment during the project. For the final code I will use objc and C wrappers,since pyobjc is no longer used in
pygane.

When I am finished implementing the camera module for OSX, I will work on optimizing the existing code, like optimizing the sbggr8_to_rgb function. Ather this I will write documentation and a simple game to demonstrate the capabilities.

I am planning to make a branch of my code available on github.com so everybody who like can follow my daily work on the project.
Later on in the project I intend to make some blog post about my work and post them on reddit.com/r/python, reddit.com/r/mac,
pygame ML and other communities so people can test my code. I have 2 mac at home and know some other people with macs who
would be willing to test out my work.

Pattern recognition is a complicated subject, But I think that it would be a good thing if there where some basic pattern recognition
included like a steering wheel or a face. This would allow any gygame programmer to use this feartues in there game without any
additional work. A possible interesting project to experiment with could be http://code.google.com/p/ehci/wiki/pyehci

Schedule:

I intent to work about 42 hours a week on the project

April:
Third week: study the camera implementation in linux version and see which methods must me re-implemented for OSX.
Fourth week: Read about things like the SequenceGrabber from the QT api.

May
First week: make simple python extension in C to get familiar with the concept. Read more doc about python extensions.
Second week: Implement simple app that grabs images from the camera with the QT SequenceGrabber API in C (obj-C). this is to get a good feeling with the QT api.
Third week: start coding on the project, implement the ‘list_cameral’ function and open_device, …
Fourth week: write functions that deal with the controllers…

June
First-third week: implement rest of the functions
Fourth week: write wrapper around some additional functionality that the QT framework provides that isn’t in the existing module. I will probably use pyobjc for this.


July
First week by now, most camera functions must be implemented. Start debugging and testing
Second week: write a better sbggr8_to_rgb function and other optimization that aren’t yet implemented in the existing camera module.
Thrid week: more optimization and testing/debugging.
Fourth week: write simple game to demonstrate functionality, and get people exited about the result.

August:
First week: write documentation and tut explaining how I made the game. Tie up lose connections

About Me:

I am a 20 year old student from belgium, and I am currently studying applied computer science at the "Hogeschool Gent". I first became interested in programming at the age of 16 while programming in Turbo Pascal. I spend a lot of my free time coding and reading about related topics. My interest in the field of computer science range from web security, visual user interaction, low level programming, … I enjoy programming in both Python and C because both language are elegant and don’t get into your way. Other interests of mine include, but are not limited to films, music, poker and reading.

I speak fluent Dutch and English

I have GOOD knowledge/experience with the following programming languages:

   * Python
   * C
   * C++
   * Object-C
   * Java
   * SQL
   * (X)HTML/CSS

and MEDIUM knowledge/experience with the following programming languages:

   * _javascript_
   * Bash
   * sed, awk

I have the following (relevant) skills:

   * Algorithms: sorting, searching, image filters, ...
   * Lineare algebra
   * Data structures: lists, maps, sets, ...
   * Web security: sql-injection, code/file injection, XSS, ...

Here is a list of things I have coded, including some small pygames:

   * Statistical visualization of combination of enzymes in DNA: Java, GUI, SWING, MVC, OOP, XML
   * Monopoly Game: Java, GUI, SWING, MVC, OOP
   * Managing application: Java, GUI, SWING, SQL, MVC, OOP
   * Image filters: C/C++, OOP, Templates
   * Sniffer: C, pcap
   * Simple chat-client and server: C, pthreads
   * Poker odd calculator with GUI (work in progress): C, Object-C, Reverse Engineering
   * Small IRC bot: Python
   * Sniffer: Python (reimplementation of the C one)
   * Blog engine: Python, Django, Web
   * Simple Blind SQL-injector (ugly script :P): Python, SQL, Web Security
   * a lot of small python scripts to do think with text, web, ...
   * Tetris: just Tetris (pygame)
   * Square vs Circle: You control a circle with your mouse, and must try to place this circle in
     a square without hitting one of the bouncing circles. If you succeed, you must try again, but
     this time with an extra circle. (pygame)
   * Divide and conquer: There is an amount of an always increasing number of bouncing balls. You
     Must try to drive the balls into a corner by drawing lines until you have filled 70% of the
     screen. (pygame)
   * Balls of steel: similar to the above, with the difference that you must draw balls
     by holding down the right mouse key, the longer you press the bigger the ball.(pygame)