Summer of Code/2007: Difference between revisions

From OLPC
Jump to navigation Jump to search
(achive)
Line 63: Line 63:
Nutshell: We're looking for several exceptional students to spend their summer in Boston, working within the user stack team, building the architecture and application suite which will be the children's primary mode of interaction with the laptop. This suite currently consists of the E-book reader, a distributed wiki notebook, and e-mail and IM clients.
Nutshell: We're looking for several exceptional students to spend their summer in Boston, working within the user stack team, building the architecture and application suite which will be the children's primary mode of interaction with the laptop. This suite currently consists of the E-book reader, a distributed wiki notebook, and e-mail and IM clients.


=== ebook reader ===
Work with a crossmark/html book reader, or produce tools for converting to/from this format, to give children annotatable access to the worlds digitized books

=== wiki-notebook ===
Help improve features on a wikireader -- a notebook for reading, annotating, and editing collaborative texts. Features incude online/offline synchronization, distributed versioning and conflict resolution for text, and providing a variety of views and zoom levels for a given document.

=== IM client ===
nutshell: a fast, simple IM client that integrates neatly into may applications. Extensions: connect with an automatic im-translation setup; or with a network of human interpreters.

=== email client ===
nutshell: develop a lightweight email client for children.


== Content creation and review ==
== Content creation and review ==

Revision as of 06:41, 23 March 2007

  This page is monitored by the OLPC team.

Archives: 2006

This is a page for 2007 Summer of Code Ideas.

See last year's internship announcement for more context. If you have additional ideas for projects, or comments on the ones below, please leave a note on this talk page.


Mentoring

If you are interested in mentoring participants, please read the mentor FAQ. Note that both the ability to spend significant time mentoring, and the quality of the students are key to a good return on investment by the mentor, and the learning by the students. Please do not sign up to be a mentor unless you are certain you can meet the obligations of being a good mentor. If you are interested in mentoring, please send mail to Sj and leave a note below with a link to your userpage, where you should describe your background.

Interested mentors

Game development

  • Kent Quirk
  • Don Hopkins?

Hardware testing, input options

  • Mary Lou Jepsen

Library design and assessment

Tools for local content creation

Activities

  • Erik Blankinship?
  • Jean Piché?
  • Mauro Torres?
  • John Resig?
  • John Harrison?
  • Mark Tyler?
  • Barry Vercoe?

User stack architecture

Mesh application design

Distributed collaborative projects

Projects

Input and device options

Vision input

Vision input similar to itoy concept -- looking at an image, and extracting some shape from this, low res, to use as input to a game.

Mentoring:Kent Quirk

New power and hardware drivers

Low-level development and hardware integration for power applications...

Mentoring:Mary Lou

Power aware applets

Nutshell: we need some applets that display information better to become better power aware.


User Stack architecture

Many of these projects still need help

Nutshell: We're looking for several exceptional students to spend their summer in Boston, working within the user stack team, building the architecture and application suite which will be the children's primary mode of interaction with the laptop. This suite currently consists of the E-book reader, a distributed wiki notebook, and e-mail and IM clients.

ebook reader

Work with a crossmark/html book reader, or produce tools for converting to/from this format, to give children annotatable access to the worlds digitized books

wiki-notebook

Help improve features on a wikireader -- a notebook for reading, annotating, and editing collaborative texts. Features incude online/offline synchronization, distributed versioning and conflict resolution for text, and providing a variety of views and zoom levels for a given document.

IM client

nutshell: a fast, simple IM client that integrates neatly into may applications. Extensions: connect with an automatic im-translation setup; or with a network of human interpreters.

email client

nutshell: develop a lightweight email client for children.

Content creation and review

Content stamping

Nutshell: develop a simple system for building review groups and content reviews of all types of content, and clients for viewing / downloading materials via the Open Library Exchange using these reviews to inform the view.

Distributed translation

Nutshell: design an online distributed translation system that matches users with language skills to parts of large localization/interpretation/translation projects.

One dictionary per child

Nutshell: Multilingual Wiktionary & Wikidata customization for the laptops/servers, with a dictionary viewer. The main task is to produce a viewer that runs efficiently on the laptops, reads standard dictionary file formats, and can display definitions in multiple languages without redundant copies of definitions.

Distributed map environment

Nutshell: define a distributed map environment for the OLPC network of XOs, school servers, and regional/global servers.

No-language tutorials

Nutshell: develop libraries for creating no-language videos, screencaps, animations, and slideshows depicting people interacting with their environment -- for demonstrations or sharing ideas across language barriers.

Game development

SDL & PyGame port

Nutshell: get PyGame's api to work on the laptops, either by porting it to pygtk or by getting SDL to work smoothly on the laptop.

Details: work to implement the details (that will soon be) laid out in PyGame Implementation and/or SDL Implementation.

Easy Game Toolkit

Nutshell: build a collection of Python libraries that make it as easy as possible to build certain classes of games in Python.

Details: PyGame is a good basic API for games, but its flexibility requires some detailed knowledge of game design and game architecture. In order to help novice programmers to build interesting game-like software, it would be nice to make a collection of libraries on top of PyGame that would do the following sorts of things:

  • Set up the interface and make a drawing surface available
  • Create simple UI structures -- collections of buttons, menus, simple textual displays
  • Create animated sprites and allow them to have certain behavior -- velocity, collisions, interactions
  • Managing a standard asset structure of the sorts of assets that can easily be created on the OLPC -- sounds, music, graphics.
  • Basic networking system for using the OLPC mesh network
  • Implement basic platformer game engine -- gravity, sidescrolling
  • Implement basic 2D arcade game engine -- sprites, missiles, particle systems, sounds, input
  • Implement basic 2D graphic adventure toolkit -- a world of rooms, database and data entry tools, simple command structure.
  • Implement educational game toolkit -- simple text and image manipulation, sound effects, standard quiz database system, data entry tools, tracking and reporting of results

The result should be a collection of libraries that make the creation of a game like Pong a matter of a few dozen lines of code, and creating a basic platformer should be more of an art problem than a programming problem.

Accessibility

Vision and hearing tests

Nutshell: It would be good to include tests on bootup that can check the user's vision and hearing.

This would help identify if a child needs to be pointed to a doctor to better use the Laptop. This should be easy for a teacher or older child to administer.

original proposal by Felipecarvalho


Virtual Magnifying Glass

Nutshell: Improve the magnifier so it can take advantage of X Composite Extension and be more adequate for the Laptop and much more efficient. See Virtual Magnifying Glass, &c.

Add Dynamic Mode to the software by using the X Composite Extension. This allows the user to see the current desktop contents under the magnifier window. The user can also interact with the window under the magnifier (such as mouse, scroll wheel, keyboard, etc...).

Proposer: --Felipecarvalho 07:12, 2 May 2006 (EDT)

2006 project ideas

see the archives for more project ideas from last year