Product Updates

What's new at HASH?

Latest changes

Private project sharing

Private simulations can now be embedded on external websites, and secure tokens can be generated allowing private projects to be shared with users outside of an organization’s HASH namespace.

More experiment types

Group and multiparameter experiments have been added to the experiment creation wizard. Group experiments allow multiple experiments to be executed at once. Multiparameter experiments allow for grid-sweeping of multiple parameter combinations. We’ll be introducing optimization experiments for smarter, more performant multiparameter optimization in one of our next updates.

Other improvements

New features and UX improvements:

  • The current timestep now appears on the simulation playbar
  • When creating an embeddable version of a simulation, you can now specify which views should be available within the widget, and what the default view should be
  • We’ve improved support for irregularly structured JSON datasets
  • We now cache the results of recent and frequently accessed analysis plots from local (in-browser) simulation runs. This means switching back and forth between particular runs of interest is now far quicker, speeding up simulation prototyping and testing
  • We’ve improved recovery from simulation errors in hCore, greatly reducing the number of occasions a full browser refresh is required

Bug fixes:

  • We’ve updated the label on private projects where they appear in hIndex search results to better reflect that these are only visible to users in the publisher’s namespace, or others with direct access permission
  • Fixed a bug where dragging and dropping from within the analysis wizard could cause the modal to exit unexpectedly
  • Fixed a crash that could occur when browser localStorage was unavailable (e.g. whilst using incognito mode in Chrome)
  • Fixed a problem that could occur rendering projects inoperable whilst renaming files to themselves
  • Fixed an error that could intermittently cause simulation warnings and errors to not show for Safari and Firefox users
  • Fixed a crash that could occur when no step was selected and the raw output tab was active
Older changes

Variable playback speed

Since the original release of hCore it’s been possible to play back simulation runs at a fixed speed (sped-up or slowed-down, depending on your preference).

We’ve now introduced the ability to specify steps-per-second play speed ahead of time, so that you can compute and playback at a fixed pace without multiple button-clicks.

This makes it possible to more quickly reset and play simulations at a sensible speed whilst prototyping, and share simulations with others in the manner they’re meant to be seen.

Older changes

Improvements to behavior keys

In November we introduced behavior keys to help users take advantage of some of the performance benefits hCloud offers. Since then, we’ve made various usability improvements to help make these easier to employ, most recently adding autosuggest. In this update, we’re making further changes to enable:

  • Dynamic access to behavior keys. When enabled, keys defined for any behavior will be accessible by any other.
  • Improved error messages. It should now be easier to recover from instances where behavior keys are improperly defined.
  • Python behavior key suggestion. Autosuggestion support has been extended beyond JavaScript and can now be used on any user-authored behavior.

Read more about behavior keys in the docs.

Better experiments

  1. Whereas previously users were constrained to varying top-level globals as part of experiments, it is now possible to target nested fields as well. This greatly improves the flexibility of experiments.
  2. Previously, when running experiments in hCloud, streaming the results back to your browser could consumer gigabytes of bandwidth and clog browser memory. Now, instead of downloading the entire run when an experiment is undertaken, we selectively stream only the data which is required to render the analysis chart in view. In doing so we reduce data transfer from often gigabytes to just kilobytes, and prevent the browser slowing down by not loading huge amounts of data into local memory.
Older changes

Experiment creation wizard

Instead of writing out experiment definitions in JSON, users can now create experiments in HASH through a visual user interface. This makes it easy to see what experiment types are natively supported within HASH, and allows for objectives, constraints and parameters to be easily defined.

Direct dataset uploads

We’ve made the process for uploading datasets much easier. Users can now upload CSV and JSON files directly into projects from hCore, simply by clicking the “New Dataset” button atop the left-hand project files panel, without needing to create a separate, dedicated data project in hIndex first.

Older changes

Faster hCloud experiments

Large-scale HASH simulations can generate a lot of data. Whilst hCloud made running these a breeze, subsequently streaming the results of these runs down from the cloud took a lot of time. We’re now doing two things to reduce time-to-results:

  1. We’ve made data transfer itself more performant (9-10x faster) by reconfiguring our data storage backend. This invisible change means that simulation runs and other data will download up to an order of magnitude faster.
  2. Free users of HASH were previously constrained to running cloud simulations serially. We now execute runs in parallel for all users.

We’re also releasing a third improvement, which we’ll share with you in our next update, which cuts the amount of data transfer required to view experiment results by pre-computing analysis graphs in hCloud, cutting the amount of data transfer required overall.

Process modeling library

We’ve been creating and collecting high-quality business process behaviors in a new HASH package. The Process Modeling Library to make it easy to build your own process models: representing systems or other entities which perform sequences of tasks. By chaining together processes like resource depletion, delays, and other blocks representing real-life tasks and events, you can represent processes such as assembly lines, company workflows, and supply chains.

The library is easily extensible with custom behaviors that you can write to accurately model your system. Building process models allows you to answer questions about your system. They can help you improve resource allocation, reduce cycle-time, and identify other optimizations that can be made to your organization or system. This is especially effective when used alongside HASH’s Experiments functionality to explore multiple scenarios and configurations.‌

We’ve added a section to our docs on Process Modeling with HASH that outlines how best to get started.

Older changes

Analysis wizards

We’ve released a pair of new wizards to help you more easily define (1) analysis metrics and (2) plots. It’s now possible to create custom charts and graphs in HASH simply by pointing and clicking, without needing to remember specific JSON syntax or keywords.

Power users can still access the raw JSON by viewing the views/analysis.json file.

Autosuggestion of behavior keys

Creating behavior keys can be used to tell hCloud the expected type of data it processes. This speeds up cloud runs, but until recently defining behavior keys was a manual process.

HASH now automatically suggests fields to you based on those you’re using inside of JavaScript behaviors. We’ll be bringing comparable support for Python behaviors in an update next week.

Older changes

Multi-file releases

Previously, only data publications in hIndex could contain multiple files. Now when you release a behavior, or other project file, you can bundle others with it — ergo “multi-file releases”. We’ll be demoing some of these bundles shortly as part of a forthcoming process modeling library we’re releasing for HASH.

Persistent cloud experiments

You can now view all past hCloud experiments (and generated outputs) from the right-hand activity history sidebar of any project in hCore. Previously computed experiment data and analysis can now be quickly reloaded into HASH without needing to re-run simulations again.

Older changes

Embeddable HASH

Click the blue ‘Share’ button in the upper right-hand corner of any simulation project on and you’ll see a new tab, “Embed”.

From here you’ll be able to grab code which can then be used to insert HASH simulations inline on your own site, without having to direct people away from your domain. This unlocks easy-embedding of simulations within blog posts, news articles, intranets, analytics dashboards, and any other location from which you might wish to feature a model.

We’re also testing a new “Share by email” feature (which eagle-eyed users will notice has started appearing in various product screenshots, including the preview image above!)

Happy New Year 🎉

Older changes

Better activity sidebar

You can now inspect individual runs within experiments, as well as view top-level “experiment level analysis”. Historical runs can now also be cleared from view (freeing up space in your browser’s memory).

Folders within projects

When you’re building software, even if something makes total perfect sense to have, if it isn’t truly game changing or otherwise deal-breaking it doesn’t always get built. At least not straight away.

In the case of HASH, for a while that meant we didn’t have such a thing as folders within hCore projects. But as the amount of logic in the average simulation has grown, the need for better project structure has become increasingly apparent — and it’s about time we introduced folders.

Data now lives in data, agent behaviors in src (your source code), and analysis plot definitions in views. We’ll be adding support for user-created folders and more customizable project structure soon, but for now we hope this helps encourage a standardized, best-practice way of building models in HASH.

A way to link to your latest stable release

You can now append /stable to the URL path of any hCore simulation to automatically be redirected to the last stable released version of that project. For example:

  • – the latest ‘tip’ version of a project
  • – a specific released version of the simulation
  • NEW – redirects to the latest released version of your simulation

If you’re direct-linking to hCore simulations from outside of HASH, using this latter link will allow you to ensure that you’re always pointing visitors to your most recent published release, without riskily directing users to potentially broken, work-in-progress /main builds, or old fixed-in-time releases from which you might since have moved on.

If (like us!) you frequently found yourself sharing /main links before, we’d strongly recommend cutting releases and switching over to /stable going forward.

Other fixes and improvements

  • Fixed a number of bugs around our recent implementation of behavior keys (with a few more usability improvements on the way)
  • Quashed an annoying issue that prevented auto-saving under certain conditions
  • Finally, we now show an “unsaved changes” indicator in hCore (an asterisk* that will appear next to the name of the project you’re working on)
Older changes

A better interface for managing global variables

A couple of months ago we introduced “visual globals”, an optional UI-wrapper around globals.json project files. The goal of this update was to improve the ability of non-technical users to vary simulation parameters during single-runs, to explore their impact more easily. Since then we’ve rolled out a series of improvements that eliminate bugs, and have now rolled out an all-new interface, improving the design and usability of globals. For instance, you can now show inputs as sliders, color pickers, and other UI elements.

Inputs should also now render better at smaller screen sizes, in anticipation of embeddable simulations which we look forward to sharing with you in the coming weeks. (Update: introduced 2021-01-04)

Fixes and performance improvements

  • Improved handling of error messages in hCore
  • Fixed-up our starter template
  • Eliminated overscrolling that was possible in the file-editor under certain circumstances
  • Ensured scrolling is always possible (in a number of edge-cases it was previously possible to become stuck)
  • Improved the responsiveness and performance of the in-browser IDE
  • Further speed improvements to hCloud