Page MenuHomePhabricator

Google Summer of Code 2012 Project Ideas
Updated 3,381 Days AgoPublic

The Enlightenment Project is dedicated to providing advanced graphical libraries, tools, and environments. Currently, the project is made up of three different components: Enlightenment DR16, Enlightenment DR17, and the Enlightenment Foundation Libraries. While we are best known for the Enlightenment Window Manager itself there is a long history of providing advanced libraries and tools to support the window manager and other applications, such as Imlib, Imlib2, and FNLib which extend far beyond the window manager itself in scope.

While no organizations have yet been formally accepted by Google to participate in the Summer of Code 2012, we plan on applying and are very hopeful that we will be accepted. Below are some project ideas for the Google Summer of Code 2012.

If you are interested in a project below and have questions or comments, please feel free to join us in #e on FreeNode. You can also send email to our Development mailing list:

It was our intention to provide some sample applications so that students new to the GSoC could have an idea of what a well put together application might look like. However, our friends at Wesnoth have beat us to the punch. So, with their permission, here is a link to some of the applications submitted to their project for GSoC 2008. Note that such elaborate applications are not required. But there are certainly elements to many of them that are quite beneficial. For example, a list of deliverables, a timeline, mockup images if applicable, etc. All these types of things might go into a well thought out application.

Please Note: Student applicants are not limited to the ideas on this page. If you think you have a suitable idea, by all means, please propose it.


  • Edje Benchmark
    • Write an Expedite like tools but using Edje

      Mentor(s): Cedric BAIL, Gustavo Sverzut Barbieri

      We do already have a benchmark application for Evas, our scene graph library, it's named Explicit. This give us the possibility to benchmark the rendering path quite extensively, but we don't use Evas directly in our apps. Most of the time, we use our theme engine Edje. Even if it use Evas, it does add some computation load by calculating animation, object size, position and many things like that. We sadly don't have a benchmark to help us determine what it cost to use Edje. It would help us improve Edje if we did have a way to just mesure the cost added by Edje exclusivly, in situation that look like what an application would be doing. This tool could then be integrated in our test infrastructure and help us track speed and memory regression much more sooner. It would also help us have the beginning of a coverage test for Edje. As Edje is critical to our libraries stack, this project is really likely to help us a lot.

      Skills Required:
    • Strong C background.
    • Good understanding of Evas/Edje internal.


  • Exchange Library
    • Create a library based on guidelines at Exchange. This would be a fully async library which can be used to manage user data/themes/backgrounds/applications/profiles/etc. In fact anything that use our file and serialization library Eet.

      Mentor(s): Mike Blumenkrantz, Cedric Bail

      This project aims to create a library which provides web services that allow applications to store/fetch e-related data. See Exchange page for details.

      Difficulty: Medium-Hard

      Skills Required:
    • Strong C background.
    • Strong understanding of async/callback mechanisms.
    • Strong understanding of networking abstraction and http methods/protocols.
    • Basic understanding of RPC clients/servers.

      Useful skills (not required):
    • Knowledge of Azy.
    • Knowledge of Eet.
    • JSON.
    • XML.

Enlightenment Foundation Library

  • Game helper library
    • Write an EFL library on top of Ecore/Evas that enable the writing of a UI with Evas on top of an existing 3D Engine. This should provide a portable API like Ecore_Evas for any windowing system and also it should be easy to plug any 3D engine inside it. For this GSoC choosing one 3D engine, like Ogre 3D, would be enough, but keeping this goal in mind would be a good idea.

      Mentor(s): Cedric BAIL This project aim is to enable the writing of nice 3D game with UI using the EFL. This library could replace SDL direct usage as the EFL does provide a full toolkit.

      Skills Required:
    • C background.

      Useful skills (not required):
    • Knowledje of 3D engine
    • Knowledje of SDL


  • HTML5 engine
    • Write an HTML5 engine to Evas and or Ecore_Evas that will let us draw things in browsers.

      Mentor(s): Cedric Bail This project aim is to enable applications run inside your browser. This is honestly a cool idea. Similar to . The main possible usage of this project will be to do provide a solution for people that need the same user interface for their embedded interface and remote access. To do it, the first step would be to use only the software buffer backend. It would generate one image object per area that need to be updated, that would then compressed and stored on the disk. The coordinate to update and the file name will be send to the JavaScript client, that will download the file. Once the file is downloaded, Ecore_Evas will be able to destroy the file. This will require also to write a small web server that will use Ecore to serve page. That would be the first step. Once that done and work, and if time permit it, a proper HTML5 backend could be added to Evas. That would mean, sending JSON object out of the engine instead of only image buffer and forwarding this command to the JavaScript client. It's clearly more work to do and require a very good skill to handle this last point.

      Skills Required:
    • C background.
    • Strong HTML5 background.
  • Enesim engine
    • Write an Enesim engine.

      Mentor(s): Cedric Bail, Vincent Torri This project aim is to provide an alternative to our software engine. Maintaining our own code add us a lot of complexity and burden. Enesim is a great library written on top of Eina, so already following EFL dependencies. It would be good to try it and benchmark it. As a show case of Enesim capability, a SVG object, different from a SVG loader in that it give the possibility to manipulate the DOM directly from your code, could be added once the engine is done.

      Skills Required:
    • C background.
  • Evas text grid object
    • Implement a text grid object

      Mentor(s): Vincent Torri, Cedric Bail

      This object is needed for a terminal application to not have the overhead of one text object per grid element of the terminal. But it can be also used for an IRC chat client, or a text editor. See some comments about that object [Evas here].

      Skills Required:
    • Strong C background.
    • Good understanding of Evas internal.


  • Write an GUI for Eyesight.

    Mentor(s): Vincent Torri Eyesight is a multidocument rendering library. It lacks a nice graphic frontend (the current one is just too basic). The student will have to write it so that all the current backends are fully supported. If time permits, the student can also add other backends (DVI, RTF, etc...), and speed up the pdf one by using multithreaded pdf rendering with mupdf library.

    Skills Required:
  • C background.
  • Edje and Elementary knowledge.

Imported from
1 cedric 2012-03-06 07:05:48
2 zmike 2012-03-06 09:13:56
3 cedric 2012-03-06 09:26:10
4 cedric 2012-03-06 09:35:41
5 vtorri 2012-03-09 13:03:14
6 vtorri 2012-03-09 13:07:09
7 drakevr 2012-03-09 13:16:07 minor typo
8 cedric 2012-03-09 14:19:26
9 cedric 2012-03-09 14:23:39
10 cedric 2012-03-09 14:25:20
11 cedric 2012-03-09 14:34:21
12 cedric 2012-03-09 14:35:36
13 vtorri 2012-03-10 08:05:28
14 vtorri 2012-03-10 08:05:51
15 ravenlock 2012-03-12 10:11:09

Last Author
Last Edited
Aug 26 2013, 4:31 PM