MagmaFlow Editor - Love And Hate Thread

Everything in Magma is cached, in its current and future form. All processing is done a particle at a time and each operation writes its output to a shared location before being used by the next operation. You should be able to see this caching behavior in every version of Magma already shipped.

I haven’t seen any downsides to this yet, and the only major tomfoolery I foresee with multiple outputs is:

[Flow]
Channel1 -> SomeOperation1 -> Output1
Channel1 -> SomeOperation2 -> Output2 (Where Output1 is writing to Channel1's channel)

Producing different results from:

[Flow]
Channel1 --> SomeOperation1 -> Output1
         \-> SomeOperation2 -> Output2

Due to the caching in the second one.

[EDIT] Made it more obvious some operation was being done along each arrow path.[/EDIT]

The cache is only within a specific KCM, hence why we see multiple outputs as a way to improve performance. Caching across KCMs would be a nightmare to figure out the correspondence of nodes and cached values.