Envision Plugins
Envision provides a number of ready-to-configure modules for constructing integrated models, listed below. These plugins are configures using XML-based input files specific to the given plugin. Additionally, you can write your own custom modules using the Envision Software Development Kit.

Module NameDescriptionExample Use CasesDLL
FlowProvides a robust, highly configurable hydrologic modeling system. [details] Simulating rainfall/runoff modeling, reservoir operations, based on climatic, soils, and land-cover attributes. Flow.dll
Spatial AllocatorAllocates one or more items onto the landscape dynamically, where an "item" is any IDU attribute, based on achieving developer-defined top-down targets. Multiple items can "compete" to be allocated. Allocations are defined in terms of the target to be acheived, as well as "hard" constraints and weighted "preferences" defined based on underlying IDU attributes at a given location. Provides a convenient and powerful way to allocate top-down targets onto a landscape. [details] Allocating forest harvest operations on a landscape to achieve certain harvet targets.

Allocating new development on a landscape based on population targets, land use, a proximity to amenities.
TargetAllocates one or more items to a landscape dynamically based on achieving global targets. In Target, the allocation process is based on the difference between a capacity surface and an existing density surface: The spatial pattern of allocation the target is driven by the difference between the current capacity and existing density for each IDU i the landscape, biased by optional "preference factors" that modify the capacity surface. [details] Allocating new population growth to a landscape based on meeting population growth targets, where the capacity surface is determined by IDU attributes such as zoning, and biased by distance to existing population centers. Target.dll
SyncAllows for "synchronizations" to be run whenever specified changes in the underlying spatial database (IDUs) happen as a result of some other Envision process running - in effect, a "sync" is a "listener" that responds when specific database changes occur by propagating additional changes on the landscape. It is a "lightweight" component that executes very quickly, but it"s functionality is somewhat limited when compared to the "Trigger" module, mainly in that only constant values can be allocated (whereas Trigger allows for computed values to be allocated). [details] Changing underlying land use class when population density crosses certain thresholds at a location

Setting a forest stand age to "0" after a harvest event.
TriggerTrigger is similar to "Sync" in that it propogates changes to the underlying landscape when another process makes a change to the landscape. Is is more computationally intensive than Sync, but is also more flexible, Values to propagate can be constants or calculated values (based on the Envision Map Algebra syntax) [details] Trigger.dll
Simple State Transition ModelSSTM.dllSSTM.dll