Hello everyone! We’ll start with Friday updates here to keep you up to date on how simcision is developing.
Where are we now?
We’re at an interesting point of development in simcision: We’ve got quite a lot of progress in our alpha version, but are not sure when and how we’ll move these new changes to the live version. Our three biggest changes are:
Resources as net elements
We’re able to move the resources from the bottom bar to the main net canvas right now. This means that any connections to the resources can be drawn on screen, just like the relations between elements. These visible connections serve for more transparency of what happens in the model.
Additionally: since the resources are in the net now, outgoing connections from resources to elements are possible too!
Up until now, we could always create a “dependency” for a resource. This was kind of a special relation from an element that would change the value of a resource in every round. In our current development state, this special kind of relation is not only available from elements to resources, but also between elements or even between two resources. Using these “constant relations” allows us to create interesting network dynamics that are constantly sending impulses through the model!
We have a new special “element” type. Indices! Indices do not have a status, but calculate their value dynamically from other elements, resources or indices in the net using a formula (like the ones you can use now to create special action effects). This means that you can use these to create complex dynamic values that are updated on the fly.
Since they do not have a value, indices can’t be influenced directly (neither by incidents, actions, relations, nor anything else); instead, you’ll have to change the values the index is based on to increase or decrease its state. But outgoing relations are no problem – while the index can’t be changed through a relation, it can influence other elements.
Why isn’t that available right now? When will it be?
These are awesome new features, but they fundamentally change the way simcision works – and breaks functionality in some areas of the software. We’ve got the Influence Matrix – a grid diagram showing which elements have the largest influence in the net – which works great with classic impulse relations. But as soon as we add one “constant” relation to the mix, the values aren’t right anymore: since constant relations send impulses every round instead of once per change, their effective influence is completely different and not comparable to the influence of the standard relations. We’d have to compare constant relations to each other and keep those separate, but then we’d need multiple diagrams? And how correct would they be if the model is a wild mix between constant and impulse relations?
That’s why we’re not really ready to send them out now. The system change is disruptive, and we’re not convinced that it is ready right now. Not sure when, we still need some time to test, build some models using the new structures and see what works.
…but while we’re doing that, I’m working on features you’ll get sooner!
Our next update will include a new way to define conditions. Conditions will be much more flexible than they are at the moment! You’ll be able to compare values of different elements, test if incidents took place during a specific time range, and easily find out a measure has been played.
Furthermore, the way conditions are written will be simplified: E.g. “Activations of [Party] > 10” instead of the long sentences that exist in the software currently.
I created a whole new menu to input these new conditions. I believe it’s more intuitive! We’re testing it right now.
Copy and Paste
That’s a feature I’ve been missing for a long time! I’ve started with a copy and paste system. That’s actually been most of the work I’ve been doing this week, apart from bug fixes and small optimizations. Now, I already have kind of a working system.
When creating the copy and paste feature, it was important for me that it shouldn’t only be possible to copy items in a model, but also between models. This means that we’re using the system clipboard as a buffer. When copying, we move the active item(s) and all relevant dependent items to the clipboard as a JSON-encoded object. When pasting, we insert these new items and re-wire them in the new model.
One great feature of the clipboard is that you can save your data inside in multiple formats at the same time. We’ve got plain text and HTML. That allowed me to copy a formatted representation along with the pure technical data! When pasting into a code editor, I get the plain text (the JSON), but when pasting into Word (for example), the formatted HTML version is used. That way, copy and pasting can be used a cheap export – copy all the items (in simcision) and paste them into your text software (like word) and now you have a lot of pages documenting your elements in the model. At the moment, I include the image, the title, the description, indicators and status – that seemed like the most important information.
(I’d have loved to save the copied item in plain text, JSON and HTML, but the JSON format doesn’t seem to be supported. I’ll be on the lookout for more supported clipboard formats.)
Time for the weekend, see you next week!