Dei here, from the team behind Error Stack [1] (a similarly named existing, context-aware error-handling library for Rust that supports arbitrary attachments). How does Stack Error, here, compare?
Interesting approach! We had a similar journey at HASH to figuring out how we deal with stacked errors (as well as collecting parallel errors), developed the `error-stack` crate to solve for it. It works by abstracting over the boilerplate needed to stack errors by wrapping errors in a `Report`. Each time you change the context (which is equivalent to wrapping an error) the location is saved as well, with optional spantrace and backtrace support. It also supports supplying additional attachments, to enrich errors. We spent quite a bit of time on the user output, as well (both for `Debug` and `Display`) so hopefully the results are somewhat pleasant to work with and read.
This is a fair criticism of the public spec in its current form and we’re working on documentation to help folks deal with this.
We actively want to talk approaches through with more interested parties, and welcome contributions to the spec and docs.
Sidebar — for our part at HASH - we’re optimistic about the role WebAssembly might play, having used it extensively in building the wider ecosystem of simulation tooling.
We’ve spent a lot of time thinking and talking to folks about the incentive structures around this, and think they stand on their own - although your skepticism was an initial worry we had, too. As it stands the Block Protocol enables embedding applications to make their products more useful to consumers. And block developers reach a wider audience with their tools than they would otherwise. There’s a lot more to this that we’ll write up nicely later.
Introductory guide to various topics in computational economics by Saku Panditharatne, in the browser-based HASH simulation platform (disclaimer: I'm one of the founders of HASH)
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 [email protected]
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" :)
Well that's a fun one... could you email over your username/info to [email protected] so we can take a look and see what might have gone on here? Sorry about that!
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!
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
Thanks for giving the beta a spin! Happy to chat in more depth over on our public Slack.
> 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.
[1]: https://crates.io/crates/error-stack