# How does Animate work?

On this page we are going to explain how Animate is structured and how it works, to give you a better understand of what happens in Animate behind the scenes when creating blueprints with Animate.

### Architecture Overview

<figure><img src="/files/m5AN0nw1WebhFlxCxAwX" alt=""><figcaption></figcaption></figure>

<mark style="color:blue;">Any animation you created with Animate always consists of two components: A</mark> <mark style="color:blue;"></mark><mark style="color:blue;">`Value Source`</mark> <mark style="color:blue;"></mark><mark style="color:blue;">and an</mark> <mark style="color:blue;"></mark><mark style="color:blue;">`Value Interpreter`</mark><mark style="color:blue;">.</mark>

### Value Source

Animate's `Value Source` is responsible for a number of functions:

* Read configured Curve Vector.
* Generate and save current curve value at current time.
* Progress curve each tick, based on current state (reversing, looping etc.).
* Parse and save current value of curve at current time.
* Call curve events (Curve Minimum, Maximum, Updated & Deleted)

### Value Interpreter

The `Value Interpreter` listens to the events provided by the Value Source and then implements custom behaviour to make use of the value provided by the `Value Source`.

The implemented behaviour can be fully customized. Example implementations include:

* Setting an Actors relative rotation, location or scale.
* Updating the brightness of a light source.
* Manipulating values of a post-process volume.

Since the *reading* and *using* of the curve is seperated in two different components, it is very easy to create custom implementations of curve values in a clean blueprint, without having to modify a big blueprint or making copies of it.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.kia.dev/animate/installation/how-does-animate-work.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
