Kamaelia 0.3.0 has been released!
Kamaelia is a networking/communications infrastructure for innovative multimedia systems. Kamaelia uses a component architecture designed to simplify creation and testing of new protocols and large scale media delivery systems. A subset of the system has been tested on series 60 phones.
General feedback is welcome either directly, mailing lists or via IRC (#kamaelia, freenode). People are also more than welcome to use the system and suggest improvements not directly related to our specific goals, because we recognise the system can be used in more areas, not just networked multimedia. A diversity of systems built improves the system (for all users of course!) as a whole.
What's New & Changed? =====================
*NOTE* Kamaelia 0.3.0 requires Axon-1.1.2 to run for some newer components (which has also just been released).
Full release notes and change log: * http://kamaelia.sourceforge.net/Kamaelia-0.3.0-ReleaseNotes.html
New Examples - 7 new examples including: * Simple reliable multicast based streamer using Ogg Vorbis. * Dirac Player * Dirac encode & playback. * Simple bouncing images game. Designed for very small children who are amused by things take beep and react when you press left/right mouse buttons. * Simple example showing how to use the ticker (First developed for showing subtitles). * Demonstration system showing how to use the new software chassis facility in the context of multiple chassis.
New Tools, Notable Additions
* Visual tool for building Kamaelia pipelines * Tk Support * Video encode, decode and playback. (dirac)
New Packages & Subsystems
These names should provide you with a flavour of the new subsystems that have been added:
* Kamaelia.Codec * Kamaelia.Chassis * Kamaelia.File * Kamaelia.UI.Tk * Kamaelia.Internet.Simulate
* Software chassis (software backplane will be coming in Kamaelia-NEXT) * Tk integration. (The pipeline builder is a nice example of a tool this enables) * Dirac encoded video decoders and encoders * Support for video playback. (dirac & YUV) * Variety of pygame based components, including * Tools for greater control over the pygame surface managed environment * Tools for building simple games. (controlling sprite behaviour for example) * Much richer tools for file reading and writing * Includes re-usable file readers. * More utilities for message filters and splitting of messages * Basic tools for simuluating error conditions and failure rates for delivery of messages (Sufficient for simulating an unstable underlying internet infrastructure).
What is Kamaelia? =================
The project aims to make it easy to build networked multimedia systems (eg audio, video, interactive systems). The result is systems which are naturally componentised. Also, the resulting systems are /naturally concurrent/ allowing quick and fast reuse in the same way as Unix pipelines do.
It is designed as a practical toolkit, such that you can build systems such as: * Ogg Vorbis streaming server/client systems (via vorbissimple) * Create Video players & streaming systems (for dirac). * With subtitles. * Simple network aware games (via pygame) * Quickly build TCP & Multicast based network servers and clients * Presentation tools * A networked audio mixer matrix (think multiple audio sources over network connections mixed and sent on to multiple locations with different mixes) * Look at graph topologies & customise the rules of display & particle types. .... Mix and match all of the above.
You can also do a lot of this *visually* using the new PipeBuilder application in Tools.
Essentially if the system you want to build involves audio or moving pictures, and you want to be able to make the system network aware, then this should be quick and easy to do using Kamaelia. (If it isn't, then a) it's a bug b) needs improving :-)
It runs on Linux, Window, Mac OS X with a subset running on Series 60 phones.
The basic underlying metaphor of a component us like an office worker with inboxes and outboxes, with deliveries occuring between desks, offices, and depts. The component can thus do work anyway it likes but only communicates with these inboxes and outboxes. Like office workers, components run in parallel, and to achieve this are generally implemented using python generators, but can also used threads.
The rationale behind the project is to provide a toolkit enabling the development of new protocols, including streaming, for large scale media delivery. The license essentially allows use in proprietary systems without change, but all changes to the system itself must be shared.
Oh, and due to things like the visual editor, the use of pygame in a lot of examples, the use of dirac & vorbis, it's quite a lot of fun too :-)
* Python 2.3 or higher recommended, though please do report any bugs with 2.2. * Axon (1.1.1 recommended) * vorbissimple (if you want to use the vorbis decode component/examples)
(Both Axon and vorbissimple are separate parts of the Kamaelia project, and available at the same download location - see below)
Kamaelia has been used successfully under both Linux, Windows and Mac OS X (panther). A subset of Kamaelia has been successfully tested on Series 60 Nokia mobiles when used with the Axon SERIES 60 branch.
Where can I get it? ===================
ViewCVS access is available here: http://cvs.sourceforge.net/viewcvs.py/kamaelia/
Tutorial for the core component/concurrency system: * http://kamaelia.sourceforge.net/MiniAxon/
Project Motivations: * http://kamaelia.sourceforge.net/Challenges/
Kamaelia is released under the Mozilla tri-license scheme (MPL1.1/GPL2.0/LGPL2.1). See http://kamaelia.sourceforge.net/Licensing.html