Share

Flow Generative Scheduling concepts

Flow Generative Scheduling requires a schedule as an input, but provides flexibility in how you structure the schedule that you input and allows you to modify some aspects of the schedule.

When creating a schedule to use with Flow Generative Scheduling, it can be helpful to understand the concepts used in the application and what controls can be modified within Flow Generative Scheduling itself.

This document covers the following terminology and distinguishes between three types:

  • described: A non-editable input to Flow Generative Scheduling
  • editable: Controls that can be used to explore schedule scenarios
  • calculated: Information that Flow Generative Scheduling calculates for you

Schedule tab

Gantt concepts

Task (described)

A Task is something that requires some set of resources for a specific period of working time.

In the example above, the work that a layout artist will need to do on a shot called CZM_0002 is being represented as a Task.

Duration (described)

Duration represents the amount of working time required for a Task. This is the amount of time that any resources required for the task will be used.

Resources, Resource Requirements, and Resource Classes (described)

Each Task has one or more Resource Requirements, sometimes also referred to as simply Resources. Each Resource Requirement is associated with a Resource Class.

In the example above, the Layout Task in the shot CMZ_0002 uses a "layout" Resource. In this schedule, the "layout" resource is one of multiple Resource Classes, each representing an artist department.

Summary (described)

You can think of a Summary as a container. It can contain any Activity. An Activity can be a Task, Milestone, or another Summary.

In the example above, each shot and sequence is represented using a Summary.

For example, the shot CZM_0002 is represented as a Summary. CZM is also represented as a Summary.

Summaries can be nested many levels deep to help you represent the relationships that make the most sense to describe your schedule.

Milestones (described)

A Milestone marks a specific event in time. A Milestone does not have a duration or require any specific resources.

The example above does not contain any Milestones.

Activity (described)

An Activity is a Task, Milestone, or Summary.

All Activities can have Constraints, Dependencies, and Priority.

Dependency (described)

A Dependency describes a relationship between two Tasks.

A Dependency can be used to ensure:

  • A Task is completed before another Task begins. This is called a finish-to-start (FS) dependency.
  • Two Tasks are started at the same time. This is called a start-to-start (SS) dependency.
  • Two Tasks are completed together at the same time. This is called a finish-to-finish (FF) dependency.
  • A Task can only be finished when another Task has been started. This is called a start-to-finish (SF) dependency.

In VFX & Animation, dependencies are commonly used to describe relationships between artist tasks where one task must consume the output of an earlier task.

Constraint (editable)

A Constraint is a time based limitation used to describe specifically "when" some work can or should occur.

A Constraint can be used to enforce that some work should be scheduled...

  • "As soon as possible"
  • "As late as possible"
  • Starting on a specific date ("Must start on")
  • Finishing on a specific date ("Must finish on")
  • Not beginning before a specific date ("Start no earlier than")
  • Beginning before a specific date ("Start no later than")
  • Not finishing before a specific date ("Finish no earlier than")
  • Not finishing later than a specific date ("Finish no later than")

The types of Constraints available to use on a particular Activity depend on:

  • The type of Activity: Milestones, Summaries, and Tasks can all have Constraints, but not all types of Constraints are relevant to each type of Activity.
  • The other Constraints applied to this Activity: Some types of Constraints cannot be mixed, so you may notice that some types of Constraints are not available to apply to a particular Activity if that Activity already has certain types of Constraints applied.

Priority (editable)

Priority can be used to describe relative importance of different parts of your schedule.

It may help to think of Priority as a description of your preferences or a 'soft' objective, as opposed to Constraints or Dependencies which are more strictly enforced.

For example, a schedule contains multiple Sequences and you would prefer for some to be worked on before others, but there is no time-based constraints or any dependency between the different Sequences. In this case, you could set these more important Sequences to have a higher priority than the others.

If there is a hard requirement that something should be done in a specific order or in a specific timeframe, it would be more appropriate to use Dependencies or Constraints.

Resource tab

ideal planned capacity

Planned & Ideal Usage (calculated)

Ideal Usage is the theoretical ideal utilization of a particular resource class.

For example, it might be the most theoretically ideal to have a static number of artists over the course of a project. Flow Generative Scheduling will attempt to achieve the Ideal Usage for a resource class, but this is not always possible to do while respecting the constraints that have been specified for the schedule.

Planned Usage is the actual utilization of a particular resource class. For example, while the ideal utilization of a resource class might be a static number, reality will usually differ and there will be variations in the planned usage of a resource class over the course of a schedule.

Capacity (editable)

Capacity is a control which can be used to set a soft cap on the number available for a particular resource class.

Flow Generative Scheduling will attempt to respect any Capacity that has been specified, but may go over the specified Capacity if necessary to meet the constraints that have been specified for the schedule.

Resource Shaping

resource shaping

The Ideal Usage for a resource class can be adjusted using the control points on the resource class's graph. This adjustment process is called Resource Shaping.

You can use Resource Shaping to control the start and end dates for a particular resource class, and the way that the resource class utilization ramps up or down.

Was this information helpful?