Formations in flow fields
|
|
- Candice Patterson
- 5 years ago
- Views:
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 : A rule of thumb, simplification, or educated guess that reduces
More informationHigh 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 informationBeyond 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 informationNon-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 informationMap 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 informationCS 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 informationUniversiteit 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 informationTraffic/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 informationPhysically-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 informationWelfare 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)
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 informationComputer 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 informationARTIFICIAL 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 informationThe 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 informationN 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 informationScanning 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 information6.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 informationUnit 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 informationCS125 : 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 informationNavigation 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 informationPicture 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 informationPath 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 informationPathfinding. 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 informationI 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 informationView 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 informationREINFORCEMENT 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 informationCMU-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 informationClip 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 informationDynamic 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 informationCoverage 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 informationWONDERLAB: 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 information12 - 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 informationCS 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 informationA 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 informationHeap 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 informationChapter 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 informationTextures 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 information3 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 informationComputer 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 informationRay 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 informationThe 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 information6.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 informationGame 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 informationA 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 informationA 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 informationTopic 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 informationVisualization 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 informationECE276B: 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 informationCollision 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 informationPlatform 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 informationUniversity 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 informationMachine 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 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 informationTime-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 informationMULTI-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 informationthe 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 informationDOING 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 informationLesson 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 informationWave 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 informationDOING 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 informationHow 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 informationSituational 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 informationSpatial 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 informationAdding 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 informationBorder 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 informationVelocity: 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)
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 informationHigh 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 informationUNIVERSITY 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 informationA 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 information6.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 information0 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 informationSpatial 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 informationI 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 informationSpace-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 informationStrict 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 informationLearning 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 informationMITOCW 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 informationTwo-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 informationHierarchical 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 informationOverview: 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 informationThe 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 informationDOING 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 informationCluster 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 informationHi 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 information3 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 informationWe 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 informationCSCI-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 informationEDITING 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 informationCoverage 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 informationExtension 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 informationAnnouncements. 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 informationA 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 informationoutline 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 informationSpatial 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 informationHow 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 informationCS 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 informationCompiler 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 informationControlling 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 informationDriveFaster: 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