final demonstration of the agentcubes web api scott keller erin rowland stuart reed michael wally...

43
Web DYNAMO Final Demonstration of the AgentCubes Web API Scott Keller Erin Rowland Stuart Reed Michael Wally George McCabe dy· na· mo: (n.) A generator 1 Erin Rowland

Upload: felicia-atkinson

Post on 03-Jan-2016

219 views

Category:

Documents


0 download

TRANSCRIPT

1

WebDYNAMO

Final Demonstration of the AgentCubes Web API

Scott KellerErin RowlandStuart Reed

Michael WallyGeorge McCabe

dy· na· mo: (n.) A generator

Erin Rowland

2

What We Will CoverSenior Project BackgroundSponsorsThe ProblemThe SolutionConceptual DiagramRequirementsUser Interface ArchitectureSummaryDemonstration

W e b DY N A M O Erin Rowland

3

Senior Projects ClassComputer Science Capstone13 Teams … 61 studentsIndustry ProjectsEntertainment ProjectsEducational Projects

◦Health Care Education using Second-Life University of Colorado Denver College of Nursing

◦Science on a Sphere Craft Technologies Group

Erin RowlandW e b DY N A M O

4

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

W e b DY N A M O Erin Rowland

5

AgentCubes◦Generate simulations◦Create games◦Conceptual Aid for teaching

AgentSheets, Inc.

Erin Rowland

6W e b DY N A M O

Scott Lininger:

• Designer, Programmer, and Writer

• Representative from Google

• SketchUp and O3D

and O3D

Erin Rowland

7

Topics DiscussedSenior Project BackgroundSponsors:

◦ AgentSheets◦ Google

ProblemSolutionConceptual DiagramRequirementsUser Interface ArchitectureSummaryDemonstration

W e b DY N A M O George McCabe

8

Problem:Expand AgentCubes User

Base

Portability (Multi-Platform)UsabilityAccessibility

W e b DY N A M OGeorge McCabe

9

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)

W e b DY N A M O George McCabe

10

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

W e b DY N A M O George 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

12

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

W e b DY N A M O George McCabe

13

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

W e b DY N A M O George McCabe

WEUP

14

Solution: (cont’d)Other Components

“Dark Tunnel” Compiler• Navid Ahmadi• University of Lugano in

Switzerland• Generates JavaScript• Calls API Functions Defined by

WebDynamo

W e b DY N A M O George McCabe

15

Topics DiscussedSenior Project BackgroundSponsors:

◦ AgentSheets◦ Google

ProblemSolutionConceptual DiagramRequirementsUser InterfaceArchitectureSummaryDemonstration

W e b DY N A M O Michael Wally

16

WebDynamo Conceptual Diagram

W e b DY N A M O Michael Wally

U s e r I n p u t

D e f i n e A g e n t sWEUP GUI

S i m u l a t i o nP r o p e r t i e s

Compiler

M a n i p u l a t eA g e n t s

B r o w s e r - b a s e dS i m u l a t i o n

WebDynamo

GUI

API

O3D

17

User Interaction

W e b DY N A M O Michael Wally

U s e r I n p u t

D e f i n e A g e n t s

M a n i p u l a t eA g e n t s

WebDynamo GUIWEUP GUI

18

WEUP GUI

Navid AhmadiAllows user to define agents

◦Actions/Conditions provided by WebDynamo

Provides compiler with agent behavior

W e b DY N A M O Michael Wally

WEUP GUI

S i m u l a t i o nP r o p e r t i e s

19

Compiler

Navid AhmadiCompiles simulation implementation

◦Based on simulation propertiesCreates specific agents

◦Based on user input to WEUP

W e b DY N A M O Michael Wally

Compiler

B r o w s e r - b a s e dS i m u l a t i o n

20

Compiler – Agent Implementation

subclass.extend(frogAgent, agent);frogAgent.prototype.tasks = function(i){

if(‘Conditions’) {‘Actions’}if(‘Conditions’) {‘Actions’}…

}

W e b DY N A M O Michael Wally

Compiler

B r o w s e r - b a s e dS i m u l a t i o n

21

WebDynamo GUI

W e b DY N A M O Michael Wally

M a n i p u l a t eA g e n t s

WebDynamo

GUIAPI

O3D

Agent manipulationSimulation controlsCamera controls

22

WebDynamo API

Agent Class◦Provides actions/conditions for agents

Resource Manager◦Manages agents and animators◦Tells agents to perform tasks()

Animators

W e b DY N A M O Michael Wally

B r o w s e r - b a s e dS i m u l a t i o n

WebDynamo

GUI

API

O3D

23

Simulation

Implemented by compilerDriven by WebDynamoWebDyanmo GUI provides

interactionGood times had by all!

W e b DY N A M O Michael Wally

B r o w s e r - b a s e dS i m u l a t i o n

24

Topics DiscussedSenior Project BackgroundSponsors:

◦ AgentSheets◦ Google

ProblemSolutionConceptual DiagramRequirementsUser Interface ArchitectureSummaryDemonstration

W e b DY N A M O Stuart Reed

25

Environmental Requirements

Any O3D Supported ConfigurationSoftware / Development

Environment◦ Supported Browsers:

Firefox 3◦ Supported Operating Systems:

Windows XP, Mac OS X, Linux◦ Implement API in JavaScript and O3D

W e b DY N A M O Stuart Reed

26

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)

W e b DY N A M O Stuart Reed

27

Functional RequirementsJavaScript Objects

◦Agent Attributes and TasksAPI Functions

◦Compiler Condition and Action Events Implement Simulation

O3D Scene RenderingWorksheet GUI

◦Run, Stop and Step the Simulation◦Manipulate Camera◦Manipulate Agents

Draw, Delete, MoveW e b DY N A M O Stuart Reed

28

WebDynamo GUI

O3D Worksheet

W e b DY N A M O Stuart Reed

29

AgentCubes Worksheet Toolso JavaScript Handlers for

Keyboard and Mouse Inputo Calls Method for Active Tool

WebDynamo GUI Toolbar

W e b DY N A M O Stuart Reed

30

WebDynamo GUI Toolbar

W e b DY N A M O Stuart Reed

Simulation

Runtime Controls

Agent Controls

31

WebDynamo GUI Toolbar

W e b DY N A M O Stuart Reed

Worksheet

ControlsCamera Controls

32

Topics DiscussedSenior Project BackgroundSponsors:

◦ AgentSheets◦ Google

ProblemSolutionConceptual DiagramRequirementsUser Interface ArchitectureSummaryDemonstration

W e b DY N A M O Scott Keller

Architecture - Hierarchy

W e b DY N A M O

WORLD

M AT R I XR E S O U R C EM A N A G E R

C A M E R A A N I M A T O R

S I M U L A T I O NP R O P E R T I E S

A G E N T

A G E N T…

S H A P E

A C T I O N S

C O N D I T I O N S

33Scott Keller

34

Architecture – MVC Overview

W e b DY N A M O

Controller

ViewModel

Push Animations

Push Animations

Scott Keller

Run Tasks()Run Tasks()

AnimateAnimate

Display AgentDisplay Agent

Calls JS API FunctionsCalls JS API Functions

Simulation Implementation

Simulation Implementation

Implement Tasks()

Implement Tasks()

Add AgentsAdd Agents

35

Architecture - ResourceManager

W e b DY N A M O

Add◦Initializes starting agents◦Adds agents to array

Scott Keller

Controller

Push Animations

Push Animations

Run Tasks()Run Tasks() AnimateAnimate

Calls JS API FunctionsCalls JS API Functions

Simulation Implementation

Simulation Implementation Add AgentsAdd Agents

36

Architecture - ResourceManager

W e b DY N A M O

Tasks◦Generates list of agents◦Calls tasks( ) on each agent in random

order◦Tasks( ) implements agents behavior

Scott Keller

Controller

Push Animations

Push Animations

Run Tasks()Run Tasks() AnimateAnimate

Calls JS API FunctionsCalls JS API Functions

Simulation Implementation

Simulation Implementation Add AgentsAdd Agents

37

Architecture - ResourceManager

W e b DY N A M O

Animate◦ResourceManager stores list of animators◦Render callback calls gameloop which runs

through active animators◦Determines time between rendered frames

to calculate transformationsScott Keller

Controller

Push Animations

Push Animations

Run Tasks()Run Tasks() AnimateAnimate

Calls JS API FunctionsCalls JS API Functions

Simulation Implementation

Simulation Implementation Add AgentsAdd Agents

38

Architecture - Agent

W e b DY N A M O

Specific agents implement tasks( )Runs its tasks( ) and pushes

animatorsMaintains agent information

Scott Keller

Model

Push Animations

Push Animations

Run Tasks()Run Tasks()

Display AgentDisplay Agent

Calls JS API FunctionsCalls JS API Functions

Simulation Implementation

Simulation Implementation

Implement Tasks()

Implement Tasks()

39

Architecture - View

W e b DY N A M O

Animator◦Uses O3D to display 3D graphics in

browser◦Animates agent movements and

rotations◦Displays agents

Scott Keller

View

AnimateAnimate

Display AgentDisplay Agent

Demo!

W e b DY N A M O 40Stuart Reed

41

SummarySenior Project BackgroundSponsors:

◦AgentSheets◦Google

ProblemSolutionConceptual DiagramRequirementsUser Interface and ArchitectureDemonstrationQuestions?

W e b DY N A M O Erin Rowland

42

AgentSheets, Inc.

Dr. Alexander Repenning

W e b DY N A M O Everyone

THANK YOU!

&

S c o t t L i n i n g e r

Questions?

W e b DY N A M O 43Stuart Reed