Kagome: Prototyping Environment for Embedded Devices

Last fall, Eric DeMenthon, David Kim and myself wrote a web application that allowed users to design simple user interfaces, say for embedded devices, by creating and manipulating directed graphs. We wrote it in OpenLaszlo and named it Kagome. Kagome was our final class project for 6.831 at MIT.
Kagome

Think of the user interface of a typical ATM machine. You’re first greeted by a welcome screen that asks you to insert your card. You’re then prompted for your pin, and the next screen depends on whether your pin number is correct or not. The idea is that an ATM interface is simple enough, that it could be formally modeled by a directed graph or a state machine. Each screen in the ATM interface can be thought of as a node in the sate machine; and every action that causes the screen to transition (the user presses a button, a timeout condition … etc) corresponds to an edge in that state machine.

ATM State Machine

User’s can run their design at any time. The model in Kagome’s MVC is sent as a JSON to a PHP script that dynamically generates OpenLaszlo code based on that model, compiles it, and sends it back to the browser as part of the currently running OpenLaszlo application.
Sending JSON to be compiled as LZX
compiled.png

The code is publicly available on Google Code:
http://code.google.com/p/kagome/
The latest code - which we submitted for our final evaluation - is in the GR5 branch (Thanks Raju for for reminding me):
http://kagome.googlecode.com/svn/branches/GR5/

I’ve also uploaded a demo version here:
http://www.mit.edu/~marram/Kagome/
This is a demo version of Kagome. It does not compile your design into an interactive simulator since it is deployed SOLO without an OpenLaszlo server.

3 Responses to “Kagome: Prototyping Environment for Embedded Devices”

  1. Raju Bitter Says:

    Hey Mahmoud,
    This is very cool! I’ll have a look into your code in the next days. I added Kagome to the list of OpenLaszlo applications in the Wiki (http://wiki.openlaszlo.org/OpenLaszlo_Applications#Kagome). I thought of such an approach before but never found the time to implement it. I’ll pass the info around inside Laszlo. I can imagine a lot of the engineers will interested in your application.
    Best,
    Raju
    OpenLaszlo Community Manager

  2. Raju Bitter Says:

    Just one minor correction: There’s no code in the SVN trunk. But it’s in the branches/GR5 folder. So
    svn checkout http://kagome.googlecode.com/svn/branches/GR5/ kagome
    will work. ;)

  3. OpenLaszlo Project Blog » MIT builds enterprise image and media management tool Thalia with OpenLaszlo Says:

    […] not the first OpenLaszlo application at the MIT we know off. Three MIT students have been building Kagome, a web application that allowed users to design simple user interfaces by creating and manipulating […]

Leave a Reply