[GSOC] Spicing up Cheese

Hi, my name is Yuvi and I'm a student from Chennai, India. I'm
applying for this year's GSoC to work on GNOME - specifically on
Cheese. I've been hanging out on IRC talking with @fargiolas and
@kaserf - and though my proposal isn't ready yet I'm putting up my
ideas in the mailing list informally.

Spicing up Cheese

Goals of the project

The goal of the project is to make Cheese extremely slick and a lot
more fun - and in the process (quoting jwz) increases the chances of
me (or in general users of cheese) getting laid[1]. This involves:

1. Live Preview of Available Effects.
2. Background Changing/Manipulation
3. One Click Upload to Facebook/Myspace/etc.

1. Live Preview of Effects
See how each effect looks when applied to your face. Much more fun
than looking at static yellow smileys.

Implementation: Will be following the obvious method of downscaling
the video, then splitting the pipeline into several parallel parts
that each apply a different effect and output to a different area on
the screen. Combinations of Effects can be shown by an extra element
that appears only when more than one element is selected.

2. Background Changing/Manipulation
90% of all photo manipulation requests I get is for background changes
(the rest is for removing zits). Completely ignoring the small sample
space and extrapolating, I can boldly predict that the usage/fun
factor of Cheese will increase by quite a bit if we had the ability to
dynamically change the background in a picture/video (in a similar way
to how Apple does it).

Implementation: The user will be instructed on the backgrounds easiest
to change (no moving objects, colors not in your clothing, etc) and
then asked to step away from the webcam while the application takes
sample pictures of the background. Then we 'diff' the source image
(from the camera) with the background image to remove the background
and substitute the user selected background.

3. One Click Uploads
Most photographs/videos taken by cheese will end up on some form of
Social Networking sites (5 of the 6 use cases at the Cheese Wiki point
to Social Networking uses [2]). We should feature improved, 'one
click' uploading to those sites - while making sure we don't step on
F-Spot's shoes by trying to become a full fledged photo management
app. Having a workflow where the user can go from nothing to
photo-on-facebook in 2 clicks minimum (take snapshot + publish to
facebook) is a wonderful thing, I'd say.

Implementation: PLUGINS! Preferably of the no-compilation required variety.

Technical Details
As suggested on the GSoC ideas page, I'll move the 'glue' code to
Python (since I have more experience with python than Vala - though
Vala would be pretty easy to pick up too since I've 2 years of C#
experience). I'll also converts parts of the UI to libclutter as and
when required (the camera 'viewfinder' area probably first, menus
perhaps quite a bit later on, etc). Anything that will cause
unacceptable performance on the user's computer will be disabled at
runtime and a message displayed as to why they are grayed out.

This is an informal post to the mailing list - and that is all. I'm
still workin on my application. Feedback? Flames?

[1]: http://www.jwz.org/doc/groupware.html
[2]: http://live.gnome.org/Cheese/ThreeZero
Yuvi Panda T

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