Formations in flow fields

Size: px
Start display at page:

Download "Formations in flow fields"

Transcription

1 Formations in flow fields Rick van Meer June 11, Introduction Pathfinding and formations (i.e. an arrangement of agents) are both a part of artificial intelligence and can be used in games. However, it is far from trivial to properly combine these two elements. Several issues arise when formations follow a path. Due to the fact that the agents in a formation are close together it is very likely that their paths overlap each other; the agents continuously have to locally adapt their path. Using a global navigation method, like flow fields, instead of a regular pathfinding method like A* can drastically reduce the time taken to calculate the paths for agents. Global navigation methods do not need a starting point for a path, as it essentially calculates the path towards a goal from every possible starting point. This means that only one flow field is needed to guide all agents towards their shared goal. Another issue remains: the formation will not be able to retain its form along the whole path. Corners and narrow passages may force the formation to adjust its form. Flow fields will not solve this issue because they do not take into account the width of the agent or the formation of agents. The issue needs to be solved locally; the formation itself needs to change in order to follow the path. In this research an attempt has been made to solve this issue. 2 Flow Fields Flow fields are a type of global navigation. A simplified explanation of a flow field would be a field full of vectors that point in the direction one should go in order to get to their goal (Reynolds (1999)). Creating such a flow field can be done in many different ways. A very naive approach would be to start at the goal and iteratively calculate the cost for every neighbor until all cells have a cost assigned. The approach taken in this research is a simplified version of the flow field tiles as explained in Emerson (2013). The creation of a flow field consists of several passes: 1. Tile pass 2. Line of sight pass 3. Integration pass 4. Flow field pass Before explaining these passes it is important to know what a cost field is. 2.1 Cost field The area for which a flow field will be calculated needs to store how traversable it is. A cost field is the data structure used to store said cost. The area is divided into cells (a 100x100 grid for example) and a cost is assigned to each of these cells. The cost specifies how traverable each cell is. Figure 1 is an example of such a cost field. A color gradient from green to red visualizes how costly a cell is and a black cell means that a cell is not traversable; e.g. a wall. The actual values stored for the cost are either 0 (reserved for non-traversable cells) or in the range 1-255, in which a higher number indicates a less traversable cell. A cost of 1 means there is no actual cost in that cell besides having to traverse it. 1

2 Figure 1: The cost field used for the following passes 2.2 Flow field passes In order to generate the flow field only three of the previously mentioned four passes are necessary. The tile pass is purely to increase the performance of the flow field generation. The following is an explanation of the passes in the correct order to generate a flow field Tile Pass Even though flow fields are a global navigation method a big part of the flow field will never be used. When multiple agents move from the top left to the top right of an area it is possible that the bottom half of the flow field is of no use. To take care of this flow field tiles are used, with each flow field tile being a part of the flow field. These tiles can be seen as a big grid overlay on the flow field. Instead of calculating the whole flow field it is decided beforehand which flow field tiles are of use for the situation (taking into account both the start point and the goal). The size of these tiles is important and the preferable size is different per application. Bigger tiles result in a larger portion of the flow field that needs to be generated, but there is a smaller chance that the flow field has to be recalculated. Smaller tiles will be great for performance when generating the flow field, but it takes longer to calculate a path along the tiles and the path might be too small for multiple agents. With a starting point and goal provided A* can be used to calculate a path along the tiles (each tile is a node and the cost is based on the average cost in the tile). This path contains all the tiles that will be used when calculating the flow field. However, it is possible that agents cross other flow field tiles (due to the formation or the flow field itself) or that agents are added that share the same goal and occupy an other flow field tile. An example of this can be seen in figure 2a, which contains the active tiles after the initial pass. Later on, when an agent passes a flow field tile not yet calculated, another flow field tile is activated as can be seen in figure 2b. Unfortunately, whenever a new flow field tile is activated the whole flow field (with all the other active flow field tiles) has to be recalculated. Due to the newly added flow field tile better paths might be created that affect other tiles as well. Not enough time was available to fully finish the tile pass and as a result of this incorrect flow fields can be generated. The tile path calculation does not take into account whether it is possible to travel between tiles, which sometimes causes impossible paths to be generated. A path could have a wall in the middle of it and the flow field will not go beyond that wall: there will be no flow field data available behind that wall. It is possible to solve this issue, as will be explained in section 4. 2

3 (a) Initial flow field tiles used, an external force pushes (b) Flow field tile added upon request and the flow field the agent away from the predicted path has been recalculated Figure 2: Flow field tiles visualized Line of Sight Pass The line of sight pass (LOS pass) is used to find all the cells that are visible from the goal. In this case visible means that a line can be drawn from the cell to the goal without crossing any cells with a cost above 1 (the lowest cost possible). If a cell has line of sight an agent can move towards the goal in a straight line without having to worry about any obstacles. The LOS pass starts a wavefront with the goal as its starting point. A wavefront owes its name to the fact that it moves like the front of a wave. While it moves in every direction it will come across everything that is reachable from its starting point. Figure 3 visualizes how a wavefront propagates through a 5x5 area. (a) (b) (c) (d) (e) (f) Figure 3: A wavefront visualized These wavefronts are used in both the LOS pass and the integration pass, as both passes need to traverse the cost field in a similar fashion. In figure 3 the red cells are the active cells of the wavefront and the actions taken in the LOS and integration pass will take place in these cells. The initial wavefront created by the LOS pass flags every cell as having line of sight. As the wavefront progresses it will set the integrated cost for every cell it passes. The integrated cost is the total cost it would take to travel from that cell to the goal cell (which is trivial as long as the cell has direct line of sight). However, whenever a cell has a cost above 1 it no longer has line of sight and the wavefront will stop (meaning that there is no LOS pass when the goal has a cost above 1). If in addition the cell turns out to be a corner a line segment will be made. This line is the edge between what is visible and what is not visible. The line is created using Bresenham s line algorithm from the corner cell outwards until it reaches the flow 3

4 field border, with the goal as the origin. Along this line every cell gets flagged as wave front blocking. This means that the LOS pass wavefront will not pass this line. As a result of that line the wavefront will never reach any cells that are out of line of sight. The following pseudocode snippet demonstrates how the LOS pass could be implemented: void LOSPass() { if (goalcost > 1) return; while (wavefront.numpoints > 0) { for (cell : wavefront.cells) { if (cell.cost > 1) { if (iscorner(cell)) createwavefrontblockedlines(); // Bresenham s line algorithm cell.stop(); else { cell.flags = einlineofsight; cell.integratedcost = length(cell - goal); wavefront.advancecells(); The resulting LOS field can be seen in figure 4, with white and black respectively being in and out line of sight, green being a LOS corner, and blue being a wave front blocked line. The cube visualizes the goal. Figure 4: The result of the LOS pass on the cost field shown earlier Integration Pass The integration pass integrates the cost for every cell that does not have line of sight. Cells that do have line of sight already have their integrated cost calculated in the LOS pass. The integration pass starts with a list of wavefronts. These wavefronts are created in the LOS pass; every LOS corner is the start of an integration wavefront. The LOS corners are the points at which line of sight stops, everything after this point does not have an integrated cost yet. The wavefronts simultaneously integrate outwards until they hit a border, a wall, or the wave front blocked line. For every cell the integrated cost of the cheapest neighbor and the cost of the cell are added together to get the integrated cost of the cell. With multiple wavefronts active at the same time it is possible that they will collide and integrate cells more than once. To avoid unnecessary integration the wavefront will stop whenever the newly calculated integrated cost is not significantly lower than the old integrated cost. If we would not check for a significant change a wavefront could integrate a previously integrated area without improving the integrated costs 4

5 significantly (a big performance cost for a small gain). The size of significant cost difference depends on how important it is to get the fastest flow field possible. A higher significant cost difference results in less backtracking wavefronts and thus creates the flow field faster. A lower significant cost difference results in a faster flow field, but it takes longer to create that flow field. To implement the integration pass the following pseudocode snippet can be used: void IntegrationPass() { for (wavefront : wavefronts) { if (wavefront.numcells <= 0) { delete wavefront; for (point : wavefront) { float cost = cell.integratedcost; for (neighbourcell : cell) { if (neighbourcell.integratedcost > 0 && neighbourcell.integratedcost + cell.cost < cost - SIGNIFICANT_COST_DIFFERENCE) { cost = neighbourcell.integratedcost + cell.cost; // The wavefront no longer provides a significant better integrated cost if (cell.integratedcost == cost) { celll.stop(); else { cell.integratedcost = cost; wavefront.advancecells(); In the end an integration field like the one in figure 5a is created, with a color gradient visualizing the integrated cost and the cube being the goal. (a) The result of the integration pass on the earlier shown (b) Color gradient from the lowest to the highest integrated cost cost field (please note that flow field tiles are disabled and that this is a section of a bigger terrain) Figure 5: The visualization of an integration field 5

6 2.2.4 Flow Field Pass Of all the passes the flow field pass is the most trivial to implement. This pass generates the actual flow field in which every cell contains a direction vector. The flow field passes iterates over all the cells and finds the cheapest neighboring cell in the Moore neighborhood with a radius of 1. It then generates a direction vector pointing towards that neighbor. This will provide a path from every cell towards the goal when the vectors are followed. The pseudocode would look like this: void FlowPass() { for (cell : flowfield) { if (cell.flags & ehaslineofsight) { cell.direction = enone; else { float cheapestcost = FLT_MAX; Cell cheapestcell = cell; for (neighbourcell : cells) { if (neighbourcell.integratedcost < cheapestcost) { cheapeastcost = neighbourcell.integratedcost; cheapestcell = neighbourcell cell.direction = getdirection(cell, cheapestcell); A resulting flow field can be seen in figure 6, in which the cube is the goal. The arrows in the flow field indicate in which direction an agent should move. When a cell does not contain an arrow the agent is able to move to the goal in a straight line. 6

7 Figure 6: The result of a flow field pass (flow field tiles disabled) 3 Formations A formation as used in this research is an arrangement of agents. Several examples can be seen in figure 7. Moving such formations can be a tricky task (Bjore (2013)). It gets even more difficult if you want the form to be retained. When moving along a path corners and small passages might force the formation to change its form, and that is no easy task. (a) Example of a line formation (b) Example of a square formation (c) Example of a V formation Figure 7: Tactical formations In order to solve the issue of formations not being able to properly follow a path the formation itself needs to change its shape. However, how should this be handled? It would be useful if every formation type would have a properly modified formation for every situation and for all agent amounts; a separate solution for every type of obstacle. In a more realistic and doable scenario the formation would attempt to modify itself on a lower level based on its surroundings. When the upper right part of the formation has to make way for an obstacle it would not be necessary to change the whole formation; the upper right part of the formation can solve it locally (as seen in figure 8). Simply splitting up the formation in a grid-like fashion could potentially solve the issue. However, it would only be able to solve the previously described situation if 7

8 it would be at a small scale. In case the entire right half of the formation has to make way for an obstacle it would no longer take care of the situation properly. It would indeed result in a noticeably better formation, but it can not create more space. Ideally, the right half of the formation would mix with the left half. (a) Formation is moving up and (b) Formation solves the problem hits an obstacle at the upper right locally instead of transforming the part of the formation whole formation Figure 8: Local avoidance in a formation 3.1 Layered Formations Layered formations attempt to solve this by splitting up the formation in different layers, as visualized in figure 9. As can be seen the structure is very similar to a quadtree; every layer has four children. In such a layered formation you end up having multiple grids, every next layer having grid cells twice the size of the previous layer. This method can be seen as a list of modifiable formations, with each next element having a more drastic effect on the formation as a whole. Figure 9: A square formation with 16 agents All of the layers have a position relative to their parent layer in the formation. This structure allows the formation to rearrange layers or agents (the deepest layer contains agents) whenever necessary. As a result of this it is possible to both gradually and partially change the formation. In figure 10 an example is shown in which a square formation gradually changes its form to fit through a narrow passage. In theory this solution works: the formation is able to adjust its form at different scales independent of the rest of the formation. However, in practice another issue arises. The layered formation can change form, but it is unclear when it should do so. It is difficult to detect if a formation should get smaller, and if it should get smaller: how much and on which side? Unfortunately, there was no time available to properly take care of this problem and as a result of this the layered formations have not yet been able to travel across a cost field with walls. 8

9 (a) One agent layer needs more (b) All agent layers need more space space (c) Even more space needed: upper layer changes form the Figure 10: A square formation gradually changes its form 3.2 Formation Movement Even though we have not yet managed to move layered formations through complicated terrains with walls, moving it while using a flow field is still possible. In order to find a correct system to move a layered formation we started with single agents. Moving agents by the use of a flow field is straightforward: the agent queries the flow field for a direction and then uses it as a force to move. However, moving formations requires two different forces: the flow field force and the formation force (to keep an agent at its local position in the formation). The formation force has a strength that is dependent on the distance between the agent and its formation position. The farther the agent is the stronger the force will be. Properly weighing these forces (equal weights gave the best results in our application) creates a formation that both flows and retains its form. Making the step from regular formations to layered formations only changes the way the formation position is calculated. In regular formations the formation position is trivial, in layered formations it is relative to the position of the layer of the agent. These layers themselves move as well, just like the agents do. The layered formations correctly flowed across terrains when these methods were applied. However, there were still some issues. For example, when formations got closer to their goal the flow field force would differ so much from the formation force that it resulted in agents coming to a complete halt. The formation as a whole broke as well: every agent tried to get to the middle point (the goal), as visualized in figure 11. We solved this by gradually increasing the weight of the formation force and decreasing the weight of the flow field force when the formation got closer to its goal. Another problem, which has not been solved yet, is that the formation force could push agents into walls. This problem has not been solved mainly because it is related to layered formation transformations. The formation force weight should be decreased at the same time as the layered formation transformations happen. Due to the fact that we did not have the time to properly implement when these transformations should happen this problem has not been solved either. (a) (b) (c) (d) Figure 11: Flow field force getting too strong in relation to the formation force 9

10 4 Conclusion and Future Work Flow fields have been proven to work before (Emerson (2013)) and layered formations are capable of layered transformations. The difficulty lies in the fact that it is hard to detect when the formation should change. Having layered formations will not automatically make those formations adapt to the environment correctly. They should properly detect when to change, and maybe even more important: when to rewind those changes to get back its original form. Only when the formations are able to do this correctly they will be able to fully use the flow fields to flow towards their goal. Another point of improvement is the tile pass for generating a flow field. In its current state it only works when the area contains no walls. It should identify entrances between tiles and create a proper path based on those entrances. Annotated Hierarchical A* (Harabor and Botea (2008)) could solve this problem. AHA* also takes into account the width of the agents (in our case the width of the formation) which could reduce the amount of transformation needed in the formation. References Bjore, S. (2013). Techniques for formation movement using steering circles. In Game AI Pro. Emerson, E. (2013). Crowd pathfinding and steering using flow field tiles. In Game AI Pro. Harabor, D., & Botea, A. (2008). Hierarchical path planning for multi-size agents in heterogeneous environments. Retrieved from bartak/keps2008/download/paper05.pdf Reynolds, C. W. (1999). Steering behaviors for autonomous characters. Retrieved from 10

Game AI: The set of algorithms, representations, tools, and tricks that support the creation and management of real-time digital experiences

Game AI: The set of algorithms, representations, tools, and tricks that support the creation and management of real-time digital experiences Game AI: The set of algorithms, representations, tools, and tricks that support the creation and management of real-time digital experiences : A rule of thumb, simplification, or educated guess that reduces

More information

High level NavMesh Building Components

High level NavMesh Building Components High level NavMesh Building Components Here we introduce four high level components for the navigation system: NavMeshSurface for building and enabling a navmesh surface for one agent type. NavMeshModifier

More information

Beyond A*: Speeding up pathfinding through hierarchical abstraction. Daniel Harabor NICTA & The Australian National University

Beyond A*: Speeding up pathfinding through hierarchical abstraction. Daniel Harabor NICTA & The Australian National University Beyond A*: Speeding up pathfinding through hierarchical abstraction Daniel Harabor NICTA & The Australian National University Motivation Myth: Pathfinding is a solved problem. Motivation Myth: Pathfinding

More information

Non-Homogeneous Swarms vs. MDP s A Comparison of Path Finding Under Uncertainty

Non-Homogeneous Swarms vs. MDP s A Comparison of Path Finding Under Uncertainty Non-Homogeneous Swarms vs. MDP s A Comparison of Path Finding Under Uncertainty Michael Comstock December 6, 2012 1 Introduction This paper presents a comparison of two different machine learning systems

More information

Map Abstraction with Adjustable Time Bounds

Map Abstraction with Adjustable Time Bounds Map Abstraction with Adjustable Time Bounds Sourodeep Bhattacharjee and Scott D. Goodwin School of Computer Science, University of Windsor Windsor, N9B 3P4, Canada sourodeepbhattacharjee@gmail.com, sgoodwin@uwindsor.ca

More information

CS 378: Computer Game Technology

CS 378: Computer Game Technology CS 378: Computer Game Technology Dynamic Path Planning, Flocking Spring 2012 University of Texas at Austin CS 378 Game Technology Don Fussell Dynamic Path Planning! What happens when the environment changes

More information

Universiteit Leiden Computer Science

Universiteit Leiden Computer Science Universiteit Leiden Computer Science Optimizing octree updates for visibility determination on dynamic scenes Name: Hans Wortel Student-no: 0607940 Date: 28/07/2011 1st supervisor: Dr. Michael Lew 2nd

More information

Traffic/Flocking/Crowd AI. Gregory Miranda

Traffic/Flocking/Crowd AI. Gregory Miranda Traffic/Flocking/Crowd AI Gregory Miranda Introduction What is Flocking? Coordinated animal motion such as bird flocks and fish schools Initially described by Craig Reynolds Created boids in 1986, generic

More information

Physically-Based Laser Simulation

Physically-Based Laser Simulation Physically-Based Laser Simulation Greg Reshko Carnegie Mellon University reshko@cs.cmu.edu Dave Mowatt Carnegie Mellon University dmowatt@andrew.cmu.edu Abstract In this paper, we describe our work on

More information

Welfare Navigation Using Genetic Algorithm

Welfare Navigation Using Genetic Algorithm Welfare Navigation Using Genetic Algorithm David Erukhimovich and Yoel Zeldes Hebrew University of Jerusalem AI course final project Abstract Using standard navigation algorithms and applications (such

More information

(Refer Slide Time: 00:02:00)

(Refer Slide Time: 00:02:00) Computer Graphics Prof. Sukhendu Das Dept. of Computer Science and Engineering Indian Institute of Technology, Madras Lecture - 18 Polyfill - Scan Conversion of a Polygon Today we will discuss the concepts

More information

Computer Graphics Prof. Sukhendu Das Dept. of Computer Science and Engineering Indian Institute of Technology, Madras Lecture - 14

Computer Graphics Prof. Sukhendu Das Dept. of Computer Science and Engineering Indian Institute of Technology, Madras Lecture - 14 Computer Graphics Prof. Sukhendu Das Dept. of Computer Science and Engineering Indian Institute of Technology, Madras Lecture - 14 Scan Converting Lines, Circles and Ellipses Hello everybody, welcome again

More information

ARTIFICIAL INTELLIGENCE: SITUATIONAL AWARENESS

ARTIFICIAL INTELLIGENCE: SITUATIONAL AWARENESS ARTIFICIAL INTELLIGENCE: SITUATIONAL AWARENESS So first of all before we start, we have to ask our self: What s is situational awareness exactly. A Quick google search reveals that: WHAT IS SITUATIONAL

More information

The Drunken Sailor s Challenge

The Drunken Sailor s Challenge The Drunken Sailor s Challenge CS7001 mini-project by Arya Irani with Tucker Balch September 29, 2003 Introduction The idea [1] is to design an agent to navigate a two-dimensional field of obstacles given

More information

N N Sudoku Solver. Sequential and Parallel Computing

N N Sudoku Solver. Sequential and Parallel Computing N N Sudoku Solver Sequential and Parallel Computing Abdulaziz Aljohani Computer Science. Rochester Institute of Technology, RIT Rochester, United States aaa4020@rit.edu Abstract 'Sudoku' is a logic-based

More information

Scanning Real World Objects without Worries 3D Reconstruction

Scanning Real World Objects without Worries 3D Reconstruction Scanning Real World Objects without Worries 3D Reconstruction 1. Overview Feng Li 308262 Kuan Tian 308263 This document is written for the 3D reconstruction part in the course Scanning real world objects

More information

6.141: Robotics systems and science Lecture 10: Implementing Motion Planning

6.141: Robotics systems and science Lecture 10: Implementing Motion Planning 6.141: Robotics systems and science Lecture 10: Implementing Motion Planning Lecture Notes Prepared by N. Roy and D. Rus EECS/MIT Spring 2011 Reading: Chapter 3, and Craig: Robotics http://courses.csail.mit.edu/6.141/!

More information

Unit 21 - Creating a Navigation Bar in Macromedia Fireworks

Unit 21 - Creating a Navigation Bar in Macromedia Fireworks Unit 21 - Creating a Navigation Bar in Macromedia Fireworks Items needed to complete the Navigation Bar: Unit 21 - House Style Unit 21 - Graphics Sketch Diagrams Document ------------------------------------------------------------------------------------------------

More information

CS125 : Introduction to Computer Science. Lecture Notes #38 and #39 Quicksort. c 2005, 2003, 2002, 2000 Jason Zych

CS125 : Introduction to Computer Science. Lecture Notes #38 and #39 Quicksort. c 2005, 2003, 2002, 2000 Jason Zych CS125 : Introduction to Computer Science Lecture Notes #38 and #39 Quicksort c 2005, 2003, 2002, 2000 Jason Zych 1 Lectures 38 and 39 : Quicksort Quicksort is the best sorting algorithm known which is

More information

Navigation and Metric Path Planning

Navigation and Metric Path Planning Navigation and Metric Path Planning October 4, 2011 Minerva tour guide robot (CMU): Gave tours in Smithsonian s National Museum of History Example of Minerva s occupancy map used for navigation Objectives

More information

Picture Maze Generation by Repeated Contour Connection and Graph Structure of Maze

Picture Maze Generation by Repeated Contour Connection and Graph Structure of Maze Computer Science and Engineering 2013, 3(3): 76-83 DOI: 10.5923/j.computer.20130303.04 Picture Maze Generation by Repeated Contour Connection and Graph Structure of Maze Tomio Kurokawa Department of Information

More information

Path Planning. Marcello Restelli. Dipartimento di Elettronica e Informazione Politecnico di Milano tel:

Path Planning. Marcello Restelli. Dipartimento di Elettronica e Informazione Politecnico di Milano   tel: Marcello Restelli Dipartimento di Elettronica e Informazione Politecnico di Milano email: restelli@elet.polimi.it tel: 02 2399 3470 Path Planning Robotica for Computer Engineering students A.A. 2006/2007

More information

Pathfinding. Pathfinding Planned Movement

Pathfinding. Pathfinding Planned Movement 345 Ludic Computing Lecture 10 Pathfinding Simon Colton & Alison Pease Computational Creativity Group Department of Computing Imperial College London www.doc.ic.ac.uk/ccg 1 Pathfinding Planned Movement

More information

I may not have gone where I intended to go, but I think I have ended up where I needed to be. Douglas Adams

I may not have gone where I intended to go, but I think I have ended up where I needed to be. Douglas Adams Disclaimer: I use these notes as a guide rather than a comprehensive coverage of the topic. They are neither a substitute for attending the lectures nor for reading the assigned material. I may not have

More information

View Frustum Culling with Octree

View Frustum Culling with Octree View Frustum Culling with Octree Raka Mahesa 13508074 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132, Indonesia if18074@itb.ac.id

More information

REINFORCEMENT LEARNING: MDP APPLIED TO AUTONOMOUS NAVIGATION

REINFORCEMENT LEARNING: MDP APPLIED TO AUTONOMOUS NAVIGATION REINFORCEMENT LEARNING: MDP APPLIED TO AUTONOMOUS NAVIGATION ABSTRACT Mark A. Mueller Georgia Institute of Technology, Computer Science, Atlanta, GA USA The problem of autonomous vehicle navigation between

More information

CMU-Q Lecture 4: Path Planning. Teacher: Gianni A. Di Caro

CMU-Q Lecture 4: Path Planning. Teacher: Gianni A. Di Caro CMU-Q 15-381 Lecture 4: Path Planning Teacher: Gianni A. Di Caro APPLICATION: MOTION PLANNING Path planning: computing a continuous sequence ( a path ) of configurations (states) between an initial configuration

More information

Clip Art and Graphics. Inserting Clip Art. Inserting Other Graphics. Creating Your Own Shapes. Formatting the Shape

Clip Art and Graphics. Inserting Clip Art. Inserting Other Graphics. Creating Your Own Shapes. Formatting the Shape 1 of 1 Clip Art and Graphics Inserting Clip Art Click where you want the picture to go (you can change its position later.) From the Insert tab, find the Illustrations Area and click on the Clip Art button

More information

Dynamic Robot Path Planning Using Improved Max-Min Ant Colony Optimization

Dynamic Robot Path Planning Using Improved Max-Min Ant Colony Optimization Proceedings of the International Conference of Control, Dynamic Systems, and Robotics Ottawa, Ontario, Canada, May 15-16 2014 Paper No. 49 Dynamic Robot Path Planning Using Improved Max-Min Ant Colony

More information

Coverage and Search Algorithms. Chapter 10

Coverage and Search Algorithms. Chapter 10 Coverage and Search Algorithms Chapter 10 Objectives To investigate some simple algorithms for covering the area in an environment To understand how to break down an environment into simple convex pieces

More information

WONDERLAB: THE EQUINOR GALLERY. The science and maths behind the exhibits 30 MIN INFORMATION. Topic MATHS. Age

WONDERLAB: THE EQUINOR GALLERY. The science and maths behind the exhibits 30 MIN INFORMATION. Topic MATHS. Age WONDERLAB: THE EQUINOR GALLERY The science and maths s INFORMATION Age 7 11 11 14 Topic MATHS 30 MIN Location LEVEL 3, SCIENCE MUSEUM, LONDON What s the maths? What more will you wonder? s Wonderlab: The

More information

12 - More Steering. from Milligan, "Artificial Intelligence for Games", Morgan Kaufman, 2006

12 - More Steering. from Milligan, Artificial Intelligence for Games, Morgan Kaufman, 2006 12 - More Steering from Milligan, "Artificial Intelligence for Games", Morgan Kaufman, 2006 Separation commonly used in crowds, when all characters moving in roughly the same direction (repulsion steering)

More information

CS 387/680: GAME AI PATHFINDING

CS 387/680: GAME AI PATHFINDING CS 387/680: GAME AI PATHFINDING 4/16/2015 Instructor: Santiago Ontañón santi@cs.drexel.edu Class website: https://www.cs.drexel.edu/~santi/teaching/2015/cs387/intro.html Reminders Check BBVista site for

More information

A Simple, but NP-Hard, Motion Planning Problem

A Simple, but NP-Hard, Motion Planning Problem A Simple, but NP-Hard, Motion Planning Problem Lawrence H. Erickson and Steven M. LaValle University of Illinois at Urbana-Champaign Department of Computer Science 201 N. Goodwin Ave. Urbana, IL 61801

More information

Heap Management. Heap Allocation

Heap Management. Heap Allocation Heap Management Heap Allocation A very flexible storage allocation mechanism is heap allocation. Any number of data objects can be allocated and freed in a memory pool, called a heap. Heap allocation is

More information

Chapter 12 Notes: Optics

Chapter 12 Notes: Optics Chapter 12 Notes: Optics How can the paths traveled by light rays be rearranged in order to form images? In this chapter we will consider just one form of electromagnetic wave: visible light. We will be

More information

Textures and UV Mapping in Blender

Textures and UV Mapping in Blender Textures and UV Mapping in Blender Categories : Uncategorised Date : 21st November 2017 1 / 25 (See below for an introduction to UV maps and unwrapping) Jim s Notes regarding Blender objects, the UV Editor

More information

3 Polygonal Modeling. Getting Started with Maya 103

3 Polygonal Modeling. Getting Started with Maya 103 3 Polygonal Modeling In Maya, modeling refers to the process of creating virtual 3D surfaces for the characters and objects in the Maya scene. Surfaces play an important role in the overall Maya workflow

More information

Computer Game Programming Basic Path Finding

Computer Game Programming Basic Path Finding 15-466 Computer Game Programming Basic Path Finding Robotics Institute Path Planning Sven Path Planning needs to be very fast (especially for games with many characters) needs to generate believable paths

More information

Ray Tracing Acceleration Data Structures

Ray Tracing Acceleration Data Structures Ray Tracing Acceleration Data Structures Sumair Ahmed October 29, 2009 Ray Tracing is very time-consuming because of the ray-object intersection calculations. With the brute force method, each ray has

More information

The problem of path-finding in commercial computer games has to be solved in real

The problem of path-finding in commercial computer games has to be solved in real NEAR OPTIMAL HIERARCHICAL PATH-FINDING Adi Botea, Martin Müller, Jonathan Schaeffer Department of Computing Science University of Alberta Edmonton, Alberta, Canada T6G 2E8 adib@cs.ualberta.ca mmueller@cs.ualberta.ca

More information

6.034 Notes: Section 2.1

6.034 Notes: Section 2.1 6.034 Notes: Section 2.1 Slide 2.1.1 Search plays a key role in many parts of AI. These algorithms provide the conceptual backbone of almost every approach to the systematic exploration of alternatives.

More information

Game AI: The set of algorithms, representations, tools, and tricks that support the creation and management of real-time digital experiences

Game AI: The set of algorithms, representations, tools, and tricks that support the creation and management of real-time digital experiences the question of whether computers can think is like the question of whether submarines can swim -- Dijkstra Game AI: The set of algorithms, representations, tools, and tricks that support the creation

More information

A System for Bidirectional Robotic Pathfinding

A System for Bidirectional Robotic Pathfinding A System for Bidirectional Robotic Pathfinding Tesca K. Fitzgerald Department of Computer Science, Portland State University PO Box 751 Portland, OR 97207 USA tesca@cs.pdx.edu TR 12-02 November 2012 Abstract

More information

A Comparison of Robot Navigation Algorithms for an Unknown Goal

A Comparison of Robot Navigation Algorithms for an Unknown Goal A Comparison of Robot Navigation Algorithms for an Unknown Goal Russell Bayuk Steven Ratering (faculty mentor) Computer Science Department University of Wisconsin Eau Claire Eau Claire, WI 54702 {bayukrj,

More information

Topic 16: Graphs in Game AI

Topic 16: Graphs in Game AI Topic 16: Graphs in Game AI CSSE CITS4242 Game Design and Multi-Media Graphs in Game AI When developing the AI for games, one of the most common uses of graphs is to represent a network of paths an agent

More information

Visualization Insider A Little Background Information

Visualization Insider A Little Background Information Visualization Insider A Little Background Information Visualization Insider 2 Creating Backgrounds for 3D Scenes Backgrounds are a critical part of just about every type of 3D scene. Although they are

More information

ECE276B: Planning & Learning in Robotics Lecture 5: Configuration Space

ECE276B: Planning & Learning in Robotics Lecture 5: Configuration Space ECE276B: Planning & Learning in Robotics Lecture 5: Configuration Space Lecturer: Nikolay Atanasov: natanasov@ucsd.edu Teaching Assistants: Tianyu Wang: tiw161@eng.ucsd.edu Yongxi Lu: yol070@eng.ucsd.edu

More information

Collision Avoidance for Preplanned Locomotion

Collision Avoidance for Preplanned Locomotion 22 Collision Avoidance for Preplanned Locomotion Bobby Anguelov 22.1 Introduction 22.2 Collision Avoidance for Preplanned Locomotion 22.3 Collision Detection and Trivial Collision Resolution 22.4 Nontrivial

More information

Platform Games Drawing Sprites & Detecting Collisions

Platform Games Drawing Sprites & Detecting Collisions Platform Games Drawing Sprites & Detecting Collisions Computer Games Development David Cairns Contents Drawing Sprites Collision Detection Animation Loop Introduction 1 Background Image - Parallax Scrolling

More information

University of Nevada, Reno. Dynamic Path Planning and Replanning for Mobile Robot Team Using RRT*

University of Nevada, Reno. Dynamic Path Planning and Replanning for Mobile Robot Team Using RRT* University of Nevada, Reno Dynamic Path Planning and Replanning for Mobile Robot Team Using RRT* A thesis submitted in partial fulfillment of the requirements for the degree of Master of Science in Computer

More information

Machine Evolution. Machine Evolution. Let s look at. Machine Evolution. Machine Evolution. Machine Evolution. Machine Evolution

Machine Evolution. Machine Evolution. Let s look at. Machine Evolution. Machine Evolution. Machine Evolution. Machine Evolution Let s look at As you will see later in this course, neural networks can learn, that is, adapt to given constraints. For example, NNs can approximate a given function. In biology, such learning corresponds

More information

[ the academy_of_code] Senior Beginners

[ the academy_of_code] Senior Beginners [ the academy_of_code] Senior Beginners 1 Drawing Circles First step open Processing Open Processing by clicking on the Processing icon (that s the white P on the blue background your teacher will tell

More information

Time-sliced pathfinding on arbitrary polygon surfaces

Time-sliced pathfinding on arbitrary polygon surfaces Time-sliced pathfinding on arbitrary polygon surfaces Arvid Norberg supervisor: Michael Minock Abstract Real-time games need to maintain a smooth frame rate and cannot

More information

MULTI-REGION SEGMENTATION

MULTI-REGION SEGMENTATION MULTI-REGION SEGMENTATION USING GRAPH-CUTS Johannes Ulén Abstract This project deals with multi-region segmenation using graph-cuts and is mainly based on a paper by Delong and Boykov [1]. The difference

More information

the gamedesigninitiative at cornell university Lecture 20 Pathfinding

the gamedesigninitiative at cornell university Lecture 20 Pathfinding Lecture 20 Take way for Today What are primary goals for pathfinding? Identify advantages/disadvantages of * In what situations does * fail (or look bad)? What can we do to fix se problems? Why combine

More information

DOING MORE WITH WORD: MICROSOFT OFFICE 2013

DOING MORE WITH WORD: MICROSOFT OFFICE 2013 DOING MORE WITH WORD: MICROSOFT OFFICE 2013 GETTING STARTED PAGE 02 Prerequisites What You Will Learn USING MICROSOFT WORD PAGE 03 Viewing Toolbars Adding and Removing Buttons MORE TASKS IN MICROSOFT WORD

More information

Lesson 1: Creating T- Spline Forms. In Samples section of your Data Panel, browse to: Fusion 101 Training > 03 Sculpt > 03_Sculpting_Introduction.

Lesson 1: Creating T- Spline Forms. In Samples section of your Data Panel, browse to: Fusion 101 Training > 03 Sculpt > 03_Sculpting_Introduction. 3.1: Sculpting Sculpting in Fusion 360 allows for the intuitive freeform creation of organic solid bodies and surfaces by leveraging the T- Splines technology. In the Sculpt Workspace, you can rapidly

More information

Wave front Method Based Path Planning Algorithm for Mobile Robots

Wave front Method Based Path Planning Algorithm for Mobile Robots Wave front Method Based Path Planning Algorithm for Mobile Robots Bhavya Ghai 1 and Anupam Shukla 2 ABV- Indian Institute of Information Technology and Management, Gwalior, India 1 bhavyaghai@gmail.com,

More information

DOING MORE WITH WORD: MICROSOFT OFFICE 2010

DOING MORE WITH WORD: MICROSOFT OFFICE 2010 DOING MORE WITH WORD: MICROSOFT OFFICE 2010 GETTING STARTED PAGE 02 Prerequisites What You Will Learn USING MICROSOFT WORD PAGE 03 Viewing Toolbars Adding and Removing Buttons MORE TASKS IN MICROSOFT WORD

More information

How to draw and create shapes

How to draw and create shapes Adobe Flash Professional Guide How to draw and create shapes You can add artwork to your Adobe Flash Professional documents in two ways: You can import images or draw original artwork in Flash by using

More information

Situational Awareness: Terrain Reasoning for Tactical Shooter A.I

Situational Awareness: Terrain Reasoning for Tactical Shooter A.I Situational Awareness: Terrain Reasoning for Tactical Shooter A.I Situational Awareness The capability of an A.I. agent to reason is limited by the data its sensor's can acquire about the world The representation

More information

Spatial Data Structures

Spatial Data Structures CSCI 420 Computer Graphics Lecture 17 Spatial Data Structures Jernej Barbic University of Southern California Hierarchical Bounding Volumes Regular Grids Octrees BSP Trees [Angel Ch. 8] 1 Ray Tracing Acceleration

More information

Adding Depth to Games

Adding Depth to Games Game Maker Tutorial Adding Depth to Games Written by Mark Overmars Copyright 2007-2009 YoYo Games Ltd Last changed: December 23, 2009 Uses: Game Maker 8.0, Pro Edition, Advanced Mode Level: Intermediate

More information

Border Patrol. Shingo Murata Swarthmore College Swarthmore, PA

Border Patrol. Shingo Murata Swarthmore College Swarthmore, PA Border Patrol Shingo Murata Swarthmore College Swarthmore, PA 19081 smurata1@cs.swarthmore.edu Dan Amato Swarthmore College Swarthmore, PA 19081 damato1@cs.swarthmore.edu Abstract We implement a border

More information

Velocity: A Bat s Eye View of Velocity

Velocity: A Bat s Eye View of Velocity Name School Date Purpose Velocity: A Bat s Eye View of Velocity There are a number of ways of representing motion that we ll find useful. Graphing position, velocity, and acceleration vs. time is often

More information

(Refer Slide Time: 00:02:02)

(Refer Slide Time: 00:02:02) Computer Graphics Prof. Sukhendu Das Dept. of Computer Science and Engineering Indian Institute of Technology, Madras Lecture - 20 Clipping: Lines and Polygons Hello and welcome everybody to the lecture

More information

High Performance Computer Architecture Prof. Ajit Pal Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

High Performance Computer Architecture Prof. Ajit Pal Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur High Performance Computer Architecture Prof. Ajit Pal Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture - 23 Hierarchical Memory Organization (Contd.) Hello

More information

UNIVERSITY OF NORTH CAROLINA AT CHARLOTTE

UNIVERSITY OF NORTH CAROLINA AT CHARLOTTE UNIVERSITY OF NORTH CAROLINA AT CHARLOTTE Department of Electrical and Computer Engineering ECGR 4161/5196 Introduction to Robotics Experiment No. 5 A* Path Planning Overview: The purpose of this experiment

More information

A Vision System for Automatic State Determination of Grid Based Board Games

A Vision System for Automatic State Determination of Grid Based Board Games A Vision System for Automatic State Determination of Grid Based Board Games Michael Bryson Computer Science and Engineering, University of South Carolina, 29208 Abstract. Numerous programs have been written

More information

6.141: Robotics systems and science Lecture 10: Motion Planning III

6.141: Robotics systems and science Lecture 10: Motion Planning III 6.141: Robotics systems and science Lecture 10: Motion Planning III Lecture Notes Prepared by N. Roy and D. Rus EECS/MIT Spring 2012 Reading: Chapter 3, and Craig: Robotics http://courses.csail.mit.edu/6.141/!

More information

0 A.D. Pathfinder Design

0 A.D. Pathfinder Design 0 A.D. Pathfinder Design Wildfire Games http://wildfiregames.com/ June 27, 2015 Disclaimer: This document mixes elements of the current implementation and TBI features. You re invited to take a look yourself

More information

Spatial Data Structures

Spatial Data Structures CSCI 480 Computer Graphics Lecture 7 Spatial Data Structures Hierarchical Bounding Volumes Regular Grids BSP Trees [Ch. 0.] March 8, 0 Jernej Barbic University of Southern California http://www-bcf.usc.edu/~jbarbic/cs480-s/

More information

I may not have gone where I intended to go, but I think I have ended up where I needed to be. Douglas Adams

I may not have gone where I intended to go, but I think I have ended up where I needed to be. Douglas Adams Disclaimer: I use these notes as a guide rather than a comprehensive coverage of the topic. They are neither a substitute for attending the lectures nor for reading the assigned material. I may not have

More information

Space-based Partitioning Data Structures and their Algorithms. Jon Leonard

Space-based Partitioning Data Structures and their Algorithms. Jon Leonard Space-based Partitioning Data Structures and their Algorithms Jon Leonard Purpose Space-based Partitioning Data Structures are an efficient way of organizing data that lies in an n-dimensional space 2D,

More information

Strict Theta*: Shorter Motion Path Planning Using Taut Paths

Strict Theta*: Shorter Motion Path Planning Using Taut Paths Proceedings of the Twenty-Sixth International Conference on Automated Planning and Scheduling (ICAPS 2016) Strict Theta*: Shorter Motion Path Planning Using Taut Paths Shunhao Oh and Hon Wai Leong Department

More information

Learning to use the drawing tools

Learning to use the drawing tools Create a blank slide This module was developed for Office 2000 and 2001, but although there are cosmetic changes in the appearance of some of the tools, the basic functionality is the same in Powerpoint

More information

MITOCW watch?v=w_-sx4vr53m

MITOCW watch?v=w_-sx4vr53m MITOCW watch?v=w_-sx4vr53m The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high-quality educational resources for free. To

More information

Two-dimensional Totalistic Code 52

Two-dimensional Totalistic Code 52 Two-dimensional Totalistic Code 52 Todd Rowland Senior Research Associate, Wolfram Research, Inc. 100 Trade Center Drive, Champaign, IL The totalistic two-dimensional cellular automaton code 52 is capable

More information

Hierarchical Dynamic Pathfinding for Large Voxel Worlds

Hierarchical Dynamic Pathfinding for Large Voxel Worlds Hierarchical Dynamic Pathfinding for Large Voxel Worlds Benoit Alain Lead Programmer & CTO, Sauropod Studio Hierarchical Dynamic Pathfinding for Large Voxel Worlds Hierarchical Dynamic Pathfinding for

More information

Overview: Printing MFworks Documents

Overview: Printing MFworks Documents Overview: Printing MFworks Documents The Layout Window Printing Printing to Disk Overview: Printing MFworks Documents MFworks is designed to print to any standard Windows compatible printer this includes

More information

The Basics of Variation

The Basics of Variation Variation A question that is often asked is, How much variance is acceptable? Taking the work arrival time example, your boss probably doesn t care how long it takes you to get to work, as long as you

More information

DOING MORE WITH WORD: MICROSOFT OFFICE 2007

DOING MORE WITH WORD: MICROSOFT OFFICE 2007 DOING MORE WITH WORD: MICROSOFT OFFICE 2007 GETTING STARTED PAGE 02 Prerequisites What You Will Learn USING MICROSOFT WORD PAGE 03 Viewing Toolbars Adding and Removing Buttons MORE TASKS IN MICROSOFT WORD

More information

Cluster Subgraphs Example, With Tile Graphs. Alternatives. Cluster Subgraphs. Cluster Subgraphs Example, With Tile Graphs

Cluster Subgraphs Example, With Tile Graphs. Alternatives. Cluster Subgraphs. Cluster Subgraphs Example, With Tile Graphs Alternatives Cluster Subgraphs Example, With Tile Graphs Replace a cluster with a small subgraph instead of a single node. e.g. represent entry/exit points run path-finding on the abstract graph to find

More information

Hi everyone. I hope everyone had a good Fourth of July. Today we're going to be covering graph search. Now, whenever we bring up graph algorithms, we

Hi everyone. I hope everyone had a good Fourth of July. Today we're going to be covering graph search. Now, whenever we bring up graph algorithms, we Hi everyone. I hope everyone had a good Fourth of July. Today we're going to be covering graph search. Now, whenever we bring up graph algorithms, we have to talk about the way in which we represent the

More information

3 Interactions of Light Waves

3 Interactions of Light Waves CHAPTER 22 3 Interactions of Light Waves SECTION The Nature of Light BEFORE YOU READ After you read this section, you should be able to answer these questions: How does reflection affect the way we see

More information

We will start our journey into Processing with creating static images using commands available in Processing:

We will start our journey into Processing with creating static images using commands available in Processing: Processing Notes Chapter 1: Starting Out We will start our journey into Processing with creating static images using commands available in Processing: rect( ) line ( ) ellipse() triangle() NOTE: to find

More information

CSCI-1200 Data Structures Fall 2017 Lecture 13 Problem Solving Techniques

CSCI-1200 Data Structures Fall 2017 Lecture 13 Problem Solving Techniques CSCI-1200 Data Structures Fall 2017 Lecture 13 Problem Solving Techniques Review from Lecture 12 Rules for writing recursive functions: 1. Handle the base case(s). 2. Define the problem solution in terms

More information

EDITING AND COMBINING SHAPES AND PATHS

EDITING AND COMBINING SHAPES AND PATHS 4 EDITING AND COMBINING SHAPES AND PATHS Lesson overview In this lesson, you ll learn how to do the following: Cut with the Scissors tool. Join paths. Work with the Knife tool. Outline strokes. Work with

More information

Coverage and Search Algorithms. Chapter 10

Coverage and Search Algorithms. Chapter 10 Coverage and Search Algorithms Chapter 10 Objectives To investigate some simple algorithms for covering the area in an environment To understand how break down an environment in simple convex pieces To

More information

Extension Web Publishing 3 Lecture # 1. Chapter 6 Site Types and Architectures

Extension Web Publishing 3 Lecture # 1. Chapter 6 Site Types and Architectures Chapter 6 Site Types and Architectures Site Types Definition: A public Web site, an Internet Web site, an external Web site or simply a Web site is one that is not explicitly restricted to a particular

More information

Announcements. Written Assignment2 is out, due March 8 Graded Programming Assignment2 next Tuesday

Announcements. Written Assignment2 is out, due March 8 Graded Programming Assignment2 next Tuesday Announcements Written Assignment2 is out, due March 8 Graded Programming Assignment2 next Tuesday 1 Spatial Data Structures Hierarchical Bounding Volumes Grids Octrees BSP Trees 11/7/02 Speeding Up Computations

More information

A new method for determination of a wave-ray trace based on tsunami isochrones

A new method for determination of a wave-ray trace based on tsunami isochrones Bull. Nov. Comp. Center, Math. Model. in Geoph., 13 (2010), 93 101 c 2010 NCC Publisher A new method for determination of a wave-ray trace based on tsunami isochrones An.G. Marchuk Abstract. A new method

More information

outline Sensor Network Navigation without Locations 11/5/2009 Introduction

outline Sensor Network Navigation without Locations 11/5/2009 Introduction Sensor Network Navigation without Locations Mo Li, Yunhao Liu, Jiliang Wang, and Zheng Yang Department of Computer Science and Engineering Hong Kong University of Science and Technology, outline Introduction

More information

Spatial Data Structures

Spatial Data Structures 15-462 Computer Graphics I Lecture 17 Spatial Data Structures Hierarchical Bounding Volumes Regular Grids Octrees BSP Trees Constructive Solid Geometry (CSG) April 1, 2003 [Angel 9.10] Frank Pfenning Carnegie

More information

How to...create a Video VBOX Gauge in Inkscape. So you want to create your own gauge? How about a transparent background for those text elements?

How to...create a Video VBOX Gauge in Inkscape. So you want to create your own gauge? How about a transparent background for those text elements? BASIC GAUGE CREATION The Video VBox setup software is capable of using many different image formats for gauge backgrounds, static images, or logos, including Bitmaps, JPEGs, or PNG s. When the software

More information

CS 563 Advanced Topics in Computer Graphics QSplat. by Matt Maziarz

CS 563 Advanced Topics in Computer Graphics QSplat. by Matt Maziarz CS 563 Advanced Topics in Computer Graphics QSplat by Matt Maziarz Outline Previous work in area Background Overview In-depth look File structure Performance Future Point Rendering To save on setup and

More information

Compiler Design Prof. Y. N. Srikant Department of Computer Science and Automation Indian Institute of Science, Bangalore

Compiler Design Prof. Y. N. Srikant Department of Computer Science and Automation Indian Institute of Science, Bangalore Compiler Design Prof. Y. N. Srikant Department of Computer Science and Automation Indian Institute of Science, Bangalore Module No. # 10 Lecture No. # 16 Machine-Independent Optimizations Welcome to the

More information

Controlling the Drawing Display

Controlling the Drawing Display Controlling the Drawing Display In This Chapter 8 AutoCAD provides many ways to display views of your drawing. As you edit your drawing, you can control the drawing display and move quickly to different

More information

DriveFaster: Optimizing a Traffic Light Grid System

DriveFaster: Optimizing a Traffic Light Grid System DriveFaster: Optimizing a Traffic Light Grid System Abstract CS221 Fall 2016: Final Report Team Members: Xiaofan Li, Ahmed Jaffery Traffic lights are the central point of control of traffic for cities

More information