What's new at HASH?
What's new at HASH?
This week we introduced autocomplete for behavior keys. Where multiple behaviors use the same field, it now only has to be defined in one, and will be auto-filled across other behaviors in a project. Subsequent changes to the behavior key definition will be automatically reflected in all other behaviors utilizing it. Because behavior keys now only need defining once, the burden of maintaining complex simulations with large numbers of behaviors has been vastly reduced, allowing users to more easily benefit from hCloud’s high-performance runtime optimizations.
Edges between nodes in a network are now rendered automatically in the default 3D simulation viewer. Directional relationships between nodes are rendered with arrows. Hover or select an agent to highlight its edges, and see how they evolve over the course of a simulation. Read more about modeling with networks >
It’s now simple, quick, and inexpensive to compute-efficiently determine the optimal set of values within a simulation for any given problem. Optimization experiments provide a fast mechanism for determining the best possible values for one or more parameters, with any number of objectives in mind.
Optimization experiments are an hCloud-only feature, meaning they can be created programmatically, or via the “Create Experiment” graphical wizard in hCore, but can only be executed in the hCloud environment (and not client-side in-browser). The resulting analysis plots, and simulation runs (rendered in any view, for example 3D or geospatial) can still be streamed back down to the client and inspected in-browser with ease, but actual computation takes place in the cloud.
To get started with optimizations in HASH, open a simulation project, click the “Experiment” button in the menubar at the top of the page, and select “Create an experiment”. Choose “Optimization” from the dropdown type menu, and input the values to minimize or maximize alongside any constraints.
All HASH accounts come with 10-hours per month free hCloud h1 compute credit sufficient to get started. Learn more about optimization experiments >
You can now use an
init.py file (in lieu of the currently universal
init.json file) to initialize a simulation in HASH. This gives much greater control and flexibility when instantiating agents and teeing up simulations. Read more about programming initial states in the docs >
Our new networks library allows you to define networks of agents who have access to each other as if they were neighbors. This library is suitable for varied use cases such as social network, and epidemiological modeling. The library can also be used to:
It’s now possible to merge changes into HASH projects directly within hIndex. We’ve introduced a viewing and approvals process that will be familiar to anybody who’s used GitHub or GitLab before, and provides an accessible means to users who haven’t utilized version control systems previously to manage contributions from colleagues and the HASH community.
Building on the process modeling behaviors released in January, we’ve released a process model builder for HASH, which can be used to easily and quickly create process models that run within HASH. This is now enabled by default in all HASH projects. To use it, select View > Process Chart from the hCore menubar at the top of the screen.
This is our first plugin for HASH, and it demonstrates one type of tool that can be built with the HASH API. In this case it is a visual interface for more easily building models within hCore, but it could live independently of the hosted HASH platform as well, for example privately (for internal-only use), or embedded within another product.
HASH simulations are now supported by Embed.ly, meaning your models can be embedded natively on any website that supports Embed.ly (e.g. Medium, Reddit, Trello, Disqus, Coursera, DuckDuckGo and more).
Experiment, edit and release history now all exists in one place, in the newly unified activity history sidebar in hCore. From here, it’s easy to see how models change over time, and revisit models as they existed at a given point in the past (such as the moment an experiment was run which led to a decision being made).
This improves the chain of provenance around model development, and makes hCore unique amongst simulation development environments in providing a complete, accessible record of all actions ever taken within a simulation.
We’re extending support for schemas in HASH. In addition to drawing on Schema.org definitions, you can now fork and edit these, as well as create their own schemas from scratch.
Users participating in our pre-release program can now generate write access tokens that allow non-logged in users to save changes to simulations. This unlocks the development of external user interfaces useful for interacting with HASH.
If you’d like access, contact us to discuss your use-case and receive an invite to our pre-release program to test-drive this feature.
Open sourcing: we’ve open-sourced HASH’s standard library (stdlib) under the permissive Apache 2.0 license. You can find this on GitHub in the engine/stdlib folder of our packages monorepo.
New utilities: we’ve also added two new functions to the HASH stdlib—
state.behavior_index()(Python) can now be used to retrieve the position of a behavior in an agent’s behavior execution chain. This is particularly useful in the creation of process models. Read more >
context.step()has been introduced which allows access to the current timestep in the simulation. This allows easily changing how the simulation behaves how the simulation behaves after a given number of steps (for example, stopping production at a factory on weekends). Read more >
In addition to time series plots, we now support histograms, line, area, scatter, bar and box charts being produced for any metrics in a simulation within hCore‘s analysis view. These can be generated via the analysis wizard in hCore, or by writing out the raw JSON. Read more in the docs >
Conveyors, cranes and racks! (With forklifts coming soon) We now have a number of official libraries for handling materials within HASH simulations, useful in the design of logistics and manufacturing facilities. Learn how to use these in the docs >
The appearance of agents in the geospatial viewer can now be customized.
To ensure an agent shows in the geospatial viewer, make sure a
lng_lat field has been set on the agent. Read more about geospatial simulation in HASH >
Schemas are now searchable in hIndex, exposing HASH’s full schema library for the first time.