I am trying to animate lines into forming into a big grid something similar to this: https://www.youtube.com/watch?v=LPwP_CPVwqM

How can I achieve this type of animation?

At first I was thinking of making a procedural grid texture where I would have vertical and horizontal lines and somehow keyframe them in a way they would merge and form a grid onto a plane

But I can't figure it out how to do it

I want them to be merge asynchronus, just like in that video, kinda make them form the grid in their own pace.

  • $\begingroup$ Hello and welcome. While files, images, and external videos or links may be helpful additions they should not be the only way to obtain information about your issue. Don't make understanding your question rely on downloading a file, watching a video or visiting an external site. Use the builtin tools to upload images or gifs, along with thoroughly explaining the problem in written form so it can be indexed and searched for thus helping future visitors with similar issues. $\endgroup$ Nov 5 '21 at 22:48

You can use a Grease pencil object, with some "Build" modifiers, each pointing at a different layer of lines, to get variations in time and speed of the build effect.

enter image description here

  • $\begingroup$ Thanks for the help! This is an interesting take, I will try both ways you guys showed me $\endgroup$ Nov 7 '21 at 20:12

Here is an approach with the shader. It also uses layered images and does basically what you mentioned in the question.


You have an image with lines and a mask that hides a part of the image. The change of the mask's offset creates the animation. At first, the mask hides everything. Then it reveals the lines over time. Some distortion and rotation for the mask are used to create the illusion of the individual speed of the lines.

To make a grid you need at least two layers, one vertical and one horizontal. For the effect like in the video, you need four layers so that the lines interlock. The four layers are rotated by 90°, 180°, and 270°. Please note that group input slots use pi/2 (1.5708) for 90°, pi (3.14159) = 180°, and so on. You can enter pi/2 directly into the input field.

Shader Node Setup

shader node setup

Mapping Group

The first group calculates the mapping vectors for the lines image and the mask. The image is rotated. The procedural mask (a Linear Gradient) needs to be rotated by 90° compared to the lines and is moved by a given offset for the animation.

mapping group

Mask Image Group

The mask is a black and white image (Gradient Texture). In fact, there is no gradient. One side is just black and the other one plain white. For a more interesting transition, the image can be rotated (lines will run with a diagonal offset) and distorted by Noise texture.

mask image group

Lines Group

This group just creates a procedural image of lines with help of the Wave Texture node. And uses the given mask to hide/cut the lines that should not be seen yet. The From Max value is the width of the lines.

lines image group


For the animation just keyframe the Offset Mask value of the Lines Mapping group for each layer. Note the values range from 0 to 1 or from -1 to 0, depending on the direction/rotation of the layer. If the mask is rotated or distorted you might increase the values a bit more to reveal all lines.

  • $\begingroup$ Woow I think this is exactly what I was looking for! Thank you so much for the help! $\endgroup$ Nov 7 '21 at 20:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.