AirPage

A visual IDE for manipulating dynamic program ASTs (which generate programs). Using Flow-Based Programming (FBP) visually, we built an entire workspace and IDE that itself is composed of the flow graph that it represents, allowing users to manipulate programs visually. This technical deep dive shows how ASTs can be manipulated under the hood.

Related Software

Graphics Exploration and Creation Engine

A consolidated system that enables people to (re-)design interactive graphics in a collaborative, creative workspace. This system is novel compared to previous systems because users can explore and author graphical content with the ability to re-use and re-design projects created by other users, hence, encouraging an example-centric model for authorship. The question is whether or not this system catalyzes the design process, which is two fold: does the system help people create content that they would previously not have, or, does it help them create content faster than they would have previously? To test the system a number of studies were done ranging from in-person studies on UC Berkeley campus to deployment on Amazon's Mechanical Turk. Users were directed to a website with a series of specific tasks that walked them through the user interface and taught basic concepts for authoring content. After initial tutorials, users were asked to take what they learned to create projects based on a list of requirements. User studies showed that this system is not only usable, but also its collaborative model is definitely successful and encourages creativity. For robustness, the platform is composed of four parts: the database, the servers, the tracker, and the client. Using the MySQL C API, a MySQL interface integrates with the server. The server handles the MySQL database connections, TCP/IP socket connections, and contains all cached files. The server communicates directly with the client. The server is started by the tracker, and maintains a connection so that a new server is spawned when a server goes down. The tracker's job is also to connect clients with a random server from the set of servers so that on average the load is evenly distributed.

Graphicscollaborativecrowdsourcing