Elements
Jump to navigation
Jump to search
About
The Elements project is all about free and easy 2D physics for python -- with main attention on:
- An easy-to-use, fast 2D physics API
- for the (faster) box2d physics engine (work in progress)
- and previously also for the Chipmunk 2d physics engine (with 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
- Browse Source | Assembla Space | Elements.xo (old, 195 kb) | box2d xo demo | Documentation
- IRC: #elements on irc.freenode.net
git clone git://git.assembla.com/elements.git
More Informations
- Source-Code is GPL 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 will come these days. In the meantime the Chipmunk engine is almost fully supported by the previous version of Elements.
To Do
- For the list of open tasks, 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
- Chris Hager (Coordination, API)
- Joshua Minor (API, Examples)
- Jaume Nualart (Support, testing)
- iXo (Iain Davidson) (Support)
- Ken (SWIG interface, API)
The team is open for anyone to join :)
Screenshots
(from Elements/Screenshots)
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)