Release notes¶
Here you find the release notes of CrowdSim3D.
1.70¶
Release date: 2023/09/23
Simulation
Introduced Model variables. Model Variables are created for models and can be shared between simulations. Model variable values are per agent and can be randomized during population using Model Variable. With Check Model Variable and Model Variable Operation nodes the model variables can be used in the simulation.
New type of State properties Countdown. A countdown state variable will decrease each frame until 0. The Is Countdown Elapsed can be used to detect if the countdown is elapsed. The Randomize Countdown node can be used to reset the value of a countdown variable.
Nodes
Check Mesh Variation to check if an agent has a specific mesh variation.
Check Action Tag to check if a scheduled action has a specific tag.
Character Filter to limit the result of the object selector node to only match agents that are a certain Armature or Character.
State Filter to limit the result of object selector nodes to match agents based on a state property.
Slope Force added to slow down/increase speed of an agent based on the steepness of the environment it is on.
Add Branch State Property to reduce number of nodes needed for branching based on state of agents.
Added Acceleration. With the Acceleration node it is possible to accelerate/decelerate to a specific speed within a given time. The node continues until the time limit has reached, or the given speed has been reached.
Lock Target node is split in multiple nodes Lock Target Random, Lock Target In Formation. The option to lock targets in order has been removed as there is no way for the user to know or modify the order.
Lock Target Nearest and Lock Agents to Nearest Targets has been added to select the nearest target.
Distance to Target to check if agent is within a distance of a target.
Removed ‘Set Velocity Factor’ and ‘Randomize Velocity Factor’ nodes. These nodes were confusing to setup without knowing the internals.
Add a Snapping option for Velocity Based. This makes it possible to snap values which are close to 0 or 1 to 0 or 1. This improves animation blending in certain conditions.
In the character configuration Mesh node walk actions can be configured. Velocity Based has a option to use theses actions. This makes it possible to use different character (and variations) with a single Velocity Based node.
Add Idle to let agents do nothing for one frame.
Add Make Inactive to remove agents from the simulation.
Overlays
Playback Overlay provides real time feedback of the simulation in the 3d viewport
Targets Overlay show in the 3d viewport who targets or is targeted by the selected agents.
Colorize Overlay: overlay in the node editor to improve navigation of big node trees.
Fixes
Repeat wasn’t reset and could only be used once.
Selector/Sequence will return Success/Failure when the node is completed.
When empties are used as obstacles their radius will be used. It used to be 0.
Linking character configurations
CrowdSim3D uses linked node trees to quickly load in the configuration of characters in files where the simulation is. Due an upcoming breaking change in Blender linked node trees are removed when they aren’t used. This leads to confusing and error-prone workflows. This is solved by keeping a reference to linked node trees when they are used.
See https://projects.blender.org/blender/blender/issues/106321 for more information of the change inside Blender and the reasoning behind it.
To work around this limitation open your existing scenes in Blender 3.6. Save the file, before open the file in Blender 4.0 or above.
1.61¶
Release date: 2023/02/11
Navigation mesh
Fixed issue that populate or execute behavior were stalling when using certain nav meshes.
Fixed issue where state nodes only used the first state property.
1.60¶
Release date: 2022/06/16
Formations
Factories can be configured as a placeholder. Agents of a placeholder will be ignored during populate/execute behavior, but can be selected as a target in the Lock Target In Formation node.
Added In Formation mode to the Lock Target In Formation that will select a target, but tries to keep a group of agents as close as possible to their current formation.
Avoidance
New Implicit Force TTC avoidance node. This node tries to reduce collisions by running several simulations and pick the one with the least ‘stress’, resulting in more fluent avoidance.
Removal of force avoidance node as the algorithm was superseeded by fixing some issues in the force ttc avoidance and the introduction of the Implicit Force TTC node.
Simulations are now done by evaluating a group of agents at the same time. This improves performance, stability and adds support for new nodes like Implicit Force TTC and in formation.
Animation
Added support for action blending where the input animations uses a different duration. This gives more control when going from a walking animation to a run animation.
Added support to drive scene animations based on the state of a traffic light.
Added support for corrective shape keys.
Node groups
Most parameters are now sockets and can be controlled from the root node tree.
Nodes containing different algorithms have been split.
More information can be found in the Group Nodes section.
UI
Moved settings from property editor to the 3D Viewport side panel.
Create targets in nodes.
Added Templates for common use cases. See Templates.
And more
Added ground mesh in Move to Location, allowing less detailed navigation graphs when using the Target Navigation node.
Nodes in the Collisions category have an Offset parameter. This parameter can be used to add variations between agents by ignoring an intersection up to a amount of frames set in the Offset parameter.
Default option has been added for color material variables.
Simulations are more consistent as the random seed can be controlled.
Removal of PoseLib animations. Blender are have replaced its pose library system with an asset based pose library system. The old system will be removed. As out system relies on the old pose library system we also going to remove it for now.
1.51¶
Release date: 2021/09/16
Maintenance release containing fixes for stadium crowds and trailers.
1.50¶
Release date: 2021/05/21
New Features
Play Action Node has a new option to link animation actions based on the first and last frame key pose. After finishing an action a random action is selected which starts in the same key pose as the previous action finished. This makes it easier to create stadium crowds or battle scenes.
With the new variables Max Lane Speed for curves and “Max lane speed cars”, “Max lane speed public transport” and “Max lane speed pedestrians” for connectors a user can now set the maximum speed for lanes and connectors. The speed of an agent will be determined based on the maximum speed of the curve or connector. This way you get a more realistic traffic system.
The speed of an agent is now determined by the maximum speed of a curve/connector and the “velocity factor” variable. With the “velocity factor” a user can change the velocity of the agent. In the Traffic Variable node a user can set the minimum and maximum value for this factor.
The Navigate Node now has an option to follow a path. The path is configured by a set of curves. The direction of the curve is used to let the agents move in that direction. The Path Following mode is useful to have a high amount of control of how a crowd moves.
‘Advance Ground Movement’ node has now an option to limit the speed of the agent. In previous version the speed of the agent was always limited to its Normal Speed. When the option is disabled the agent’s speed can exceed the normal speed.
The Play Action node has an option to generate a walk animation based on walk cycles of a pose library. These walk cycles can be configured in the armature pose lib panel. Poses are placed on a frame and advanced interpolation techniques are used to generate in between poses.
Pose library walk cycles can be previewed in the 3d viewport.
Added On Nav Mesh check to the check attribute node for checking if the agent is still on its navigation mesh.
Introduced a foot placement operation to align all feet to the ground. The position and angle of each foot is corrected to match the surface of the ground.
Operator to calculate the velocity of an vehicle animation action. The velocity can be calculated from the number of frames, the number of wheel turns and the radius of a wheel.
Other Issues
The models in the Populate Node aren’t required anymore. This makes it easier to quickly asset node setups without having a model loaded.
Improved performance when using avoid node. The boundaries of the navigation mesh is cached so it isn’t rebuild every frame.
Improved performance of the navigate node and advance ground movement node by better memory handling and by using other data structures.
Better logic Navigation Mesh evaluation. Agents will stick better to the navigation mesh.
Mesh factory supports large meshes. Previously when using large meshes the agents would be clustered.
Rename Play Action node to Play Animation node.
Support traffic lanes where the start and end of the lane are connected by the same crossing.
Trailers calculate the location based on the agents location, previously it was the agent/sub agent which in the new blender version would always calculate the -y direction.
1.40¶
Release date: 2020/07/05
New Features
Turning signals and braking lights: Automatically add turning and braking animations to the agents, based on the route and the change in the velocity.
Seed for AgentFactory: Provides reliable locations and rotations based on random seed values.
Long Vehicles: Support for long vehicles are added. When the wheel base of a car model is set the system will keep the front and back wheels on the road.
Trailers: Support for trailers. Multiple trailers can be added to an agent. Trailers follow the same route and path as the agent.
Banking roads: Support for banking roads.
Pill-shape bounding box for better accident detection. The accident used to be calculated based on the radius attribute (circle-shape). with the introduction of the wheel base we enhanced this shape to be a pill. The pill shape improves the accident detection on crossings and locations where agents stop before a traffic light.
Traffic Rules evaluation has been changed so traffic make a more natural decisions. This is best noticed at crossings where agents will look for gaps they can use.
Improvements
Break for stoplight improvements: Currently agents stop to far from the traffic light and can stop very abrupt. The traffic simulation now uses the wheel base in the front of an agent to determine the distance instead of the center of an agent.
Improved support for multiple traffic types and speeds: Crossing with cars and pedestrians, better consider (low) speed of pedestrians.
Connect traffic variable to multiple models: In the nodetree it is now possible to create a single traffic variable node and connect it to multiple models.
Show message when curves belong to a traffic system: When curves are added to another traffic system, show a message that the curves need to be removed from the original traffic system.
Performance of the execution is improved on several parts.
Motion Blur: Remove rendering artifacts when rendering with motion blur.
Sequence Node: Small nodes will be executed when the previous branch finished. This allows using state engines without any gabs in the animation.
Bug Fixes
Turning direction failed with multiple lanes: When a crossing has multiple lanes and every lane has one possible outgoing lane the Turning Direction would fail. This is fixed.
Material variables in libraries can be uninitialized: When creating a lib of models with material variables it can happen that the material variables will never get a persistent ID. Material variables now always get an ID.
No warning if traffic system was not selected during execute: If traffic system is not selected the execute behavior node will now give a warning.
Locked agents can get a new position: When an agent is locked, increasing the number of agents could sometimes give the agent a new position. This is fixed.
Improved generated lanes: Lane width and inset and connection with a crossing is now consistent.
1.31¶
Release date: 2020/01/04
Bug fix release
Fix crash when a spline only had a single curve point. In this case the direction of the lanes could not be calculated. The fix will ignore all lanes that has less than 2 curve points.
Show message when adding a curve to another traffic system, without removing it from its first traffic system. In the previous situation the curve was ignored, but no message was displayed.
When doing a populate operation (populate agents, remove animations, remove models) the behavior tree was fully validated. An error in the behavior part would stop the operation. This change does not validate the behavior part of the node tree so the populate operation can be executed.
After removing the traffic lights from the connector, the mesh still showed the traffic lights. We fixed this so the mesh always shows the state of the connector.
We added the Conditional and Check Attribute node to the traffic only product. In the tutorials we use these nodes for doing the wheel animation when you hae multiple car models.
1.30¶
Release date: 2019/10/13
Traffic
CrowdSim3D now supports traffic systems.
Generate Traffic Systems from Curves
Traffic system supports right handed and left handed traffic.
Support multiple types of traffic * Cars * Public Transport * Pedestrians
Design junctions (automatically or manually)
Create junctions with traffic lights. Traffic lights can be controlled automatically or manually
Traffic systems can be imported from OSM using Open Street Map Plugin (plugin not part of CrowdSim3D)
Control the speed/acceleration per agent.
1.20¶
Release date: 2019/04/25
Debugging
You can debug your node setup by activating the debugger in the properties panel of the node editor.
Selection
Added operations to Select and Deselect all agents and agent factories.
Populate
Increased the performance of the populate functionality. Especially noticeable with large crowds. In our roman scene it was around 20 times faster.
State properties
[StateOperation] Replaced the text entry field for Set Boolean to be a Check box. The previous implementation did an exact match with ‘true’ or ‘false as this was really unclear we replaced the text field with an check box.
Navigation mesh
[Navigation] the result of the navigation mesh incorporates the normal speed setting of the agent. Previous when using the navigation mesh the agent resulted in walking 1m/s. Now we can variate on that.
Look At
With the look at node an agent can look at a target.
1.10¶
Release date: 2019/01/18
Overall goal of this release was performance. We did this by
converting the main parts to RUST (www.rust-lang.org).
making use of all available processors during the simulation.
optimizing the way how we send simulation data back to blender.
By doing this we achieved enourmous speed-ups. Some of our tests went from half an hour to merely several seconds.
Distribute agents
Added an option to offset agents from their location
Added an operation to instantiate agents from all selected factories. Select some factories and look for the operations Instantiate Agents From Selection.
Agent
The height of an agent can be set. This is used during in the Collision node.
Collection Operation Node
New node to do set operations on collections of objects. Usefull when working With many factories.
Supports union, intersection, difference and symmetric difference operations.
Behavior Node
Added option to calculate subframes. We had this option in the Avoid node. In the Avoid node we could’t recalculate the whole simulation. By placing it in the behavior node we can.
Added option to Smooth frames. When this value is larger then 0 a post processing step will happen. During this step the result of the simulation is smoothened with the result of the surrounding frames. It is usefull to remove simulation glitches.
Check Attribute Node
Added option to test the position of an agent in a grid distribution. You can use this to add different behavior to agents that are on the border of the grid.
Check State Node
It was unclear how to check boolean states, eg what value to enter. We replaced this option with a Is True and a Is False check.
Play Action Node
Added Linear Ease Blend type.
Intersection Node
Added Local space bounding box check.
Limitted Blender 2.80 Support
Blender 2.80 is still under development. This release will have limitted support for Blender 2.80. This means that it could be that Blender 2.80 change its API (what is unlikely). And we need to adapt the add-on by supporting the new API changes.
The CrowdSim3D add-on makes use of Blender 2.80 collections for organizing objects in the scene. It puts agents and generated objects in collections so you can hide them when working with large scenes.
The EEVEE render engine is supported.
1.00¶
Release date: 2018/09/20
Agent
Option to set the radius of agents. This option is used by the avoid node.
Object Selector
The factory input now has an object picker. It used to be a text field.
Fixed issue when factory filter was turned on, but no factory was selected. This resulted in selecting all non-agent type of objects, making the system raise an exception when doing populate.
Check Attribute
Added option to check the factory of an agent.
Set Attribute Node (new)
New node where you can set an internal variable of an agent. Currently it only allows setting a new desired direction and speed of an agent. You can use this together with the advance ground movement node to let agents walk in one direction.
Avoid
Added new avoid algorithms
Force based
Force based with time to collision
User Preferences
Updated the documentation button in the User Preferences to https://www.crowdsim3d.com/docs/
Bug fixes
Crash: Avoidance node required a navigation mesh. Without a navigation mesh it crashed
Crash: Material variable node where min value is larger than max value
Populate Agents populated all populate nodes what was not expected. Now it only populates the populate node where the button was clicked.
Added latest version check. The first time the add-on is used it will check with if there are any updated. The check will be performed at most once and it needs the Blender ID authentication add-on to be correctly configured.
0.90 Beta¶
Release date: 2018/09/10
Check Attribute
Added option to test the model and character of the active agent. This makes it possible to add model or character specific logic to the behavior tree.
Populate
Renamed Object node to Populate node.
Populate node can now populate multiple models. Per model a weight can be added for distribution.
Other
Renamed the Variance category to Populate.
Target property selection was not displayed in the Navigate node.
Removed obsolete priority in Action tab.
0.81 Beta¶
Release date: 2018/09/03
Distribution
Grid distribution is now a blender unit. This ensures a consistency between the distribution modes. Default grid distribution distance is set to 1.1.
Quincunx distribution pattern now calculates the distance between the agents better.
Intersection/Collisions
Every agent now has a Mass. This is used for calculating the impact force in a collision between 2 agents.
The object intersection node can now calculate the intersections between an agent and a group of objects. For example to check if 2 agents are colliding. When an intersection has been detected the impact of the collision is calculated.
Check attribute: A new node can check internal values of the crowdsim. It can test agent’s speed and collision impact.
Removed the dummy Collision Node.
Moved the Intersection node to the Collision category.
Fixes
State property nodes did not display the state property selection.
Conditional
Added a failure subtree. This makes it possible to do a
if...else...
construction with the conditional node. If you load an old file that uses a condition, you need to remove and add the condition again.
0.80 Beta¶
Release date: 2018/08/27
This is the initial Beta release