Lumion, Unity, Agents & Objects
Crowd, transport and urban simulations are at their roots down to ‘Agents’ or ‘Objects’ that are assigned a set of rules as to how to moves in relation to both the environment and other agents around them. 3D Studio Max has a built in ‘Crowd and Delegate’ system which can be used to assign behaviour and therefore create realistic traffic of pedestrian systems in 3D space.
The movie below displays our first tentative steps to explore emergent behaviour via the introduction of simple rules. The movie starts out with a basic ‘wander’ behaviour where the agents only knowledge is the shape of the surface. Moving on we assign each of our ‘cubes’ (of which we have become quite fond of…) a level of vision so they can see ahead and therefore avoid each other and objects in their environment.
Thirdly, the agents seek a ‘sphere’ which could be viewed as a source of food. While being aware of each other and tweaking the way the cubes move a swarm behaviour emerges. Finally, we introduce competing groups with two priorities, firstly to eat and secondly to stay as a group. The majority choose the group over the food but a couple stray off in search of sustenance and lose the other members.
Previous steps in our visualisation of agent based models are based around a simple flocking examples. This model is an attempt to mimic the flocking of birds, while the resulting motion also resembles schools of fish. The flocks that appear in this model are not created or led in any way by special leader rather, each bird is following exactly the same set of rules, from which flocks emerge.
We have exported the model into 3D Max providing the visualisation below, as ever these are early days but the results seem to run well with 300 ‘birds’ over 1000 frames. The birds are rendered as cubes at the moment for proof of concept:
Flocking in NetLogo exported to 3D Max from digitalurban on Vimeo.
Music “Funkmelon Blooz” (Electronica)
The birds follow three rules: “alignment”, “separation”, and “cohesion”. “Alignment” means that a bird tends to turn so that it is moving in the same direction that nearby birds are moving. “Separation” means that a bird will turn to avoid another bird which gets too close. “Cohesion” means that a bird will move towards other nearby birds (unless another bird is too close). When two birds are too close, the “separation” rule overrides the other two, which are deactivated until the minimum separation is achieved.
The three rules affect only the bird’s heading. Each bird always moves forward at the same constant speed.
If we were using the built in Crowd and Delegate system a true 3D flocking system would be possible, but it would be pure visualisation, by importing via NetLogo you gain access to the raw data and thus spatial analysis is possible. It is also quick to model and provides the best of both worlds – 3d visualisation and complex modelling.
While 3D Max is of use for crowd and particle simulation when it comes to modelling complex systems an external package is required, such as NetLogo. The movie below details our first steps at CASA (home of digital urban) to export a basic traffic model from NetLogo into 3D Studio Max. The import script was written by our new PhD student, Ateen Patel and opens up a vast array of opportunities to both visualise and model the city.
Music by The Tedd-Z Cookbook, Aerodrome (Funky Shuffle Remix)
NetLogo is a cross-platform multi-agent programmable modeling environment that is widely. It is particularly well suited for modeling complex systems developing over time. Modelers can give instructions to hundreds or thousands of independent “agents” all operating concurrently. This makes it possible to explore the connection between the micro-level behavior of individuals and the macro-level patterns that emerge from the interaction of many individuals.(Nation Master Encyclopedia).
How does this relate to the city? The next part is to put in real geographical data and to get the agents movies and reacting to each other on a spatial network, more on that to come. Perhaps using a particle system as per the movie below:
Unity is great, it is a fully featured game engine, however we are also looking at Lumion. Lumion, aimed more at direct visualization, is remarkably easy to learn, the movie below is the result of our first 20 minutes working with Lumion from first load to final output. It is merely proof of concept, but taking the output from Max and dragging into Lumion is refreshingly simply:
We will have more on Lumion in future posts…