Product Updates

What's new at HASH?

Latest changes

HASH Stdlib

The beginnings of a HASH standard library has landed! We’ve added three utility functions to make working with vector components in HASH easier:

  • randomPosition: uses the simulation’s topology layout to generate random positions
  • normalizeVector: normalizes any 3-wide vector in HASH (position and direction)
  • distanceBetween: find the distance between any two agents with 4 different distance functions

Read the docs to learn more about how to use these functions in behaviors. Let us know on Slack or in the forum what you’d like to see included!

Multicast Agent Messaging

We’ve improved how message sending works – now it’s possible to send messages to entire groups of agents with Agent Names. Messages sent with a specified “to” will be delivered to all agents with a corresponding Agent Name. The following code will deliver a message to all agents named “ants.”

agent.set("messages", {
    to: "ants",
    data: {
        message: "ping"
    }
});

We’re excited to see what new simulations you will build with these features!

Other fixes and improvements

  • Improved ergonomics around analysis — and plots tab is now scrollable
  • File naming modals have been improved

Older changes

Typings on behaviors

Flipping between docs and an editor when writing new behaviors is always a pain. To make it easier to develop quickly, we’ve enhanced autocomplete in the H-Core behavior editor. When writing JavaScript behaviors, both state and context have type annotations and will show you any available methods. We expect this to be very helpful when accessing built-in fields you never even knew existed. Comparable Python support is coming soon.

Improved ergonomics

Set/get is now more ergonomic to use. We’ve improved the workflow and added helpful warnings around the set/get interface for modifying the properties of agents. Now, when trying to .set() or .get() a property, warnings will be thrown if there are too few arguments, which should make for a more intuitive experience. Also added is the “addMessage” feature, which should make it easier and more performant to send messages between agents. Now, to send a message, just call state.addMessage(to, type, data: {})

Make sure to take a look through the docs for more information and tips on how to use these new features.

Bug fixes and other improvements

We’ve fixed over a dozen bugs, including a particularly nasty issue blocking the use of shared behaviors in Safari.

We spent a good part of the last two weeks improving our internal product analytics framework so that we can collect more accurate usage information around the H-Core editor. We hope this will help us proactively get ahead of bugs, and better anticipate user needs.

Older changes

Onboarding and stability updates

We’ll be announcing HASH publicly later this week. We’ve been focusing primarily on improving stability, onboarding, and our docs this last week, but a few new things shipped to speak of…

Improved step explorer

Undo/redo operations are now supported within the step explorer, and a number of enhancements have shipped (most notably improving the experience around scatterplots).

Other new things

  • Users can now create their own orgs
  • We’ve launched a public Slack and forum. We’ll be providing live support on Slack and posting slightly longer form guides, tutorials and explainers on the latter.
Older changes

Visual globals

globals.json files now auto-generate a user interface with sliders, dropdowns and other easy components for altering your simulation’s global variables and assumptions. This is an early step towards creating more easily shareable models whose simulations can be controlled by non-technical users.

Other fixes and improvements

  • Specify cover images for Index listings which appear inline and in social media previews
  • Simulation previews now work in Safari, too
  • Support for more dataset types
  • Changelog can now be found at hash.ai/updates
Older changes

HASH Step Explorer

Step explorer

We heard from a lot of users that our analysis view was hard to use, and many of you wanted the ability to explore the breakdown of your simulated world on individual given steps, as opposed to merely over the lifetime of the entire run. We’ve introduced the ability to visually construct charts and explore steps.

Other fixes and improvements

  • Simulation previews in Index listings
  • View panes can now be opened and closed as needed allowing simulations to run even faster in-browser
  • Even more COVID-19 simulations at hash.ai/coronavirus
Older changes

Dataset previews

Now you can preview your data inside of H-Core. Importing data can help with rapid instantiation of agents based on real-world data, and allow for backtesting and comparison. Now you can view that data inside of HASH. Further data exploration and filtering tools remain on our roadmap.

Better Python performance

Our experimental compilation and running of Python simulations in browser has undergone some major improvements. Whilst still significantly slower, we believe it’s now at a point where prototyping and execute basic Python sims in H-Core is now feasible. For real-world Python simulation please register an interest in H-Engine or H-Cloud.

Other fixes and improvements

  • Rust behaviors now available via H-Index
  • New docs site at docs.hash.ai
  • Users of old/unsupported browsers are now alerted
  • H-Index descriptions can now contain markdown
  • Various H-Core stability and H-Index search improvements

Older changes

Publish Behaviors

Better shared behaviors

Various changes have been introduced to improve support for shared behaviors in the files sidebar in H-Core. H-Index behaviors added to simulations will now appear, and behaviors can now be individually published to H-Index via the context menu.

Improvements to onboarding

We’ve made a bunch of tweaks to the new user onboarding tour to improve the experience and eliminate some edge-cases which were causing users to get stuck.

Other fixes and improvements

  • Export HASH simulations as JSON for portability
  • Export simulation runs for analysis outside of HASH
  • Experimental support for a wider range of Python syntax
  • Bug fixes and stability improvements in H-Core
Discover New Features Planned

Product Roadmap