Summer of Code’s story

Summer of Code 2010For those who don’t know yet, here is summarized what is a Google Summer of Code. Google propose, each year since 2005, to student from all over the world to work during their vacation on Free Software. This program know a huge success, both on the student and software side.

As you probably understood, I will soon realize a Summer of Code. Why ? Because in addition to what a gsoc bring to the student (huge experience, contact, huge entry on the resume, cash, …)  I wanted to make one’s contribution to the free sofware world. It’s also for me a sort of ordeal by fire. If I can do this project, I will know I can do a lot of things in computer science. It’s a huge project for me, and nothing prove that I’ll be able to complete it. Anyway, I’m going to do it :p

La mascotte de Gimp

The projet I proposed is to code a new tool for the 2D drawing software The Gimp.

Better than rewrite what will be my tool, I will copy here an extract from my gsoc proposal:

Green Coordinates is a cage-based deformation method that allow, unlike the other method, shape-preserving mapping and usage of partial cage. The research paper was published in Siggraph 2008

Unlike the other classical method (mean value coordinates, harmonic coordinates, ..), the Green Coordinates allow high quality deformation by preserving the shape. That mean that you don’t have side effect like shear. Example can be found in the paper. However, a restriction, the figure 14 show a deformation of the outside of the cage, that requires a cutting of the outside. Since this cutting will result in difficult usage, difficult implementation and anyway, not so good result, I wont do that part. However, I can extend smoothly the deformation trough only one edge of the cage, what will cover in my sens, most of the needs.

Two examples of what my tool can do, that the Gimp cannot do easily right now:

  • Narrow morphing : you have an image with a character. You put a cage around his arm and fold it smoothly, with keeping the detail of the picture.
  • Partial growing : same image as before. You want to grow some part of his body. You cut-out the body or the part needed, you put a cage around and grow it as you like.

Un exemple de déformation par cage

The basic behavior of this tool would be:

  • you “put” a closed polygon on the image (not limited to 4 handles)
  • you deform the cage, the image is deformed accordingly
  • user can choice if the pixels can go outside of the cage or not. In the normal behavior of the Green Coordinates, the pixels can overflow the cage due to the shape preservation.

I also have a video of a such a cage deform tool. But keep in mind that my tool will use a different technique that those used on this video, so it will be slightly different.

I end this article with the document that I used as a support for the technical meeting with The Gimp’s dev. It describe a bit more what i’ve explained here, especially on the algorithm part.

You probably saw that my english is not perfect. If anyone want to correct this, let me know, I’ll be very happy =)

5 Responses to “Summer of Code’s story”

  • Gruni:

    Bonjour,

    Je tenais à vous féliciter pour ce blog internet mêlant à la fois simplicité et richesse d’informations.
    J’ai 63 ans et je suis amateur d’informatique depuis ma plus petite enfance. Cependant, j’aurais une question à laquelle vous pourrez je l’espère me répondre.
    Votre projet de logiciel libre ne reflète t-il pas du paradoxe de la choucroute?

    • michael:

      Merci rémi xD

      Je reviendrais plus tard sur la relativité de la choucroute. (ou pas :p)

  • tcharlss:

    Bon courage pour venir à bout de l’intégration de cet outil dans gimp. Sans doute mon projet préféré parmis ceux proposés dans cette édition du gsoc.

    (… le paradoxe de la choucroute ?? )

  • Amusing! I’m bookmarking a person internet site pertaining to potential use.