[pygame] summer of code: OSC networking proposal

2010-04-05 Thread Gabe Silk
Hello everyone,

What follows is my preliminary gsoc proposal for the OSC networking project.
I'm looking for lots of comments / feedback. Thanks everyone!

---
*
OSC Networking for Pygame*

*Background*
"OSC is often used as an alternative to the 1983 MIDI standard,
where higher performance, higher resolution and a richer musical
parameter space is desired" (Wikipedia)

In a nutshell, Open Sound Control (OSC) is a content format designed to
accomodate the transmission of musical performance data between
computers, instruments, and other multimedia devices. OSC has
been applied in many areas, including software synths, robotics,
and distributed sound applications. Despite its popularity,
there is currently no implementation in Pygame. I would like to remedy that.


*Proposal*
To create a simple OSC implementation (over UDP) for Pygame using the Python
socket API.
The goal is to provide an interface within Pygame to create and use OSC
clients/servers, OSC messages and bundles, as well as a multiple-unicast
OSC-client with
subscription and message-filtering support.

Inspiration and direction will be taken from PyOSC, the "Simple OSC"
implementation
by Holth and McChesney, the documentation available at
http://opensoundcontrol.org/,
and most importantly, from my mentor and the Pygame community as a whole.

Example applications will be created as development proceeds, both as a form
of
documentation, and to facilitate testing. Concise tutorials will be written
for
each example application, and "user-tested" on one or more of my colleagues
who are relatively new to Python development, and anyone else in the
community
who would like to participate, comment, and provide feedback. This will be a
good
method of getting useful advice and feedback from the community.

*About Me*
My name is Gabriel Silk, and I'm a fifth-year undergraduate computer science
student
at the University of British Columbia in Vancouver, B.C. I have experience
in networking,
audio, game dev, and I'm a huge fan of open source software. My favorite
hobby is making
electronic music. So, I feel that Pygame's OSC project is a natural fit for
me.

I have experience in c, Python, network programming (I've written a proxy
server, an ftp
client, and simple TCP-like protocol on top of UDP for coursework). Recently
I wrote an
on-line multiplayer game called Squabble as a personal side-project, with a
server written
in Java, and a client written in Flash. Last term I wrote a world-modeller
in c++ using Ogre.
This term, I'm working on a multi-touch, collaborative, UML diagram creation
tool for the SMART
Table as a course project. I'm also working on a web-based CMS for the BC
Cancer Agency. All of
these projects will be finished by the end of April, before gsoc begins.
Also, I've worked
for Electronic Arts as well and Merck Frosst. Here's my blog:
http://gabrielsilk.wordpress.com

*Deliverables*
a) Framework with OSC Server, Client, Message, Bundle and multiple-unicast
interfaces
b) API documentation, covering every class and public method
d) At least three example applications, with a large coverage in terms of
functionality demonstrated

*Timeline*
Week 1: Finalize design and intended API
Week 2-3: Implement OSC Server
Weeks 4-5: Implement OSC Client and Message classes, work on first example
application
Week 6-7: Implement Bundles, complete first example application
Week 8: Finalize multicast API
Week 9-10: Implement multicast, complete second example application
Week 11: System and integration testing; complete third example application
Week 12: Finish up documentation for system and examples


Re: [pygame] GSoC project proposal: A new draw module

2010-04-05 Thread Kris Schnee

I tried to use OpenGL and found that drawing anything in 2D was very hard.
For instance, I couldn't simply build a 3D set of shapes and then draw onto
the screen in 2D, using existing Pygame functions; I had to muck around with
textures instead. And drawing text in OpenGL -- just 2D text on a 2D surface
-- is a nightmare. If people are looking for projects, how about an easy way
to switch to a "Pygame mode" of drawing while using OpenGL, so that we can
use existing UI and drawing libraries?


There is the Lamina module, that provides you a pygame surface within
an OpenGL display, that you can draw on using Pygame drawing libraries
and GUIs.

I have not used it for a year or so, but if you are using
PyOpenGL/OpenGL 2, it should work fine.

http://pitchersduel.wordpress.com/2007/07/13/lamina-v-02/

David Keeney

I am the author, so feel free to email me for assistance, if you
decide to use it.


Neat! Thank you.


Re: [pygame] GSoC project proposal: A new draw module

2010-04-05 Thread David
On Sat, Apr 3, 2010 at 4:25 PM, Kris Schnee  wrote:
> On 4/3/2010 12:58 PM, jug wrote:
>>
>> Marcus von Appen wrote:
>>>
>>> What would be interesting here is, what the Pen class would offer except
>>> from the drawing functions wrapped up in a class and som additional
>>> shapes.
>>>
>>> What about e.g. an aa-property to keep the argument amount low,
>>> transformation and rotation angles for the x- and y-axis (implicit
>>> transformation done upon drawing) or even vector support (e.g. for
>>> faster 2d, 2.5d, 3d operations on the shapes) using the math module?
>>>
>>> What do you think about working out some basic Pen (and utility)
>>> class(es) as an example (no need to implement any function or property,
>>> just a stub of the class, we can examine and design)?
>
> I tried to use OpenGL and found that drawing anything in 2D was very hard.
> For instance, I couldn't simply build a 3D set of shapes and then draw onto
> the screen in 2D, using existing Pygame functions; I had to muck around with
> textures instead. And drawing text in OpenGL -- just 2D text on a 2D surface
> -- is a nightmare. If people are looking for projects, how about an easy way
> to switch to a "Pygame mode" of drawing while using OpenGL, so that we can
> use existing UI and drawing libraries?
>


There is the Lamina module, that provides you a pygame surface within
an OpenGL display, that you can draw on using Pygame drawing libraries
and GUIs.

I have not used it for a year or so, but if you are using
PyOpenGL/OpenGL 2, it should work fine.

http://pitchersduel.wordpress.com/2007/07/13/lamina-v-02/

David Keeney

I am the author, so feel free to email me for assistance, if you
decide to use it.



-- 
dkee...@travelbyroad.net
Rdbhost -> SQL databases as a webservice [www.rdbhost.com]