What’s new in MassMotion 9.0

2D Drawing

  • Import and heal 2D drawings.
  • Create floors, links, stairs, ramps, escalators, portals, barriers directly from 2D drawings.
  • Trace over complex geometry, drawings, or imported images to create simplified objects.

Geometry Editing

  • Align objects and components with other elements in the scene using object snap (see Transforming Objects).
  • Change local frame of reference for translation/rotation/scale using manipulator snap (see Changing the Reference Frame ).
  • Edit imported reference geometry like any other object.
  • Protect reference geometry from inadvertent editing through a new 'locked' property.
  • Imported reference geometry is deleted instead of hidden when converting to MassMotion objects (see Application Preferences).

Geometry/Image Import

  • Import 2D dwg files.
  • Import Sketchup files.
  • Import image (jpg, png) files as textured rectangles to be used as references or decoration.

Dynamic Events

  • Control events based on changing conditions in the scene through the use of Triggers.

Creating Agents

  • New Trip Matrix event for origin/destination based demand.
  • Specify a table based schedule for Gate, Server and Broadcast (formerly Action) events.
  • Use collections in Timetable. Profile, token, portal, and gate entries can now be the name of a collection containing profiles, tokens, portals, or gates.

Gate Control

  • Gates can be set to default open or closed.
  • Gate events can both open and close gates
  • Gate events can apply to a single direction.
  • Gate events can apply selectively to agents using agent tests.

Server Control

  • Use new open server event to open/close access to a server, or hold/release agents after processing.
  • Use tests to control contact times, allowing them to change over the course of a simulation.
  • Use new ways to distribute agents across servers: largest available capacity, smallest distance, smallest cost.

MassMotion Software Development Kit (SDK)

  • Core focus on agent creation, movement, and behaviour
  • Written in C++
  • Scripting language bindings for Java, Python, .NET

Vehicle Event

  • Limit boarding access to vehicle cars based on car capacity.
  • Specify and/or show through passengers.
  • Control pre-arrival time for alighters, boarders, and through passengers.

Agent Tests

  • Test population counts in areas or on servers using 'Area Population'.
  • Test whether or not an event is actively operating on the scene (creating agents, opening gates, etc.) using 'Event Active'.
  • Test whether gates or servers are open or closed using 'Gate State' or 'Server State'.
  • Test whether agents are in a greater variety of area types including regions, floors, links, stairs, ramps, and escalators using 'In Area'.
  • Use tests in new ways (see Where Tests are Used).

Agent Actions

  • Give agents a series of tests to execute until a condition is met using 'Do Until'.
  • Repeat the same action and task until a condition is met using 'Repeat.
  • Delay execution of an action until after a task is complete using 'Apply Action'.
  • Control how long agents wait using duration, target time, or a new test.

Auto Save

  • Projects are automatically saved at intervals.  Manage auto save from application preferences.


  • There have been changes to how density is calculated, and the default relationship between density and speed.  For more information see Speed at Density.


  • Hide empty rows or columns in the Origin/Destination table query.

Batch Execution

  • Automatically execute and export queries using the new command line options '-query', '-queryall', and '-csvseparator' (see Console Simulation Window).

Name Changes

The following objects have been renamed:

Old Name

New Name

Reference Model


Analysis Region


Action event


Reference Time


Agent Action


Agent Test



It is now possible to view the status of events from a simulation run using the Event Observer.