---
title: 'Activities: Beginning of the planning engine'
description: 'The ground work of the Strolch planning engine has been laid.'
weight: -7
date: 2015-07-08T00:00:00+01:00
LastModifierDisplayName: "Robert von Burg"
LastModifierEmail: "eitch@eitchnet.ch"
---

## Activities: Beginning of the planning engine

The ground work of the Strolch planning engine has been laid.

-------

One of the core ideas in building Strolch was to create a planning engine. The
planning engine would work in combination of `Order` objects representing customer
orders, `Resource` objects representing machines, human resources, etc., and
`Activity`/`Action` hierarchies defining a workflow.

With the latest couple of commits to Strolch we have now added Activities and a
basic planning of Actions onto Resources. Activities have an ordered list of
`IActivityElement` which allows creating an arbitrary deep tree structure of
Activity and Action elements.

Action objects have a list of `IValueChange` objects which define the start, end
and further value changes over time on a referenced Resource. Thus planning an
Activity is done by iterating the Activity hierarchy and for every Action
selecting a relevant Resource and then then applying the changes of the Action
on to the referenced `TimeState` on the Resource.

This implementation is currently very simple as it ignores all constraints which
a Resource might have. In further development we shall implement a `Violation`
model so that UIs can be built to visualize the over-use of Resources.

In even further steps we would then start implementing algorithms to not just
apply the changes onto a Resource, but to actually search the Resource for time
slots when the value changes would not violate any constraints applied to the
resource.

We are very much looking forward to these new features. Stay tuned for your
updates - even though they do take their time to arrive =).


