Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
Environmentally Conscious AI
Improving Spatial Analysis and
Reasoning
Clodéric Mars
MASA LIFE Lead
cloderic.mars@masagroup...
What is Spatial Reasoning?
•Spatial objects
• POIs
• Areas/zones
• Influence map
• ...
• Relationships
• Distance
• Visibi...
“What is the closest
bone that is not too old,
out of the cat likely
position and that I can
chew while observing
the stre...
How?
•List of points of interests
•Query several sources
• “closest” ➡ pathfinding
• “not too old” ➡ metadata
• “likely po...
Wouldn’t it be cool if...
•Behavior designers can focus on using
• “One stop” gateway
• Expressive query
•Developers can e...
Inspirations
•Game industry
• Environment Tactical Querying
(ETQ) [Zielinsky 2013]
• Tactical Position Selection
(TPS) [Ja...
!7
Let’s study a practical example!
!8
Tactical behaviors in VBS2
•Tactical groups...
•...navigating in a
“hostile” environment
•Behaviors that don’t
depend on t...
!10
“select cover” query
SELECT p FROM interest_points
WHERE p.metadata.type == 2
AND (p.metadata.assignee == NULL
OR p.metada...
Reach a zone and take cover
•“select cover”
• SpatialDB query
• Distance
• Protected direction
• Availability
•“assign cov...
Technical stuffs
•SQLite (www.sqlite.org)
• Easy to integrate
• Public Domain
• Mature
• Fast
• Geospatial index (r-tree)
...
!15
How? … with this implementation
•List of points of interests

(bones)
!
•Query several sources

(navmesh, visibility, …)
!...
What worked
•Fast implementation
of first version
•Data driven
behaviors
•Familiar query
language
•OK performances
!17
"se...
What needs to be improved
•Easy-to-use assignment
•Tools
• inspection
• sandbox
•Performances
• grouping/ordering evaluato...
Takeaways
!19
1.Decouple (designer/developer)
2.Use existing tech (eg. SQLite)
3.Create a familiar language
Meet us at
boo...
Prochain SlideShare
Chargement dans…5
×

Environmentally Conscious AI: Improving Spatial Analysis and Reasoning

809 vues

Publié le

This presentation was presented during GDC 2014, AI Summit.

In this talk was presented a unified architecture for spatial reasoning using a database-like interface. The objective is to be able to simply query and manipulate spatial information in autonomous characters behaviors.

Publié dans : Technologie
  • Soyez le premier à commenter

Environmentally Conscious AI: Improving Spatial Analysis and Reasoning

  1. 1. Environmentally Conscious AI Improving Spatial Analysis and Reasoning Clodéric Mars MASA LIFE Lead cloderic.mars@masagroup.net @clodericmars
  2. 2. What is Spatial Reasoning? •Spatial objects • POIs • Areas/zones • Influence map • ... • Relationships • Distance • Visibility • Accessibility • ... !2
  3. 3. “What is the closest bone that is not too old, out of the cat likely position and that I can chew while observing the street?” !3
  4. 4. How? •List of points of interests •Query several sources • “closest” ➡ pathfinding • “not too old” ➡ metadata • “likely position” ➡ influence map • “observing” ➡ visibility mesh, pvs •Add some custom logic ! ➥ A little complex for “just” a dog! !4
  5. 5. Wouldn’t it be cool if... •Behavior designers can focus on using • “One stop” gateway • Expressive query •Developers can extend and optimize ! ➥ Handle the “technical” complexity for the benefit of both !5
  6. 6. Inspirations •Game industry • Environment Tactical Querying (ETQ) [Zielinsky 2013] • Tactical Position Selection (TPS) [Jack 2013] •GIS • PostGIS (postgis.net) !6
  7. 7. !7
  8. 8. Let’s study a practical example! !8
  9. 9. Tactical behaviors in VBS2 •Tactical groups... •...navigating in a “hostile” environment •Behaviors that don’t depend on the environment !9
  10. 10. !10
  11. 11. “select cover” query SELECT p FROM interest_points WHERE p.metadata.type == 2 AND (p.metadata.assignee == NULL OR p.metadata.assignee == $.id) AND p.geometry.x > $.position.x - 10 AND p.geometry.x < $.position.x + 10 AND p.geometry.y > $.position.y - 10 AND p.geometry.y < $.position.y + 10 ORDERED BY distance(p.geometry, $.position) LIMIT 10 collection type (2 is cover points) free or already assigned to me no farther than 10 m order by distance to me take the first 10 !12
  12. 12. Reach a zone and take cover •“select cover” • SpatialDB query • Distance • Protected direction • Availability •“assign cover” • SpatialDB update • Transactional goto cover goto zone close to zone? select cover assign cover !13
  13. 13. Technical stuffs •SQLite (www.sqlite.org) • Easy to integrate • Public Domain • Mature • Fast • Geospatial index (r-tree) • Functions • In-Memory •peg/leg (piumarta.com/software/peg/) !14
  14. 14. !15
  15. 15. How? … with this implementation •List of points of interests
 (bones) ! •Query several sources
 (navmesh, visibility, …) ! •Add some custom logic !16 ‣SQLite Tables • metadata • spatial index ‣SQLite Functions • Signature • Callback to subsystem • Metadata access/index ‣SQLite ‘arithmetic’ and custom parser
  16. 16. What worked •Fast implementation of first version •Data driven behaviors •Familiar query language •OK performances !17 "select cover" duration 0,08 ms 0,15 ms 0,23 ms 0,30 ms 0 1250 2500 3750 5000 Core i7 @ 2Ghz // 8Go of RAM Total size 3 000 kb 6 000 kb 9 000 kb 12 000 kb 0 1250 2500 3750 5000
  17. 17. What needs to be improved •Easy-to-use assignment •Tools • inspection • sandbox •Performances • grouping/ordering evaluators • time slicing • multithreading !18
  18. 18. Takeaways !19 1.Decouple (designer/developer) 2.Use existing tech (eg. SQLite) 3.Create a familiar language Meet us at booth #1743 @masalife_ai

×