Release Notes
What's new in AnyLogic 8.7.1
Bugfixes
Engine
- Fixed bug: "Transition cannot be resolved to a variable" exception caused after saving model with new name
- Fixed bug: Time Plot does not show time in AM/PM format despite the chosen axis format.
Material Handling Library
- Fixed bug: Agents with the same priorities are handled incorrectly by overhead crane.
- Fixed bug: Error during drawing animation frame while transporter is moved by a lift object.
- Fixed possible bug: Several items can enter in the one cell of fixed-cell conveyor causing "Incorrect distance between conveyor items" error.
Process Modeling Library
- Fixed potential bug: Internal canceling notification for RestrictedAreaStart block in case when agents can't simultaneously enter an opened restricted area due to its capacity.
Application
- Fixed bug: Part of script is not valid for a BAT file of standalone application in case Java is not installed in Program Files folder.
- Fixed bug: AnyLogic crashes while generating preview image with many elements in "Export model to AnyLogic Cloud" wizard.
Runtime animation
- Fixed bug: Wrong time displayed in developer panel after time zone was changed by code.
Other improvements
Material Handling Library
- Transfer table that has incorrect connection to conveyor is specified in the error message.
- Transporter's name is specified in the error message if there is an internal error in calculation of its movement.
Pedestrian Library
- Pedestrian movement near target line is now more accurate.
- PedEnter block: method take() is added in order to facilitate receiving a pedestrian.
- API documentation (javadoc).
Rail Library
- Train API that is called when train exits the rail yard now also considers cars that already left the rail yard.
All libraries
- API documentation (javadoc) for space markup elements.
Graphical Editor
- Zero-length connectors residing in flowchart block's port are automatically deleted.
Application
- Performance of routing graph.
What's new in AnyLogic 8.7
Material Handling Library
Now overhead cranes may have multiple bridges. This crane type by default operates in automatic mode, i.e. defines the bridges movement order by itself, but you can also control bridges manually with the help of extended API; experienced users might find this approach particularly useful.
You can model complex processes of agents seizing and releasing a crane with the help of new SeizeCrane and ReleaseCrane blocks.
Pedestrian Library
Now you can use nodes to create areas with access and speed restrictions for pedestrians. For example, you may need to model a supermarket where anti-epidemic measures limit client's throughput or evacuation process, where you may want to limit access to a hazardous area or open access to emergency exits.
Pedestrians are now able to observe social distance. This feature will also help you to model anti-epidemic measures.
Pedestrians' routing algorithm has been improved.
Process Modeling Library
It is now possible to recalculate task priority for agent while is in the Seize block.
Graphical editor
AnyLogic now supports conversion of 2D-blueprints from CAD files to walls. The embedded converter automatically recognizes the blueprint's details and the user only needs to select the elements they want to convert into walls. You can import blueprints in .dxf format (now all versions supported) and .dwg format.
Animation
Improved performance of model runtime animation (both 2D and 3D).
Experiments
Reinforcement Learning experiment that allows to define the training of a Learning Agent using simulation model. Export to Microsoft Bonsai reinforcement learning platform.
New example models



Other improvements
Engine
- Improved API documentation (javadoc).
- It is now possible to use "index" in the "Visible" field of a replicated shape.
- API: Setter methods of top-level 'presentation' group (like setX(), setVisible(), …) are no longer available — now they throw a descriptive error message.
Process Modeling Library
- Added API for detailed downtime (resource task) statistics collection.
- ResourcePool: added downtime information to inspect window.
Rail Library
- Position On Track callback actions: it is now possible to set agent type of train argument.
- Added a warning when a train has not reached the target in TrainMoveTo.
Material Handling Library
- Improved API documentation (javadoc).
- Overhead crane: the getInitialPosition() and setInitialPosition() API methods have been renamed to getInitialOffset() and setInitialOffset(), correspondingly. Old methods are deprecated and incompatible with cranes having more than one bridge.
-
MoveByCrane: remove() and cancel() API functions now release the crane that was seized.
-
Cranes: added API functions to get absolute X, Y, and Z positions of the crane hook.
Pedestrian Library
- Improved API documentation (javadoc).
Graphical editor
- Improved performance of bulk operations like changing colors.
- Improved default design-time view of charts.
- Better appearance of railway switches on complex layouts.
Palette
- Removed the cross button from palettes. Now palettes may be closed by using the "Plus" button located at the bottom of the Palette view.
Runtime Animation
- Updated Chromium to the latest version.
Property View
- Agent parameters mapping table view improved.
Examples
Bugfixes
Engine
- Fixed bug: GIS: Route provider didn't throw error if route was not found.
- Fixed bug: GIS: getDistanceByRoute() might return different results (before/after saving cache).
- Fixed bug: ModelDatabase.exportToExternalDB() didn't work if model was run from custom experiment.
- Fixed bug: Error that might occur when populating discrete space.
- Fixed bug: Database: exportToExternalDB() might throw "incorrect syntax near '0'" error.
Material Handling library
- Fixed bug: Incorrect distance between conveyor items passing through conveyor spur.
- Fixed bug: Possible "Incorrect angle" error when using transfer table.
- Fixed bug: Memory leak in multi-run experiments with transporters.
- Fixed bug: Loading time in MoveByCrane block might be incorrectly calculated.
Process Modeling Library
- Fixed bug: Seize: option Seize units one by one might throw error in case of alternative resource sets.
- Fixed bug: Possible error "ResourceUnitEndOfShiftTask cannot be cast to ResourceUnitEntityServiceSubtask".
- Fixed bug: Possible internal error "Cancelling entity with some path but unknown destination".
Pedestrian Library
- Fixed bug: Pedestrians might appear for a second on a different level while changing it.
- Fixed bug: Potential issues with undesired sources of randomness.
Graphical Editor
- Fixed bug: Shapefile converter to rail markup: Possible "Offset is negative" error.
- Fixed bug: Possible exception when deleting a road connected to an intersection.
- Fixed bug: Converting shapefile to rail markup elements might cause multiple "The length is zero" errors.
- Fixed bug: Possible railway tracks disconnection after network rotation.
- Fixed bug: Positioning problem that might lead to runtime error during switch initialization.
Palette
- Fixed bug: Possible hanging of palette popup under Linux OS.
Application
- Fixed bug: Export of model: NoClassDefFoundError error in exported model with GIS map.
-
Fixed bug: Possible AnyLogic shutdown under Linux OS when editing parameters.
What's new in AnyLogic 8.6
Application
Now new models by default don't display the Simulation page when
running. See the new option Skip
experiment screen and run the model on the Simulation
experiment properties.
Material Handling Library
Now
transporters – automated guided vehicles (AGV)
- can be limited or prohibited from movement in Rectangular
and Polygonal nodes. Restrictions
can be configured depending on available space, scheduling, throughput,
and
other conditions. Restricted areas can also be opened and closed
manually using
the API. When a transporter approaches a restricted area, it can wait
or take a
detour.
We have improved behavior and vision algorithm for path-guided
transporters.
Processing stations on
conveyors can now
process
objects individually, without waiting to be batched together. To enable
this, select the Processing starts
when agent enters station option in the Station
markup
element properties.
Rail Library
Switch now has several types:
- All to All connects an
unlimited number of tracks and allows trains to travel straight and
along obtuse routes of the intersecting tracks
- Single Slip connects four
tracks and allows trains to travel straight ahead as well as along the
obtuse angle formed by the junction involving the switching track
- Double Slip connects four
tracks and allows trains to travel straight ahead or onto obtuse
intersecting tracks
Now, as new trains are placed in the network, they may occupy
multiple tracks (removed the previous requirement for the created cars
to be fully on one track).
Manual blocking of tracks is another new feature that can be used
when a track is out of order or busy. If the path of a train is
blocked, the train can dynamically calculate a detour or stop before
the blocked track. Building the shortest route including blocked paths
can now be done via the Rail Settings block. We also
added new Track API: block(), unblock(), isBlocked(),
etc.
Now, using the API, you can check the availability of tracks and
reserve them for approaching trains. If another train
approaches a reserved track, it will stop and wait until the track is
clear. We have introduced new functions of Track: reserveFor(..), reservations(), cancelReservation(), isAvailableFor(..).
Process Modeling Library
ResourcePool: It is now possible
to select the next request from the request pool
for a resource unit via the Customize
request choice property.
Downtime: It is now possible to
specify resources that perform maintenance/failure/etc. processing.
Internationalization
Major update of Spanish translations.
New example models




Other improvements
Engine
- Removed Simultaneous events
selection mode from Experiment
properties, the default is LIFO now. All the previously used
alternative modes are converted to the Engine API calls.
- Histogram now shows
percents instead of fractions.
- Improved performance of randomFrom(population).
- Improved performance and fixed several animation problems with
disappearing or not updated agent animations when agents actively move
between spaces.
- It is now possible to define value step for Slider control.
- Slider value is now
validated (against min/max and step) when changed from code using API.
- Added runtime warnings mechanism using warning()
API function - may be useful for library developers.
- Improved animation performance (in case of long frame update
time, large invisible populations of agents).
- Animation could hang for a while after stopping and resuming on
debug breakpoints at run time.
- Animation performance improvements related to the adaptiveness of
the protocol between the model and the animation window.
- Improved animation responsiveness in case of time-consuming model
start.
- Improved drawing performance of rail track in case of large scale
view.
Material Handling Library
- Jib crane and overhead crane now display
warning when original location of an item and its destination are the
same.
- TransporterFleet: Delay to resume movement property
is added to
specify the time transporter needs to wait before it continues movement
after complete halt.
- MoveByTransporter: It is now
possible to define a place where a transporter should go after it is
released.
- Path-guided
transporters now use attractors if they are defined in the target node.
- Improved error diagnostic message when path is not found.
- Improved error reporting for transporter movement.
- Smarter deadlock
resolution for path-guided transporters in case of collision on the
same intersection node.
- Improved error diagnostics of transporters movement calculation
issues.
- Improved performance of calculations for idle and processing
transporters.
- Improved error diagnostics for the case when an item cannot enter
the fixed cell conveyor.
- Improved collision resolution when path-guided transporter state
is changed.
- Improved free space routing when traveling through level gates.
- MoveByTransporter, ReleaseTransporter:
Return to home location option is
renamed to Return to current home
location.
- TransporterFleet: It is now possible to set minimal
distance to obstacle at runtime for path-guided transporters.
- Added missing tooltips in Properties
View of library blocks.
- Overhead crane: added
API functions setColor() and setTrolleyColor().
- MoveByTransporter: Added options
to define what cancelled transporters should do.
Process Modeling Library
- Downtime: Added isActive(unit) function.
- Delay:
Added reduceDelay(agent, dt)
function in addition to the existing extendDelay().
- It is possible for a resource unit to select the next request
from the request pool.
- Assembler: Added delayTime argument to the On enter delay callback.
Pedestrian Library
- PedWait: it is now
possible to define that the whole group should leave waiting area
together.
- Pedestrians now use attractors of waiting area, when they are
queued in corresponding PedService block.
- PedWait: Added function to free
all waiting pedestrians: freeAllWaitingPeds().
- PedWait: methods free(ped) and freeAllWaitingPeds()
now also free pedestrians that are waiting for their groups.
Rail Library
- New API methods of Rail Settings to get the
shortest path considering blocked and/or reserved tracks: getShortestUnblockedPath(), getShortestAvailablePath().
- Position on Track:
New callbacks On train enter, On train exit.
- It is now possible to pause train: API functions of Train: pauseTrain() and resumeTrain().
- Added API function to calculate distance from one train to
another: distanceToTrain().
- TrainMoveTo now allows train to
start movement even if automatic route can't be completed because of
blocked/reserved tracks.
- Improved error diagnostics when train is located on the
unavailable track.
- Added Name attribute to
track in order to debug the model easily if the network is created by
code.
- Improved the way a train leaves the rail network: when the last
car leaves the last track.
- Added warning when an agent contains a switch with three tracks
with obtuse angles between them.
- Train is now deleted when it reaches the end of the final track
in case when options Route and
Target are set to Not defined.
Road Traffic Library
- Added description to the library.
Graphical editor
- Small usability improvements.
Built-in database
- Improved error diagnostics and validation.
- Option Use COMPACT for database
shutdown renamed to Compact on model close.
- Improved performance when using log: Compact on model close option is now
automatically turned on when user enables logging.
Animation
- GIS: Dark semi-transparent frame around GIS map is no longer
displayed when tiles are off.
Optimization Experiment
- Updated OptQuest optimizer to the newest version.
Projects View
- Projects View now displays all
the nodes, including the automatically created ones.
Installation
- Windows builds now may be installed using patch update mechanism
(faster installation).
- Ubuntu 20 LTS support.
Welcome
- Updated link to the AnyLogic Users Group in LinkedIn.
Experiments
- Removed Selection mode for
simultaneous events from experiment properties, old models
(where applicable) are converted automatically to the use of API calls.
Examples
- Example Models: Added How-To section "Using Python in
AnyLogic" powered by Pypeline Library (library not included, available
for free on GitHub).
- New models: Areas
with Limited Access for Transporters, Level
Gate, Bidirectional
Conveyors, Mobile
Rack System, Level
Junction, Blocking
Railway Tracks, Railway
Track Reservation.
- Improved models: SeizeTransporter
and ReleaseTransporter, Create
Transporter Network by Code, Group
Behavior in Services, Material
Handling in Hospital, Shopping
Mall, Border
Checkpoint, Hump
Yard, Supply
Chain, Predator
Prey Agent Based, Activity
Based Costing Analysis, Subway
Platform, Train
Unloading, FluidMerge,
FluidSplit.
- Added refactored Adaptive
Supply Chain model.
- SeizeTransporter
and ReleaseTransporter model now uses cranes.
- Solar
Panel Production Line model is updated using newest features
(cranes, more flexible station
operation modes).
- Removed unnecessary PedSettings
and Rail Settings blocks where
possible.
- Deleted obsolete example models (Conveyor with Dynamic Speed).
- Fixed memory leak in FluidToAgent
and AgentToFluid how-to model.
- Updated how-to models for the upcoming "Big Book".
- Added Chinese translation of descriptions of Rail Library how-to
models.
Bugfixes
Engine
- Fixed: GISRegion.getRandomPointInside()
function could hang.
- Fixed API for creating density map by code (setting type attribute).
- Fixed bug: Unexpected version limitation message since 8.5.1 PLE.
- Fixed potential influence to the model randomness in agents not
having stochastics inside.
Material Handling Library
- ConveyorEnter: Fixed
possible behavior issue with On
cancel enter action when using Hold
block.
- Fixed possible animation issue (overlapping items on conveyor) on
high real time scale.
- Fixed bug with transporter collision detection in certain models.
- Fixed bug: SeizeTransporter
doesn't work properly in case transporter's destination is node.
- Fixed local movement issues of free-space transporters.
- Fixed bug: possible unexpected Path
not Found exception with path-guided transporters.
- Fixed possible error when Transporter
Fleet capacity is reduced in runtime.
- Fixed: Transporter Fleet
controlled by schedule could raise error in some cases.
- Fixed bug with API of free space transporter: getRouteData() was null.
- Fixed possible bug: NullPointerException
on ITransporter.recalculateRoute(node)
call.
- Fixed bug with On leading edge
exit callback of conveyor: it could be called twice for the same
item.
- Fixed bug: Transporter released with policy Stay where it is wasn't seized by
agent.
- Fixed wrong transporter movement when using lift.
- Fixed possible "Incorrect movement direction" error with legal
transporter movement.
- Fixed behavior of recalculateRoute()
API function for free-space transporters.
- Fixed possible bug when free space transporter was moving too
slow.
- Fixed bug with possible transporter overtaking while moving on
the same path due to collision resolution.
- Fixed location of new path-guided transporters when capacity of
the fleet is increased.
- Fixed bug when transporter ignored z of level after transition
through level gate.
- Fixed bug: distanceTo(...)
function could return wrong result for free space transporters.
- Fixed rare error which could occur with agent moved by
transporter through lift: agent's network could be set to null.
Process Modeling Library
- ResourcePool: Fixed bug: On
destroy actions were not triggered when decreasing capacity with unit
destroy configured.
- ResourcePool: Fixed error
when unit goes to one more break if the
previous one was terminated by the task with a higher priority.
- Fixed Delay flowchart
block icon appearance issue (when the number of agents inside the block
temporarily exceeds its capacity).
- Fixed bug when Queue didn't release agents after calling remove(0) or removeFirst()
function.
- Fixed possible bug with Rack
Store / Rack Pick when
using resources with certain preemption policies.
- Fixed bug: Assembler
could become blocked after changing quantity by code.
Pedestrian Library
- Fixed possible error in PedWait
block when saving model snapshot.
- Fixed possible issues with grouped pedestrians waiting in PedWait and PedService blocks.
- Fixed bug with pedestrian routing to the targets inside agents
created in runtime.
- PedGoTo: Fixed possible
movement issues when the follow route
mode is selected.
- Fixed bug when pedestrians could walk along longest route
although shortest route was not crowded.
- Fixed error which could occur with groups being formed during a
long time.
Rail Library
- Fixed possible errors with model snapshot saving and loading.
- Fixed movement error when car length is greater than track length.
- Train Source: Fixed issue
with setting car length by code from Car
setup field.
- Fixed possible memory leak in Rail
Settings block.
Fluid Library
- Fixed issues when running a model loaded from snapshot.
- Fixed possibly wrong validation of priority values in FluidMerge block.
- Fixed possible exceptions because of with numeric errors,
e.g. NoFeasibleSolutionException.
- Fixed bug: Batch with amount less than tolerance is not discarded.
- Fixed bug: Batch with size = 1.0e-6 is ignored by bulk conveyor.
- Fixed bug: Initial batch can be null
causing unpredictable flowchart behavior.
- Fixed bug: Not a Number value could be set for rate/amount/speed
and other parameters.
- ProcessTank: Fixed bug
with constant evaluations of outputBatch
parameter on each animation frame.
Graphical editor
- Fixed bug: Collection with element class NetworkPort
didn't allow to choose network ports.
- Fixed several errors with drawing and editing rail networks.
- Fixed drawing issue when cloning conveyor station.
Built-in database
- Fixed "Error copying database table" upon exporting model
database after model run.
- Fixed possible error when creating new agent from MS SQL database
table.
Property View
- Fixed bug: Properties view
was disabled when selecting element not from the current agent type.
- Fixed possible problem with opening Properties View for some library
blocks.
- Fixed error which could occur when changing parameter having Slider editor control type.
- Fixed behavior of drop-down list property controls - when editing
properties of multiple selected elements.
- Fixed bug: Mac OS: Sorting (manual ordering) in Parameters
Preview section could freeze AnyLogic if one of parameters had Slider
editor.
Application
- Fixed export from command line: now it includes models from the
list of dependencies.
- Fixed opening Java class editor for newly created Java class when
Build model sources automatically
option in the Advanced tab of the Preferences menu is turned off.
- Fixed bug when restarting AnyLogic or reopening model could
return default values into empty fields of Slider range.
- Fixed export to Cloud issue when model has GIS map located in
dependent model.
Installation
- Fixed: Recent Mac OS updates sometimes could block Install
package.
Run Configuration
- Fixed compilation error in case if Input parameter type belongs to
third-party library.
What's new in AnyLogic 8.5.1 - 8.5.2
Material Handling Library
We’ve added an Overhead Crane.
You can choose the type (gantry or bridge) and the number of girders on
the crane (single or double girder); the appearance of the crane
depends on these properties. Like the Jib
Crane that appeared in AnyLogic 8.4, the overhead crane is
controlled by the MoveByCrane
block.
Automatic collision resolution for
custom routing of path-guided transporters.
Path-guided transporters are now smarter. They can recalculate their
route if their destination is changed and calculate distances to other
transporters, including across intersections. Also, they can reduce
their speed when navigating curved paths, or when approaching other
transporters. Should two transporters meet while traveling, they can
incur a time penalty to simulate collision resolution. This is now
possible both on paths and at intersections.
For all types of transporters, we've introduced the getDistanceTravelled() function. This helps to
calculate the distance traveled by the transporter.
Objects that use robots to move can now select from either the nearest
transporter or the one with the shortest route (taking into account
obstacles, such as walls, equipment, or conveyors). You can set this
selection policy in the SeizeTransporter
block.
Process Modeling Library
The
idling of equipment, e.g. caused by maintenance or malfunctioning, or
any breaks in resources operation is now easier to simulate. In the new
Downtime block, you can
configure this process by customizing the start time of such idling
periods and their reoccurrence policy.
New example models

Other improvements
Material Handling Library
- Added automatic collision resolution for custom routing of
path-guided transporters.
- Path-guided
transporter: implemented function distanceTo()
which returns distance on path to the specified point.
- User-friendly error message in case transporter tries to move to
an agent without a location set.
- Path-guided transporter: it is now possible to set speed for
movement on curved path.
- It is now possible to recalculate destination for path-guided
transporters using API call: recalculateRoute().
- Now timeInState() function accepts
states specific for transporters (DELIVERING,
GOING_TO_AGENT, etc.)
- Added isLoaded() API to crane
objects.
- Better positioning of free-space
transporters while picking and dropping off cargo (using cargoPosition, if defined in transporter).
- MoveByCrane:
Added After release option
with ability to return to initial position.
- Material items are now removed from their places after processing
on station if the station was set as a target in Convey block.
- Added shortest path dispatching policy for free space
transporters.
- Added a limitation for the number of path-guided transporters in
nodes.
- Speed properties of cranes are now dynamic (may be defined per
item).
- Jib Crane: Added initial
(home) trolley location.
- TransporterControl:
Added API function that switches off transporter vision in certain
nodes: disableCollisionAvoidanceInNodes().
- Transporter API: Added getDistanceTravelled()
function.
- Implemented removeAgent() function
for Position On Conveyor.
Process Modeling Library
- Resource Pool:
Added option to count busy time only when defining timeout to failure.
Rail Library
- Train Source:
Added First arrival time
option.
- TrainSource: added Initial speed
parameter.
- Railway Switch: Added
toggles counter API function: getToggleCount().
- Railway Track: Added getTrains() API function.
- Improved routing algorithm.
Pedestrian Library
- Density map: smarter
handling of semi-transparent colors when using custom color scheme.
- Pedestrian movement: Improved automatic path choice in case of
absolutely equivalent alternative paths.
Fluid Library
- Improved error diagnostics.
- Implemented a new tank
animation when the tank's capacity is infinite.
Engine
- Various small animation improvements.
Properties View
Installation
- AnyLogic PLE now may be updated without filling the form on the
web-site.
Examples
Bugfixes
Optimization Experiment
- Fixed
an error which could occur when using optimization with replications
having suggested values set for experiment parameters.
Material Handling Library
- Fixed: getNetworkNode() might
return null for transporter in the node.
- Fixed possible runtime exception in LiftController.
- Fixed possible exception during discrete event execution:
Incorrect time window.
- Fixed: Transporter couldn't enter network node with some specific
configurations of connected paths.
- Fixed an error ConcurrentModificationException
which could occur in some models with ConveyorMergeController.
- Fixed a rare bug when Overhead Crane didn't move more than one
item to attractor or node at default safe height.
- CustomStation: Fixed 'near conveyor' agent location option.
- Fixed bug: sometimes items couldn't enter cell-conveyor from
roller conveyor.
- Fixed a possible internal error: "Incorrect distance between TransporterPathItem items".
- Fixed: MHLSettings.executeTasks()
function could throw exception.
- Fixed: speed limitation on curves could behave differently
depending on how the network was drawn.
- Fixed bug: StackOverFlow exception caused by ConveyorPathController_xjal.setMotion() and .updateItem() functions.
- Fixed an animation issue when transporter starts moving from home
location (point node).
- Cranes properties: Fixed "Material item type" in the dynamic
properties.
- Fixed bug: Transporter could calculate the route to the point
with offset at path according to his leading edge.
- Fixed initialization of ConveyorStation/TranferTable manually
created by Java code.
- Fixed "agent was not able to leave port" error when canceling
item from Convey block connected with MoveByCrane.
- Fixed bug: getRouteData() throws
error when called from "On enter path".
- Fixed bug: Transporters could get stuck inside a wall.
- Fixed possible transporter animation rotation issue.
Road Traffic Library
- Fixed error while initializing road network when parking lot is
under another road.
- Fixed saving to snapshot bug which could occur in some models.
Rail Library
- Fixed possible exception with parallel multi-run experiments
(duplicate registration).
- TrainSource: Fixed arrival mode "from Database".
- Fixed a bug with trains animation in 3D on levels with z < 0.
- Fixed possible bug with saving model snapshot.
Pedestrian Library
- Fixed: Exit number was not recalculated for groups.
- Fixed: Pedestrians could pass through serpentine queue after
being serviced.
- Fixed PedSource in "add to custom population" mode: only group
leaders were added to the custom population, but not all members.
Fluid Library
- Fixed bug: MixTank.updateAmounts()
didn't work correctly if one of amounts equaled zero.
- Fixed Valve.dispense() function,
which could lead to actions like Tank On Full not happening.
- Fixed: "This block must be a master" error in some models.
Engine
- Fixed bug: getDistanceByRoute()
could throw runtime exception when using local routing graph based
route provider.
- Fixed check against too many iterations in parameter variation
experiment.
- Fixed the drawing of histogram percentiles and CDF.
Graphical Editor
- Fixed drag and drop of image files to AnyLogic.
- Fixed multi-selection of flowchart blocks by clicking with Ctrl or Shift
key pressed.
- Fixed a bug with drawing pipes and tanks with transparent colors.
Application
- Fixed: Mac OS version could display File Open dialog with wrong
language localization.
- Fixed compilation error when using transparent colors for Crane
animation.
- Fixed bug: Charts were not shown in search results.
Code generation
- Fixed initialization of GIS Network.
What's new in AnyLogic 8.5
Multi-level models support
We have introduced levels
for space markup elements, presentation shapes, charts, controls, etc.
Multi-level objects, such as buildings, conveyors, and even cruise
liners, are now easier to model in AnyLogic within a single agent.
You
work with levels similar to layers found in graphical software. Each
level can be designed separately, while maintaining a multi-layer view,
and the visibility of the levels can be changed, allowing you to hide
or display level contents.
To move material items between levels, special markup elements are
used:
Material Handling Library
Density map for transporters:
We have added a density map
for AGVs moving in free space.
Custom routing: Now you
can include specific paths in the custom route for the transporters.
New Material Handling Library
Tutorial: We have released a new tutorial - Lead Acid Battery Production.
It contains step-by-step instructions on how to build a model of a
production line for car batteries.
Pedestrian Library
Pedestrian traffic: Pallet racks, conveyors, and cranes now have the Is obstacle
property. When it is selected, the space markup element becomes an
obstacle for pedestrians and they are forced to go around it.
New example models


Other improvements
Optimization Experiment
- Updated
OptQuest optimizer to the newest version, added JavaDoc and
getOptimization() function returning the underlying OptQuest
optimization object. Models calling some specific OptQuest functions
now may have "Unreachable catch block..." compilation problem - just
remove the underlying try-catch block to fix that.
Material Handling Library
- Added 'z' property to ConveyorNetwork.
- Improved performance and stability of conveyor and transporter
movement.
- Transporter Control: recalculateAccessNode(Node) and recalculateAccessPath(Path)
functions added to
check the conditions of network elements accessibility and open/close
access to them accordingly.
- Improved diagnostic messages against invalid parameter values.
- Added deadlock resolution counter - TransporterControl.getCollisions().
The counter works when the Resolve
collisions option is selected.
- Transporter Fleet: added option
to define capacity via schedule.
- Improved animation: smooth item movement along conveyor curves.
- Free-space
transporters: Added parameter specifying maximum speed when moving
near an obstacle.
- Added custom resource choice for Station.
- Improved error diagnostics inside Move By Transporter when
removing an agent that is being delivered.
- ConveyorSpur: fixed
setting a gap between items after they are passed to the main conveyor.
Process Modeling Library
- Pickup and Dropoff
blocks are now allowed in the resource unit's prepare / wrap up
flowcharts.
- Source block now has First arrival time option in Interarrival time mode.
- Added options to choose the nearest / best unit for the given
agent in the Service, Assembler,
Rack Pick, and Rack
Store blocks.
- Added options to choose the nearest by GIS route unit for the
given agent in the Seize and Service
blocks.
- Multi-level support: new Level
parameter in addition to (x,y,z)
in the blocks defining location, like Source.
Engine
- Added an option to turn off
warnings reporting during the model run.
- Improved performance of distanceByRoute()
function for GIS models.
- 3D Object: Added properties
defining the management of the imported 3D object's internal lights and
the scene lighting.
- Improved performance when browser window is not visible
(minimized, or screen is locked, etc.).
- Changed
API for space markup elements initialization. Models created by code
may require code changes. Space markup elements should be located in a level now, and levels take care of
initialization.
- Added atan2fast(y, x) function to
compute atan2 ~20 times faster. Average accuracy loss is 3e-5 radians.
- Added a function to access the custom experiment (if available)
from the agent: getEngine().getExperimentCustom().
- Added functions setColor(i) and getColor(i) for all chart types. Use these
functions to dynamically change color of the chart items.
- Added the reset() function to
delete statistics for Density Map.
Built-in Database
- Ports for working with the built-in database are now chosen
dynamically from a range of free ports.
- Improved converter from old QueryDSL API.
Graphical Editor
- It is now possible to place a bus
stop on both sides of a unidirectional road.
- Improved grid snapping of the lift element while resizing and
dragging.
Properties View
- Path: Max speed and number of
transporters limits are now code fields allowing e.g. to use parameter
values there.
Application
- Maximum Java heap size (-Xmx) for AnyLogic IDE increased to 4Gb.
- Export to Cloud: Added matching the existing model by name when
uploading a new version.
- Export to Cloud: Now we suggest the Test models category by default in
AnyLogic for Evaluation license and for PLE edition.
- Implemented dynamic port choice for incoming messages from
command-line interface and running models.
- AnyLogic application is now configured to use 4 GB of memory.
Examples
Runtime UI
Bugfixes
Material Handling Library
- Fixed an error in transporter movement which could occur when
setting speed limits to some nodes.
- TransporterControl.findPath
throws RuntimeException if LocationXYZ
is used as an argument.
- Conveyor Spur: Fixed
and improved item movement, merging, priorities, and blocking logic.
- Fixed bug: Transporter could move in the wrong direction in some
cases.
- Fixed bug: Callback on leading edge could be called for an agent
that can't enter the station.
- Fixed bug: Station might
not start processing despite having enough items.
- Move By Transporter: Fixed a
possible error with setting the final agent destination location when Release transporter is turned off.
- Fixed a possible error in the free space
movement through narrow corridors.
- Fixed a possible error when free space transporters could ignore
racks and conveyors marked as obstacles.
- Fixed a possible error ("Incorrect event time") in the
transporter path logic.
- Fixed transporter route selection if the picked agent is located
in a polygonal node.
- Fixed Save in
snapshot feature for free space transporters.
Process Modeling Library
- Fixed bug: Possible duplication of the On seize action call when using Seize.recalculateResourceChoiceConditions().
- Assembler: Fixed bug: Setting
the location for assembled agents in the On at exit action. Added the Output buffer capacity parameter.
Pedestrian Library
- Fixed bug: grouped pedestrians
could be stuck in a looped flowchart in case the destination point
changes frequently.
Engine
- Fixed bug: Optimization
experiment didn't resume after pause.
- Statechart: Fixed current state value returned within the action
of the final state.
- Runtime UI: Fixed animation frames accumulation caused by
animation window being minimized or screen locked.
- Fixed incorrect agent movement from outside to the network: some
agents could move along a straight path.
- Fixed Combo Box
element: if the default value is empty, the first value from list
should be set automatically.
- Fixed: Schedule initialized
from the build-in database could throw incorrect interval error.
- Fixed a problem with strange pale colors of some 3D shapes (e.g.
rail cars from the palette).
- Fixed javadoc of exportToExternalDB()
function of getEngine().getModelDatabase().
Built-in Database
- Fixed compilation error when using option Check if any rows match condition(s)
in query builder.
Graphical Editor
- Fixed an error when trying to drag a path child element (Conveyor Spur, Station, Road Stop Line, etc.) from palette
to a path (Conveyor, Road, etc.) while there is a
multiselection in GE.
- Fixed bug: Changing the scale didn't change the scale of
conveyors.
Properties View
- Fixed
an error indication for a radio button linked to a variable: the error
"Invalid number" was displayed when typing the name of a new item.
- Fixed appearance issues of the color picker widget after saving
the model.
- Parameters Preview
section: Fixed freezing during reordering of parameters under Mac OS in
some cases.
- Fixed an error with displaying the properties of a collection
linked to a DB table.
- Fixed
Built-in Database properties: the same file was added to the list of
input data sources after several imports (of different tables).
- Fixed bug: Text file
element didn't show file name properly in some cases.
Application
- Fixed bug: Creating a custom flowchart block that contains a Batch
block.
- Fixed issues with connectors placement when creating a flowchart
block from selection.
- Fixed error: Resolving .jar dependencies from outside of a model
folder.
- Fixed an error which could occur when exporting a model with GIS
offline routing graph.
Examples
What's new in AnyLogic 8.4
Material Handling Library
Transporter movement:
Transporters can now move freely,
without the need for guidance paths. They can take into account
obstacles, including walls, equipment installations and other
transporters. Free space navigation can be specified in the TransporterFleet
block.
For path
guided transporters (AGVs), 8.4 now enables custom routing logic to
be specified in the TransporterControl block.
Multi-level conveyor networks and
AGVs:
New elements in AnyLogic 8.4 make it possible to operate networks of
conveyors and transporters across multiple segments and levels. The Network Port element allows you
to logically connect two conveyor networks or sections of a conveyor
into a single network. While a new Lift
space markup element can connect networks operating on different
levels. Navigation between ports and lifts can be configured or left
automatic. Together, these objects simplify the modeling of complex
multi-level conveyor systems.
A Jib Crane space markup element
is also now available, it is operated by the MoveByCrane block. It can
connect one or more networks.
Dynamic route recalculation can now be done on demand by calling the
recalculateRoute() function. For example,
if reading the current conditions from the Convey block shows that there is
congestion, it can change the route of a material item or AGV.
Connecting conveyors:
A final notable development in the Material Handling Library relates to
the connection of conveyors at angles. Previously it was necessary to
use Turntable or Transfer Table elements. Now,
a Conveyor Spur element is
automatically created instead.
User interface and working with models
We have improved 3D and 2D animations with increased frame rates and
responsiveness.
Now automatic code formatting
can be applied to one or several elements, or even the whole model.
Models can now be exported
as
separate Java applications from both the GUI and the command line.
Exported models can include embedded browsers for different OSes. This
makes models accessible even if you do not know the OS of a target
computer.
When the model is running, in the Developer panel, you can go to the
Events panel and observe the
event queue. You can also go to the event itself or the agent that it
applies to.
Model resource management
In
addition to the model file and its database, there may also be other
associated resources, such as GIS and CAD files, images, text, and
spreadsheets. In 8.4, they can be managed from the Resources
group in the model tree. Furthermore, AnyLogic knows which files are
needed to launch a model and includes them when exporting.
Process Modeling Library
To improve the animation performance of large storage systems, the
default drawing mode of the RackSystem block is now color
indication mode.
The Pickup block now has a new
operation mode Exact quantity.
This causes it to wait until it has the specified number of items
before moving on. For example, packaging items coming off a conveyor in
a material handling model.
AnyLogic Cloud
With the release of 8.4, we have also released AnyLogic Private Cloud
Lite
– a low-cost, easy-install version of AnyLogic Cloud. It can be
installed on a local network workstation and allows the private sharing
of simulation models within an organization. You can compare the
versions of AnyLogic Cloud here.
Excel files, or any other file type, can now be used to set simulation model input
parameters.
New example models





Other improvements
Runtime UI
- Added indicators for network access and progress of individual
runs in multi-run experiments.
- Scale object (ruler) is now displayed at runtime.
- Rapid changing of the index of a replicated agent being displayed
by pressing Up and Down keys while the focus is in the
index field (in Developer
panel). Allows for quicker iteration through the population.
- Added time of day input to the Run
until... and Pause at...
controls.
- Ctrl scroll in 3D window now
changes 2D presentation zoom.
- Improved visual appearance of the chart area: now solid borders
are drawn only along axes.
Engine
- Improved error diagnostics in some cases.
- Disabling and enabling of the Run/Pause and speed control button
groups at runtime by calling the setRunControlEnabled()
and setSpeedControlEnabled() functions
of ExperimentHost.
- Added the onError(error, root)
callback to the experiment API - may be overridden like the single
argument function onError(error), but
provides access to the originating top-level agent of the model (useful
in multiple run experiments).
- Added the remove()
function to all markup elements - an easy way to remove the element
from the presentation. Such removal however does not necessarily mean
removing from the model logic as logical networks and routes may have
been created before the removal and survive it.
- Added ShapeArrowLine - a line with
optional arrowheads. Use this object should you need a line with
arrows. Arrow-related API of ShapeLine
is deprecated and will be deleted in future versions.
- Added indexOf(array, textExpression)
function to find the first matching element, e.g. indexOf( people, p -> p.getName().equals("John") ).
- traceln() and TextFile.println() functions now support
printing 2D arrays.
- Added higher performance mode for models with both System
Dynamics equations and dense discrete events. See the new function getEngine().setEventAwareSolver().
- Added Pair class to the public API.
- Added temporary API to change the line and fill colors of
individual shapes in the shape file at runtime - see ShapeGISMap.Layer functions setFillColor() and setLineColor().
WARNING: this API is unstable and may be replaced in the future.
- Changed SQL Java API (QueryDSL-based): function exists() was replaced with hasResults(). E.g. selectFrom(
orders ).hasResults().
- Changed code generation. Any custom user libraries should be
rebuilt to work with this version of AnyLogic.
Graphical Editor
- Resize
handles are optimized to edit small shapes.
- Expanded range for zoom by Ctrl
scroll: 5% - 4000%.
- Scale of 3D object can be
changed by dragging the handle.
- Custom search bounds are now displayed on a GIS Map.
- Conveyors:
Now AnyLogic automatically sets Z-level for new markup elements on
connection to the existing conveyor with the defined Z-level.
- Added context-menu action in the graphical editor to convert Action Chart element to a Function.
Application
- Download
and single-click installation of the pack of built-in browsers for all
operating systems - useful when exporting model as a stand-alone
application targeted to different OS. See AnyLogic Help menu.
- Added browser choice to Preferences - used when
running the model from AnyLogic.
- Enabled switching to AnyLogic while the Get Support window is open (it can
be minimized and is no longer modal).
- Path markup elements are now
always inside networks. AnyLogic
creates networks automatically for all single (not connected) Path
elements. Old models are converted upon open.
- Progress of model export to
stand-alone application is now more precise when copying large
files.
- Added COMPACT parameter as AnyLogic database shutdown option.
- Added option to Preferences to setup maximum
available memory for AnyLogic Database.
- Updated
some of the third-party libraries to the latest versions, e.g. database
libraries. Models that use QueryDSL API directly may have compilation
errors and will require code review and small changes.
- Projects View: All types of networks
that contain a single element are now expanded in the Projects
view for convenience.
- New Experiment wizard: custom experiments
now may have model time settings taken from other experiments.
- Welcome page: Added links to AnyLogic Cloud API
documentation.
Properties View
- Added Color class option when
choosing types for parameters and variables.
- Database: Enabled viewing of the resources (Excel/Access/external
server) used for the auto import / export.
- Enabled editing properties of multiple selected library blocks of
the same type.
Process Modeling Library
- Pickup block now has the Exact quantity
option: a container agent will wait until there are enough items coming
into the 'inPickup' port (e.g. packaging items from Convey block in a material
handling model).
- RackSystem by default now uses
this drawing mode for stored agents: Don't
draw, use color indication (fast). This significantly improves
animation performance of large warehouse models. Check your models
appearance and go back to the At the
default position mode if needed.
- Function Delay.getDelayTime() now
returns the initially chosen value for the agent, it isn't increased
when block/agent is suspended.
- Seize / Service
/...: Added warning when agent passes the block immediately
due to empty resource set(s) defined.
- Source blocks now have a no argument inject()
function, an equivalent to calling inject(1).
Material Handling Library
- Added Is obstacle
property for markup elements to be used by transporters with free space
type of navigation.
- Added On at exit action
for MoveByTransporter and other
respective blocks.
- Station: Renamed parameter Delay to Process time.
- PositionOnConveyor: Added
callback for cell conveyors: On cell
enter and On cell exit.
Fluid Library
- Animation of the ProcessTank and MixTank
now has beautiful gradient color transition in processing phase, and
components are shown in MixTank
animation.
- API: functions of MixTank related to batches and
functions of ProcessTank related to batch
colors have changed their return values. Consult the documentation.
- FluidToAgent: flush()
function forces the block to create a new agent from the current amount
accumulated in the block regardless of the block settings.
- MixTank: updateAmounts()
function updates the component amounts if the mix is specified by
amounts of the components. If the mix is specified by the total amount
and fractions of each component, the function updates the total amount
of mix. The tank must be empty at the time of the function call.
- ProcessTank: updateCapacity() forces ProcessTank to
re-evaluate the dynamic capacity parameter.
- FluidSelectInput: toggle() function now returns 1 if input 1
becomes selected or 2 if input 2 becomes selected.
- Handling of numeric errors by snapping the calculated values to
acceptable via comparison to internal constant Utils.TOLERANCE.
- Added API to get the transporter that is transporting an agent: getTransporter().
Legacy
- The 32-bit version of AnyLogic for Windows operating systems is
no longer supported.
Bugfixes
Runtime UI
- Fixed: Drawing of the icon for initially empty population in some
cases.
- Fixed: Drawing of Plot with dynamically added datasets:
there could be filled area under the line.
- Fixed bug: The Navigation type property of 3D Window.
- Fixed: Sloped
area was drawn in 3D like a horizontal one.
- Fixed: Agents of ignored agent type with custom icon caused error
during animation frame drawing.
- Fixed: In some cases agent presentation rotation was applied
incorrectly.
- Fixed: Runtime drawing of the
Arc element with angle
>= 2*PI.
- Fixed:
GIS shape files rendering at runtime: shapes with excluded inner
regions and multiple region shapes are now displayed correctly.
- Fixed: Drop-down list of a combo box at runtime now stays within
the visible area (opens either upwards or downwards).
- Fixed: Animation of agents in GIS space now fully obeys the
scaling rules (hide, show constant size, or use real scale).
- Fixed: 2D projections of shapes rotated around X or Y axis are
now adjusted according to the rotation angle.
- Fixed: Arrowheads of agent links are now drawn according to the
settings.
- Fixed: Drawing of 3D objects
inside a replicated group.
- Fixed: Possible issues with color contrast of 3D animation shapes.
Engine
- Fixed bug: Added randomizing the locations for dynamically
created agents in continuous space were - if Random layout option is chosen.
- Fixed: Error during the construction of the network containing pallet racks with some special
cases of paths and nodes inside a rack aisle.
- Fixed: Logging to the database
feature for agents with multiple statecharts.
- Fixed: Calling presentation.remove(markupElement)
now removes the markup element from the presentation. See also: added remove() function to markup elements.
- Fixed: Initial visibility issue for GIS markup elements
dynamically added to the map by using GIS search API.
- Fixed: Calling Agent.jumpTo(node)
with the node from different space now automatically moves agent to
that space.
- Fixed: Loading from snapshot of models with agents generated in
the Source block by arrival table
from the database.
- Fixed TextFile.print() and TextFile.println() functions, when called with
an array argument, they now write the array contents.
- Fixed: 3D Object: setColor(materialName, color) function wasn't
working if custom colors were not defined.
Graphical Editor
- Fixed problems with drawing
Parking lot, Bus
stop and Conveyor elements on HiDPI
displays.
- Fixed problems with placing a transfer table on a narrow
conveyor.
- Fixed problems with repainting some elements when changing colors
in the Properties view.
Application
- Fixed error that occurred on adding one more Generic parameter to Agent type.
- Fixed: Temporary directory with model sources wasn't deleted
after uploading the
model to AnyLogic Cloud.
- Fixed: If Excel file contains formulas, the imported table has
empty cells instead of the result.
- Fixed: Create Documentation
feature returns the report with nulls in column headers and page
numbers.
- Fixed: Subdimensions are not copied with the master dimension.
- Fixed error when adding 3D object
with spaces in its filename.
- Fixed: AnyLogic proxy settings were not transferred to the
running model.
- Fixed bug with switching the product language to Brazilian
Portuguese.
Properties View
- Fixed: Copy-paste actions for tables with coordinates (e.g.
points of path).
- Fixed: Error while linking slider to a parameter of flowchart
block.
- Fixed: Schedule: wrong
conversion from days to week in the Repeat
every week option.
- Fixed: Error in the Position
and size section when selecting several geometric elements ( Rectangle, Oval)
with different rotations.
- Fixed: Maximum available memory for Experiment / Run
Configuration wasn't saved
in some cases.
- Fixed: Some properties of Material Handling space markups
elements didn't support multiselection editing.
Process Modeling Library
- Fixed: Custom agent speed defined in the properties of Agent type section could be not
applied for agents created in flowchart blocks.
Material Handling Library
- Fixed: Enabled using self variable
in the code fields of Material
Handling Library space markup elements.
- Fixed: Creation of a new agent type from the properties of TransporterFleet block: added
Transporter to the list of
available options in the Use in the
flowcharts as: property of the Agent Type.
- Fixed: Possible bug where the Process Modeling Library required
to build the model with Material Handling Library blocks only.
- Fixed: Conveyor that stopped due to
blocked position on another conveyor wasn't restarted after position
unblock.
- Fixed: Possible error when material items leave the current
conveyor at the speed of the next conveyor.
Fluid Library
- ProcessTank: fixed error which
could occur when appending batches while changing the output rate.
- Fixed error: FluidMerge could generate "null"
batch at output.
What's new in AnyLogic 8.3
Material Handling Library
AnyLogic version 8.3 introduces the specialized Material Handling Library.
It enables and assists the simulation of processes in factories and
warehouses. The library is especially useful for simulating production
lines and assembly lines, as well as the transportation of goods in
warehouses and factories – including the use of robots, such as
automated guided vehicles (AGV). The routing of AGVs can be handled
automatically in AnyLogic to help simplify model development.

New example models
To
help you get started with the new library, there are several example
models and how-tos. You can find the example models on the AnyLogic
welcome page in the application, and also in the AnyLogic Cloud:
- Solar Panel Production Line
- Palletizing system with AGV
- Warehouse conveyor
Models now launch in the browser
If
you run a model in AnyLogic 8.3, instead of the usual presentation
window, a browser window will open to display the model animation. This
development enables improved animation, as already seen in the AnyLogic
Cloud.
New 3D shape format support
AnyLogic
3D shapes now use the Collada (*.dae) format. This gives developers
greater freedom to use 3rd party objects in models. Note: 3D shapes in
the old *.x3d format will be converted and should be verified.
Custom blocks can be created in 2 clicks
Custom flowchart
blocks
are useful when you need to simplify the appearance of a process
diagram or use the same group of blocks several times. To create a
custom block: in the process diagram, select the blocks you want to
group, right click the mouse button, and select Create Flowchart Block
from the context menu. The properties and icon of custom blocks are
customizable.
Other improvements
- Cloud model animation: added camera transition animation.
- Colors dialog: the Chosen color text field is now
editable.
- Graphical Editor: 3D window grid
is drawn at design-time.
- Graphical Editor: camera
element is centered and highlighted in the editor after pasting new
coordinates from clipboard.
- Improved interactivity of model animation: shapes having On click code are now highlighted on
mouse cursor hover.
- Properties: Agent and Embedded Agent / Population, Dimensions and movement properties:
added highlighting for non-default values.
- Conveyor, Bulk
conveyor belt: added properties to draw stands, from some base
Z-level.
- Increased performance of opening a model and showing Properties
view.
- Statechart actions: added 'self' argument - reference to the
current statechart element.
- 3D Lights: changed properties:
some advanced light settings are removed, e.g. specular color,
quadratic attenuation.
- 3D Object: It is possible
now to use transparent custom colors in 3D objects.
- Exporting
model to standalone application
now generates run script files (e.g. bat, sh) for all operating systems
(Windows, Linux, Mac). The only requirements are Java and, for OS other
than the one the model is exported from: Chromium browser in a
'chromium' subfolder of exported model.
- Refactored some example models to using Canvas shape - improved drawing
performance for large populations (with > 100k agents).
- Refactored Harvest Simulator example - now using Fluid Library.
- Engine API: Renamed Presentation
concept to ExperimentHost: getPresentation() function is now deprecated.
Please use getExperimentHost() instead,
if needed. Old models are converted automatically.
- Engine API: Added traceln() functions with color argument,
which allows you to add colored lines to model's debug panel console.
- Engine API: Added new functions for searching network elements.
- Engine API: 3D Object: it is now possible to change custom color
mappings at run-time using setColor(materialName,
color) function. Material name can be found in property view.
- Engine API: Added more toDate() functions: parsing string as a
date and creating date for the given day, month, and year values.
- New 3D objects:
manufacturing machines, aircraft parts.
- Introduced smooth 3D camera
movement.
- 3D Objects added from
palette are now stored in '3d' subfolder, not 'x3d' as earlier.
- New 3D-objects – aircraft parts and manufacturing equipment.
- Process Modeling Library: ResourcePool. Added function getRequests() to view current queue of
requests for resource units.
- Process Modeling Library:
Seize. Added function recalculateResourceChoiceConditions()
to re-check custom resource choice conditions for reserved and idle
units which may become available for reserving and seizing by some
agents that are waiting for a unit.
- Process Modeling Library:
Seize: added options to
choose the nearest / best unit for the given agent.
- Pedestrian default animation is now not click-selectable by
default. To customize this please add PedSettings block to your model
and turn on the corresponding parameter.
- Legacy: removed 32-bit version of AnyLogic for Linux operating
systems.
- Legacy: Charts: removed On item
removal code property.
- Legacy: Group: On draw code property: graphics and panel
keywords are no longer available.
- Legacy: Experiments: removed Maximized
size, Close confirmation
and other window-related properties. Added options to enable and to
show developer panel on
start.
- Legacy:
Standalone exported models: removed runtime preferences dialog.
Introduced ini-file mechanism to define custom preferences.
- Experiment:
new design of user interface created by default for new simulation,
optimization, parameter variation and other type experiments. For
example, there is no "Run the model" button anymore. Standard "Run"
button should be used.
- Experiment: Enable zoom and
panning option: now, if off, it doesn't allow to look outside of the
current view area, while allowing to zoom/pan inside the area (common
behavior for touchscreen devices).
- Added preferences for setting connection to a Private Cloud.
- GIS map: The Cycle map type of tiles was removed due to
changes
in its usage policy.
- Export to AnyLogic Cloud: Added options to provide public access
to the model and describe it.
- Temporary change: disabled drawing of links between agents in GIS
space.
- Temporary change: Events
Profiler is not shown at runtime.
- Temporary change: Area having slope is drawn in 3D like
horizontal.
Bugfixes
- Code generation of getNameOfShape_xjal()
could exceed the size limit.
- Code generation of "On click" code for Agent Presentation shape
of agent population.
- Fixed bug with build error after deleting model database.
- Toolbar: fixed bug when AnyLogic Cloud user name could be "null"
on the Login toolbar button.
- Graphical Editor: fixed editing of Text element: Ctrl A was not
working in the in-place editor, corrected displaying of non-English
letters.
- Fixed example model "Wholesale warehouse", reaction to controller
capacity change.
- Fixed example model "Predator Prey", where NaN could occur on a
virtual speed.
- Fixed example model "Grain Terminal", where deadlock could occur
on a virtual speed.
- Some old 3D rendering issues were fixed with migrating to new 3D
(browser-based) technology.
- Fixed 3D drawing issues related to Text shapes displaying certain
languages.
- Fixed function executeExpression()
- now it supports parallel evaluations in multi-run experiments.
- Fixed order of initialization: Schedules,
Custom
Distributions and Table
Functions are now loaded from database after agent parameter are
set.
- Fixed bug: sometimes adding new parameter to agent type didn't
add it to agents of that type until reopening the model.
- Shapes' properties: fixed bug with changing color from
"No/default color" to some value using the Colors dialog: this might result to
a fully transparent color.
- Fixed creation of Compare Runs
experiment: there could be a compilation error with automatically
generated call to getPresentation().refresh().
- Fixed code completion in statechart transition triggered by
message (type of msg argument).
- Library blocks' properties: Some flowchart blocks had their
essential Agent type parameter
in the Advanced section - now
these arguments are in the top section.
- Process Modeling Library:
Seize block: fixed
exception in queue when the Enable
preemption mode is turned on.
- Process
Modeling Library: Fixed resource movement through network when
preemption occurs: units might instantly jump to the current agent's
location.
- Fluid Library: In some cases one Bulk Conveyor with in-rate equal
to zero couldn't be stopped.
- AnyLogic Cloud: Uploading: Reduced size of the GIS cache.
- Engine: Fixed error: function Path.getPointAtOffset()
could return NaN coordinates in rare cases.
- Engine: Fixed goToPopulation( population )
function: it could cause internal presentation error.
What's new in AnyLogic 8
Export models to AnyLogic Cloud
AnyLogic Cloud (https://cloud.anylogic.com/)
is a web service that allows you to run models online from a web
browser on any device, including phones and tablets, and share the
models with other users.
The model export scenario is quite simple. You have just to define
inputs and outputs of the model using the Run Configuration
editor.
The
AnyLogic Cloud experience starts in the desktop application where you
define inputs and outputs of the model. The model is then uploaded to a
secure cloud-based storage. It is executed remotely and leverages high
performance cloud computing by utilizing as many nodes in parallel as
needed.
With AnyLogic Cloud, you can:
- Configure experiment parameters in teams using version control.
- View model animation.
- Create custom dashboards to analyze outputs and key metrics.

Inside
AnyLogic Cloud, you have a collection of your own models that you work
with as a developer or a user. You can share these models with anyone
to organize a mutually beneficial cooperation.

Access
public models shared by the AnyLogic community or create your own
online simulation portfolio by uploading them from AnyLogic.

New example models




Other improvements
- New Output element allows
to track scalar numeric (or other supported type) values to be reported
to AnyLogic Cloud.
- Better support of high resolution displays (HiDPI, Retina etc.).
- Frame size is not defined in the properties of an experiment, you
can resize the frame by dragging its borders with the mouse.
- Combo Box control is
now available in all editions.
- Now GIS Map uses Mercator projection only.
- Removed old (version 6) libraries.
- Code completion
now shows better suggestions (containing the desired text also in the
middle of name of the function / variable).
- Added preferences for
setting the default location for new models.
- Statechart states are now generated as Java enums - not as
numbers of type short - some models
might be not fully convertible, please check them. E.g. if your
function has argument - state of type short,
change the type to MyAgent.MyStatechart_State
where MyStatechart is the name of your
statechart.
- Removed non-persistent shapes concept. Now all animation shapes,
controls and charts are persistent (have programmatic control).
- Removed getPresentation().getPanel(),
getOffsetX(), getOffsetY(),
getZoom() and getFrame()
functions.
- When model is run from custom experiments getPresentation() function will return some
not null dummy object.
- Charts with time axis: added predefined date format patterns.
- New experiment property "Enable zoom and panning" (instead of two
independent properties).
- Schedule: removed redundant
property "List of ranges / List of start times" which was duplicating
"Intervals / Moments" property.
- Parameters with units (Time, Rate, etc.): removed almost useless
property "Numeric type" - now all such parameters have type double.
- Agents configured to be placed at the animation location now have
initial rotation, according to the animation rotation.
- Agent population now has stream()
method which allows operations according to Java 8 Stream API.
- Added Agent.applyNetwork() and randomAgentInside()
function variants which can utilize custom random generator and allow
to build agent networks of the same structure in experiments having
random seed / replications.
- Improved performance of dataset and histogram data.
- Now you can set run-time animation zoom from 1% now (using text
input field on toolbar).
- Process Modeling Library: Queue:
renamed sortEntities() function to sortAgents() (old one is deprecated but still
working).
- Properties View: Fixed copy-paste actions of rows in some tables.
- Graphical editor: Disconnect
a library block from a flowchart by dragging it with Shift key.
- Graphical editor: Allow connecting a library block
to a flowchart when copying it by Ctrl-drag.
- Graphical editor: Create Text File, Excel File, Image or Object3D
by dropping an external file onto agent's diagram.
- Graphical editor: Double click on Text Element opens an in-place
editor.
- Projects tree view: Java classes of java @annotation and java
enum types now have corresponding icons.
What's new in AnyLogic 7.3
New Road Traffic Library
The main new feature added is the Road Traffic Library.
The Road Traffic Library allows you to simulate vehicle traffic on
roads. The library supports detailed physical level modeling of vehicle
movement.
The library allows the users to simulate:
- Vehicle movement on roads, taking into account driving
regulations.
- Traffic lights, pedestrian crossings, and priorities at
junctions.
- Parking by the road side.
- Public transport movements.
The Road Traffic library is suitable for modeling highway traffic,
street traffic, on-site transportation at manufacturing sites, or any
other systems with vehicles, roads, and lanes. A special traffic
density tool allows you to analyze road network load.

Fluid Library improvements
We added more blocks to the Fluid Library:
We
also radically improved the library engine so that the execution speed
stays high even for vast and dynamically reconfigured networks. The
fluid library blocks now collect statistics on stored amounts and flow
rates and move it to the built-in database. Improvements also include
custom reaction on rate changes, extended API, and better animation.
Easy data import from external DB
Also, users now have the ability to load data for schedule, table function and custom distribution
from the database.
New example models
What's new in AnyLogic 7.2
Built-in database
AnyLogic models now have a built-in fully integrated database
to read input data and write simulation output. The database is
exported with the model and is as portable and cross-platform as the
model itself. With the new database, you can:
- Read parameter values and configure models
- Create parameterized
agent populations
- Generate entity
arrivals in the process models
- Import data from
other databases or from Excel spreadsheets and store it in the easily
accessible form
- Log flowchart
activities, events, statechart transitions, message passing, and agent
biographies.
- View resource utilization, waiting, processing, and travel times
- Store and export statistics, datasets, and custom logs

Fluid Library
The new Fluid Library
allows you to efficiently simulate storage and transfer of fluids, bulk
matter, or large amounts of discrete items, which you do not want to
represent as separate objects.

Escalators and zigzag queues for pedestrian flow models
AnyLogic Pedestrian Library has been upgraded with highly
customizable escalator
and zigzag (or serpentine)
queue objects.

Railway routing option for GIS models
In addition to car, bike, and foot routing methods, AnyLogic GIS now
offers routing by railways.

Shape files conversion to AnyLogic markup
Vector graphics from imported shapefiles can now be automatically converted into
AnyLogic markup elements, such as rail tracks, which can be used with
the Rail Library.

Quick popup help for library blocks and parameters
Now if you hold the mouse pointer over a library element or a
parameter, a window with quick help will pop up.

New example models
Distribution center, Gas Station
What's new in AnyLogic 7.1
Massive upgrade of the GIS Map shape
The GIS Map
shape has been greatly improved: now it supports tiled maps (i.e.
OpenStreetMap),
and you can use all the data that comes along with them: cities,
regions, road networks, objects (hospitals, schools, bus stops, etc.).
You can place agents in specific locations on the map, and make them
move along existing roads or routes. The routes can be requested from
one of the supported route servers (AnyLogic, YOURS or BRouter),
or you can create a routing graph from an .osm file using the
built-in wizard. Once downloaded, tiles and routes are cached, enabling
users to work in offline mode.
You
can create the required elements on the map inside the model, using the
built-in map search or new space markup elements (i.e.
GIS Point ,
GIS Route , and
GIS Region ). Using the
GIS Search
Results view, you can also create a
GIS Multiregion
object.
The environment of the agent becomes GIS Space when you
add a GIS Map shape on its diagram.
Read all about the new GIS features in the help section GIS Models.
Discrete event modeling with GIS
The
GIS space has been traditionally used in the agent-based modeling. Now
you can combine agents, GIS and process flowcharts in one model.
Read more about this integration here.
New GIS-related API
See
AnyLogic API reference: GIS package
Agent type propagation in the library
blocks
Now
you have access to parameters of a custom agent type in every flowchart
block with no need to specify it anywhere except for the block that
generates those agents in the flowchart. These are the flowchart blocks
like Source, Enter, Assembler,
Split, Batch, ...
For instance, specify your agent as the New agent
that the Source block should generate, and you will
be able to use the agent variable
to access your custom agent type's parameters in the following library
blocks of this flowchart. You can check if the agent type is propagated
in the Advanced section of the properties of library
blocks.
New block icons design for the libraries
New types for the Parameter element
The Parameter element
now can be defined in Time, Rate, Speed, Length, Acceleration,
and Area units of measurement. First you choose the
parameter type, then you will be able to choose the units for this
type.

Controls for choosing units
Now
you have the ability to quickly set your agents’ speed at miles or
kilometers per hour, choose time units for timeouts in events,
transitions, Source blocks, and so on. Then, no
matter what
your model time units are, the objects in the model will keep their
processes defined in the real units of measurement.
Easy linking of controls to parameters
In the control's Properties, select the option
Link to,
and then choose an element from the drop-down list: a parameter, a
variable, even a parameter of some flowchart block. There is no need to
manually type the name of this parameter anymore:
'Show in graphical editor' button
After you choose some element in another object's properties, you
can find it in the graphical editor by clicking this button:

Highlighting of the referred objects
All
elements that are used by a flowchart block or any other object are
highlighted in the graphical editor. If you select a block that refers
to other objects in its properties, you will see these objects
highlighted in the purple color:

Hyperlinks in code
Ctrl
click the name of a model element in the code to navigate to it in the
graphical editor. The element will appear in the center of the
graphical editor, highlighted in the purple color.

Space markup element Scale
You can find the Scale
element now on every agent diagram above the X axis. Its new
functionality allows you to easily define the scale of agent's
animation figures and explicitly control the number of pixels in one
meter or any other unit of length for the whole diagram of this agent
type.

Transition to Java 8
New Java 8 has better collection-related API
New example models
The example models Corporate Education, Product
Delivery and Oil Supply Chain feature the new GIS
Map functionality.
Airport with Two Terminals
- A model of an airport with two terminals. Includes flight schedule,
check-in, security check, shuttle train between the terminals,
boarding, unboarding, and baggage claim. The model features
hierarchical/modular architecture, usage of AnyLogic Pedestrian
Library, Rail Library, and Process Modeling Library, and 3D/2D
animation. The passenger, train, and aircraft processes are
interconnected.
Corporate Education - A
model of corporate education in a company with a number of regional
branches and high employee turnover (such as a bank or an insurance
company). Allows to obtain the level of employees education over time
(fraction of fully trained, training overdue, etc.) as well as the
amount of associated travel as a function of the number and location of
own trainers and group policy. The model is fully parameterized from
Excel, including branch locations, employee types and numbers,
individual education plans, trainers, and trainer competences.
Product Delivery - This
model simulates product delivery in Europe. The supply chain includes
three manufacturing facilities and fifteen distributors that order
random amounts of the product each 1-2 days. There is a fleet of trucks
in each manufacturing facility. When a manufacturing facility receives
an order from a distributor, it checks the number of products in
storage. If the required amount is available, it sends a loaded truck
to the distributor. Otherwise, the order waits until the factory
produces the sufficient number of products. This model is essentially
multi-method. Distributors, trucks, and manufacturing facilities are
agents with custom behavior. The latter includes system dynamics
diagram of production and a flowchart that simulates order processing.
Agents live in a GIS space. Names of initial locations of manufacturing
facilities and distributors are read from Excel file. GIS search engine
is used to find locations on map and place agents there. Trucks move on
real roads, and routes are created when vehicles start moving to
destinations.
Oil Supply Chain - An
oil supply chain. Crude oil is delivered by tankers to the port
storages. Then, by pipeline to refineries. Refined product is pumped
through a pipeline network to the terminal storages, and then is
delivered by ground transport to the retailers. This is an agent based
model: storages, refineries, retailers, pipelines,trucks, and tankers
are agents. The model has 2D animation on a GIS map.
Other changes and improvements
- Local variables in Process Modeling Library blocks' parameters
renamed from entity to agent
- The Source, Assembler, Split,
Batch, Enter library blocks have
a new speed parameter
- The configuration block PML Settings moved
from the Auxiliary section to the major Blocks
section of the Process Modeling Library palette.
- The Select flowchart option in the context
menu of any flowchart block
- Hanging connectors are removed when flowchart block is deleted
(check the Preferences
dialog)
- The Open containing folder option in the
context menu of the model
- Drag'n'drop a folder (or a few selected folders) on the Projects
or Palette view to open all models that the folder
contains
- Export of the model now includes the required dependencies
(models)
- New filter in the Problems view that displays
errors only for the active model
- The Run button now starts the experiment of
last opened or last created model by default (check the Preferences
dialog)
- Randomness: Fixed Seed is now set
by default in newly created experiments
- The Create collection option in the context
menu of the selection of several one-type objects
- The Create chart option in the context menu of
Dataset, Histogram data, Histogram
data 2D, arrayed SD variables
- The General palette has been redesigned into
the Agent palette
- The dialog for choosing an image file opens automatically after
you drag the Image object on the diagram
- The PalletRack
object is now drawn with upright posts in 3D and you can
define the number of cells between the posts
- The Attractor
object now has drawing mode
- The 3D Objects palette: 20 new figures
- The Path, Railway track
objects have a new function length()
- The RackSystem
library block has new functions: nRows(),
nLevels(row),
nPositions(row), nDeepPositions(row)
- Convert the given number of model time units to specified time
units and back with toModelTime() , toTimeUnits()
What's new in AnyLogic 7
Interface
Agents
Space markup
Process Modeling Library
Miscellaneous
New palette view
- Collapsible internal sections (e.g. here: Data, Charts)
You can collapse/expand sections by:
- Clicking the section tab
- Using the context menu:
- Collapse All
- Expand All
- Collapse Others
Hover the mouse over the vertical navigation bar in the Palette view. You will see the popup
list with the palette names. Just choose the palette name from the list.
New properties view
You can expand and collapse sections by clicking their headers. The
parameters have the following icons next to their names:
 |
Dynamically evaluated expression
|
|
 |
Static value
|
|
 |
Small triangle indicates that you can
switch between design-time (static) and run-time (dynamic) values.
Example:
|

|
 |
Here you can enter the code for actions
|
|
Problems view
Problems and Console
views are only shown when there issues with building a model, in which
case they will appear automatically. You can find these settings in Tools > Preferences > General:

You can open these views anytime from the View menu or by clicking their icons
in the status bar:
Hiding categories of elements in the
Graphical Editor
Sometimes you may have tons of graphical elements on the same
diagram:
- Presentation and 3D animation shapes
- Space markup
- Flowcharts
- SD stock-and-flow diagrams
- Statecharts
- ...
Now you can temporarily hide those elements. Click the icons in the
status bar to hide or unhide elements:

 |
Hide Space markup elements
|
 |
Hide shapes
|
 |
Hide SD links
|
 |
Hide 2D elements
|
 |
Hide 3D elements
|
Example:
Referring to element by a click in the
graphical editor
To make a reference to a graphical object (such as a path, a node,
an area) in a logical object (such as queue
or delay) you simply click the
object in the editor.

Adding shapes to existing group
There are two modes for choosing the group where to add the shape(s):
- Choose the group from the drop-down list

- Click the group icon in the graphical editor
Statechart improvements
Trigger type indicators for transitions:

|
By timeout
|

|
Rate
|

|
Condition
|

|
Message
|

|
Agent arrival
|
Unconnected transitions are highlighted in red:

Flowchart blocks connect
automatically
When you add blocks, the closest ports get automatically connected,
significantly reducing model design time.

Flowchart block connection settings added in the Preferences:

Agent. New API for communication
New handy functions added:
- sendToAll(Object msg) - sends the
message to all agents living in the same environment where this agent
lives
- sendToRandom(Object msg)
- sendToAllConnected(Object msg)
- sendToRandomConnected(Object msg)
Functions for Discrete
space only:
- sendToAllNeighbors(Object msg)
- sendToRandomNeighbor(Object msg)
The old functions are still here:
- send(Object msg, Agent dest)
- send(Object msg, MessageDeliveryType
mode) - the recipient(s) are determined by mode argument
Example:
people.get(0).sendToRandom("Hi!");
Functions sending messages to random agent(s) now prohibit choosing
the message sender as the recipient. Read more in Communication.
Default contact network
(connections)
Each agent has a non-removable link
Connections
- this is for standard
networks with bidirectional connections.
Here you define the reaction on the message reception, in its
properties:

Links have customizable visual appearance:

Defining custom inter-agent links
(contact networks)
You can add custom links with
custom names and visual appearance.
Link can be:
- Singular - connection
to a single agent
- Multiple - connection
to a set of agents
Link can be:
- Unidirectional -
"child-parent"
- Bidirectional -
"friend-friend"

Link to upper level agent
Agent has non-removable visual link to the upper level agent (to the
other agent where this one lives) such as main,
city, company.
This
is just a pointer, not a link - we need it to access owner parameters
and functions. Now you refer to the owner agent just by pointer name (main, distributor,
...)

Inheritance (visually supported)
The elements of the super class are shown pale (and are not editable
here):

Agent. New API for movement
You make agent move by calling one of its movement functions:
- moveTo() - agent moves to the
specified location (with the agent's speed)
- moveToInTime() - agent moves to
the specified location. You specify the trip time as the function
argument
- jumpTo() - agent instantly jumps
to the specified location in zero model time
- moveToNearestAgent(agents) - new
handy function that starts movement to the nearest agent from the given
population
Related functions:
- getX(), getY(), getZ()
- getVelocity(), setVelocity()
- getTargetX(), getTargetY(), getTargetZ()
- distanceTo()
- stop()
Converting network shapes to new
space markup
Now you should use new specially designed network elements - paths and nodes from the Space Markup
palette. In case you already have a graphically defined network
consisting of lines and rectangles you need to convert these
presentation shapes into network elements. Right-click selected shapes
in the graphical editor and choose the option Convert | Convert to Network Elements
in the context menu.

Movement functions. New options
moveTo() and moveToInTime()
functions provide several notations, enabling defining target location
in different ways:
You can define location as:
- X, Y coordinates: moveTo(double x, double y)
- X, Y, Z coordinates: moveTo(double x, double y, double z)
- Point: moveTo (Point location)
- Attractor: moveTo (Attractor attractor)
- Network node: moveTo (Node node)
- Network node and location
inside the node (x,y,z) point: moveTo
(Node node, Point location)
Priorities and task preemption policies
When some other task is initiated, you may choose what to do with
the task being executed currently:
- No preemption (the
current task continues executing)
- Wait for original resource
(the task is interrupted and waits for the same resource unit to finish
it)
- Terminate serving (the
task is interrupted and never continued)
- Seize any resource (the
task is interrupted and tries to seize any resource of the specified
type)
- Continue without resource
(the task is finished without resources assistance)
Blocks supporting preemption options: Seize, Service, Assembler.
"Internals" of entities defined
graphically
Modeling warehouse storages
Special space markup shape: PalletRack.
Example of vertical levels animated in 3D:

Similar flowchart blocks for defining the logic:
New time units: months and years
This is essential for System Dynamics modelers.
We use these values:
- Month contains 30 days
- Year contains 365 days
Copy any graphical elements as image
- Select the elements.
- Choose Edit > Copy as Image from
the menu.
- Paste the image.
Fixes and minor improvements
Agents
- Added deleteSelf() function.
- Improved performance of agent networks creation and agent
connect/disconnect operations.
- Added function setParameter()
which allows to set parameter by its name (e.g. for initializing model
from custom data source by using java code).
General palette
- Parameter. In On change code, old value of the
parameter is accessible as oldValue.
Engine
- Added function for executing model action from custom (e.g. UI)
thread: Presentation.executeModelActionLater().