In ProtoFlux, the context of any given node group determines many factors on how the ProtoFlux is internally processed. A few things that context will affect include how control flow is handled, what concepts the ProtoFlux is aware of, and how the ProtoFlux interacts with FrooxEngine, if at all.
There is only one baseline context available for ProtoFlux nodes, that being the ExecutionContext. There exist extensions to this context, with the only one being FrooxEngineContext. More contexts are to be expected in the future, such as a state machine context, an audio DSP context, and a shader context.
ExecutionContext
The ExecutionContext context mirrors traditional imperative programming. As of the time of writing, all ProtoFlux is under this context.
ExecutionContext is the most basic context for control flow in ProtoFlux. It establishes the concept of impulses (along with async control flow) and writes (but only to a ProtoFlux-specific value store, such as a Local or Store).
FrooxEngineContext
The FrooxEngineContext context is an extension of the ExecutionContext that is aware of FrooxEngine. This allows nodes to interact with the data model by drives and writes to a field. FrooxEngineContext graphs are aware of the local user executing the node, the IWorldElements existing in a world, the world and session themselves, and how to interface all of these concepts with ProtoFlux.