Summer of Code 2008

ideas for student projects

These are a few ideas for student proposals, they can be modified, mixed, or ignored in favor of a completely original proposal.

<!> This page is a Work In Progress - if you are a student looking for ideas, join us in #PySoy and #GSoC on irc.freenode.net

Networking

These tasks deal with PySoy's network systems. You'll gain experience with  XMPP (aka Jabber), RTP media streaming, UDP-based game protocols, public key encryption, and P2P networking with these.

Team voice chat via  XMPP/Jingle and  Speex

  • audio input via  OpenAL capture device
  • using these standards, and thus, compatible with existing software ( GTalk,  Tapioca)
  • should utilize features such as noise removal from libspeex

P2P game content distribution managed via  XMPP-based tracker

  • tracker provides secure hashes of data segments and list of peers to obtain them from
  • should utilize STUN and implement NAT traversal via existing XMPP extensions
  • implemented via soy.transports API with progressive loading as content is downloaded/verified

Animation

If you're into quaternion math, ARB vertex shaders, or robotic movement algorithms, these might be the tasks for you:

Dual quaternion skeletal animation

  • the code for this  has been done and is readily available
  • needs integration with existing API and importers/exporters
  • must utilize  ARB vertex shaders with CPU-based fallback

Movement behavior

  • "Behavior" is our term for AI
  • Generic bipedal, quadrupedal, wheeled, tracked locomotion classes
  • Classes should "learn" how to move best with specific joint configuration

Other behavior

  • Path finding/planning
  • Attraction/repulsion tags for flocking, hunting, fleeing, etc
  • Potential for behavior learning (ie, virtual pets), genetic algorithms
  • Many other ideas possible

Controllers

For those who like to tinker with gadgets and 2d photo math:

  • Motion-detection with webcams
    • ala Sony's "eye toy", detect movement and moving shapes in camera input
    • allow programmable triggers via soy.controller class akin to a mouse
  • Versatile USB HID controller
    • support for joysticks, steering wheels, dance pads, etc
    • all the features of the HID standard should be available via soy.controller class
    • example involving racing game (using steering wheel), flight sim (with joystick), etc

Past Proposals

We've kept around most of the proposals from previous years. Hopefully they'll provide inspiration or confidence to future Summer of Code applicants: