C0600 Technical Report. Computer Animation in Java Emergent Behaviour in Autonomous Agents
|
|
- Ambrose Paul
- 8 years ago
- Views:
Transcription
1 C0600 Technical Report Computer Animation in Java Emergent Behaviour in Autonomous Agents James Cogley Paul Hempseed Will Smith
2 Computer Animation in Java Emergent Behaviour in Autonomous Agents James Cogley University of Kent Computing Laboratory Canterbury, CT2 7HR Paul Hempseed University of Kent Computing Laboratory Canterbury, CT2 7HR Will Smith University of Kent Computing Laboratory Canterbury, CT2 7HR Abstract This details the research and implementation of an application to demonstrate the use of emergent behaviour (i.e. flocking) in autonomous agents. It shows that with additions to the basic flocking rules, a complex 3D visualisation of a scenario can be created. 1. Introduction Emergent behaviour refers to a group of simple entities working together to form more complex behaviours. The main sections of the work were the simulation (how the boids behave, how they work together, how they react to challenges), the visualisation (taking the simulation and environment and displaying them, the physics etc.) and the environment (designing of scenarios, obstacles) The main areas approached to complete this such as the simulation; the visualization and the environment are described in more detail in the report below. 2. Background In 1986 Craig Reynolds demonstrated a computer model for simulating the co-ordinated movement of animals such as schools of fish or flocks of birds which he consequently dubbed Boids (1). Since then there have been many examples of Boids and flocking being applied in the areas of behavioural animation, artificial life and individual based models. Behavioural animation is a procedural animation technique where an autonomous character determines its own action within certain constraints that are imposed by the animator. Since its feature film debut in 1992 (2) this technique has rapidly gained popularity in the film industry especially in recent years with more and more films using computer generated herds of stampeding wildebeests (3), hordes of alien insects (4) and even entire computer generated armies (5). Artificial life is a field of study in which attempts to model living systems, processes and their evolution through the use of computer simulations, robotics and biochemistry (6). Individual based models (IBMs) are simulations that are based on global consequences of local interactions (7). Individual based models can also be described as entity or agent based models; where the individual/entity/agent might represent a pedestrian in a crowd, or an animal in a particular environment or a vehicle in traffic. Because an individual based model is a collection of interacting parts it can also considered to be a subset of multi-agent-systems however IBMs can be distinguished by the fact that each agent represents an autonomous in the simulation. 3. Aims The aim was to create a demonstration of a flocking algorithm illustrated in a computer animation while allowing some degree of interactivity with the environment. The visualisation would be used to demonstrate complex crowd behaviours in an environment involving obstacles, attractors and repulsers. The agents used would follow the set rules of flocking and when these simple behavioural rules are used by multiple agents they should combine to create a complex emergent behaviour. The environment in which these agents exist had to provide enough stimuli to influence the boid behaviour but also present them with enough freedom to fully utilise the flocking rules. Initially the environment would be visualised in 2D which would eventually be developed into 3D. For further reading on the groups aims please refer to the Project Abstract (8) and the Requirements (9), (10) documentation.
3 4. Design and Implementation The design of the application went through a number of significant changes between iteration one and two as the focus of the project shifted and presented a number of challenges in both the design and implementation. 4.1 System Overview One of the very early design decisions was to treat the simulation and the visualisation as two distinctly separate parts and try to keep the simulation, as far as is possible, independent of the final visualisation. This gave the freedom to develop the visualisation using whatever method was best suited to the task and, more importantly, if things were not working out to change the method used while minimising any impact on the development of the simulation. This approach led to the application taking on a layered structure which is discussed further in section [4.1.2 Layered Structure] System Structure. The simulation package contains classes responsible for modelling the environment and everything within it; this includes Obstacles, Emitters, Attractors, Crowds and Boids. It also runs the flocking algorithms and calculates the forces that need to be applied to the Boids; the procedure for doing this changed significantly between Iteration One and Two. In iteration one the simulation class acted as a control class and was responsible for updating everything Simulation within the simulation, the visualisation would create an instance of a simulation and call updates on it as needed. This approach, while working well in iteration one, proved to be too inflexible for the features planned in iteration two. The simulation class was removed and the visualisation took over as the control class, using the classes in the simulation package as building blocks to create multiple complex scenarios The Layered System. Figure 1 shows a simplified overview of the application; it shows how the simulation encapsulates all of the entities that are present in a scenario. Entities that are rendered in the scene are extended in the visualisation package to include information about the visual representation of the object and how it will appear in the scene, as well as location information, information about translations and rotations and where it is located in the scene graph. Initially the Obstacle, Emitter, Attractor and Boid classes were intended to have their own r (for rendered) class in the visualisation package (e.g. rboid, robstacle etc.) which would contain information on how the object would be rendered in the visualisation. However as the Boid class was the only one intended to have a more complex appearance it was often easier to add the required fields to the original simulation class than to create a r class. While being easier this unfortunately had the effect of binding the simulation classes more tightly to the visualisation as much of the information was specific to the visualisation and the 3D API used. Visualisation Brain Boid rboid Visualisation Behaviours Crowd Scenario Environment GUI Neighbourhood Attractor Obstacles rattractor robstacle Emitters remitter Figure 1 - High Level View of the System
4 5. The Visualisation The visualisation is more than the front-end to the simulation; the visualisation takes the tools/building blocks from the simulation and uses them to construct complex scenarios demonstrating the flexibility of the simulation. Not only that it allows the user to interact with the scenarios, modifying them and observing the results. 5.1 Java 3D vs. jmonkeyengine From the very beginning there was a desire for the visualisation to be created in 3D (if only for the aesthetics); however it was not clear how feasible a 3D environment would be as the group lacked knowledge and experience of developing such an application. For the Visualisation a solution was needed that would enable the rapid creation of prototypes that could be easily expanded into full 3D if required (at a later date), that wasn t too difficult to learn and performed well Java 3D. Java 3D is a 3D API created by Sun to enable the creation of three dimensional graphics applications and internet-based 3D applets (11). Java 3D has a number of benefits; it has a large number of tutorials and documentation available on the internet. It has a number of official and community based geometry loaders available. And the general purpose nature of the API means it can be used to create a wide variety of applications. However because Java 3D tries to be everything to everyone the API seems to be unwieldy and the workflow appears to be restrictive jmonkeyengine. The jmonkeyengine (jme) is a high performance scene graph based API aimed at both hobbyist and commercial games developers (12). jme offers a number of attractive features, among them are; a wide variety of geometry loaders, allow animated meshes to be loaded and supporting both skeletal and vertex based animation. Optional packages such as the jme-physics package that provides Java wrappers for a number of physics engines, including ODE (13). The more focussed nature of the API meant that while it wasn t any easier to learn than Java3D there was less to learn API Conclusion. With the criteria mentioned in [5.1] in mind jmonkeyengine was chosen to develop the visualisation on; its more focussed approach and lighter-weight API combined with the optional packages and the ability to rapidly prototype ideas made it the best choice Visualising the Simulation As has been previously mentioned it is the role of the visualisation to provide a visual representation of the simulation; additionally the requirements state that it should provide an interface for the user to interact with the simulation Multi-Threading vs. Single Threaded. The jmonkeyengine is built upon the LWJGL (Light Weight Java Game Library) (12) which uses OpenGL (14) as a renderer. OpenGL is primarily designed for use in a single thread; as such the frameworks (such as SimpleGame etc.) within jme are also designed to work in a single thread. However in an attempt to regain some of the performance lost through the use of the physics engine, research into a multithreaded approach was carried out. The thinking being that if the Logic, Rendering and Physics could be split into separate threads it would remove, or at least, alleviate the drain on processor time caused by the physics engine. Unfortunately the physics engine was not designed for multi-threading either, and it proved impossible to keep the scene graph and the physics graph synchronised without modifying the physics engine, so the idea of multithreading had to be abandoned. 5.3 Visualising the Environment The graphical side of the environment interacts with the Visualisation class; this is represented on screen as simple blocks or cuboids, of various sizes in different locations. The first Iteration consisted of just four walls which had two purposes, to keep the boids in a basic environment in order for experiments to be run on their behaviour but also to make it easier to find any problems when creating and positioning obstacles. In the second iteration a train station was used to add more depth to the simulation. As obstacles could only be created as blocks it meant either the boids had to climb them like steps or some other obstacle shape be used instead. By using MilkShape (15) the two-stage bridge could be created (see Figure 2) that would allow boids to walk over it, reaching the other platform without trying to avoid it like a normal obstacle. From this, other obstacles were generated such as trains which can be added and placed in the same way as other obstacles but are visualised as complex 3D geometry rather than simple blocks.
5 Figure 2 - The Bridge Obstacle in Milkshape 3D 6. GUI The specifications for the visualisation stated that it should also provide an interface for the user to interact and modify the simulation. In iteration one the main emphasis was to develop the flocking algorithms and develop the simulation. In iteration two the focus shifted to developing the visualisation which presented several choices when it came to implementing a GUI. 6.1 SWING vs. jmedesktop vs. The Rest Designing and implementing the GUI component for the application presented some interesting decisions. As the initial designs for the interface were along the lines of a CAD program the obvious place to start was embedding the jme renderer into a standard Java swing application. That in itself proved to be a straightforward task, however things were not that simple; performance took a big hit (over 100fps slower than before) and on top of that the physics engine had issues running within the swing thread (by this time we were committed to using the physics engine) which ruled out this method. The next method of implementing a GUI was using the FengGUI packages; FengGUI is a graphical user interface (GUI) application programming interface (API) based on OpenGL. (16). In its favour the FengGUI interface had little or no effect on performance and seemed fairly easy to implement; however it did mean learning a new API and having to create an input handler to capture mouse and keyboard and the default theme was not particularly appealing. The final method investigated (17) was using the jmedesktop. The jmedesktop allows the rendering of Swing components onto a special node in the scene. The jmedesktop cost a few frames per second but not enough to rule it out. The Swing GUI runs in its own thread and can communicate with jme through the jme action handlers and events. 6.2 GUI Development and the Editor The requirement for interactivity with the simulation always intended for the user to be able to interrogate and modify properties of objects in the environment. In iteration one this requirement was delayed until iteration two while the concentration was on simulation. Iteration two gave the chance to explore a number of ways of enabling the user to modify the simulation on-the-fly. The step towards this goal was the addition of the Flocking panel; this panel displayed the behaviours, their strengths and their effective ranges (if applicable). This enabled the user to change the
6 balance between the forces generated by the flocking behaviours and observe the effects in the simulation. The next step was to add a rudimentary mapeditor (see Figure 3) that gave the user the ability to create simple scenarios for themselves by placing a series of pre-defined building blocks; Emitters (that create boids), Crowds (that contain boids, and tell them what attractor they are attracted to), Attractors (that give boids somewhere to go) and Obstacles (that give the boid something to avoid). Figure 3 - The Iteration Two Editor 7. Flocking and Behaviours The decision process for the simulation was a trade-off between the emergent behaviours of flocking, and the pre-defined certainties of pathfinding. It was decided that path-finding had been proven to work in the past and would not be a suitable system to test behaviours, as people do not move in straight lines, there is a degree of randomness that cannot be easily built into a pathfinding approach. Flocking on the other hand is a common way of showing emergent behaviours. It was chosen as the initial primary factor in controlling the boids in order to give them a natural decision process, without the constraints that path-finding has, so that hopefully they would learn and work as a group of boids to complete tasks, without specific knowledge of what those tasks would be. In Iteration 1, a purely flocking system was used to control the boids (20). They would use the behaviours of separation, alignment, and cohesion, as well as an extra rule to be attracted to attractors. This simplistic system had problems. It was found that certain behaviours were cancelling each other out. (21) For example, the cohesion and separation would often have the inverse velocity change of each other, making the effects of them nullified, and making alignment the overriding force on the boids, making them move slowly in formation. There were also problems that the behaviours all had the same weighting throughout the running of the simulation, so even when certain behaviours were required to be made more important (such as when boids were very close to an obstacle and heading towards it) they could do little to slow themselves down. For Iteration 2 therefore, it was decided to make the boids behaviours more complex. Each boid had a brain which would call a number of behaviours. (22) These behaviours had different weightings, which can be changed in runtime. This can be done in two ways. One is by the user using the GUI (Flocking Tab). It is also changed by the program when certain critical situations occur. For example, if a boid is heading toward a collision imminently, the weighting of that behaviour is increased to help it deal with the
7 problem and increase the probability of the collision being avoided. To help boids getting out of loops of behaviour, or getting stuck, random offsets were added to the behaviours, so that there would always be small differences in the decisions the boids would make, keeping them moving and helping boids avoid getting stuck. These additions and alterations to the flocking system gave the boids more independence in the sense of small movements, while at the same time making sure they followed the general rule of flocking. So instead of looking like a flock of birds moving in tandem, they looked more like a group of people walking through a train station. In terms of suitability, flocking alone was not a suitable approach. But, when made more complex with seek behaviours amongst others, it was possible to use flocking to create a realistic simulation. With more time, the aim was to have developed an interchangeable brain system with many more behaviours, which could call upon any mixture of these behaviours depending on the boids current state. With this system, due to the greater possibilities for action the boids can take, in terms of the different combinations of behaviours they can use, the possibility to make the boids more realistic is increased. The influences of these behaviours would continue to be independent and changeable in runtime, as would the list of behaviours the boid was using in different states of existence (near wall, near attractor, no boids nearby etc). 8. Collision Detection Management Collision detection management deals with the obstacle layout and positioning within the environment. In order for boids to make realistic alterations to their direction and velocity they must know whether or not they are about to collide with an obstacle. This was achieved by storing the locations of all obstacles in an Array List which acts as a grid representation of the environment, whenever a boid is about to move it checks the relevant grid space in the Array List to see if it contains an obstacle or not. What makes this important is that the boids have no knowledge of their surroundings; they simply react to what is in their path. The benefit of using an Array List is that it can be quickly searched by the boid using its velocity to predict its next vector. This method could have been changed to a tree structure to make the search times more efficient but due to time constraints and the fact that the current method still worked without fault meant that it was left unaltered. The final iteration uses a much more complex scenario which acted as a useful test of the collision detection system; this is made up of two platforms and a two-stage bridge connecting them, as well as a ticket office and gates. The main problem exists with the bridge as boids would simply identify it as an obstacle rather than a possible path. To overcome this, the bridge was not added to the list of obstacles and the physics engine was left to deal with the boid interaction. By ignoring the bridge the boids move over it as if they were moving on the same level. Other obstacles such as the train were not added to the list of obstacles because of the need to update the list every time they move. It was much more sensible to get the boids to avoid the railway lines instead just as a human would in real life. 9. User Testing and Performance The project fair presented the opportunity to gain some feedback from people outside of the project group. Visitors were keen to view the demonstration and all of the participants were impressed with the visual side of the project. However they were a little more hesitant when it came to using the application, finding the layout of interface to be difficult to understand and the process of creating a scenario cumbersome. It also became apparent during this session that the application requires a method for resetting the current scenario; as currently the application must be shut down and re-started in order to create a new scenario. The performance analysis (23) indicates that generally the application performs well on reasonably modern hardware. Even with the more complex, animated boids the rendering of the scene is still rendered at an acceptable speed. However the analysis does highlight some performance issues with the obstacle avoidance methods. 10. Conclusions From this report, it is felt that the following conclusions can be made about the different sections of the work. With the Visualisation, the visual appeal was impressive, and all the main requirements were achieved. However, some requirements were not up to the standards set at the beginning of the iteration. The editor was unable to create complex scenarios in a reasonable length of time, and was clumsy to use. With work it could be made to create bigger sections of environment quicker, but as it currently stands it is impractical. On the Environment side, it is felt that the methods it uses are very efficient; making it suitable to handle an even larger scenario than the train station it is currently used for. However, there are some reliability issues, particularly with the addobstacle method. It can come into difficulties in certain one-off situations due to an algorithmic inaccuracy.
8 With the Simulation, it was proven that flocking mixed with other behaviours can create a realistic simulation of a complex scenario. However, further optimisation of the methods in the simulation is required if a very large scenario was to be created. This could be done by the addition of a more efficient special partitioning system. 11. Further Development It was not possible to implement all of the planned features in the time allotted. Given more time it would have possible to implement some of the higher priority features, as discussed in the following sections Environment Loader / XML In the development of the train station scenario, it was recognised that the scenarios being created became more complex. It was also recognised that for the end-user of the system, the functionality of the program would be quite limited. It was decided that creating an XML Schema for the purpose of creating complex environments, which could then be imported into the program would be the best approach to tackling this problem. Unfortunately, due to time constraints the system was not completed. However, the XML Schema and an example XML environment file were made (18), and shows that with more time it would have been an attractive option to further the capabilities of the program Environment Builder Unfortunately due to time constraints many of the features planned for the editor were not implemented, or were not completed. Given time for a third iteration there were plans for providing the user with more pre-defined obstacle shapes (such as ramps and bridges), the ability to stack obstacles to increase their height and to place them on differing levels (to create stairs for example) and the option to import obstacles from external files. Further debugging information was also planned but not implemented in time, for example; lines to show a boids current destination, boid trails to show where the boids have been highlighting heavy traffic areas and attaching the camera to a boid enabling the user to easily track a single boids path through the scenario. 12. Acknowledgements We would like to thank our project supervisor, Dr Peter Kenny at the University of Kent, for his guidance and support throughout the course of the project. We would also like to acknowledge the members of the jmonkeyengine community for their work on the jmonkeyengine and finally Craig Reynolds for his work on Flocking (1) and Steering Behaviours (19). 13. References 1. Flocks, Herds, and Schools: A Distributed Behavioral Model, in Computer Graphics. Reynolds, C. W. s.l. : SIGGRAPH '87, pp Burton, Tim. Batman Returns. Warner Bros. Pictures, Roger Allers, Rob Minkoff. The Lion King. Disney, Verhoeven, Paul. Starship Troopers. Tristar Pictures, Jackson, Peter. The Lord of the Rings: The Two Towers. New Line Cinema, Unknown. dictonary.com. dictonary.com. [Online] [Cited: 25 March 2008.] life. 7. Reynolds, Craig. Individual-Based Models. [Online] 28 September [Cited: 25 March 2008.] 8. Cogley, James. Project Abstract Smith, Will. Iteration One Specification Iteration Two Specification Sun Microsystems, Inc. Java SE Desktop Technologies - Java 3D API. Java Technology. [Online] Sun Microsystems, Inc., [Cited: 25 March 2008.] 3d/. 12. Powell, Mark. About jmonkeyengine. jmonkeyengine.com. [Online] 24 January [Cited: 25 March 2008.] ontent&task=view&id=21&itemid= Smith, Russell. Open Dynamics Engine. Open Dynamics Engine. [Online] 28 May [Cited: 25 March 2008.] lwjgl.org. lwjgl.org. lwjgl.org. [Online] [Cited: 25 March 2008.] Ciragan, Mete. Chumbalum Soft. Chumbalum Soft. [Online] Chumbalum Soft, [Cited: 25 March 2008.] Schaback, Jjohannes. FengGUI. FengGUI. [Online] [Cited: 25 March 2008.] Cogley, James. GUI Design Hempseed, Paul. The Scenario System Steering Behaviors For Autonomous Characters. Reynolds, C. W. San Jose, California : Miller
9 Freeman Game Group, Game Developers Conference. pp Cogley, James. Flocking Algorithm Hempseed, Paul. Iteration One Simulation Evaluation Cogley, James. Behaviour System Figure Hempseed, Paul. Performance Analysis 2008.
Particles, Flocks, Herds, Schools
CS 4732: Computer Animation Particles, Flocks, Herds, Schools Robert W. Lindeman Associate Professor Department of Computer Science Worcester Polytechnic Institute gogo@wpi.edu Control vs. Automation Director's
More informationBlender Notes. Introduction to Digital Modelling and Animation in Design Blender Tutorial - week 9 The Game Engine
Blender Notes Introduction to Digital Modelling and Animation in Design Blender Tutorial - week 9 The Game Engine The Blender Game Engine This week we will have an introduction to the Game Engine build
More informationFlocking and Steering Behaviors. 15-462: Computer Graphics April 08, 2010
Flocking and Steering Behaviors 15-462: Computer Graphics April 08, 2010 Outline Real Flocks Our Foreflocks Particle Systems to Modified Models Flocking Behaviors Separation Cohesion Alignment Additional
More informationThe 3D rendering pipeline (our version for this class)
The 3D rendering pipeline (our version for this class) 3D models in model coordinates 3D models in world coordinates 2D Polygons in camera coordinates Pixels in image coordinates Scene graph Camera Rasterization
More informationBehavioral Animation Simulation of Flocking Birds
Behavioral Animation Simulation of Flocking Birds Autonomous characters determine their actions Simulating the paths of individuals in: flocks of birds, schools of fish, herds of animals crowd scenes 1.
More informationComputer Animation and Visualisation. Lecture 1. Introduction
Computer Animation and Visualisation Lecture 1 Introduction 1 Today s topics Overview of the lecture Introduction to Computer Animation Introduction to Visualisation 2 Introduction (PhD in Tokyo, 2000,
More informationAir Hockey Simulation
CO600 Final Year Group Project Air Hockey Simulation A Physics Based Animation in Java Daniel Usher Matthew Emmerson Priyesh Mistry Air Hockey Simulation - A Physics Based Animation in Java Authors Daniel
More informationModule 3 Crowd Animation Using Points, Particles and PFX Linker for creating crowd simulations in LightWave 8.3
Module 3 Crowd Animation Using Points, Particles and PFX Linker for creating crowd simulations in LightWave 8.3 Exercise 2 Section A Crowd Control Crowd simulation is something you see in movies every
More informationJava game programming. Game engines. Fayolle Pierre-Alain
Java game programming Game engines 2010 Fayolle Pierre-Alain Plan Some definitions List of (Java) game engines Examples of game engines and their use A first and simple definition A game engine is a (complex)
More information14.10.2014. Overview. Swarms in nature. Fish, birds, ants, termites, Introduction to swarm intelligence principles Particle Swarm Optimization (PSO)
Overview Kyrre Glette kyrrehg@ifi INF3490 Swarm Intelligence Particle Swarm Optimization Introduction to swarm intelligence principles Particle Swarm Optimization (PSO) 3 Swarms in nature Fish, birds,
More informationMasters in Human Computer Interaction
Masters in Human Computer Interaction Programme Requirements Taught Element, and PG Diploma in Human Computer Interaction: 120 credits: IS5101 CS5001 CS5040 CS5041 CS5042 or CS5044 up to 30 credits from
More informationThea Omni Light. Thea Spot Light. Light setup & Optimization
Light setup In this tutorial we will learn how to setup lights inside Thea Studio and how to create mesh lights and optimize them for faster rendering with less noise. Let us have a look at the different
More informationMasters in Computing and Information Technology
Masters in Computing and Information Technology Programme Requirements Taught Element, and PG Diploma in Computing and Information Technology: 120 credits: IS5101 CS5001 or CS5002 CS5003 up to 30 credits
More informationMasters in Networks and Distributed Systems
Masters in Networks and Distributed Systems Programme Requirements Taught Element, and PG Diploma in Networks and Distributed Systems: 120 credits: IS5101 CS5001 CS5021 CS4103 or CS5023 in total, up to
More informationMasters in Advanced Computer Science
Masters in Advanced Computer Science Programme Requirements Taught Element, and PG Diploma in Advanced Computer Science: 120 credits: IS5101 CS5001 up to 30 credits from CS4100 - CS4450, subject to appropriate
More informationGame Programming with Groovy. James Williams @ecspike Sr. Software Engineer, BT/Ribbit
Game Programming with Groovy James Williams @ecspike Sr. Software Engineer, BT/Ribbit About Me Sr. Software Engineer at BT/Ribbit Co-creator of Griffon, a desktop framework for Swing using Groovy Contributer
More informationMasters in Artificial Intelligence
Masters in Artificial Intelligence Programme Requirements Taught Element, and PG Diploma in Artificial Intelligence: 120 credits: IS5101 CS5001 CS5010 CS5011 CS4402 or CS5012 in total, up to 30 credits
More informationSchool of Computer Science
School of Computer Science Computer Science - Honours Level - 2014/15 October 2014 General degree students wishing to enter 3000- level modules and non- graduating students wishing to enter 3000- level
More informationMobile Game and App Development the Easy Way
Mobile Game and App Development the Easy Way Developed and maintained by Pocketeers Limited (http://www.pocketeers.co.uk). For support please visit http://www.appeasymobile.com This document is protected
More informationBachelor of Games and Virtual Worlds (Programming) Subject and Course Summaries
First Semester Development 1A On completion of this subject students will be able to apply basic programming and problem solving skills in a 3 rd generation object-oriented programming language (such as
More informationJava in Education. Choosing appropriate tool for creating multimedia is the first step in multimedia design
Java in Education Introduction Choosing appropriate tool for creating multimedia is the first step in multimedia design and production. Various tools that are used by educators, designers and programmers
More informationTopology Control and Mobility Strategy for UAV Ad-hoc Networks: A Survey
Topology Control and Mobility Strategy for UAV Ad-hoc Networks: A Survey Zhongliang Zhao, Torsten Braun Institute of Computer Science and Applied Mathematics, University of Bern Neubrückstrasse 10, 3012
More informationThe Car Tutorial Part 1 Creating a Racing Game for Unity
The Car Tutorial Part 1 Creating a Racing Game for Unity Introduction 3 We will show 3 Prerequisites 3 We will not show 4 Part 1: Assembling the Car 5 Adding Collision 6 Shadow settings for the car model
More informationBehavioral Animation Modeling in the Windows Environment
Behavioral Animation Modeling in the Windows Environment MARCELO COHEN 1 CARLA M. D. S. FREITAS 1 FLAVIO R. WAGNER 1 1 UFRGS - Universidade Federal do Rio Grande do Sul CPGCC - Curso de Pós Graduação em
More informationJavaFX Session Agenda
JavaFX Session Agenda 1 Introduction RIA, JavaFX and why JavaFX 2 JavaFX Architecture and Framework 3 Getting Started with JavaFX 4 Examples for Layout, Control, FXML etc Current day users expect web user
More informationIntroduction to scripting with Unity
Introduction to scripting with Unity Scripting is an essential part of Unity as it defines the behaviour of your game. This tutorial will introduce the fundamentals of scripting using Javascript. No prior
More informationVoice Driven Animation System
Voice Driven Animation System Zhijin Wang Department of Computer Science University of British Columbia Abstract The goal of this term project is to develop a voice driven animation system that could take
More informationA Multi-Agent Approach to a Distributed Schedule Management System
UDC 001.81: 681.3 A Multi-Agent Approach to a Distributed Schedule Management System VYuji Wada VMasatoshi Shiouchi VYuji Takada (Manuscript received June 11,1997) More and more people are engaging in
More informationCURRICULUM VITAE EDUCATION:
CURRICULUM VITAE Jose Antonio Lozano Computer Science and Software Development / Game and Simulation Programming Program Chair 1902 N. Loop 499 Harlingen, TX 78550 Computer Sciences Building Office Phone:
More informationAn evaluation of JavaFX as 2D game creation tool
An evaluation of JavaFX as 2D game creation tool Abstract With the current growth in the user experience,and the existence of multiple publishing platforms, the investigation of new game creation tools
More informationComputing Concepts with Java Essentials
2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Computing Concepts with Java Essentials 3rd Edition Cay Horstmann
More informationBuilding Applications Using Micro Focus COBOL
Building Applications Using Micro Focus COBOL Abstract If you look through the Micro Focus COBOL documentation, you will see many different executable file types referenced: int, gnt, exe, dll and others.
More informationComputer and Information Sciences
Computer and Information Sciences Dr. John S. Eickmeyer, Chairperson Computers are no longer huge machines hidden away in protected rooms and accessible to only a few highly-trained individuals. Instead,
More informationmouse (or the option key on Macintosh) and move the mouse. You should see that you are able to zoom into and out of the scene.
A Ball in a Box 1 1 Overview VPython is a programming language that is easy to learn and is well suited to creating 3D interactive models of physical systems. VPython has three components that you will
More informationCh 1: What is Game Programming Really Like? Ch 2: What s in a Game? Quiz #1 Discussion
Ch 1: What is Game Programming Really Like? Ch 2: What s in a Game? Quiz #1 Discussion Developing a Game Game Architecture Resources: Chapter 2 (Game Coding Complete) What was your last game architecture
More informationIntroduction Computer stuff Pixels Line Drawing. Video Game World 2D 3D Puzzle Characters Camera Time steps
Introduction Computer stuff Pixels Line Drawing Video Game World 2D 3D Puzzle Characters Camera Time steps Geometry Polygons Linear Algebra NURBS, Subdivision surfaces, etc Movement Collisions Fast Distances
More informationDeveloping an Inventory Management System for Second Life
Developing an Inventory Management System for Second Life Abstract Anthony Rosequist Workflow For the progress report a month ago, I set the goal to have a basic, functional inventory management system
More informationCS 4620 Practicum Programming Assignment 6 Animation
CS 4620 Practicum Programming Assignment 6 Animation out: Friday 14th November 2014 due: : Monday 24th November 2014 1 Introduction In this assignment, we will explore a common topic in animation: key
More informationCARS Configurable Automotive Research Simulator
CARS Configurable Automotive Research Simulator Dagmar Kern, Marco Müller, Stefan Schneegaß, Lukasz Wolejko-Wolejszo, Albrecht Schmidt Pervasive Computing University of Duisburg-Essen Schützenbahn 70 45117
More informationA Generic Virtual Reality Interaction System and its Extensions Using the Common Object Request Broker Architecture (CORBA)
A Generic Virtual Reality Interaction System and its Extensions Using the Common Object Request Broker Architecture (CORBA) ABSTRACT The paper describes the design and implementation of an immersive Virtual
More informationTHE BCS PROFESSIONAL EXAMINATIONS Diploma. April 2006 EXAMINERS REPORT. Systems Design
THE BCS PROFESSIONAL EXAMINATIONS Diploma April 2006 EXAMINERS REPORT Systems Design Question. a) Write a BRIEF explanation of the purpose of TWO of the following UML diagrams as used in Object- Oriented
More informationBroken Shard. Alpha Report. Benjamin Schagerl, Dominik Dechamps, Eduard Reger, Markus Wesemann. TUM Computer Games Laboratory
Broken Shard Alpha Report Benjamin Schagerl, Dominik Dechamps, Eduard Reger, Markus Wesemann TUM Computer Games Laboratory Desired Target Desired Target Network Server and Client One of our priority desired
More informationJava 7 Recipes. Freddy Guime. vk» (,\['«** g!p#« Carl Dea. Josh Juneau. John O'Conner
1 vk» Java 7 Recipes (,\['«** - < g!p#«josh Juneau Carl Dea Freddy Guime John O'Conner Contents J Contents at a Glance About the Authors About the Technical Reviewers Acknowledgments Introduction iv xvi
More informationLONG BEACH CITY COLLEGE MEMORANDUM
LONG BEACH CITY COLLEGE MEMORANDUM DATE: May 5, 2000 TO: Academic Senate Equivalency Committee FROM: John Hugunin Department Head for CBIS SUBJECT: Equivalency statement for Computer Science Instructor
More informationVisualisation in the Google Cloud
Visualisation in the Google Cloud by Kieran Barker, 1 School of Computing, Faculty of Engineering ABSTRACT Providing software as a service is an emerging trend in the computing world. This paper explores
More informationAnalysis of Micromouse Maze Solving Algorithms
1 Analysis of Micromouse Maze Solving Algorithms David M. Willardson ECE 557: Learning from Data, Spring 2001 Abstract This project involves a simulation of a mouse that is to find its way through a maze.
More informationSimulation Software: Practical guidelines for approaching the selection process
Practical guidelines for approaching the selection process Randall R. Gibson, Principal / Vice President Craig Dickson, Senior Analyst TranSystems I Automation Associates, Inc. Challenge Selecting from
More informationMasters in Human Computer Interaction
Masters in Human Computer Interaction Programme Requirements Taught Element, and PG Diploma in Human Computer Interaction: 120 credits: IS5101 CS5001 CS5040 CS5041 CS5042 or CS5044 up to 30 credits from
More informationAdding Animation With Cinema 4D XL
Step-by-Step Adding Animation With Cinema 4D XL This Step-by-Step Card covers the basics of using the animation features of Cinema 4D XL. Note: Before you start this Step-by-Step Card, you need to have
More information<Insert Picture Here> Java, the language for the future
1 Java, the language for the future Adam Messinger Vice President of Development The following is intended to outline our general product direction. It is intended for information
More information3D VIRTUAL DESKTOP APPLICATION Of UNSW. Introduction. What we propose to do 2/4. What we propose to do 1/4. What we propose to do 4/4
3D VIRTUAL DESKTOP APPLICATION Of UNSW Introduction Objective To build a stand alone or web based interactive virtual 3D map of the UNSW Kensington campus. What do we have to start off with? An existing
More informationMultiphase Flow - Appendices
Discovery Laboratory Multiphase Flow - Appendices 1. Creating a Mesh 1.1. What is a geometry? The geometry used in a CFD simulation defines the problem domain and boundaries; it is the area (2D) or volume
More informationA static representation for ToonTalk programs
A static representation for ToonTalk programs Mikael Kindborg mikki@ida.liu.se www.ida.liu.se/~mikki Department of Computer and Information Science Linköping University Sweden Abstract Animated and static
More informationEvent processing in Java: what happens when you click?
Event processing in Java: what happens when you click? Alan Dix In the HCI book chapter 8 (fig 8.5, p. 298), notification-based user interface programming is described. Java uses this paradigm and you
More informationWeb Application Testing. Web Performance Testing
Web Application Testing Web Performance Testing Objectives of Performance Testing Evaluate runtime compliance to performance requirements Check different properties such as throughput (bits/sec, packets/sec)
More informationSCALABILITY AND AVAILABILITY
SCALABILITY AND AVAILABILITY Real Systems must be Scalable fast enough to handle the expected load and grow easily when the load grows Available available enough of the time Scalable Scale-up increase
More informationGraphics. Computer Animation 고려대학교 컴퓨터 그래픽스 연구실. kucg.korea.ac.kr 1
Graphics Computer Animation 고려대학교 컴퓨터 그래픽스 연구실 kucg.korea.ac.kr 1 Computer Animation What is Animation? Make objects change over time according to scripted actions What is Simulation? Predict how objects
More informationExperiences with 2-D and 3-D Mathematical Plots on the Java Platform
Experiences with 2-D and 3-D Mathematical Plots on the Java Platform David Clayworth Maplesoft What you will learn > Techniques for writing software that plots mathematical and scientific data > How to
More informationSuperViz: An Interactive Visualization of Super-Peer P2P Network
SuperViz: An Interactive Visualization of Super-Peer P2P Network Anthony (Peiqun) Yu pqyu@cs.ubc.ca Abstract: The Efficient Clustered Super-Peer P2P network is a novel P2P architecture, which overcomes
More informationAgile Business Process Automation
Agile Business Process Automation by David Nichols Currently there is a lot of excitement and competition in the Business Process Automation space, however, despite the plethora of BPA platforms available,
More informationHow to Develop Accessible Linux Applications
Sharon Snider Copyright 2002 by IBM Corporation v1.1, 2002 05 03 Revision History Revision v1.1 2002 05 03 Revised by: sds Converted to DocBook XML and updated broken links. Revision v1.0 2002 01 28 Revised
More informationSOFA an Open Source Framework for Medical Simulation
SOFA an Open Source Framework for Medical Simulation J. ALLARD a P.-J. BENSOUSSAN b S. COTIN a H. DELINGETTE b C. DURIEZ b F. FAURE b L. GRISONI b and F. POYER b a CIMIT Sim Group - Harvard Medical School
More informationGame Design From Concepts To Implementation
Game Design From Concepts To Implementation Overview of a Game Engine What is a Game Engine? (Really) Technical description of game: A Soft real-time interactive agent-based computer simulation A game
More informationDM810 Computer Game Programming II: AI. Lecture 11. Decision Making. Marco Chiarandini
DM810 Computer Game Programming II: AI Lecture 11 Marco Chiarandini Department of Mathematics & Computer Science University of Southern Denmark Resume Decision trees State Machines Behavior trees Fuzzy
More informationGRAFICA - A COMPUTER GRAPHICS TEACHING ASSISTANT. Andreas Savva, George Ioannou, Vasso Stylianou, and George Portides, University of Nicosia Cyprus
ICICTE 2014 Proceedings 1 GRAFICA - A COMPUTER GRAPHICS TEACHING ASSISTANT Andreas Savva, George Ioannou, Vasso Stylianou, and George Portides, University of Nicosia Cyprus Abstract This paper presents
More informationSmall Group Software Development: A Case Study
Small Group Software Development: A Case Study Rob Jansen University of South Carolina University of Minnesota, Morris [phone number] jans0184@morris.umn.edu ABSTRACT The development process that a group
More informationJMulTi/JStatCom - A Data Analysis Toolkit for End-users and Developers
JMulTi/JStatCom - A Data Analysis Toolkit for End-users and Developers Technology White Paper JStatCom Engineering, www.jstatcom.com by Markus Krätzig, June 4, 2007 Abstract JStatCom is a software framework
More informationFire Simulation For Games
Fire Simulation For Games Dennis Foley Abstract Simulating fire and smoke as well as other fluid like structures have been done in many different ways. Some implementations use very accurate physics some
More informationC O M P U C O M P T U T E R G R A E R G R P A H I C P S Computer Animation Guoying Zhao 1 / 66 /
Computer Animation Guoying Zhao 1 / 66 Basic Elements of Computer Graphics Modeling construct the 3D model of the scene Rendering Render the 3D model, compute the color of each pixel. The color is related
More informationTesting Intelligent Device Communications in a Distributed System
Testing Intelligent Device Communications in a Distributed System David Goughnour (Triangle MicroWorks), Joe Stevens (Triangle MicroWorks) dgoughnour@trianglemicroworks.com United States Smart Grid systems
More informationTHE APPLICATION OF ARTIFICIAL INTELLIGENCE TO SOLVE A PHYSICAL PUZZLE. Dana Cremer
THE APPLICATION OF ARTIFICIAL INTELLIGENCE TO SOLVE A PHYSICAL PUZZLE Dana Cremer Submitted to the faculty of the University Graduate School in partial fulfillment of the requirements for the degree Master
More informationGGobi meets R: an extensible environment for interactive dynamic data visualization
New URL: http://www.r-project.org/conferences/dsc-2001/ DSC 2001 Proceedings of the 2nd International Workshop on Distributed Statistical Computing March 15-17, Vienna, Austria http://www.ci.tuwien.ac.at/conferences/dsc-2001
More informationModernizing Simulation Input Generation and Post-Simulation Data Visualization with Eclipse ICE
and Post- Data Visualization with Eclipse ICE Alex McCaskey Research Staff Oak Ridge National Laboratory mccaskeyaj@ornl.gov @amccaskey2223 Taylor Patterson Research Associate Oak Ridge National Laboratory
More informationProcess Automation Tools For Small Business
December 3, 2013 Tom Bellinson Process Automation from Scratch Over the course of 2013 I have written about a number of canned off the shelf (COTS) products that can be used to automate processes with
More informationMasters in Information Technology
Computer - Information Technology MSc & MPhil - 2015/6 - July 2015 Masters in Information Technology Programme Requirements Taught Element, and PG Diploma in Information Technology: 120 credits: IS5101
More informationRobot Task-Level Programming Language and Simulation
Robot Task-Level Programming Language and Simulation M. Samaka Abstract This paper presents the development of a software application for Off-line robot task programming and simulation. Such application
More informationMaya 2014 Basic Animation & The Graph Editor
Maya 2014 Basic Animation & The Graph Editor When you set a Keyframe (or Key), you assign a value to an object s attribute (for example, translate, rotate, scale, color) at a specific time. Most animation
More informationANIMATION a system for animation scene and contents creation, retrieval and display
ANIMATION a system for animation scene and contents creation, retrieval and display Peter L. Stanchev Kettering University ABSTRACT There is an increasing interest in the computer animation. The most of
More informationProposal for a Virtual 3D World Map
Proposal for a Virtual 3D World Map Kostas Terzidis University of California at Los Angeles School of Arts and Architecture Los Angeles CA 90095-1467 ABSTRACT The development of a VRML scheme of a 3D world
More informationOrange Unified School District Video Game Design II Year Course
Course No. B861 O642 Orange Unified School District Video Game Design II Year Course Grade Level: 10-12 Prerequisites: Video Game Design 1 Introduction to the Subject Video Game Design II is an advanced
More informationAutonomous Advertising Mobile Robot for Exhibitions, Developed at BMF
Autonomous Advertising Mobile Robot for Exhibitions, Developed at BMF Kucsera Péter (kucsera.peter@kvk.bmf.hu) Abstract In this article an autonomous advertising mobile robot that has been realized in
More informationThe Application of Process Automation and Optimisation in the Rapid Development of New Passenger Vehicles at SAIC Motor
The Application of Process Automation and Optimisation in the Rapid Development of New Passenger Vehicles at SAIC Motor Dave Husson Vehicle CAE Manager, SAIC Motor UK Technical Centre Lowhill Lane, Longbridge,
More informationMobile App Development Using App Inventor
Mobile App Development Using App Inventor October 2013 Mahsa Mohaghegh and Mobile Development Team @ Unitec The Post-PC Era 2007: Apple releases ios on the iphone 2008: Google releases Android on the HTC
More informationAn evaluation of the Java Card environment
An evaluation of the Java Card environment Christophe Rippert, Daniel Hagimont Contact: Christophe Rippert, Sirac Laboratory INRIA Rhône-Alpes, 655 avenue de l Europe Montbonnot 38334 St Ismier Cedex,
More informationFundamentals of Computer Animation
Fundamentals of Computer Animation Principles of Traditional Animation How to create maximum impact page 1 How to create maximum impact Early animators worked from scratch to analyze and improve upon silence
More informationCourse Overview. CSCI 480 Computer Graphics Lecture 1. Administrative Issues Modeling Animation Rendering OpenGL Programming [Angel Ch.
CSCI 480 Computer Graphics Lecture 1 Course Overview January 14, 2013 Jernej Barbic University of Southern California http://www-bcf.usc.edu/~jbarbic/cs480-s13/ Administrative Issues Modeling Animation
More informationDistributed Dynamic Load Balancing for Iterative-Stencil Applications
Distributed Dynamic Load Balancing for Iterative-Stencil Applications G. Dethier 1, P. Marchot 2 and P.A. de Marneffe 1 1 EECS Department, University of Liege, Belgium 2 Chemical Engineering Department,
More informationTOPAS: a Web-based Tool for Visualization of Mapping Algorithms
TOPAS: a Web-based Tool for Visualization of Mapping Algorithms 0. G. Monakhov, 0. J. Chunikhin, E. B. Grosbein Institute of Computational Mathematics and Mathematical Geophysics, Siberian Division of
More informationMasters of Science in Software & Information Systems
Masters of Science in Software & Information Systems To be developed and delivered in conjunction with Regis University, School for Professional Studies Graphics Programming December, 2005 1 Table of Contents
More informationMobility Introduction Android. Duration 16 Working days Start Date 1 st Oct 2013
Mobility Introduction Android Duration 16 Working days Start Date 1 st Oct 2013 Day 1 1. Introduction to Mobility 1.1. Mobility Paradigm 1.2. Desktop to Mobile 1.3. Evolution of the Mobile 1.4. Smart phone
More informationDigital 3D Animation
Elizabethtown Area School District Digital 3D Animation Course Number: 753 Length of Course: 1 semester 18 weeks Grade Level: 11-12 Elective Total Clock Hours: 120 hours Length of Period: 80 minutes Date
More informationAn Eclipse Plug-In for Visualizing Java Code Dependencies on Relational Databases
An Eclipse Plug-In for Visualizing Java Code Dependencies on Relational Databases Paul L. Bergstein, Priyanka Gariba, Vaibhavi Pisolkar, and Sheetal Subbanwad Dept. of Computer and Information Science,
More informationGames Development Education to Industry. Dr. Catherine French Academic Group Leader Games Programming, Software Engineering and Mobile Systems
Games Development Education to Industry Dr. Catherine French Academic Group Leader Games Programming, Software Engineering and Mobile Systems How do they get from inspiration to destination? Where do they
More informationWebSphere ESB Best Practices
WebSphere ESB Best Practices WebSphere User Group, Edinburgh 17 th September 2008 Andrew Ferrier, IBM Software Services for WebSphere andrew.ferrier@uk.ibm.com Contributions from: Russell Butek (butek@us.ibm.com)
More informationOpenMI 'in a nutshell'
OpenMI Association, Technical Committee January 2010 1. Introduction... 1 2. Standard... 2 2.1. Definitions... 4 2.1.1. Model... 4 2.1.2. Value... 4 2.1.3. Spatial... 5 2.2. Composition building... 5 2.3.
More informationSoftware Engineering Best Practices. Christian Hartshorne Field Engineer Daniel Thomas Internal Sales Engineer
Software Engineering Best Practices Christian Hartshorne Field Engineer Daniel Thomas Internal Sales Engineer 2 3 4 Examples of Software Engineering Debt (just some of the most common LabVIEW development
More informationMocap class 8 - Creating an interactive 3D garden JMG Spring 2011
Mocap class 8 - Creating an interactive 3D garden JMG Spring 2011 INTRODUCTION: The interactive 3D garden project is a first step for creating a dynamic ecosystem, a natural environment where several animations
More informationSoftware Development Workflow in Robotics
Software Development Workflow in Robotics Alois Knoll Simon Barner, Michael Geisinger, Markus Rickert Robotics and Embedded Systems Department of Informatics Technische Universität München ICRA 2009 Workshop
More informationFuzzy Cognitive Map for Software Testing Using Artificial Intelligence Techniques
Fuzzy ognitive Map for Software Testing Using Artificial Intelligence Techniques Deane Larkman 1, Masoud Mohammadian 1, Bala Balachandran 1, Ric Jentzsch 2 1 Faculty of Information Science and Engineering,
More informationSchool of Computer Science
School of Computer Science Computer Science - Honours Level - 2015/6 - August 2015 General degree students wishing to enter 3000- level modules and non- graduating students wishing to enter 3000- level
More information