
Hash: A free, online platform for modeling - tobr
https://www.joelonsoftware.com/2020/06/18/hash-a-free-online-platform-for-modeling-the-world/
======
readarticle
_Imagine the impact on human culture if the skills of running, interpreting,
and creating computer models were as widespread as the skills of reading,
interpreting, and writing text are today. The person on the street would have
new intellectual tools for making sense of the world around them. Decision-
making might improve as the public understanding of issues moves beyond sound-
bites. The fog surrounding economic projections, and the other uses and abuses
of statistical evidence in politics, might lift at least a little.

Unlike many hermeneutic activities spawned by the Information Age, modeling
urges one to look outward at that which is being modeled, which could lead to
more involvement and less passivity. The widespread establishment of computer
modeling as a hobby seems to me one clearly necessary aspect of broadening
cultural participation, just as reading for pleasure and writing for personal
purposes were necessary driving factors for widespread use of text._

\- Why simulation modeling should become a popular hobby

[http://www.qrg.northwestern.edu/papers/files/simhobby-
local....](http://www.qrg.northwestern.edu/papers/files/simhobby-local.htm)

------
ArtWomb
I think this looks pretty interesting. "Build multi-agent simulations in
minutes". The grand plan here seems to be that customers build lots of little
simulations to solve their individual problem domains. And then a big brain
could learn to build a world model from those tiny experiences. The potential
here is in a "no-code" studio. Purely visual or natural language interface
that could be used by children and executives alike ;)

AI scholar Pei Wang actually theorizes this in his definitions of AI and AGI.
Real-world, real-time optimizations in uncertain environments built from the
bottom up, that eventually coalesce into something greater than the parts

[https://content.sciendo.com/view/journals/jagi/11/2/article-...](https://content.sciendo.com/view/journals/jagi/11/2/article-p1.xml)

------
eadan
Congratulations on the launch! I've been excitedly waiting for the public
release since hearing about HASH on Joel's blog a few months ago. I've been
playing with some models over the past few hours and I have a few questions /
comments.

First, would it be possible to perform sensitivity analysis on parameters of
the model? For example, with the city infection model, run a number of
simulations in parallel with different infection rate values, and see how it
affects the model output. Relatedly, I think it would be useful to specify a
probability distribution over a parameter rather than setting a fixed value.
The state space of the model would become exponential in the number of
parameters which can vary, so I understand if it's infeasible, at least in the
public version.

The real-time spatial and plot views are great. I would like to try some
network based simulations. Any plans to add visualizations for these?

~~~
DavidWilkinson
Thanks! We have some network features in the pipeline (including better viz)
and will be introducing some stdlib functions to help in the coming days. :)

We have some users representing networks in the 3D viewer at present, and have
seen three ways implementing networks to date:

1\. Edges are represented as agents. They are used to store properties such as
edge length, and to provide nodes with a way of accessing other nodes.

2\. Edges are represented AND USED as agents. Edges not only store properties
but themselves exhibit behaviors.

3\. Nodes are given a network object which contains information about their
network neighbors and all relevant properties (such as directed/undirected
edge, edge length, etc...)

Re: your question around experiments... yes to all three (parameter sweeping,
Monte Carlo, and sensitivity analysis), and a bunch more. We'll be shipping
this alongside H-Cloud. More on that in the full explainer at
[https://hash.ai/about/mission](https://hash.ai/about/mission)

Thanks for giving the beta a spin! Happy to chat in more depth over on our
public Slack.

~~~
eadan
Thanks for your response! This technology is very exciting. Since you're
targeting WASM there's a whole host of possibilities. Python is already
supported through Iodide [1], but I imagine other languages could also be
ported, and even DSLs specifically tailored for agent based modelling. That's
not the mention all the other things happening in the WASM space like webgpu
[2] and WASI [3].

The potential for ABMs are huge now that we have access to cheap and massively
parallel compute. Imagine arbitrarily complex models of each individual in an
economy interacting with each other over a distributed network of thousands of
machines -- that's possible now. Instead of trying to predict the future, we
can compute it.

[1] [https://github.com/iodide-project/pyodide](https://github.com/iodide-
project/pyodide)

[2] [https://github.com/gpuweb/gpuweb/wiki/Implementation-
Status](https://github.com/gpuweb/gpuweb/wiki/Implementation-Status)

[3] [https://wasi.dev/](https://wasi.dev/)

~~~
DavidWilkinson
The Python simulations we run in-browser are indeed using Pyodide in part!
It's brilliant, but there's quite a performance penalty at present. We're
working on some optimizations, but right now running the engine locally or
offloading to the cloud are the only places real scale can be achieved. That
said we're thrilled that Python-in-browser is possible at all, and excited at
how many high-quality complementary projects are in the works. It really does
feel like "everything is coming together" :)

------
precsim
Very interesting, making simulations "easy and accessible" really resonates
with me having spent far too many years single handedly trying to get traction
for my "easy to use" engineering physics, FEA, and PDE ideas and simulation
tools [1]. I would be very interested in collaborations if anyone from hash.ai
(or anyone else) is reading this and ever think of including/or moving in to
the "easy to use" PDE based simulation space.

[1]: [https://www.featool.com](https://www.featool.com)

~~~
eb3c90
I've been thinking about these kinds of things a bit. PDE and FEA seem core to
lots of interesting simulations. From chemistry and climate to engineering.

Firedrake [1] and Fenics [2] seem like interesting approaches to this. I know
that firedrake is being explored for some climate modelling with fluidity
project [3][4].

The value of any simulation platform is based on the value of the models and
datasets in that platform. So the key question is, can you attract the people
making the valuable models to your platform. Working with things that people
are already using seems important, as does talking to those people about it.
I've got a Google form asking questions currently to try to get more
information about what people who currently make and use simulations need. [5]

[1] [https://www.firedrakeproject.org/](https://www.firedrakeproject.org/)

[2] [https://fenicsproject.org/](https://fenicsproject.org/)

[3] [http://fluidityproject.github.io/](http://fluidityproject.github.io/)

[4]
[https://www.archer.ac.uk/community/eCSE/eCSE06-01/IC15-ecse-...](https://www.archer.ac.uk/community/eCSE/eCSE06-01/IC15-ecse-
tech-report.pdf)

[5] [https://docs.google.com/forms/d/e/1FAIpQLSfH-
ns1CSQlyVyo7oj_...](https://docs.google.com/forms/d/e/1FAIpQLSfH-
ns1CSQlyVyo7oj_LxGrxVj240AqysCMoEFcni0D25NcEA/viewform?usp=sf_link)

------
bjelkeman-again
A better link may be the launch blog, which is linked in the above post.

[https://hash.ai/about/mission](https://hash.ai/about/mission)

------
docent8
It would be great to know how Hash compares to other free or open-source
simulation tools, like NetLogo, OpenModelica, SimPy or SimJS, in terms of
features and licensing.

What is Hash's business model in relation to its free tooling?

[https://openmodelica.org/](https://openmodelica.org/)

[https://ccl.northwestern.edu/netlogo/](https://ccl.northwestern.edu/netlogo/)

[https://simpy.readthedocs.io/en/latest/](https://simpy.readthedocs.io/en/latest/)

[http://simjs.com/](http://simjs.com/)

------
i_don_t_know
How does this compare to NetLogo?
[http://ccl.northwestern.edu/netlogo/](http://ccl.northwestern.edu/netlogo/)

------
tgv
Doesn't work well on Firefox. Perhaps it's an extension, but the plots
disappear, there are access violations, and a few other things.

Technically, it's funny: it looks like a relatively easy way to set up
simulations for other people to run, with the integration with plots and
viewers.

However, it's simple. I don't think it'll go beyond a bit of playing around
and educational purposes (which, btw, is not to be underestimated).

~~~
nathggns
Hey. I'm on the development team at hash.ai. I'm going to be looking into this
today, and will hopefully make some progress soon!

I'll certainly look into the plots issue. If you think of anything else worth
mentioning about Firefox, it would be very helpful if you could email me at
nh@hash.ai with details! If you feel comfortable providing it, a list of
extensions you're using would go a long way to helping diagnose the issues
you're encountering.

------
monkeydust
Unless I missed it, this needs a page demonstrating how this can be used to
solve real world problems and challenges without me having to sign up.

~~~
newswasboring
I came here to make the same point. There are some example simulations on the
landing page but they too ask for my email to open them.

~~~
DavidWilkinson
Thanks for the feedback; we're going to look at removing the gate. :)

------
amatic
Simulation and modelling are great tools in engineering, but it is still very
difficult to create realistic models that predict behavior of the real thing
well. There are always things you leave out, and sometimes they come back to
bite you on the ass. Things like friction, thermal effects, small forces,
delays... Stimulating organisms or institutions seems way more prone to errors
of this kind. How do you verify that your agent represents realistic behavior
of the thing or organism it is supposed to be representing?

(Of course, having a platform for models is a great first step, congrats on
the launch)

------
hobofan
Are composable behaviours a common thing in actor systems? I don't think I've
seen it expressed like that in the actor frameworks I've used in the past.

Kind of looks like a actor system mixed with an ECS (Entity Component System).

~~~
Frost1x
Yes, they are. It would be quite nice if the agent behavior composition system
in HASH supported modern behavior tree paradigms though, which seems to be a
core lacking feature that would add _significant_ strength to the product,
IMHO.

I'm currently working with a project in an overlapping domain with similar
goals and this is a potentially fantastic product/service overall.

~~~
DavidWilkinson
Right you both are. Re: behavior trees, we've explored a few visual
programming metaphors (for the most part inspired by TouchDesigner), and I'd
love to chat through any specific ideas you have around ideal implementation.
I'm at david@hash.ai

------
exdsq
It'd be nice if the docs were available without signing up. I don't want to
sign up to something before reading these first.

~~~
DavidWilkinson
Thanks for the feedback! You should be able to view the docs directly without
logging in at
[https://github.com/hashintel/docs](https://github.com/hashintel/docs)

UPDATE: GitHub is down. Of course it is.

~~~
exdsq
Ha, what luck! Thanks for the link - I really like the idea. Maybe you could
be the Github or Kaggle of simulations/modelling :)

------
kome
Build multi-agent simulations in minutes... the marketing got me here. But in
fact, it's just a huge JS/phython mess.

NetLogo is still far more easier than this. For sure there is a space to make
easier simulations, but this is not the right way.

------
AnonC
When I went to see one of the samples, I was pushed to a signup screen. There
seems to be no way to explore without signing up. Is that what others are also
seeing?

~~~
petargyurov
Same here. Overall, I am a bit confused and everything that would explain it
better seems to be behind the sign-up wall. A bit annoying.

------
sixhobbits
I tried to build something similar to some of these samples using D3.js a
while ago (modelling/visualising actual work being done, not statistically, at
different stages between geting, assigning, starting, completing, returning,
mainly to look for bottlenecks, but also to explain how our system worked).

It was immediately obvious that D3 was not the best tool for the job, and I
spent a fair amount of time looking for a framework that could do some of the
more obvious stuff. Maybe I didn't know the right keywords to look for, but it
seemed like it was a pretty empty space, so it's great to see more players in
it.

I really battled to figure out exactly what this was though. I think some code
samples (if it is some kind of framework) or screenshots (if it is just an
editor) would help a lot. Some of the overview links went to a "you need to be
signed in to access this" page, and even when I tried to look at the examples,
some were labeled "Python" but clicking on them didn't show me any Python
code.

------
motohagiography
Heads up to founder wrt UX, I abandoned my signup because of the password
complexity rules. It may be worth checking your logs for similar experiences.
I'm interested, but don't know enough about it to care enough to think up a
new password, especially one with those enterprisey rules.

~~~
pmx
The password rules don't even enforce a strong password. It let me use
"Password123!". It just ads friction to the signup process and protects
nobody.

------
arberavdullahu
Maybe it is because I'm a non-native speaker but I find the name of the
company very confusing. Why is it named HASH?

~~~
code0
I think it is the verb meaning of "hash". e.g. hash things out i.e. come to an
agreement.

~~~
DavidWilkinson
I like this interpretation! The original idea related to building a 'hash map
for the universe'.

------
cordite
I can’t see the examples on hash.ai’s front page without creating an account.

------
beaker52
Loved being greeted as 'wpareamatuers' when I signed in for the first time :')

~~~
DavidWilkinson
Well that's a fun one... could you email over your username/info to
david@hash.ai so we can take a look and see what might have gone on here?
Sorry about that!

------
foobar_
This is very cool! I wonder if this is related to agent oriented programming.

------
dekervin
the 3d visualization makes it appealing to modelling mechanistic phenomena.
But the area were widespread simulation woudl be impactful are in social
sciences.

------
look_lookatme
Is this affiliated with Glitch at all?

~~~
DavidWilkinson
Joel is Chairman of both Glitch and HASH (also Stack Overflow), and my co-
founder Jude was the former CTO at Fog Creek Software, but not beyond that.

~~~
look_lookatme
Thanks!

------
sgdesign
> We believe that most bad things in the world are the product of some form of
> information failure. From economic collapse and the outbreak of war and
> disease, to choosing the right life partner or university degree, we’re on a
> mission to help everybody make the right decisions and overcome information
> failure

I'm not commenting on the merits of the product itself, but this is exactly
the kind of arrogant "make the world a better place" attitude tech could use
less of these days.

When you look at how many bad decisions have been taken these past few years
despite plenty of access to good information, this sentiment seems pretty out
of touch…

~~~
eb3c90
> When you look at how many bad decisions have been taken these past few years
> despite plenty of access to good information, this sentiment seems pretty
> out of touch…

I'd argue we have lots of good information about what is going on. I'm not
sure we have lots of good information about what we should do. Should we move
to renewables and storage, nuclear or carbon capture and storage or would it
be better to geo-engineer?

There are lots of trade-offs for all these paths. Being able to simulate their
interactions accurately and under different assumptions might help form a
consensus about a not too bad way forward.

~~~
strangemonad
That’s conflating availability of lots of data with ability to understand
though.

~~~
eb3c90
Could you be more precise in what you are responding to?

~~~
strangemonad
Meant to agree with your reply, the comment was for the post you were replying
to. We have lots of data but that doesn’t mean we have widely distributed
understanding. Data != understandable models of the world. We need much more
of the later.

------
JeremyBanks
Don't touch anything from Spolsky. He's toxic and it will die.

