CAST Method
A simple framework for creating generative designs
The CAST method is not a strict set of rules, but rather a mental framework designed to help you think about and plan generative art and designs.
Think of the CAST method as a flexible tool that aids in organizing your thoughts and starting your design process. Its strength lies in being simple and modular.
What does CAST mean?
Each letter represents an action or phase. Initially, we'll use them exactly as they are to create a simple example.
Think of them as building blocks that you chain together:
Create > Arrange > Select > Transform
![](https://framerusercontent.com/images/xy6O60prUgfCeblsRJwoH7n0m8.png)
Again, no strict rules. Only a mental helper to get going.
As you may have guessed, the chain can get longer by adding more actions. Later on, we'll explore the modularity and how we can adapt it to our needs.
Create
In this phase we just need to create our elements. This will be our raw material for the next steps.
![](https://framerusercontent.com/images/tt3A9ANu2Ti3W001X6WZeBEkGr4.png)
Here we created 100 circles, our raw material. You can use the "Create ellipse" command for this.
Arrange
Arranging our elements is necessary to generate some sort of structure. Be it a grid (extremely versatile; a lot of designs are based on a grid layout), a radial layout, a spiral, lined up in a row. Or along a path. Or filling up some space. Or just scatter them on an area (“confetti effect”).
![](https://framerusercontent.com/images/6JW2H6E3XnPCqbwT5f5AWoB50.png)
We arranged our 100 circles into a nice grid (10x10).
Select
To refine the design, we can adjust, change, remove, or transform specific elements. This is done through selection. We might choose a number of items randomly, or select every second, third, or other regular interval of items—referred to as "every n-th." Alternatively, we can select elements based on certain properties, such as selecting only those with a specific opacity or color. For example, we might choose only the elements located in the top left quadrant of our artboard.
![](https://framerusercontent.com/images/dE8QXoAsopXp33aNcBl2pkOuCw.png)
As an example, here we selected every 2nd element.
Transform
Let's change the properties of single elements. Setting the rotation to a fixed value. Or random opacity. Or x-y coordinates. Fill color. Stroke color. Either all selected items get the same value or each a different (random) value, or it’s a number sequence. In this phase it’s all about transforming properties of each element.
![](https://framerusercontent.com/images/MeJr1ev2Bs3kPcFkIvp4biQ8JoE.png)
Random opacity for each element.
![](https://framerusercontent.com/images/iJNbqJHdCdCD3gsQg564YlKTnic.png)
Alternative: the position (x,y) of each item was randomly changed (relative changes with min and max values).
![](https://framerusercontent.com/images/GpQFJHPw5ZlK7nn1hmRCbUn3k.png)
Alternative: the size of each element has been transformed randomly.
![](https://framerusercontent.com/images/PHJOQMACGseKTP8yanfgR05OzU0.png)
All of the above combined: random opacity, position and size.
Taking it further
As mentioned before the concept is modular. That means you can line up the actions as you like. For example, our CAST method could also be a CAT method. Or CATSAT. Or CTSATASCTASTSACT…. - you get it. Remember, this is just a concept to kick your thinking in the right direction.
Once you learn and understand CAST, you will see it everywhere. It doesn't need to be generative or arranged in a grid. However, if you look at a design or piece of art with many elements, there is a good chance you could recreate it using this method.
OMATA is built this way
You may have noticed already, the commands are ordered by CAST actions (Create, Arrange, Select, Transform). All of the above examples were created with OMATA.
GO and try it out. It's simple and fun.