{"id":11755,"date":"2013-03-23T22:14:27","date_gmt":"2013-03-24T03:14:27","guid":{"rendered":"http:\/\/blog.kenperlin.com\/?p=11755"},"modified":"2013-03-24T11:18:54","modified_gmt":"2013-03-24T16:18:54","slug":"crowds","status":"publish","type":"post","link":"http:\/\/blog.kenperlin.com\/?p=11755","title":{"rendered":"Crowds"},"content":{"rendered":"<p>This week at a graphics conference I saw a nice little talk about crowd simulation.  As I watched the presentation, it occurred to me that unless one does exhaustive measurements of real crowds, this is one of those situations where &#8220;success&#8221; just means that things look right:  If people look at your simulation and believe they are seeing real crowd behavior, then you&#8217;re good.<\/p>\n<p>So I decided to try my hand at crowd simulation, to figure out the simplest approach that would visually appear to act like actual crowds.  It was surprisingly simple to do &#8212; within half an hour I had something reasonable, and then after another hour or so of tweaking, I was quite happy with the final result.<\/p>\n<p>Taking my cue from the paper presentation I&#8217;d seen, my &#8220;test&#8221; was four different crowds of people trying to swap places &#8212; a crowd to the East swaps places with one to the West, while at the same time a crowd to the North swaps places with one the South.<\/p>\n<p>As you may imagine, things can get chaotic.  The simulation needs to convey a sense that people are streaming past each other intelligently, without bumping into one another.<\/p>\n<p>For a first try I think I did pretty well.  You can see the result by clicking on the below image.<\/p>\n<p><center><\/p>\n<table cellspacing=0 cellpadding=0 border=1>\n<tr>\n<td><a href=http:\/\/mrl.nyu.edu\/~perlin\/crowds target=1><img decoding=\"async\" src=\"http:\/\/blog.kenperlin.com\/wp-content\/uploads\/2013\/03\/crowds2.png\"><\/a><\/td>\n<\/tr>\n<\/table>\n<p><\/center><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This week at a graphics conference I saw a nice little talk about crowd simulation. As I watched the presentation, it occurred to me that unless one does exhaustive measurements of real crowds, this is one of those situations where &#8220;success&#8221; just means that things look right: If people look at your simulation and believe &hellip; <a href=\"http:\/\/blog.kenperlin.com\/?p=11755\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Crowds&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"http:\/\/blog.kenperlin.com\/index.php?rest_route=\/wp\/v2\/posts\/11755"}],"collection":[{"href":"http:\/\/blog.kenperlin.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.kenperlin.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.kenperlin.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.kenperlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=11755"}],"version-history":[{"count":8,"href":"http:\/\/blog.kenperlin.com\/index.php?rest_route=\/wp\/v2\/posts\/11755\/revisions"}],"predecessor-version":[{"id":11766,"href":"http:\/\/blog.kenperlin.com\/index.php?rest_route=\/wp\/v2\/posts\/11755\/revisions\/11766"}],"wp:attachment":[{"href":"http:\/\/blog.kenperlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=11755"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.kenperlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=11755"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.kenperlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=11755"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}