Category Archives: HASS

HASS V22 Beta 2

The runnable jar / source is available here:

The changes are mostly internal:

  • With non-random trail leaving enabled (it is by default), agents will no longer leave trails for longer than they were holding their pieces.
  • Instead of having n different images for each n-sized puzzle, there is one image for each puzzle. Piece images are created from the image processor. This cut down on file size (~4MB to < 500 kb) and makes importing the project much easier.
  • The program attempts to load a “masterInput.json” file in the current directory and on the desktop automatically, so it is no longer necessary to use the command line to load input files. If no file is available, the default image/agent selection screen appears. The masterInput.json file is available in the zip above.

Bug fixes

  • Agents no longer wonder off screen while leaving trails due to the reverse movement array being initialized with the wrong size.


HASS V22 Beta

There are some very cool new features added to HASS revision 22. I am considering this a beta release because the features have not been fully tested. All of the changes added can be disabled by default, to remain compatible with older tests/models. The changes are enabled by default and can be disabled by adding some lines to an existing input file. The source / executable may be found here:

Here are the list of changes (with screenshots). The source/executable can be found here, along with a new input file.

  • Fancy Edge Shapes


    • There are 10 different edge shapes currently supported for the 10 different theoretical shapes
    • For simplicities sake, only two are currently implemented (curvy and triangular edge shapes).
    • Done dynamically: To update edge shapes, simply place new shape images in jar.
    • Holes are punched onto existing shapes in cookie-cutter fashion
    • Tabs are added by taking a copy of the next existing piece
    • Works even for wrapped puzzles
    • Disable with “fancyEdgeShapes”: false in input file.
  • Pheromone Trails are made based on the path taken, and are not created randomly


    • A circular array is used for keeping track of the last n movements, where n is a natural number specified in the input file as “pheromoneTrailLength”
    • The old style random trails may be used by using “randomTrails”: true in the input file.
  • Frame rate slider
    • Can be used to slow simulation.
    • For extra cinematic effects, turn the FPS to 24 (if you dare…).
  • Changes on how long already existing trails get increased for
    • By default, trails now get reset to the initial time limit when an agent leaves a trail over an already existing trail.
      • This prevents a checkerboard pattern that was common after trails decayed.
    • The old behavior can be retrieved by using “resetTrailToInitial”: false in the input file.