<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2591985578453253360</id><updated>2012-02-16T19:50:54.746-08:00</updated><category term='paper'/><category term='boids'/><category term='processing'/><category term='thesis'/><category term='theory'/><category term='behavioral animation'/><category term='3DMax'/><category term='GLUT'/><category term='micro-system'/><category term='Netlogo'/><category term='simulation tools'/><category term='Crowd Behaviour'/><category term='Project'/><category term='openframeworks'/><category term='ABM'/><category term='software framework'/><category term='Agent Based Modelling'/><category term='parallel processing'/><category term='applications'/><category term='particle system'/><category term='continuum dynamics'/><category term='Crowd Simulation'/><category term='GPGPU'/><category term='SDL'/><category term='distributed processing'/><category term='crowd navigation'/><category term='multi-agent simulation'/><category term='flocking'/><category term='GPS'/><category term='background'/><category term='Book'/><category term='interacting particle systems'/><category term='multi-processor'/><category term='OpenGL'/><category term='macro-system'/><title type='text'>Crowd Simulation</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://crowdsimulation.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2591985578453253360/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://crowdsimulation.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Ateen Patel</name><uri>http://www.blogger.com/profile/09036013357436545987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>18</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2591985578453253360.post-6326220391204562214</id><published>2010-11-17T05:04:00.000-08:00</published><updated>2010-11-17T05:04:55.986-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GLUT'/><category scheme='http://www.blogger.com/atom/ns#' term='openframeworks'/><category scheme='http://www.blogger.com/atom/ns#' term='software framework'/><category scheme='http://www.blogger.com/atom/ns#' term='SDL'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenGL'/><category scheme='http://www.blogger.com/atom/ns#' term='processing'/><title type='text'>Software Framework: OpenFrameworks</title><content type='html'>I'm going to take a software engineering point of view in this post. To come up with any type of model or simulation, it is a good idea to start with a software framework.&lt;br /&gt;&lt;br /&gt;A software framework according to Wikipedia is 'an abstraction in which common code providing generic functionality can be selectively overridden or specialized by user code'. Software frameworks facilitate the development of software, and allow the developer to focus on the software requirements rather than the low level details of providing a working system that allows access to the hardware. This, in turn, reduces development time.&lt;br /&gt;For the short term, it would more than likely increase the development time, as there is a learning curve involved which needs additional time. In the long run, once the framework is learned, future projects can be a lot quicker to complete, as the need to concern ourselves with the low level details is diminished.&lt;br /&gt;&lt;br /&gt;There are several types of frameworks available for C++ such as SDL, OpenFrameworks, Qt, etc., I'll focus on OpenFrameworks today. A few projects made using OpenFrameworks is below (clicking on it will take you to the project site on OpenFrameworks):&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://www.openframeworks.cc/gallery/merces-isosurface" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://www.openframeworks.cc/new_site/wp-content/uploads/2009/07/merces_isosurface_450-200x200.jpg" width="200" /&gt;&lt;/a&gt;&lt;img border="0" height="200" src="http://www.openframeworks.cc/new_site/wp-content/uploads/2009/08/2009_reincarnation.png" width="200" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;OpenFrameworks is a library that is designed for 'creative coding'. The library is wrapped with &lt;a href="http://www.opengl.org/resources/libraries/glut/"&gt;glut&lt;/a&gt; which is a windowing library. This wrapping I feel is quite a good choice, as it works really well with OpenGL. The &lt;a href="http://www.opengl.org/documentation/red_book/"&gt;OpenGL red book&lt;/a&gt; bases its code on glut as well.&lt;br /&gt;&lt;br /&gt;If you've used &lt;a href="http://www.processing.org/"&gt;Processing&lt;/a&gt;, OpenFrameworks certainly draws parallels with it. The website that provides the reference to the commands of the framework is also very similar. Processing users would feel right at home, there's also a &lt;a href="http://wiki.openframeworks.cc/index.php?title=OF_for_Processing_users"&gt;wiki&lt;/a&gt; that provides an orientation to OpenFrameworks that can be quite handy.&lt;br /&gt;What I like about this framework is that it wraps several other libraries to provide a very good interface. &lt;a href="http://www.opengl.org/"&gt;OpenGL&lt;/a&gt; is used for the graphics, as I mentioned works well with glut. &lt;a href="http://freeimage.sourceforge.net/"&gt;freeImage&lt;/a&gt; which is a popular library for image I/O and processing is also included. Even &lt;a href="http://www.apple.com/uk/quicktime/"&gt;quicktime&lt;/a&gt; which is good for playing video.&lt;br /&gt;I currently use &lt;a href="http://www.libsdl.org/"&gt;SDL&lt;/a&gt;, but after having a look at OpenFrameworks, I'm considering using it. Looks like a very good framework to use, and the learning curve doesn't seem too high after having used Processing previously. At the same time, there is already a lot of articles and a whole community available for SDL. I'll discuss SDL in another post. OpenFrameworks does indeed look like a very good software framework indeed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2591985578453253360-6326220391204562214?l=crowdsimulation.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.openframeworks.cc/' title='Software Framework: OpenFrameworks'/><link rel='replies' type='application/atom+xml' href='http://crowdsimulation.blogspot.com/feeds/6326220391204562214/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://crowdsimulation.blogspot.com/2010/11/software-framework-openframeworks.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2591985578453253360/posts/default/6326220391204562214'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2591985578453253360/posts/default/6326220391204562214'/><link rel='alternate' type='text/html' href='http://crowdsimulation.blogspot.com/2010/11/software-framework-openframeworks.html' title='Software Framework: OpenFrameworks'/><author><name>Ateen Patel</name><uri>http://www.blogger.com/profile/09036013357436545987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2591985578453253360.post-3806548987265573417</id><published>2010-11-10T07:35:00.000-08:00</published><updated>2010-11-10T10:42:42.672-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='theory'/><category scheme='http://www.blogger.com/atom/ns#' term='macro-system'/><category scheme='http://www.blogger.com/atom/ns#' term='thesis'/><category scheme='http://www.blogger.com/atom/ns#' term='background'/><category scheme='http://www.blogger.com/atom/ns#' term='micro-system'/><title type='text'>Tube Strike: A changed Macro-System</title><content type='html'>&lt;div&gt;The recent tube strike and a discussion with one of my professors has led me to think about micro and macro systems as a whole, and in turn simulations working within these constraints.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;img src="http://4.bp.blogspot.com/_xzShO7G3ktg/TNrmN-1UKUI/AAAAAAAAAyw/vG13miP1xUA/s400/Macro-micro_system.jpg" style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 136px;" border="0" alt="" id="BLOGGER_PHOTO_ID_5537991819684751682" /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;First of all, let me say a little about a normal working day and what happens during this time. We have a fully working transport system, a nice sunny day (or mostly grey, in London at least!), a phenomena, if you'd allow me to call it that, takes place i.e., commuting. Individuals work, that's how the economy and you, as an individual survive and provide for yourself, and your family. So, we have people who commute to and from work everyday. What happens during the commute? Each individual, makes an independent decision in order to reach their work destination. How they get there is based on personal choice, which is generally ruled by the amount of time it would take to get to work, the distance to workplace, and the number of changes that are required. This decision gets refined as the individual finds him / her self making the most efficient decision to reach the workplace. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Each individual takes these similar independent decisions becoming routine over time. Aggregating all these independent decisions together, we get people moving around, and a pattern develops as the micro-system stabilises, in which ways people move to commute to and from work. These hundreds of independent decisions are taking place within the constraints of a macro-system. The macro-system in play here is the transport system, and these individuals actually play by the rules set out by the macro-system in place here.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A macro-system can be defined here as a large system within which micro-systems are contained. Therefore, here, we have the transport system as the large macro-system, and the individuals as the micro-systems which are contained within this large system, and taking their independent decisions within the constraints set out by it.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_xzShO7G3ktg/TNrnbNFbIiI/AAAAAAAAAy4/tyuomyx_ppA/s1600/tubestrike.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 354px; height: 220px;" src="http://4.bp.blogspot.com/_xzShO7G3ktg/TNrnbNFbIiI/AAAAAAAAAy4/tyuomyx_ppA/s400/tubestrike.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5537993146360341026" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now, we have a tube strike, like the one on 3 November 2010. What happens here?! The large macro-system changes. Most tube lines don't work, sever delays on lines that do, more buses on routes, cycles being transported more frequently to fill up empty slots. This creates havoc in the micro-system, but it doesn't fail. In fact, what happens is that the micro-system adjusts the way it works within the new constraints set out by the macro-system in play, and then we have the same individuals making their renewed complete independent decisions, again taking into account the most efficient way to get to work by finding the lines / buses / boats that are working, and taking those transport links, or replacing it with cycles or cars. We now have a micro-system changing, but in a way that individuals still get to work, but using the new constraints set out by the macro-system at play, and they work within these constraints. Complaints? Yes....Impossible? No, not at all!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It's the laws of the macro-system here. Micro-systems are contained within it, and they will change in order to work within the constraints of the macro-system, or even be influenced by it. An analogy with &lt;a href="http://en.wikipedia.org/wiki/Ecological_Systems_Theory"&gt;Ecological Systems Theory&lt;/a&gt; can also be drawn, but I'll leave that for another post! &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This is the problem I wonder about when I'm designing my model, I need these micro behaviours to work within the constraints of the macro-system at play. Do I model the macro-system first, or model the micro-system and build a macro-system around it? It's the chicken or egg problem again here!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2591985578453253360-3806548987265573417?l=crowdsimulation.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crowdsimulation.blogspot.com/feeds/3806548987265573417/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://crowdsimulation.blogspot.com/2010/11/tube-strike-changed-macro-system.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2591985578453253360/posts/default/3806548987265573417'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2591985578453253360/posts/default/3806548987265573417'/><link rel='alternate' type='text/html' href='http://crowdsimulation.blogspot.com/2010/11/tube-strike-changed-macro-system.html' title='Tube Strike: A changed Macro-System'/><author><name>Ateen Patel</name><uri>http://www.blogger.com/profile/09036013357436545987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_xzShO7G3ktg/TNrmN-1UKUI/AAAAAAAAAyw/vG13miP1xUA/s72-c/Macro-micro_system.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2591985578453253360.post-7773553173509047832</id><published>2010-06-08T04:28:00.000-07:00</published><updated>2010-06-08T05:49:44.860-07:00</updated><title type='text'>Pedestrian flow at Euston station</title><content type='html'>A public discussion held recently at City Hall by Art on the Underground, about London journeys shows a good application of simulation of crowds. As you can see in the images below, London Underground studies people's movements through tube stations to see how they can help by regulating passenger flows through the placement of tickets gates and in turn improving the congestion.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://farm5.static.flickr.com/4055/4663436893_486c553d88.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 500px; height: 362px;" src="http://farm5.static.flickr.com/4055/4663436893_486c553d88.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The image above shows passenger flow before improving the congestion, simulated using Legion. The green dots are people entering, and red dots people exiting.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://farm5.static.flickr.com/4069/4664058294_a488918c20.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 500px; height: 391px;" src="http://farm5.static.flickr.com/4069/4664058294_a488918c20.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The flow improves considerably as can be seen once the ticket gates and hall layout were changed. The congestion is reduced as it provides more of a two lane flow of exiting and entering pedestrians. More details about the public discussion can be found on &lt;a href="http://london-underground.blogspot.com/2010/06/london-journeys-value-of-time.html"&gt;Going Underground's Blog&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2591985578453253360-7773553173509047832?l=crowdsimulation.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crowdsimulation.blogspot.com/feeds/7773553173509047832/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://crowdsimulation.blogspot.com/2010/06/pedestrian-flow-at-euston-station.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2591985578453253360/posts/default/7773553173509047832'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2591985578453253360/posts/default/7773553173509047832'/><link rel='alternate' type='text/html' href='http://crowdsimulation.blogspot.com/2010/06/pedestrian-flow-at-euston-station.html' title='Pedestrian flow at Euston station'/><author><name>Ateen Patel</name><uri>http://www.blogger.com/profile/09036013357436545987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm5.static.flickr.com/4055/4663436893_486c553d88_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2591985578453253360.post-1440127305931458875</id><published>2010-01-21T08:13:00.001-08:00</published><updated>2010-01-21T08:13:19.290-08:00</updated><title type='text'>Paper: Aggregate Dynamics for Dense Crowd Simulation (2009)</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;Ming Lin's latest &lt;a href='http://gamma.cs.unc.edu/DenseCrowds/'&gt;work&lt;/a&gt; has been featured in the recent publication of &lt;a href='http://www.siggraph.org/asia2009/'&gt;SIGGRAPH Asia 2009&lt;/a&gt;. The author presents an innovative method that is able to simulate tens of thousands of agents at interative rates.&lt;br/&gt;&lt;br/&gt;The work achieves these rates by combining a local behavioural model with a global planner such as &lt;a href='http://crowdsimulation.blogspot.com/2009/04/continuum-crowds.html'&gt;Continuum Crowds&lt;/a&gt; or &lt;a href='http://gamma.cs.unc.edu/crowd/aero/'&gt;Adaptive elastic Roadmaps&lt;/a&gt; (AeRO).&lt;br/&gt;&lt;br/&gt;&lt;center&gt;&lt;img width='314' height='204' src='http://lh4.ggpht.com/_xzShO7G3ktg/S1hzj3us3FI/AAAAAAAAAw8/c6o0S53qL0g/%5BUNSET%5D.jpg?imgmax=800' title='Image taken from gamma.cs.unc.edu' alt='Image taken from gamma.cs.unc.edu'/&gt;&lt;br/&gt;&lt;/center&gt;&lt;div align='center'&gt;&lt;small&gt;&lt;small&gt;&lt;i&gt;Image taken from &lt;a href='http://gamma.cs.unc.edu/DenseCrowds/'&gt;gamma.cs.unc.edu&lt;/a&gt;&lt;/i&gt;&lt;/small&gt;&lt;/small&gt;&lt;br/&gt;&lt;div align='left'&gt;The image above shows an overview of the algorithm. So how does this actually work?&lt;br/&gt;&lt;br/&gt;First of all, as I mentioned this approach combines a local behaviour with a global planner. The global planner here computes the flow of agents around an environment. The steps are described below:&lt;br/&gt;&lt;ul&gt;&lt;li&gt;Each agent is given a position and a current velocity computed.&lt;br/&gt;&lt;/li&gt;&lt;li&gt;Using the global planner such as the roadmap based method or Continuum Crowds method, a preferred velocity is then computed for each agent.&lt;/li&gt;&lt;li&gt;The navigable area in the environment is divided into a discrete grid of cells. The flow of particle for each cell is computed, using the current velocity and density of agents in the cell.&lt;/li&gt;&lt;li&gt;For each agent, a new velocity is computed, by interpolating the flow velocity with the desired velocity weighted by the local density at each cell.&lt;/li&gt;&lt;li&gt;Velocities of agents are constrained in dense areas by the global particle flow. In coarser areas, the agent's velocity are influence less by the global flow, and more by the velocity for the cell.&lt;/li&gt;&lt;li&gt;Finally, collision detection is applied, as well as a minimum distance for each pair of individual agents, similar to the continuum crowds simulation.&lt;/li&gt;&lt;/ul&gt;Here's a video of the simulation:&lt;br/&gt;&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class='youtube-video'&gt;&lt;div class='youtube-video'&gt;&lt;object width='425' height='355'&gt;&lt;param value='http://www.youtube.com/v/pqBSNAOsMDc&amp;amp;feature=youtube_gdata' name='movie'&gt; &lt;/param&gt;&lt;param value='transparent' name='wmode'&gt; &lt;/param&gt;&lt;center&gt;&lt;embed width='425' height='355' wmode='transparent' type='application/x-shockwave-flash' src='http://www.youtube.com/v/pqBSNAOsMDc&amp;amp;feature=youtube_gdata'&gt; &lt;/embed&gt;  &lt;/center&gt;  &lt;/object&gt;&lt;/div&gt;&lt;/div&gt;&lt;small&gt;&lt;i&gt;Aggregate Dynamics for Dense Crowd Simulation&lt;br/&gt;&lt;br/&gt;&lt;/i&gt;&lt;big&gt;A good hybrid approach used here that decreases the computation time considerably to accomodate a very large number of agents at interactive rates. The Unilaterally Incompressibility Constraint (UIC) introduced here that allows the interpolation between the global and local approach is something that has interested me.&lt;/big&gt;&lt;i&gt;&lt;br/&gt;&lt;/i&gt;&lt;/small&gt;&lt;br/&gt;&lt;br/&gt;&lt;div class='zemanta-pixie'&gt;&lt;img src='http://img.zemanta.com/pixy.gif?x-id=091e4b93-ed81-8ce9-9740-9d4c7faae027' alt='' class='zemanta-pixie-img'/&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2591985578453253360-1440127305931458875?l=crowdsimulation.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crowdsimulation.blogspot.com/feeds/1440127305931458875/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://crowdsimulation.blogspot.com/2010/01/paper-aggregate-dynamics-for-dense.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2591985578453253360/posts/default/1440127305931458875'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2591985578453253360/posts/default/1440127305931458875'/><link rel='alternate' type='text/html' href='http://crowdsimulation.blogspot.com/2010/01/paper-aggregate-dynamics-for-dense.html' title='Paper: Aggregate Dynamics for Dense Crowd Simulation (2009)'/><author><name>Ateen Patel</name><uri>http://www.blogger.com/profile/09036013357436545987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_xzShO7G3ktg/S1hzj3us3FI/AAAAAAAAAw8/c6o0S53qL0g/s72-c/%5BUNSET%5D.jpg?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2591985578453253360.post-3025654963946945551</id><published>2009-11-02T08:28:00.000-08:00</published><updated>2009-11-02T08:42:02.110-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='interacting particle systems'/><category scheme='http://www.blogger.com/atom/ns#' term='crowd navigation'/><category scheme='http://www.blogger.com/atom/ns#' term='Crowd Simulation'/><category scheme='http://www.blogger.com/atom/ns#' term='particle system'/><title type='text'>Oxford Circus 'X' Crossing opens</title><content type='html'>As mentioned in a previous &lt;a href="/http://crowdsimulation.blogspot.com/2009/04/pedestrian-model-for-tokyo-style.html"&gt;post&lt;/a&gt; about the Oxford Circus intersection getting a revamp, the intersection has finally been opened today after a number of months of the usual British roadworks. A picture of which can be seen below. A video can be found on a BBC news article &lt;a href="http://news.bbc.co.uk/1/hi/england/london/8337341.stm"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://static.guim.co.uk/sys-images/Guardian/About/General/2009/11/2/1257172291800/Europes-largest-diagonal--001.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 460px; height: 276px;" src="http://static.guim.co.uk/sys-images/Guardian/About/General/2009/11/2/1257172291800/Europes-largest-diagonal--001.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It's interesting to see how a simulation has been transformed into reality, and the benefits it will bring for pedestrians through one of Europe's busiest intersections. I would also guess that the simulation certainly aided the arguments for benefits of having Oxford Circus get a revamp. I'm certain there must be many more examples that exist, where simulations aid urban planners or architects for such applications.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2591985578453253360-3025654963946945551?l=crowdsimulation.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crowdsimulation.blogspot.com/feeds/3025654963946945551/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://crowdsimulation.blogspot.com/2009/11/oxford-circus-x-crossing-opens.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2591985578453253360/posts/default/3025654963946945551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2591985578453253360/posts/default/3025654963946945551'/><link rel='alternate' type='text/html' href='http://crowdsimulation.blogspot.com/2009/11/oxford-circus-x-crossing-opens.html' title='Oxford Circus &apos;X&apos; Crossing opens'/><author><name>Ateen Patel</name><uri>http://www.blogger.com/profile/09036013357436545987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2591985578453253360.post-2564545238027494140</id><published>2009-09-14T10:01:00.000-07:00</published><updated>2009-09-14T10:27:03.795-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='distributed processing'/><category scheme='http://www.blogger.com/atom/ns#' term='parallel processing'/><category scheme='http://www.blogger.com/atom/ns#' term='GPGPU'/><title type='text'>XBox 360 and GPGPU</title><content type='html'>It seems Microsoft's console is jumping into the bandwagon of parallel computing using GPGPUs, with new &lt;a href="http://news.bbc.co.uk/1/hi/technology/8254159.stm"&gt;research&lt;/a&gt; published that explores parallel computing using the graphics card of Microsoft's XBox 360. &lt;br /&gt;&lt;br /&gt;Dr Simon Scarle, previously a Microsoft Rare Studio Software Engineer, who is now a researcher at Warwick University's &lt;a href="http://digital.warwick.ac.uk/"&gt;WMG Digital Laboratory&lt;/a&gt;, used one of the XBox 360's GPUs to carry out research on how electrical signals around the heart moved around damaged cardiac cells.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://newsimg.bbc.co.uk/media/images/46374000/jpg/_46374103_sscarle.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 226px; height: 170px;" src="http://newsimg.bbc.co.uk/media/images/46374000/jpg/_46374103_sscarle.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Sony's PS3 has made the use of parallel computing from the very date of its release, with Stanford University's &lt;a href="http://folding.stanford.edu/"&gt;Folding@Home&lt;/a&gt; project, and has software development kits (SDK) for harnessing the parallel processing capability of the console.&lt;br /&gt;&lt;br /&gt;On a previous post, I mentioned how the PS3's parallel computing capability has also been used to create a flocking simulation. It would be interesting to see if such simulations are, created on the X360, and to see if Microsoft will consider releasing an SDK to attract researchers and developers to use its console for this purpose.&lt;br /&gt;&lt;br /&gt;It would certainly be a cost saving way of carrying out research that requires parallel computations, rather than the traditional use of clustered PCs or setting up a network of PCs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2591985578453253360-2564545238027494140?l=crowdsimulation.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crowdsimulation.blogspot.com/feeds/2564545238027494140/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://crowdsimulation.blogspot.com/2009/09/xbox-360-and-gpgpu.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2591985578453253360/posts/default/2564545238027494140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2591985578453253360/posts/default/2564545238027494140'/><link rel='alternate' type='text/html' href='http://crowdsimulation.blogspot.com/2009/09/xbox-360-and-gpgpu.html' title='XBox 360 and GPGPU'/><author><name>Ateen Patel</name><uri>http://www.blogger.com/profile/09036013357436545987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2591985578453253360.post-2392180898983251693</id><published>2009-08-25T08:33:00.000-07:00</published><updated>2009-08-25T08:59:11.882-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='behavioral animation'/><category scheme='http://www.blogger.com/atom/ns#' term='Crowd Behaviour'/><category scheme='http://www.blogger.com/atom/ns#' term='Crowd Simulation'/><category scheme='http://www.blogger.com/atom/ns#' term='flocking'/><title type='text'>Simulation of Starlings flocking behaviour using captured 3D video recordings of Starlings in flight</title><content type='html'>I was quite interested to find this flocking simulation of starling's on MIT's Physics arXiv &lt;a href="http://www.technologyreview.com/blog/arxiv/24029/"&gt;blog&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I mentioned Reynold's flocking behaviour model in an earlier &lt;a href="http://crowdsimulation.blogspot.com/2009/04/big-fast-crowds-on-sony-playstation-3.html"&gt;post&lt;/a&gt;, it's nice to see progress has been made in creating more accurate simulations by actually capturing 3D recordings using stereographic photography of real starlings in flight.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.technologyreview.com/blog/arxiv/files/32654/Starlings.gif"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 365px; height: 176px;" src="http://www.technologyreview.com/blog/arxiv/files/32654/Starlings.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;These video recordings that were published last year has actually allowed Charlotte Hemelrijk at the University of Groningen to create a flocking model, and vary the parameters that closely match real flight recordings of the starlings. &lt;br /&gt;&lt;br /&gt;These birds have very complex rules creating this self-organising behaviour, and the researchers seem to have been able to take apart the rules that govern them. These rules also govern other species such as fish, insects and even human crowds, and will likely give further insight into crowd behaviour, and allow for more accurate simulations of human crowds.&lt;br /&gt;&lt;br /&gt;I'll be looking forward to seeing a video of this flocking simulation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2591985578453253360-2392180898983251693?l=crowdsimulation.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crowdsimulation.blogspot.com/feeds/2392180898983251693/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://crowdsimulation.blogspot.com/2009/08/simulation-of-starlings-flocking.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2591985578453253360/posts/default/2392180898983251693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2591985578453253360/posts/default/2392180898983251693'/><link rel='alternate' type='text/html' href='http://crowdsimulation.blogspot.com/2009/08/simulation-of-starlings-flocking.html' title='Simulation of Starlings flocking behaviour using captured 3D video recordings of Starlings in flight'/><author><name>Ateen Patel</name><uri>http://www.blogger.com/profile/09036013357436545987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2591985578453253360.post-8075894180833860166</id><published>2009-08-24T12:49:00.001-07:00</published><updated>2009-08-24T12:49:54.425-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Crowd Simulation'/><category scheme='http://www.blogger.com/atom/ns#' term='particle system'/><category scheme='http://www.blogger.com/atom/ns#' term='simulation tools'/><title type='text'>XFlow: Fluid simulation tool</title><content type='html'>I've just come across XFlow, from &lt;a href="http://www.nextlimit.com"&gt;NextLimit&lt;/a&gt;, which is an accurate fluid simulation tool. It uses a particle based method, instead of a computational grid that are used in other Computational Fluid Dynamics (CFD) tools.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.nextlimit.com/img/xflow01.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 233px; height: 210px;" src="http://www.nextlimit.com/img/xflow01.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The interesting part of this tool is that they have explored other fields, where CFD can be applied to. As they use a particle based method, it is well suited for applying to simulation for complex systems. Examples include:&lt;br /&gt;&lt;br /&gt;1. Traffic Simulation&lt;br /&gt;2. Cell Simulation&lt;br /&gt;3. Crowd Simulation&lt;br /&gt;&lt;br /&gt;For the crowd simulation application, the particles can represent the pedestrians in different conditions, which can then be applied to scenarios such as emergency evacuation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2591985578453253360-8075894180833860166?l=crowdsimulation.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crowdsimulation.blogspot.com/feeds/8075894180833860166/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://crowdsimulation.blogspot.com/2009/08/xflow-fluid-simulation-tool.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2591985578453253360/posts/default/8075894180833860166'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2591985578453253360/posts/default/8075894180833860166'/><link rel='alternate' type='text/html' href='http://crowdsimulation.blogspot.com/2009/08/xflow-fluid-simulation-tool.html' title='XFlow: Fluid simulation tool'/><author><name>Ateen Patel</name><uri>http://www.blogger.com/profile/09036013357436545987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2591985578453253360.post-6177991987870618117</id><published>2009-08-18T10:46:00.000-07:00</published><updated>2009-08-18T11:38:46.254-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GPS'/><title type='text'>Layar: Augmented Reality Browser - Google Android Platform</title><content type='html'>I've just come across this Augmented reality browser available as an app on the Google Android Market. This is not actually an app, but a platform, which has provided its own API. Therefore, developers can create their own augmented reality layers on top of the browser. This addition of layers over the application brings huge potential in crowd sourced content, and the various other uses that are possible such as augmented reality tour guides, tourist information, social networks, points of interest, transport, etc.,&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/b64_16K2e08&amp;rel=0&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en&amp;feature=player_embedded&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;/param&gt;&lt;center&gt;&lt;embed src="http://www.youtube.com/v/b64_16K2e08&amp;rel=0&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en&amp;feature=player_embedded&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="425" height="344"&gt;&lt;/embed&gt;&lt;/center&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;There can be some more exotic approaches that can be applied to this kind of platform, such as augmented reality games, although, they have been around for a while (mainly GPS location based games), this takes it to a whole new level. &lt;br /&gt;&lt;br /&gt;I also wonder about the possibility of using this platform to study crowd behaviour of tourism and leisure activities. These types of behaviour have been traditionally very hard to model, and as this platform will mainly be focussed on these kinds of activities, it would give an insight into the behaviour. Although, getting user permission to gather such data would be an issue in itself.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2591985578453253360-6177991987870618117?l=crowdsimulation.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crowdsimulation.blogspot.com/feeds/6177991987870618117/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://crowdsimulation.blogspot.com/2009/08/layar-augmented-reality-browser-google.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2591985578453253360/posts/default/6177991987870618117'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2591985578453253360/posts/default/6177991987870618117'/><link rel='alternate' type='text/html' href='http://crowdsimulation.blogspot.com/2009/08/layar-augmented-reality-browser-google.html' title='Layar: Augmented Reality Browser - Google Android Platform'/><author><name>Ateen Patel</name><uri>http://www.blogger.com/profile/09036013357436545987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2591985578453253360.post-982470884231293618</id><published>2009-05-19T09:41:00.000-07:00</published><updated>2009-05-20T06:33:18.319-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Netlogo'/><category scheme='http://www.blogger.com/atom/ns#' term='Crowd Simulation'/><category scheme='http://www.blogger.com/atom/ns#' term='Agent Based Modelling'/><category scheme='http://www.blogger.com/atom/ns#' term='ABM'/><category scheme='http://www.blogger.com/atom/ns#' term='applications'/><category scheme='http://www.blogger.com/atom/ns#' term='3DMax'/><title type='text'>Netlogo to 3D Max: Code</title><content type='html'>&lt;p&gt;Based on the &lt;a href="http://crowdsimulation.blogspot.com/2009/04/netlogo-to-3dmax-pseudocode.html"&gt;pseudocode&lt;/a&gt; for the Netlogo to 3DMax implementation, I have now decided to post a short tutorial on exporting the Netlogo traffic simulation to 3DMax. This tutorial will mainly cover the output of the turtles and visualising it in 3DMax. &lt;/p&gt;&lt;p&gt;Netlogo (traffic grid simulation):&lt;/p&gt;&lt;p&gt;For the turtles, I output during runtime, therefore, open the file at the first tick, keep writing, and close the file at the last tick, depending on how many ticks you would want to output, in my case 500. &lt;/p&gt;&lt;pre&gt;if ticks = 0 [file-open "myfile.txt"]&lt;br /&gt;ask turtles [&lt;br /&gt;              file-write xcor file-type " " file-show ycor&lt;br /&gt;            ]&lt;br /&gt;if ticks &amp;gt;= 500 [file-close]&lt;/pre&gt;&lt;p&gt;This will output in the form:&lt;br /&gt;&lt;br /&gt;-12 (turtle: 2) 11&lt;br /&gt;-17 (turtle: 0) 5&lt;br /&gt;-4 (turtle: 1) -8&lt;br /&gt;&lt;br /&gt;I didn't find a simple way just to output only the turtle id number, so I manually delete the brackets and text using find and replace, giving me an output as seen below:&lt;br /&gt;&lt;br /&gt;-12 2 11&lt;br /&gt;-17 0 5&lt;br /&gt;-4 1 -8&lt;br /&gt;&lt;br /&gt;Now our next step is to import it into 3DMax. Once the output file has been stored, the script below can be run, and on clicking the 'Make' button, locate the output file, and it will create the animation.&lt;br /&gt;&lt;br /&gt;The code works by importing the Netlogo output file into an array. It can be found &lt;a href="http://www.casa.ucl.ac.uk/andrew/blog/tutorialThreeBoxAnimationCommented.ms"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I have commented the code in order to explain what is happening at each step.&lt;br /&gt;&lt;br /&gt;Running this script will result in the animation shown in my previous &lt;a href="http://crowdsimulation.blogspot.com/2009/03/netlogo-to-3d-max-visualisation.html"&gt;post&lt;/a&gt;. To get the road patches, and traffic lights in 3DMax, the code can be extended further to store the patches and traffic light states in arrays for each frame, once imported from the Netlogo output.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Update:&lt;/span&gt; As pointed out by a reader, there is actually a simple way to output only the turtle id number using the command:&lt;br /&gt;&lt;pre&gt;ask turtles [print who]&lt;/pre&gt;&lt;p&gt;Therefore, the Netlogo output above can be obtained by using the following command&lt;br /&gt;&lt;pre&gt;ask turtles &lt;br /&gt;[&lt;br /&gt;file-type word xcor " " file-type word who " " file-print ycor&lt;br /&gt;]&lt;/pre&gt;&lt;p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2591985578453253360-982470884231293618?l=crowdsimulation.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crowdsimulation.blogspot.com/feeds/982470884231293618/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://crowdsimulation.blogspot.com/2009/05/netlogo-to-3d-max-code.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2591985578453253360/posts/default/982470884231293618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2591985578453253360/posts/default/982470884231293618'/><link rel='alternate' type='text/html' href='http://crowdsimulation.blogspot.com/2009/05/netlogo-to-3d-max-code.html' title='Netlogo to 3D Max: Code'/><author><name>Ateen Patel</name><uri>http://www.blogger.com/profile/09036013357436545987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2591985578453253360.post-8121135559902775142</id><published>2009-04-25T06:07:00.001-07:00</published><updated>2009-04-25T06:26:24.058-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='interacting particle systems'/><category scheme='http://www.blogger.com/atom/ns#' term='behavioral animation'/><category scheme='http://www.blogger.com/atom/ns#' term='boids'/><category scheme='http://www.blogger.com/atom/ns#' term='distributed processing'/><category scheme='http://www.blogger.com/atom/ns#' term='parallel processing'/><category scheme='http://www.blogger.com/atom/ns#' term='Crowd Simulation'/><category scheme='http://www.blogger.com/atom/ns#' term='multi-agent simulation'/><category scheme='http://www.blogger.com/atom/ns#' term='flocking'/><category scheme='http://www.blogger.com/atom/ns#' term='multi-processor'/><title type='text'>Big, Fast Crowds on the Sony PlayStation 3</title><content type='html'>Craig Reynolds first introduced flocking to the computer graphics area by creating the Boids artificial life simulation in 1986. It was a computer model of coordinated animal motion such as bird flocks or fish schools, that allowed for collision avoidance and goal seeking. This model has had various applications such as bat swarms and penguin flocks in the movie '&lt;a href="http://us.imdb.com/M/title-exact?+Batman+Returns+%281992%29"&gt;Batman Returns&lt;/a&gt;'. A video of the early model can be seen below, further details can be found &lt;a href="http://www.red3d.com/cwr/boids/"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.siggraph.org/education/materials/HyperGraph/animation/art_life/video/3cr.mov"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 226px;" src="http://www.red3d.com/cwr/boids/images/flocking_around_19.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5327097906747257938" /&gt;&lt;/a&gt;&lt;br /&gt;The above model has a complexity of O(n&lt;sup&gt;2&lt;/sup&gt;), as each boid needs to consider each other boid in order to determine whether its a nearby flockmate. The complexity can be reduced to O(n), by the use of spatial hashing that keeps the boids sorted according to their location, and therefore, increase the population of the boids.&lt;br /&gt;&lt;br /&gt;Craig now works for the US R&amp;D group of Sony Computer Entertainment. Recently he created a &lt;a href="http://www.red3d.com/cwr/papers/2006/PSCrowdSandbox2006.html"&gt;crowd simulation&lt;/a&gt; on the Sony PlayStation 3, which extends from the very early model above. As spatial hashing is used in order to accomodate large numbers of agents, here, it forms the basis of a scalable multi-processor approach to create large, fast crowd simulations.  The PlayStation 3 has &lt;a href="http://research.scea.com/research/html/CellGDC05/index.html"&gt;Cell processor&lt;/a&gt;, which consists of a Power Processor Unit (PPU), multiple Synergistic Processor Units (SPU) - 6 available to the model, and an RSX GPU. The model makes use of this architecture to spatially subdivide regions, and use the multiple SPUs to update a number of regions in parallel, accelerating the crowd simulation. The model has been able to incorporate 15,000 agents running at 60fps. A video can be seen by clicking the picture below:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.research.scea.com/pscrowd/chameleon_static_360p.mp4"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 225px;" src="http://3.bp.blogspot.com/_xzShO7G3ktg/SfMLO7wmI6I/AAAAAAAAApM/x0I2FhsZyXs/s400/PSCrowdSandbox2006.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5328615135297020834" /&gt;&lt;/a&gt;&lt;br /&gt;It is interesting to see how different architectures can be used to create crowd simulations, and how the parallel processing nature of today's video games consoles, make them &lt;a href="http://portal.acm.org/citation.cfm?doid=1289816.1289819"&gt;low-cost and high performance platforms&lt;/a&gt; for parallel execution. I will be looking forward to see other general purpose applications of the Sony PS3.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2591985578453253360-8121135559902775142?l=crowdsimulation.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crowdsimulation.blogspot.com/feeds/8121135559902775142/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://crowdsimulation.blogspot.com/2009/04/big-fast-crowds-on-sony-playstation-3.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2591985578453253360/posts/default/8121135559902775142'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2591985578453253360/posts/default/8121135559902775142'/><link rel='alternate' type='text/html' href='http://crowdsimulation.blogspot.com/2009/04/big-fast-crowds-on-sony-playstation-3.html' title='Big, Fast Crowds on the Sony PlayStation 3'/><author><name>Ateen Patel</name><uri>http://www.blogger.com/profile/09036013357436545987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_xzShO7G3ktg/SfMLO7wmI6I/AAAAAAAAApM/x0I2FhsZyXs/s72-c/PSCrowdSandbox2006.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2591985578453253360.post-2376960004509875660</id><published>2009-04-20T09:57:00.000-07:00</published><updated>2009-04-21T04:32:16.183-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Crowd Simulation'/><category scheme='http://www.blogger.com/atom/ns#' term='paper'/><category scheme='http://www.blogger.com/atom/ns#' term='continuum dynamics'/><title type='text'>GPU Crowd Simulation</title><content type='html'>This is a conference sketch by Shopf, J., Oat, C., Barczak, J., presented in Siggraph Asia 2008.&lt;br /&gt;&lt;br /&gt;I've been talking about how I am looking into creating a crowd simulation on the GPU. The sketch states that, to their knowledge it is the first implementation of a massive crowd simulation entirely on the GPU. A video clip of the simulation can be seen by clicking the picture below, and the slides of their Siggraph Asia 2008 presentation can be found &lt;a href="https://a248.e.akamai.net/f/674/9206/0/www2.ati.com/misc/siggraph_asia_08/GPUCrowdSimulation_SLIDES.pdf"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://download-developer.amd.com/GPU/videos/GPUCrowdSimulation.mov"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 226px;" src="http://3.bp.blogspot.com/_xzShO7G3ktg/Se2nUm9ltFI/AAAAAAAAApE/jPklJDja8wo/s400/Untitled.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5327097906747257938" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The implementation consists of a simulation of 65,000 agents at realtime frame rates. They have used a framework that combines a continuum-based global path planner (similar to the continnuum crowds &lt;a href="http://crowdsimulation.blogspot.com/2009/04/continuum-crowds.html"&gt;post&lt;/a&gt; I did earlier), with a local avoidance model at a finer scale. &lt;br /&gt;&lt;br /&gt;This also allows the level of detail to change as the view is scaled. There are other conference sketches by ATI, such as '&lt;a href="https://a248.e.akamai.net/f/674/9206/0/www2.ati.com/misc/siggraph_asia_08/GPUTesselationForDetailedAnimatedCrowds.pdf"&gt;GPU Tesselation for Detailed, Animated Crowds&lt;/a&gt;', and '&lt;a href="https://a248.e.akamai.net/f/674/9206/0/www2.ati.com/misc/siggraph_asia_08/GPUBasedSceneManagementLargeCrowds.pdf"&gt;GPU-Based Scene Management for Rendering Large Crowds&lt;/a&gt;' that must have been used in the simulation. &lt;br /&gt;&lt;br /&gt;These sketches give an interesting insight into the capabilities of the GPU for simulating massive crowds, and how the level of detail can be varied based on the scale.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2591985578453253360-2376960004509875660?l=crowdsimulation.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crowdsimulation.blogspot.com/feeds/2376960004509875660/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://crowdsimulation.blogspot.com/2009/04/gpu-crowd-simulation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2591985578453253360/posts/default/2376960004509875660'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2591985578453253360/posts/default/2376960004509875660'/><link rel='alternate' type='text/html' href='http://crowdsimulation.blogspot.com/2009/04/gpu-crowd-simulation.html' title='GPU Crowd Simulation'/><author><name>Ateen Patel</name><uri>http://www.blogger.com/profile/09036013357436545987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_xzShO7G3ktg/Se2nUm9ltFI/AAAAAAAAApE/jPklJDja8wo/s72-c/Untitled.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2591985578453253360.post-6848930859478912252</id><published>2009-04-14T12:12:00.000-07:00</published><updated>2009-04-14T15:23:58.951-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Crowd Simulation'/><category scheme='http://www.blogger.com/atom/ns#' term='particle system'/><category scheme='http://www.blogger.com/atom/ns#' term='applications'/><category scheme='http://www.blogger.com/atom/ns#' term='3DMax'/><title type='text'>Pedestrian model for a Tokyo style intersection of Oxford Circus</title><content type='html'>As has been recently &lt;a href="http://www.guardian.co.uk/environment/ethicallivingblog/2009/apr/14/oxford-circus-pedestrian-friendly"&gt;announced&lt;/a&gt;, Oxford circus is to get a pedestrian-friendly revamp. Here is a video of a pedestrian model, first referred to me by Duncan Smith, a PhD student at CASA. The model consists of 5000 people, where a particle-based system was used to run the simulation. These particles were then replaced by animated people. &lt;br /&gt;&lt;br /&gt;The model was created by &lt;a href="http://www.designhive.co.uk/Press_and_PR/News_London_Oxford_Circus"&gt;designhive&lt;/a&gt;, and a map of the redesign can be seen &lt;a href="http://www.bdonline.co.uk/story.asp?sectioncode=426&amp;storycode=3138251&amp;channel=783&amp;c=2&amp;encCode=000000000194e452"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;object id="flashObj" width="468" height="314" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,47,0"&gt;&lt;param name="movie" value="http://c.brightcove.com/services/viewer/federated_f9/17574880001?isVid=1&amp;publisherID=10190167001" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;param name="flashVars" value="videoId=19073208001&amp;playerID=17574880001&amp;domain=embed&amp;" /&gt;&lt;param name="base" value="http://admin.brightcove.com" /&gt;&lt;param name="seamlesstabbing" value="false" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="swLiveConnect" value="true" /&gt;&lt;param name="allowScriptAccess" value="always" /&gt;&lt;center&gt;&lt;embed src="http://c.brightcove.com/services/viewer/federated_f9/17574880001?isVid=1&amp;publisherID=10190167001" bgcolor="#FFFFFF" flashVars="videoId=19073208001&amp;playerID=17574880001&amp;domain=embed&amp;" base="http://admin.brightcove.com" name="flashObj" width="468" height="314" seamlesstabbing="false" type="application/x-shockwave-flash" allowFullScreen="true" swLiveConnect="true" allowScriptAccess="always" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"&gt;&lt;/embed&gt;&lt;/center&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Here, the pedestrian and traffic simulation models are combined with a 3D Studio Max model of the Oxford Circus proposals, which makes this finished video very realistic.&lt;br /&gt;&lt;br /&gt;This is a type of application, where a 3D visualisation of the model can be used to enhance the communication of ideas, and making it more accessible to others.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2591985578453253360-6848930859478912252?l=crowdsimulation.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crowdsimulation.blogspot.com/feeds/6848930859478912252/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://crowdsimulation.blogspot.com/2009/04/pedestrian-model-for-tokyo-style.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2591985578453253360/posts/default/6848930859478912252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2591985578453253360/posts/default/6848930859478912252'/><link rel='alternate' type='text/html' href='http://crowdsimulation.blogspot.com/2009/04/pedestrian-model-for-tokyo-style.html' title='Pedestrian model for a Tokyo style intersection of Oxford Circus'/><author><name>Ateen Patel</name><uri>http://www.blogger.com/profile/09036013357436545987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2591985578453253360.post-2521855971854722872</id><published>2009-04-14T06:30:00.000-07:00</published><updated>2009-04-14T06:46:57.740-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Crowd Simulation'/><category scheme='http://www.blogger.com/atom/ns#' term='paper'/><category scheme='http://www.blogger.com/atom/ns#' term='continuum dynamics'/><title type='text'>Continuum Crowds</title><content type='html'>This is a paper by Treuille, A. Cooper, S., and Popović, Z, presented in Siggraph 2006.&lt;br /&gt;It's a real time crowd model based on continuum dynamics. The motion of crowds is controlled by a dynamic potential field, which allows it to avoid moving obstacles without the need of explicit collision avoidance. Their paper and video can be downloaded &lt;a href="http://grail.cs.washington.edu/projects/crowd-flows/"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/lGOvYyJ6r1c&amp;hl=en&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;center&gt;&lt;embed src="http://www.youtube.com/v/lGOvYyJ6r1c&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/center&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;This paper presents a lot of potential in creating a real time crowd simulation with large crowds. It would be interesting to see other implementations of this technique.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2591985578453253360-2521855971854722872?l=crowdsimulation.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crowdsimulation.blogspot.com/feeds/2521855971854722872/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://crowdsimulation.blogspot.com/2009/04/continuum-crowds.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2591985578453253360/posts/default/2521855971854722872'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2591985578453253360/posts/default/2521855971854722872'/><link rel='alternate' type='text/html' href='http://crowdsimulation.blogspot.com/2009/04/continuum-crowds.html' title='Continuum Crowds'/><author><name>Ateen Patel</name><uri>http://www.blogger.com/profile/09036013357436545987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2591985578453253360.post-5615783766199246291</id><published>2009-04-05T06:52:00.000-07:00</published><updated>2009-04-05T15:17:24.343-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Netlogo'/><category scheme='http://www.blogger.com/atom/ns#' term='Project'/><category scheme='http://www.blogger.com/atom/ns#' term='3DMax'/><title type='text'>Netlogo to 3DMax: Pseudocode</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_xzShO7G3ktg/SdkjiJW5XBI/AAAAAAAAAok/DkICnL_edIc/s1600-h/flow.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 275px;" src="http://1.bp.blogspot.com/_xzShO7G3ktg/SdkjiJW5XBI/AAAAAAAAAok/DkICnL_edIc/s400/flow.jpg" alt="" id="BLOGGER_PHOTO_ID_5321323504249429010" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As mentioned in an earlier post that I will be posting a pseudocode for a Netlogo to 3DMax implementation.&lt;br /&gt;This pseudocode is mainly for the Netlogo traffic simulation, but I will try and make it as general as possible in order to use in other models.&lt;br /&gt;&lt;br /&gt;Netlogo:&lt;br /&gt;For each tick:&lt;br /&gt;1. Output to file - x coordinate, turtle id, y coordinate&lt;br /&gt;&lt;br /&gt;Please note, that when the data is exported into a text file, it will have other test such as 'turtle id:', all text needs to be deleted, and should leave you with 3 numbers. An example for 3 turtles (1 tick) can be seen below:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_xzShO7G3ktg/Sdi7crQR48I/AAAAAAAAAoU/3XTC1hyMGUk/s1600-h/netlogo+op.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 186px; height: 117px;" src="http://2.bp.blogspot.com/_xzShO7G3ktg/Sdi7crQR48I/AAAAAAAAAoU/3XTC1hyMGUk/s200/netlogo+op.jpg" alt="" id="BLOGGER_PHOTO_ID_5321209061059978178" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This creates a file that has the turtle id and locations for each tick. Now, our next step is to import it into 3DMax, but this time each tick represents a frame. I did this by creating a script that would store the data in an array for each frame.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3DMax:&lt;br /&gt;1. Initialise an object (eg, box), for each turtle in the output file&lt;br /&gt;2. Read in netlogo output file, and store xy coordinates for each object per tick in an array. (I stored the array in a 2D form [object id][xy coordinates])&lt;br /&gt;3. Initialise positions of each object for first frame&lt;br /&gt;4. While not end of array&lt;br /&gt;5. Advance frame, and update object position corresponding to the object id in the array&lt;br /&gt;6. Keep repeating step 5 till end of file is reached.&lt;br /&gt;7. Render final animation&lt;br /&gt;&lt;br /&gt;Same process for traffic lights, where each traffic light is a turtle in netlogo.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2591985578453253360-5615783766199246291?l=crowdsimulation.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crowdsimulation.blogspot.com/feeds/5615783766199246291/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://crowdsimulation.blogspot.com/2009/04/netlogo-to-3dmax-pseudocode.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2591985578453253360/posts/default/5615783766199246291'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2591985578453253360/posts/default/5615783766199246291'/><link rel='alternate' type='text/html' href='http://crowdsimulation.blogspot.com/2009/04/netlogo-to-3dmax-pseudocode.html' title='Netlogo to 3DMax: Pseudocode'/><author><name>Ateen Patel</name><uri>http://www.blogger.com/profile/09036013357436545987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_xzShO7G3ktg/SdkjiJW5XBI/AAAAAAAAAok/DkICnL_edIc/s72-c/flow.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2591985578453253360.post-3156354051248906700</id><published>2009-03-08T09:16:00.000-07:00</published><updated>2009-04-03T04:45:52.687-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Crowd Simulation'/><category scheme='http://www.blogger.com/atom/ns#' term='Book'/><title type='text'>Book: Crowd Simulation By Daniel Thalmann, Soraia Raupp Musse, SpringerLink</title><content type='html'>&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;span style="font-size:100%;"&gt;I will be occasionally posting details of books that I have come across, which some may find interesting.&lt;br /&gt;This book gives a very good review of what is out there in the Crowd Simulation area. This includes different disciplines such as physics, sociology, computer science (as I mentioned in my first post), and the areas it's used in, such as the film and games industry, the academic research areas, planning, evacuation scenarios, and so on.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bks2.books.google.co.uk/books?id=-aY5V-ykawcC&amp;amp;printsec=frontcover&amp;amp;img=1&amp;amp;zoom=1&amp;amp;sig=ACfU3U1VML1l5NuBOeljPXWV280sTD8_GQ"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 128px; height: 210px;" src="http://bks2.books.google.co.uk/books?id=-aY5V-ykawcC&amp;amp;printsec=frontcover&amp;amp;img=1&amp;amp;zoom=1&amp;amp;sig=ACfU3U1VML1l5NuBOeljPXWV280sTD8_GQ" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;font-size:100%;" &gt;One of the authors, Daniel Thalmann, has quite a few publications in the Crowd simulation area, which can be found &lt;a href="http://vrlab.epfl.ch/Publications/publications_index.html"&gt;here&lt;/a&gt;&lt;br /&gt;As I mentioned in my first post that I will be exploring som&lt;/span&gt;&lt;span style="font-family: trebuchet ms;font-size:100%;" &gt;e &lt;/span&gt;&lt;span style="font-family: trebuchet ms;font-size:100%;" &gt;of the above mentioned areas. This book also interestingly mentions that 'despite the apparent breadth of t&lt;/span&gt;&lt;span style="font-family: trebuchet ms;font-size:100%;" &gt;he crowd simulation research basis, interdisciplinary exchange of ideas is rare; researchers in one field are usua&lt;/span&gt;&lt;span style="font-family: trebuchet ms;font-size:100%;" &gt;lly not very aware of works done in other fields'. I find this point very interesting, and therefore, brings to mind that work in various fields may often be duplicated, although I havent yet come across duplicate work, it is worth bearing in mind. I welcome such a book that would explore work that has been carried out in different disciplines.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2591985578453253360-3156354051248906700?l=crowdsimulation.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crowdsimulation.blogspot.com/feeds/3156354051248906700/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://crowdsimulation.blogspot.com/2009/03/book-crowd-simulation-by-daniel.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2591985578453253360/posts/default/3156354051248906700'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2591985578453253360/posts/default/3156354051248906700'/><link rel='alternate' type='text/html' href='http://crowdsimulation.blogspot.com/2009/03/book-crowd-simulation-by-daniel.html' title='Book: Crowd Simulation By Daniel Thalmann, Soraia Raupp Musse, SpringerLink'/><author><name>Ateen Patel</name><uri>http://www.blogger.com/profile/09036013357436545987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2591985578453253360.post-5701280320053697913</id><published>2009-03-08T08:39:00.000-07:00</published><updated>2009-04-03T04:44:58.754-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Netlogo'/><category scheme='http://www.blogger.com/atom/ns#' term='3DMax'/><title type='text'>Netlogo to 3D Max: Visualisation</title><content type='html'>&lt;span style=";font-family:trebuchet ms;font-size:100%;"  &gt;The first few posts will be a catch up of what has been done so far. The first piece I worked on was a Netlogo to 3D Max implementation. This implementation is for a street level scale of a city. Although, 3D Max is used for crowd and particle simulations, in order to model these complex systems, an external package like Netlogo is used. Through the use of &lt;a href="http://en.wikipedia.org/wiki/Loose_coupling"&gt;loose coupling&lt;/a&gt; with 3D Max, it allows us to easily visualise these systems.&lt;br /&gt;&lt;br /&gt;The movie below was first posted on the &lt;a href="http://digitalurban.blogspot.com/2008/11/netlogo-to-3dmax-complex-models-and-3d.html"&gt;Digital Urban blog&lt;/a&gt;. This was my first step to export a basic traffic model from Netlogo to 3D Max. The movements of the cars were first output into a file, the second step was to write a 3DS script to import these movements and animate them in 3D Max.&lt;/span&gt;&lt;br /&gt;&lt;object height="225" width="400"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=2242098&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1"&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=2242098&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" height="225" width="400"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;a href="http://vimeo.com/2242098"&gt;NetLogo to 3D Max - Proof of Concept&lt;/a&gt; from &lt;a href="http://vimeo.com/user584207"&gt;digitalurban&lt;/a&gt; on &lt;a href="http://vimeo.com/"&gt;Vimeo&lt;/a&gt;.&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;I have noticed quite a few comments asking how this import was done. I will be posting a pseudocode soon, and will try and give a summary for each step.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2591985578453253360-5701280320053697913?l=crowdsimulation.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crowdsimulation.blogspot.com/feeds/5701280320053697913/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://crowdsimulation.blogspot.com/2009/03/netlogo-to-3d-max-visualisation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2591985578453253360/posts/default/5701280320053697913'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2591985578453253360/posts/default/5701280320053697913'/><link rel='alternate' type='text/html' href='http://crowdsimulation.blogspot.com/2009/03/netlogo-to-3d-max-visualisation.html' title='Netlogo to 3D Max: Visualisation'/><author><name>Ateen Patel</name><uri>http://www.blogger.com/profile/09036013357436545987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2591985578453253360.post-981838177183085261</id><published>2009-03-07T08:20:00.001-08:00</published><updated>2009-04-05T15:19:02.953-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Project'/><title type='text'>Introduction</title><content type='html'>&lt;span style="font-family: trebuchet ms;font-size:100%;" &gt;As this is my first post, let me detail a little about me, and about this blog.&lt;br /&gt;I am currently studying for a PhD in Crowd Simulation in the Centre of Advanced Spatial Analysis, University College London (UCL). I did an MSc in Vision, Imaging &amp;amp; Virtual Environments (VIVE) at UCL last year. I am in my 1st year of the PhD, and will be regularly updating this blog to include posts related to my work, work related to this area, and applications that I come across in the field.&lt;br /&gt;My main aim for the PhD will be to create a real time scalable crowd simulation, therefore, allowing users to look at, for example, crowds in the city of london at varying scales, in real time.&lt;br /&gt;This will be achieved using different architectures depending on the scale. The architectures I will be exploring will include disciplines in social science and computer science.&lt;br /&gt;The work will carried out on the Graphical Processing Unit (GPU), concentrating on general purpose programming, i.e., &lt;a href="http://www.gpgpu.org/"&gt;GPGPU&lt;/a&gt;.&lt;br /&gt;The reason I have chosen to use general purpose programming on the GPU, is because, there has been active research in this area over the last few years with the wide deployment of GPUs. The parallel processing of GPUs also gives us a distinct advantage to populate larger amounts of the city with agents, or a larger number of agents in a smaller area.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2591985578453253360-981838177183085261?l=crowdsimulation.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://crowdsimulation.blogspot.com/feeds/981838177183085261/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://crowdsimulation.blogspot.com/2009/03/introduction.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2591985578453253360/posts/default/981838177183085261'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2591985578453253360/posts/default/981838177183085261'/><link rel='alternate' type='text/html' href='http://crowdsimulation.blogspot.com/2009/03/introduction.html' title='Introduction'/><author><name>Ateen Patel</name><uri>http://www.blogger.com/profile/09036013357436545987</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
