Elements: Difference between revisions

From OLPC
Jump to navigation Jump to search
(todo: artwork)
(Undo revision 235268 by 123.53.123.179 (Talk))
 
(11 intermediate revisions by 7 users not shown)
Line 3: Line 3:


== About ==
== About ==
The ''Elements'' project is all about '''free and easy 2D physics for python''' -- with main attention on:
The ''Elements'' project is all about '''free and easy 2D physics for python''' and the XO laptop. It is used as the backend for the XO physics playground activity [[Physics]].
# An '''easy-to-use''', fast 2D physics API
#* for the (faster) [http://www.box2d.org/ box2d] physics engine (work in progress)
#* and [[Elements/Chipmunk|previously]] also for the [http://wiki.slembcke.net/main/published/Chipmunk Chipmunk] 2d physics engine (with [http://code.google.com/p/pymunk/ pymunk] ctypes bindings)
#* See: [[Physic Engines/Speed Tests]]
# Examples and documentation on how to use the API
# Providing the examples as bundles, as they are already interesting and fun
# Speed optimization (also with an eye on the XO laptop :)
# Development of ideas for education and playful-learning




: '''Watch [http://www.youtube.com/watch?v=NZNTgglPbUA this] and [http://www.youtube.com/watch?v=QsTqspnvAaI this] video to see where we are heading :)''' Our idea is especially to bring this tool to the XO laptop, together with a teaching and learning tool which can be used to share (mesh) different scenes and exercises
: '''Watch [http://www.youtube.com/watch?v=NZNTgglPbUA this] and [http://www.youtube.com/watch?v=QsTqspnvAaI that] video to see where we are heading



: IRC: '''#elements''' on irc.freenode.net
: IRC: '''#elements''' on irc.freenode.net


:[http://trac2.assembla.com/elements/browser Browse Source] | [http://www.assembla.com/spaces/elements Assembla Space] | [http://www.linuxuser.at/elements/elements.xo Elements.xo] (old, 195 kb) | [http://lux.vu/olpc/physics-sdl.xo box2d xo demo] | [http://linuxuser.at/elements/doc/index.html Documentation]

svn co http://svn2.assembla.com/svn/elements


== More Information ==
* Source-Code is GPLv3 licensed - so do with it what you want! Even eat it :)
* A lively and open development and support team is having fun improving and helping out :)
* The Box2D compatible version of ''Elements'' is being worked on, you can find the latest status in the git repository. We are still implementing Box2D's features and writing the documentation. In the meantime the Chipmunk engine is almost fully supported by the [[Elements/Chipmunk|previous version]] of Elements.


== To Do ==
* Artwork (we need a nice logo :)
* Joints
* Please have a look at our tickets page: http://www.assembla.com/spaces/elements/tickets


== Feature Request ==
What features would you like to have implemented? :)
* ''add here''


== Team ==
* [[User:Crazy-chris|Chris Hager]] (Coordination, API)
* Joshua Minor (API, Examples)
* [[User:Jaume|Jaume Nualart]] (Support, testing)
* [[User:Ixo|iXo (Iain Davidson) ]] (Support)
* Ken (SWIG interface, API)
* Victor Blomqvist (Author of pymunk)
''The team is open for anyone to join :)''


: <big>Homepage: http://elements.linuxuser.at</big>


== Screenshots ==
== Screenshots ==
Line 93: Line 55:
clock.tick(50)
clock.tick(50)


[[category:software]]
[[category:software ideas]]
[[category:physics]]
[[category:physics]]
[[category:science]]
[[category:science]]

Latest revision as of 23:57, 18 May 2010

Elements logo1.png

About

The Elements project is all about free and easy 2D physics for python and the XO laptop. It is used as the backend for the XO physics playground activity Physics.


Watch this and that video to see where we are heading
IRC: #elements on irc.freenode.net


Homepage: http://elements.linuxuser.at

Screenshots

(from Elements/Screenshots)

Screenshot1.png Screenshot2.png

Screenshot3.png Screenshot4.png


Pygame Example

The typical usage in pygame can look like this:

      import pygame
      from pygame.locals import *
      from pygame.color import *   

      from elements import *
       
      pygame.init()
      screen = pygame.display.set_mode((800, 800))
      clock = pygame.time.Clock()

      world = elements()
      world.add_wall((100, 200), (300, 200))
         
      # Main Game Loop:
      while running:
         # Event Handling
         # Maybe calling world.add_ball(event.pos) or world.add_square(event.pos)
         # ...

         screen.fill((255,255,255))

         # Update & Draw World
         world.update()
         world.draw(screen)

         # Flip Display
         pygame.display.flip()
          
         # Try to stay at 50 FPS
         clock.tick(50)