Play

From OLPC
Revision as of 13:43, 1 April 2008 by Erik006 (talk | contribs)
Jump to: navigation, search

Play - A summer of code project

This wiki page is about a summer of code project proposed by Erik Beerepoot. The mailing list entry is here A pdf version of this proposal is also available at my website

Introduction

This summer of code project proposes to extend Elements, a python wrapper around a 2D physics engine called box2d. After extending elements & writing extensive documentation for use with the XO laptop, I will use it to create a physics educational tool called "Play!" - for Physical science Learning And Discovery. "Play!" will provide an intuitive interface for kids to learn elementary physics concepts like Gravity, Projectile motion, Angular motion, and more.

Detailed Description

This project consists of three main parts:

  1. Extend the elements API
  2. Document the element API
  3. Write "Play!"


1. Extend the elements API

The first thing that will be done in this summer of code project will be the extension of the Elements API to larger subset of the desired functionality.
Currently, elements supports only part of what is possible with the Box2D engine, and I propose to change this.

First off, I will implement support for concave polygons. As you can see on the picture on the right, a convex polygon is a polygon that has no interior angles greater than 180 degrees.

Convex-concave.png

This means there can be no "indentation" - not having this option makes many shapes impossible. I will add this functionality to Elements.

Secondly, I will add support for joints to the elements API. I will implement Revolute, prismatic, distance, pulley, gear and mouse joints. This will make it possible to create simple transmission systems, hinging systems, pulleys, rotation, and much more. Thus, this is a crucial feature for a Elements to support.


2. Document the elements API