Personality Packs are Animations and Sound/FX that give LunaOS robots their personality.
LunaOS is a personable robotic operating system, capable of displaying animations and sounds that convey Moods and States. They are the equivalent of Themes or Wallpapers on your PC, enabling users to customize the visual and auditory experience of their interactions with their robot.
Moods and States convey the emotion of the robot with respect to internal and/or external events and stimuli. For example, if the robot's battery is running low LunaOS would fire off a global Hungry Message denoting the internal State of the robot. Conversely, bumping into an obstacle would also generate a global message in response to external events and occurrences that Luna is able to recognize.
These emotions by Luna may have one or both components: a Visual component and a Sound component. For example, a Happy State may display a happy face while playing a laughing sound. LunaOS is capable of rendering Adobe Flash (swf) files, which can be displayed on the robot's LCD screen and played over the robot's speaker.
Standard Moods & States
There are a number of standard Mood/State messages that LunaOS can generate.
Developers may make modifications to the operating system layer and/or application layer in order to augment the standard set of notifications for additional Moods and States, as needed.
Each PPack is a collection of Flash animation files (or even still images such as PNGs) sorted in a specific directory structure. Additionally, each PPack may have up to several additional files containing metadata and styling for the personality. At the very least, every PPack must have a "manifest.txt" file at the root level of the directory. You will find two template folders in this SDK, called "Template_Flash" and "Template_Images" respectively. These folders contain an empty file/folder structure for your PPack, and is a great place to start developing your new LunaOS personality. Simply drop the corresponding Flash (or image) file in the appropriate folder and change the manifest file to reflect information about your PPack. That's it. You're done making your first PPack.
Directory Structure and Files
Each of the PPack's 12 emotions have their own folder withing the root directory. A typical PPack looks as follows:
Within each folder there will be two files: a Flash SWF and an index.php. The index.php is responsible for rendering the appropriate emotion file, wether a Flash SWF or an Image. In the SDKs contained here, we've included the appropriate index.php files for each folder. All you have to do is to create your animation file and drop its folder. The name of the file must be the same as the folder name.
For example, the "Happy" folder will contain a happy.swf and index.php in which the flash file is embeded.
The manifest.txt file provides information about your PPack to the LunaOS PPack Player. Manifest.txt is a simple text file with seven lines:
Name of your PPack (as String)
Version Number (as Decimal)
URL to Stylesheet (as, OPTIONAL)
URL to Screenshot (as, OPTIONAL)
URL to Icon (as URL, OPTIONAL)
Note that there must be no empty spaces at the beginning of the file, and no text beyond the Icon URL.
If you do skip one of the URLs, be sure to leave the line empty (press Return) and go to the next line.
We've created a simple web-based manifest.txt file creator for you here:
The PPack Player will play any PPack via its URL. When you're done with your PPack, simply use the Install box of the PPack Player to play your creation by entering its URL.
The PPack Player can be found here:
Further Thoughts on validation
Design specifications for Personality Pack animations and Sound/FX should be brainstormed and devised here.
Adobe Flash is probably a good candidate, as there is solid support in our operating system and is relatively light-weight for this particular application.
Another thing to note is that robots will probably have various screen sizes and resolutions. At a minimum however, each screen should support VGA resolution.
Deploying Personality Packs
LunaAppStore will have a Personality Pack section where developer can submit - and user can download - Personality Packs for their LunaOS robots.
There will be a verification process that will check each submitted Personality Pack for technical compatibility as well as appropriateness of the content.
Installation of Personality Packs, similar to LunaOS Applications, should be a single-click process over a web-based interface. The user finds the appropriate Personality Pack, clicks the Install button, and the pack is downloaded/installed/deployed on the robot.
Some Funny Designs