Final Demonstration of the AgentCubes Web API Scott Keller Erin Rowland Stuart Reed Michael Wally George McCabe dy· na· mo: (n.) A generator 1Erin Rowland
What We Will Cover Senior Project Background Sponsors The Problem The Solution Conceptual Diagram Requirements User Interface Architecture Summary Demonstration 2Erin Rowland
Senior Projects Class Computer Science Capstone 13 Teams … 61 students Industry Projects Entertainment Projects Educational Projects ◦ Health Care Education using Second-Life University of Colorado Denver College of Nursing ◦ Science on a Sphere Craft Technologies Group Erin Rowland3
AgentSheets, Inc. Dr. Alexander Repenning CTO of AgentSheets, Inc. Professor of Computer Science at CU Boulder Balance Educational and Motivational concerns Exposing Computer Science to Middle School Students 4 Erin Rowland
AgentCubes ◦ Generate simulations ◦ Create games ◦ Conceptual Aid for teaching AgentSheets, Inc. 5Erin Rowland
Scott Lininger: Designer, Programmer, and Writer Representative from Google SketchUp and O3D and O3D 6Erin Rowland
Topics Discussed Senior Project Background Sponsors: ◦ AgentSheets ◦ Google Problem Solution Conceptual Diagram Requirements User Interface Architecture Summary Demonstration 7 George McCabe
Problem: Expand AgentCubes User Base Portability (Multi-Platform) Usability Accessibility 8George McCabe
Problem: (cont’d) AgentSheets (2D) Requires User to Download and Install the Software AgentCubes (3D) Not Publicly Available ◦ Current Version in Development (Mac OS X) 9George McCabe
Solution: Render 3D in a Web Browser JavaScript Implements Scene and Agents Handle API Calls from a Compiled Simulations Render Simulations Based on AgentCubes Graphics Rendered by O3D 10George McCabe
O3D Open-Source JavaScript API Cross-platform Generates Interactive 3D Graphics Applications Runs in a Browser Window beachdemo.html and O3D Erin Rowland 11George McCabe
Solution: (cont’d) WebDynamo is an O3D Version of the AgentCubes Worksheet ◦ Tools Allow Interaction With the Scene Draw and Manipulate Object Instances Pan and Zoom Camera 12George McCabe
Solution: (cont’d) Other Components Web End-User Programming GUI Allows Users to Create Agents and Define Their Behavior Creates XML files to Store Agents, Behaviors, and the Scene 13George McCabe
Solution: (cont’d) Other Components “Dark Tunnel” Compiler Navid Ahmadi University of Lugano in Switzerland Generates JavaScript Calls API Functions Defined by WebDynamo 14George McCabe
Topics Discussed Senior Project Background Sponsors: ◦ AgentSheets ◦ Google Problem Solution Conceptual Diagram Requirements User Interface Architecture Summary Demonstration 15Michael Wally
WebDynamo Conceptual Diagram 16Michael Wally WEUP GUI Compiler WebDynamo GUI APIAPI O3D
User Interaction 17Michael Wally WebDynamo GUI WEUP GUI
Navid Ahmadi Allows user to define agents ◦ Actions/Conditions provided by WebDynamo Provides compiler with agent behavior 18Michael Wally WEUP GUI
Compiler Navid Ahmadi Compiles simulation implementation ◦ Based on simulation properties Creates specific agents ◦ Based on user input to WEUP 19Michael Wally Compiler
Compiler – Agent Implementation subclass.extend(frogAgent, agent); frogAgent.prototype.tasks = function(i) { if(‘Conditions’) {‘Actions’} if(‘Conditions’) {‘Actions’}… } 20Michael Wally Compiler
WebDynamo GUI 21Michael Wally WebDynamo GUI APIAPI O3D Agent manipulation Simulation controls Camera controls
WebDynamo API Agent Class ◦ Provides actions/conditions for agents Resource Manager ◦ Manages agents and animators ◦ Tells agents to perform tasks() Animators 22Michael Wally WebDynamo GUI APIAPI O3D
Simulation Implemented by compiler Driven by WebDynamo WebDyanmo GUI provides interaction Good times had by all! 23Michael Wally
Topics Discussed Senior Project Background Sponsors: ◦ AgentSheets ◦ Google Problem Solution Conceptual Diagram Requirements User Interface Architecture Summary Demonstration 24Stuart Reed
Environmental Requirements Any O3D Supported Configuration Software / Development Environment ◦ Supported Browsers: Firefox 3 ◦ Supported Operating Systems: Windows XP, Mac OS X, Linux ◦ Implement API in JavaScript and O3D 25Stuart Reed
Environmental Requirements Hardware Environment ◦ Windows: x86 CPU, DX9-compatible GPU with VS 2.0 and PS 2.0 support ◦ Mac: Any Intel Mac (Unsupported GPUs Will Use SW rederer) 26Stuart Reed
Functional Requirements JavaScript Objects ◦ Agent Attributes and Tasks API Functions ◦ Compiler Condition and Action Events Implement Simulation O3D Scene Rendering Worksheet GUI ◦ Run, Stop and Step the Simulation ◦ Manipulate Camera ◦ Manipulate Agents Draw, Delete, Move 27Stuart Reed
WebDynamo GUI O3D Worksheet 28Stuart Reed
AgentCubes Worksheet Tools o JavaScript Handlers for Keyboard and Mouse Input o Calls Method for Active Tool WebDynamo GUI Toolbar 29Stuart Reed
WebDynamo GUI Toolbar 30Stuart Reed Simulation Runtime Controls Agent Controls
WebDynamo GUI Toolbar 31Stuart Reed Worksheet Controls Camera Controls
Topics Discussed Senior Project Background Sponsors: ◦ AgentSheets ◦ Google Problem Solution Conceptual Diagram Requirements User Interface Architecture Summary Demonstration 32Scott Keller
Architecture - Hierarchy 33Scott Keller
Architecture – MVC Overview Controller View Model Push Animations 34Scott Keller Run Tasks() Animate Display Agent Calls JS API Functions Simulation Implementation Implement Tasks() Add Agents
Architecture - ResourceManager Add ◦ Initializes starting agents ◦ Adds agents to array 35Scott Keller Controller Push Animations Run Tasks() Animate Calls JS API Functions Simulation Implementation Add Agents
Architecture - ResourceManager Tasks ◦ Generates list of agents ◦ Calls tasks( ) on each agent in random order ◦ Tasks( ) implements agents behavior 36Scott Keller Controller Push Animations Run Tasks() Animate Calls JS API Functions Simulation Implementation Add Agents
Architecture - ResourceManager Animate ◦ ResourceManager stores list of animators ◦ Render callback calls gameloop which runs through active animators ◦ Determines time between rendered frames to calculate transformations 37Scott Keller Controller Push Animations Run Tasks() Animate Calls JS API Functions Simulation Implementation Add Agents
Architecture - Agent Specific agents implement tasks( ) Runs its tasks( ) and pushes animators Maintains agent information 38Scott Keller Model Push Animations Run Tasks() Display Agent Calls JS API Functions Simulation Implementation Implement Tasks()
Architecture - View Animator ◦ Uses O3D to display 3D graphics in browser ◦ Animates agent movements and rotations ◦ Displays agents 39Scott Keller View Animate Display Agent
Demo! 40Stuart Reed
Summary Senior Project Background Sponsors: ◦ AgentSheets ◦ Google Problem Solution Conceptual Diagram Requirements User Interface and Architecture Demonstration Questions? 41Erin Rowland
AgentSheets, Inc. Dr. Alexander Repenning 42 Everyone
Questions? 43Stuart Reed