Emerson: Accessible Scripting for Applications in an Extensible Virtual World
Behram Mistree, Bhupesh Chandra, Ewen Cheslack-Potava, Philip Levis, and David Gay
Published in Proceedings of the ACM international conference on Object oriented programming systems languages and applications (Onward), October 2011.
Abstract
This paper presents Emerson, a new programming system for scripting objects in user-extensible virtual worlds such as Second Life, Active Worlds, Open Wonderland, etc. Emerson's primary goal is to make it easy for novice programmers to write and deploy interesting applications. Scripting applications for these worlds is difficult due to two characteristics: the worlds must scale to millions of users and are therefore distributed, and there is no central authority or design so interaction is mostly between mutually untrusting applications. To simplify scripting for novices, Emerson employs two abstractions: multi-presencing and execution sandboxes. Multi-presencing allows a single program to centrally control what seem to be many distributed geometric objects. Execution sandboxes allow safely running application code provided by another object, borrowing the execution and deployment model of modern web applications. Emerson itself is implemented as a scripting plugin for the Sirikata open source virtual world platform. We evaluate the benefits of its design by describing several application examples. Through these examples, we explore the interactions between sandboxing and multi-presencing as well as their implications and discuss potential future authentication mechanisms that would make secure in-world application development more accessible.
Paper (454KB)
BibTeX entry
@inproceedings{onward11bmistree, author = "Behram Mistree and Bhupesh Chandra and Ewen Cheslack-Potava and Philip Levis and David Gay", title = "{Emerson: Accessible Scripting for Applications in an Extensible Virtual World}", booktitle = "{Proceedings of the ACM international conference on Object oriented programming systems languages and applications (Onward)}", year = {2011}, month = {October} }





Login