Hash: A free, online platform for modeling
joelonsoftware.com
joelonsoftware.com
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....
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-...
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?
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
Thanks for giving the beta a spin! Happy to chat in more depth over on our public Slack.
I'm excited by what you're building here!
The run and play buttons being distinct are in our mind important in larger sims... but fully appreciate the confusion. We'll give this some more thought. Thanks for your patience and comments!
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
[2] https://github.com/gpuweb/gpuweb/wiki/Implementation-Status
Firstly, fantastic work.
I'd love to see more details on 'H-Cloud' regarding infrastructure, pricing, and feasibility/licensing options for self-deployment should I need to recreate/run a similar environment on premise vs. at a remotely hosted service.
I'm also quite interested in what's going to be FOSS'd in terms of the 'H-Engine' (written in Rust) and if some friendly interface (similar to H-Core) will still be provided.
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/
[2] https://fenicsproject.org/
[3] http://fluidityproject.github.io/
[4] https://www.archer.ac.uk/community/eCSE/eCSE06-01/IC15-ecse-...
[5] https://docs.google.com/forms/d/e/1FAIpQLSfH-ns1CSQlyVyo7oj_...
What is Hash's business model in relation to its free tooling?
https://ccl.northwestern.edu/netlogo/
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).
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.
(Of course, having a platform for models is a great first step, congrats on the launch)
Kind of looks like a actor system mixed with an ECS (Entity Component System).
I'm currently working with a project in an overlapping domain with similar goals and this is a potentially fantastic product/service overall.
UPDATE: GitHub is down. Of course it is.
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.
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.
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…
> Brilliant innovators have sought to organize the world’s information and make it accessible to all, and the next step on this journey is to make that information understandable and usable to everybody.
(e.g. https://medium.com/covilian-military-intelligence-group/you-... )
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.
> kind of arrogant "make the world a better place" attitude
It's not "arrogant" to want to make the world a better place. If GP thinks they're lying, they's better described as "deceptive". If GP thinks they're naive, they should say that, and ideally provide some constructive feedback. This kind of knee-jerk comment (and the subsequent knee-jerk upvotes) is my least-favorite thing about HN.
1. data/info-skepticism
2. data/info-literacy
3. soundly interpreting data/information
4. data/info-interpretation skepticism
5. data/info-interpretation literacy
Why wouldn't it be fine for someone who just start to study medicine to say "I'm going into medicine to try to change the world for the better." It's aspirational.
How honest someone is, is not something you can judge based on the goals that are set.
What's wrong with aiming to empower people?
If you like to see less of that, what would you like to see?
Why are you so sure it can't be their true deep moral mission? More importantly; how would you ever be able to recognize a startup that has one in general? Should they hide their moral mission, so people like you won't judge them for it? How is that for honesty?
If you apply this logic to people, you'll only see either 'honest people who have no deep morals' and 'dishonest people who attempt to have deep morals'. you would then feel better about those that openly have lower morals. That's not in your interest.
And you would be making the world a harder place for those that actually try to improve it with their deep morals. And this annoys me, therefore, this long answer :).
For instance, FairPhone, you think they should say 'We try to make a phone that's nice and makes money?'.