Skip to content

Releases: sojoe02/RANA

Release for MAS 2018 (batch experiments and bugfixes)

13 Aug 08:25
8c1ed6a
Compare
Choose a tag to compare

This release only exists as a 32 bit windows executable.

Contains various bugfixes, e.g for radial scan.

The windows executable is compiled with vanilla Lua 5.1 support.

Dissertation release.

06 Dec 23:20
Compare
Choose a tag to compare

Email address is: sojoe02@gmail.com if you have any questions.

Quantum and state based modelling example release

14 Oct 13:11
Compare
Choose a tag to compare

General

  • Optimized containers and iterators for a small performance boost and better code consistency.

API

  • Added quantum map manipulation function to the API and map module.
  • Added a radial map scan function to the API and map module.

Model

  • 02 oscillation model has been expanded to include global data collection via a data collection agent.
  • A new agent example has been added to illustrate how modules can act as agent states. It is a frog agent the shifts between foraging and calling, where calling and foraging states are implemented as separate modules. The model also has comprehensive data collection that allows for evaluation of population with different attributes, such as movement speed.

Visualizer

  • Fixed the visualizer not processing events emitted in the first second.

1.8 release

29 Aug 19:40
Compare
Choose a tag to compare
  • Version 1.8, the multi-core release is now considered ready for production. Most major bugs should have been sniffed out by 'yours truly'.
  • Fixed a race-condition, that could cause a segmentation fault (or worse: result corruption) when using collision detection.
  • Rewritten 07 agent (07_repulser.lua) to become a repulser agent in order to illustrate how collision detection can be used. Updated the collision section in demo agents to feature this agent.
  • Agents will no longer stop if they detect a collision with GridMove enabled.
  • Optimized agents changing colors, so they only request a new display color if the requested color is different from the current one.
  • moveTo in the ranalib_movement module will now properly use the agents Speed if none has been defined in the option table.
  • moveTo will reset the agents position to the bounds of the map if the positions defined are out of map bounds.

Multi-core optimization update

28 Aug 13:32
Compare
Choose a tag to compare
Pre-release
  • Optimized threading so the main thread does not take up any CPU cycles while waiting for subthreads to finish.
  • Ensured that default zoom level is on the currently active map to prevent zoom corruption when agents are out of bounds.
  • Manual use of updatePositionIfFree via the collision detection module has been enabled.
  • Fixed _positionData path not being found if Rana is launched remotely. _positionData is a buffer that keeps track of agent positions for event processing purposes.

Multi-core support release.

27 Aug 08:48
Compare
Choose a tag to compare
Pre-release
  • Added support for multi-threading, this means that Ranas agent behaviors will now take advantage of multi-core processors. The user can define the amount of threads to allocate to a given simulation run via the user interface, default is 4. Performance gain is not linear and for simple behaviour with few agents there will be little to no gain. The gains in performance scales with number of cores/threads available, number of agents (the more the better) and behaviour complexity in the takeStep phase.
  • Updated the collision grid mechanics to take asyncronous movement due to multi-threading into account. If an agent moves with gridMove=true the agent will stop moving if a collision is detected at it's next position.
  • Added updatePositionIfFree function to allow for syncronous manual movement in the collision grid. This function is included in the ranalib_collision module.
  • Due to multi-threading semantics agents added during a takeStep phase will now skip the current phase.
  • Disabling agent ID's in the graphic window will now be more consistent when adding new agents. The setting will also persist on subsequent simulations.
  • Compiling Rana now requires C++14 compiler support rather than C++11.
  • Just-in-time via luaJIT is here to stay, so it will be left out of the release numbering. Rana can still be compiled with regular Lua interpreter support though.

Interface fixes

18 Aug 20:04
Compare
Choose a tag to compare
  • Adding complex agents during the takeStep phase will no longer disable the run/stop button and re-enable initialization.
  • Rana will now properly search for modules in the (master) agent's source directory.
  • Initialization during runtime will nolonger be possible, and Rana will output that a simulation is running.
  • Version check on QSysinfo to let Qt version below 5.4 compile Rana.
  • Reduced program footprint for Windows by removing unneeded dlls
  • This is the final release before transitioning Rana's codebase to C++14 from C++11.

Adding agent group fix

18 Aug 12:44
Compare
Choose a tag to compare
  • Added agents will now correctly initialize
  • Fixed agent event group access crashing Rana if they where accessed on initialization.
  • Graphic agents are now displayed in the correct position upon initialization.

Critical fix to manual collision detection and movement

16 Aug 17:12
Compare
Choose a tag to compare
  • critical fix to collision detection for agent using the collision grid by moving manually. (do not set Moving and GridMoving to true if you intend to do manual movement).
  • 'ranalib_collision' module now has a fully functional updatePosition(newX, newY) that updates the collision grid with a new position newX and newY and then sets PositionX=newX and PositionY=newY.
  • fixed initialize button not reactivating if no valid agent path is set.
  • enabled terminal output for say messages.
  • all error messages are now red.

Crash and corruption fixes on key spam.. and more zoom

15 Aug 19:45
Compare
Choose a tag to compare
  • Mouse wheel will nolonger scroll in the map panel, it will only zoom.
  • Fixed crash on inhumanely fast initiate/run command spam, with skewed delay timers and Lua agent population checks.
  • Duplicate graphic agents should no longer be possible... at all. E.g when changing from event visualization to simulation, and spamming the initialize button.
  • Re-enabled functionality to stop and start a simulation using the same agents (position data will be overwritten and cleanUp functions will be called, lingering events might cause undefined behavior).