August'24: Kamaelia is in maintenance mode and will recieve periodic updates, about twice a year, primarily targeted around Python 3 and ecosystem compatibility. PRs are always welcome. Latest Release: 1.14.32 (2024/3/24)
Systems
Applications using Kamaelia
This section describes some systems that have been created using Kamaelia. Some of these are available for download, or as part of the main Kamaelia distribution. If you'd like to add a description of a system you've built (large or small), please let us know!
Providing Tools to Provide the BBC the OPTION to put the Archive online
This is a complex area in itself, so we discuss this in the Challenges section of the Kamaelia website. This is the core motivation for Kamaelia from BBC R&D's perspective. Kamaelia is however a general toolset, and can be used to prototype new mechanisms for delivery of content to new platforms in new ways. These prototypes can then evolve into useful tools and systems. As they do, they will be described on here. The main tool developed so far, as part of the above aim, is Kamaelia itself.
(NB when we say "the archive online", we mean as much as is reasonable, practical, and as much as the license fee payer, BBC, & industry deem appropriate within the context that much of the archive has many rights issues. Kamaelia aims to knock down the technical challenges)
"As Broadcast" Radio Monitoring System - BBC Radio & Music
Availability: Internal to BBC Radio & Music only
Similar in concept to a "PVR for radio". Kamaelia has been used by BBC Radio & Music to produce a record of transmission (for 8 BBC channels 24x7). This is a development box for internally monitoring what is actually broadcast vs what the EPG data says. This enables prototyping of new services (subject to all sorts of restrictions). Examples include podcasts of all of BBC radio, particular tastes or genres. That then allows people to decide if they want these things and decide how to move forward with the industry.
Kamaelia's role was to be used to build a proof of concept prototype. It did prove the concept, so they worked on a traditional style, production quality replacement. We're now working with them to work towards a second generation architecture.
"Kamaelia Present" - Presentation Tool
Availability: Tools directory of Kamaelia distribution
This presentation tool has been used now for all presentations on Kamaelia since Europython 2005. If you've seen some cool stuff using it, then this is the tool used. If you thought it sucked, it's constantly evolving to include new features and stability :-) .
It features the following:
Limitations:
However this is sufficiently useful, interesting to build on a move forward.
"Kamaelia Paint" - Image Creation
Availability: Kamaelia CVS, in Sketches
Many moons ago there were paint programs on systems like the Amiga. Things like Deluxe Paint, Photon Paint, and so on. They differ from tools like "the gimp" and "photoshop", in that they're not primarily aimed (or originally) at modifying an existing images (Photoshop, Gnu image manipulationprogram), but rather with providing tools an an interface aimed at creating images, using pixels, from scratch. Deluxe paint also had very nice tools for painting animations.
As a result Kamaelia Paint serves the following purposes:
Currently (29/10/2005) this tool is incredibly primitive, but in conjunction with a (low cost :) graphics tablet is quite nice. An interesting difference from a traditional paint program is that it allows a command console as well (due to being written using Kamaelia).
Networked Audio Mixer Matrix
Availability: Kamaelia CVS, in Sketches
Detail TBH
Collaborative Whiteboarding
Availability: KamaeliaCVS, in Sketches/MH/Sketcher
An experimental sketch drawing program, where multiple users can connect together and all see and draw on the same sketch. You can also load and save the whiteboard. The fun bit is that instances can act as both client and server, meaning users can connect together in an ad-hoc peer to peer fashion. It is implemented using our pygame and networking components, and a few new ones.
Run sketcher.py with neither, either, or both of these command line arguments:
Draw using the mouse (or stylus if you've got a tablet). At the top is a drawing colour palette and eraser tool. Click on them to select them. Click with the right mouse button to toggle in and out of a fullscreen mode.
Whilst it is running, you also get a command prompt. This injects commands directly to the drawing Canvas component. Primarily it is there for you to load and save sketches (in bmp format, ensure you include the extension) and to clear the whiteboard:
>>> load
"filename.bmp"
>>> save "filename.bmp"
>>> clear
The design centres on a Backplane component that acts as a bus. This connects together:
Whenever something sends to the backplane, everything else receives. So, if two or more backplanes are coupled (by, for example, network connections) then they effectively behave like a single distributed backplane.
This has started out as a pet, personal time project by Matt.
General Stuff
Availability: Many of these are in Kamaelia's CVS, in Sketches
At R&D we've used it for sending subtitles to mobiles, building a networked audio mixer matrix, previewing PVR content on mobiles, joining multicast islands together using application layer tunneling and also a game for small children :-)