Hi guys welcome to my channel i'm Chong today i'm going to share with you how to create this abstract sci-fi animation in blender 3d 3.0 alpha version using geometry nodes fields workflow, so before we dive into blender let me go through what we are going to do in this tutorial this kind of visual is usually formed by 3 different sizes of cube, which is a big cube, a medium cube and a small cube after we have created 3 of these cube, we can scatter it around until we get the composition we want, then after we get the composition we want, we can start to design our main object in the center and this object need to be different than other geometry around it, so it need to be the biggest and the special one, then we need to add more details onto the cubes around the main object, then for the last step, we need to add material lighting and set up the camera to finish the scene, okay so without further ado let's get started first we are going to start with the floor so select all and delete everything, then add a plane change the dimension to 9.1 then press ctrl A and apply the scale, split the screen go to geometry node editor, add a new geometry node to the plane, and now i want to scatter three different sizes of cubes on the plane so let's add a distribute point on face then add instance on point, add a cube connect it to instance so now the cube is overlapping each other, so we need to decrease the density of the points, go to distribute point on face, change the random to poison disk, the distance to 2 meter, then decrease the density max to 0.5 maybe, density factor to 0.2, you can experiment with others number as well, so that you can get a different composition and layout. For now i'm going to stick with these number. Okay so let's select 3 of this nodes, press ctrl J to frame it then press F2 and name it big cube so now we can minimize these nodes, then we need to add a smaller cube, so let's select 3 of the nodes here, together with the frame, press shift ctrl D to duplicate it select the Frame press F2 and rename it middle cube add it here then select this node, hold Alt then right click and drag it to connect to the join geometry, so currently both of this cube is overlapping together, so we need to tweak the distribute point on face to separate them, so let's adjust the distance to 0.2 maybe, density to 0.3, density factor to 0.3 as well, so for the seed number we will come back to it later, then i want to change the size of the cube to 0.6 maybe.... okay now we need a small cube select all these nodes together with the frame, press shift ctrl D, duplicate it, select the frame, press F2 and rename it “Small cube” then select this node hold Alt right click and drag it to connect the join geometry, then go to distribute point on face, this one.... change the density and density factor to 0.4 then change the cube size to 0.4 as well so now we have a big cube, we have a middle size one and a smaller one. Okay now, we can start to play with the seed value, so i'm going to start with the big cube i think 9 is good for me, so let's go to the middle cube i think this is good for me, 29....you can experiment with other value as well, so you will get a different layout, then go to the small cube i think 4 is good, ok for the smallest cube here i actually want to add some details onto it, i want to boolean and make a hole at the center of the cube, so let's move the cube and put it here expand the instance on point node duplicate the cube node, then add a boolean node put it here, put it before the instance on point node, connect the cube to boolean node geometry 2, then for this cube, we change the size of x and y to 0.2 and the z axis to 1 okay now we have made a hole, okay now i want to add a little bit more details to the floor so let's minimize all of these nodes and put it aside
....so we have more space okay then add a grid connect it to the join geometry then make the size bigger put 60 maybe.... for the vertices x and y, let's put 100 by 100 turn on the wireframe so that we can see it, then i want to clone the cube on top of these faces, so press shift A go to point and add a mesh to point node change this to faces then add an instance on point node then add a new cube connect it to the instance let's make it smaller this one 2.1 and then next i want to randomize the size of the cube so to do it, let's add a combine xyz i only want to randomize the scale of Z-axis of the cube so drag this besides let's copy all these value to combine xyZ then connect it to the scale then i want to use a noise texture to randomize the scale of the z-axis change the scale to 100 and distortion to 50....you can experiment with others values as well then currently the randomized scale is not obvious enough, so let's add a math node change to multiply and let's multiply a bigger number so we can see the difference put 4 maybe.... yeah i think this is good enough for me but i think maybe we can move the floor a little bit lower....so let's add a transform node add it after the instance on point node change the Z axis to -.1 maybe....and then we done the floor....so let's select all of these....press ctrl J to frame it select the frame press F2 and name it floor and now....we can minimize all of the nodes okay next we can start to create our main object at the center okay so let's add a cube at the center move it higher, add a new geometry node to the cube then add a cylinder connect it to the group output, make the depth lower 0.3 maybe then add a boolean node i want to make a hole at the center, so i need to duplicate the cylinder....let's add let's add a transform node connect the cylinder to the transform.... by doing this we are actually duplicate another cylinder, connect the transform to the boolean, geometry 2 then...let’s make this smaller put 0.6 for x and y, 2 is enough....ok then i want to add more details onto the ring okay let's add a cube connect it to the boolean node geometry 2 then resize the cube smaller, then we need to duplicate this cube, so again we need to add a transform node, duplicate this transform node connect the cube to the transform node then connect this to the boolean geometry 2 then turn the rotation for Z axis to 70 degree maybe....and change all these scale to 1 okay so let's select both of this nodes press ctrl J to frame it press F2 and name it.....i just simply put "hole in center" then for this ctrl J to frame it press F2 and i'm going to name it x-stroke then we can minimize all this node for now okay now i want to add a line on top of the ring so let’s add a curve circle then add a join geometry connect the curved circle to the join geometry here is our curved circle, we need to bring it higher, so let's add a transform node bring it higher then add a curve to mesh node put it before the transform node, then we need to add the rectangle connect it to profile curve, let's reduce the radius of the circle to 0.8 .... then for the rectangle the width to 0.1 and the height to 0.4 maybe.... then i want to move the entire ring slightly lower 0.2 is good, then we can start boolean it so hold ctrl right click and drag your mouse to disconnect this line then connect the transform node to the boolean node, and now we have boolean it okay then let's select all this node press ctrl j to frame it, press f2 and name it "line on top of ring" actually you can put whatever name you like as long as you remember what it is okay then we can minimize it put it beside and now i want to animate the entire ring i want to make it keep rotating, so to do it let's add a transform node then add a combine xyz node connect it to the rotation, then add a connect it to the z-axis, because i only want to animate the rotation of z-axis then in the value node, let's type hashtag frame divide 40 by the way you can actually divide any number you want, if you want it to spin slower, then you need to divide a higher value, if you want it to spin faster, then you need to divide a lower numbers, then let's drag the time indicator to check the animation okay everything looks good let's select all this node, press ctrl j to frame it, press f2 and i want to name this
“Bottom Ring Animation” okay next i want to duplicate the ring make it smaller and put it on top, so to do it we need to add a transform node connect the transform node of the bottom ring to the new transform node, then connect this transform node to the join geometry and now we have duplicate the ring, but now they are both overlapping together so let's move it higher and let's make it slightly smaller for the Z axis 0.3 maybe....i think we can move this lower 0.25 maybe....then now if we play the animation we can see both of the ring is rotate in the same direction but this is not what i want, i actually want to make the ring on top to rotate in the opposite direction, so to do it let's move this beside so we have more space, duplicate the combined xyz from here, press alternate p to unframe this node, connect it to the rotation then grab this value and connect it to the z-axis, then i think we can give this value a name, so that we are easy to find it later, because we are going to use it to animate the entire scene, so select the value here go to node tab activate the color and change the color to any color you like press f2 let's name it animation driver so to make it rotate in the opposite direction we need to add a math node before the combined xyz, so let's add a math node change this to multiply and -2 you can multiply other numbers as well as long as you multiply a minus numbers, by multiplying a different numbers you will get a different rotation speed so you can experiment with this then now let's drag the time indicator to check the animation okay everything looks good to me okay then let's select all this nodes frame it press f2 and name it top ring okay next, i want to clone both of the ring here and randomize the scale so to do it duplicate the join geometry then..add a curve line connect it to the join geometry, so we are going to clone the entire ring here on this curved line, then add an instance on point node put it after the curved line then connect this joint geometry to the instance so by doing this, we are actually taking the entire ring we created just now as our instance object, so all the node here is actually the entire ring we created just now, so we join all of them together using this join geometry this one....and connect it to the instance as an instance object that clone on this curved line and currently we only have two instance object clone on the curved line and that's because currently the curved line only have two points and the instance object only clone on the point by default but if we refer to the sample we actually need three instance object clone on the curved line so to do it, we need to resample the curve, so let's add a resample curve after the curved line, change the count to 3, we only need 3....and then next, i want to randomize the scale of 3 instance objects, so to do it connect it to the scale, then play with the seed value until we get the i think 22 is good for me, let's change the minimum size slightly bigger....and i think we can reduce the length of the curved line as well then let's select all these node....ctrl j frame it, then press f2 and name it “Clonning” move this beside. Okay next i want to add this little shape rotate around our main object. so to do it let's duplicate this join geometry node then ...add a curve circle connect it to the join geometry, make it slightly bigger so here is the curved circle....then add a curve to mesh node then add a rectangle connect it to the profile curve then resize the rectangle to 0.22 and .02 for the height let's increase the resolution of the curved circle to 44 then add a boolean node put it after the curve to mesh node, i want to cut a hole in between the ring then add a cube and connect it to the boolean node, make the cube bigger and ok we can start animate the ring, so let's add a transform node after the boolean node add a combined xyz node connect it to the rotation, and then maybe we can move the ring higher, so let's increase the z-axis translation to .3 maybe yeah .3 is good....and then go to select our animation driver this one select it hold Alt, right click and connect it to this combine xyz we actually want it to connect to the Z-axis....okay then let's drag the time indicator to check the animation okay actually i want to make the animation to be rotating back and forth instead of keep rotating.... okay so to do it let's add a math node then change the function to sine, then drag the time indicator again to check the animation okay everything looks good for me, then again select all of them, frame it, press press F2, and name it “Rotating shape” then next i want to add these little dots to float on top of our main object so to do it, let's move this beside and duplicate the join geometry then add a curved circle connect it to the join geometry, add a transform node again move it higher i think we can make the radius bigger as well then we can start to clone the dots on the circle, okay so let's add an instance on point node, add it before the transform node, then add a cube connect it to the instance resize the cube to 0.04, okay then we can start animate it....so again, let's add a combine xyz, connect it to the rotation then we need to take the value of the animation driver we created just now....and connect it to this combined xyz but the animation driver node is too far from here, so let's add a reroute point at the rotating shape here, i want to take the value before the "Sine" hold shift right click and drag your mouse to add the reroute point, then takes this point and connect it to our combined xyz Z-axis and then, let's drag the time indicator to check the animation everything looks good, then now i want to animate and randomize the size of this cube as well, so to do it let's add a noise texture connect it to the scale.... and then i want to take the value of the animation driver here and connect it to the distortion value here, so let's add the reroute point again connect it....by the way this line is actually the line that connect from the animation driver then drag the time indicator to check it again everything looks good for me....again select all this node, press ctrl j to frame it f2 and name it "particles cube" okay next, i want to add some text above our main object so let's move our main object lower press numpad 3 to see the side view move it lower put 0.2 maybe press number 7 to see the top view, then i want to move it somewhere here, i want it surround with the cube, then maybe we can scale it bigger as well, let's put 1.3 let's make the height shorter, it will look better i think, okay i think this is good okay now we can start to add the text let’s add the cube move it higher then apply a new geometry node to the cube, press shift A go to text and add a string to curve connect it to the group output, then add a string node connect it to the shrink to curve node then type whatever text you want to type so i'm going to type blender, then i want to add another line of text so let's duplicate the string add a string join this should be connect to string, connect to string as well, then to break the line we need to add a special character node connect the line break to the delimiter so now we have two lines, let's add a curved fill node as well so that we can see the text better then i want to change the bottom line of the text to geo node, you can type whatever you want, then i want to change the font, press this button and choose the font you like....maybe we can adjust the spacing a little bit too then let's rotate it 90 degree okay then, we can turn off the wireframe move the text lower okay next....i want to animate the text, i want it to have the type writer effect so to do it, let's add the string substring node add it after the string join, then add a value node and connect it to the length and now if we play with the value, we can see the typewriter effect is start working but we need to animate the effect with the math node, so in the value column let's type hashtag frame divide3 maybe actually you can divide any number you want, it is depend on how slow or fast you want the animation to be. And then let's add a math node put it after the value, change the function to ping pong and the reason why we are using ping pong in the math node is because ping pong is actually create a triangle wave from a value you input and you can control the scale of the wave with the scale slider, this function is perfect for making something move back and forth. And then change the scale to 20 you can experiment with other value as well to get a different result then drag the time indicator to check the animation okay everything looks good, okay next i want to add a tiny arrow around the main object, so to do it add a plane press numpad / to focus the object, go into edit mode press ctrl r to add a loop cut then press A select all point press R followed by X and tab 90 to rotate it 90 degree then select 4 of this point move it backward scale is smaller as well, then exit the edit mode and maybe we can scale the arrow smaller.... let's put 0.05 then press ctrl a and apply the scale, go to modifier properties, add an array modifier, export 20 maybe ok then let's add the bezier circle select our arrow go to modifier properties and add a curve modifier, then in the curve object column use the eyedropper to select the bezier circle then we can adjust the factor x until the arrow close the gap 1.85 maybe okay then we can start animate it so select the arrow, go to geometry node editor add a new geometry node then add a transform node in the z column or rotation type (#frame/40) hashtag frame divide 40 and then press numpad / again to unfocus the arrow let's select the arrow together with the bezier circle, press number 7 to see the top view
then move ring to put around the main object move it higher ok next we can start to add lighting to the scene. So let's go to render properties, change the render engine to cycle and the device to gpu, turn on the render preview then press shift A and add an Area light press g followed by z move it higher maybe put 5 meter for the height then put 3 meter for x and y, i want it to off center a little bit, then go to the light properties tab, change the color to a “Blueish color” the power to 1500 and the size to 8 meter the larger the size the softer shadow we will get, then for the world color, go to the world properties tab, and change the color to a dark blue color then change the strength to 2 ok next we can start to add material to the scene so let's turn off the preview render first, then add a cube to the scene, rename it material then hide it go to the material properties tab press the plus button to add 6 material so i'm going to add all the material i need to this cube and we will execute the material in the geometry nodes later press new and rename this main object then for this....”Particle Cube” this is emission this one is rotating shape this is floor and this one we put text okay now select the floor in the geometry node editor press shift A go to material and add a material assign node then in the material column select the floor duplicate it put it for the middle cube as well and for the small cube, i'm going to leave it white color, then duplicate the material assign node to put for the floor as well this one then select our main object, go to the top ring animation part this one add the material assign node, add it here then select the material main object duplicate one more and put it here then go to the rotating shape, add a material assign node at this point as well, put it before the join geometry node, then select rotating shape then duplicate this material assign node and put it before the join geometry node for particle cube then change the material to particle add a material assign node put it before the group output in the material column select text so now we can start to add color go to shader editor turn on the render preview select the material cube go to the material properties tab select the text, go to shader editor, delete the principal node, add an emission color connect it to the surface, then add a transparent and add a mix shader connect the transparent to the mix shader, then i want to randomize the text color, so to do it let's add an object info connect the random to the emission color and now we can see the random color but it's black and white so to add some color onto it let’s add a color ramp change the linear to constant, drag this to the center, change this color to a red color or you can put any color you like as well and this one, i want a darker red color then change the emission to 8 maybe and adjust the Fac to around 0.7 then next select the floor change the base color to a dark gray color and the roughness to 0.4 maybe, then for the rotating shape, let's select the text copy the material and paste it at the rotating shape then for this one we can delete the color ramp and object info, we don't need to randomize the color then change the emission color to a blue color the strength to 2 maybe and effect 2.9 okay then for the emission color let's simply change the surface to emission color first, we are going to use it later then change the strength to 4 maybe ok then for the particle cube let's copy the material from the text paste it to the particle cube go to shader editor, select the transparent and the mix shader, then delete them connect the emission to the surface, then change the color ramp color to blue color or you can put any color you like then last for the main object let's simply adjust the gray color to slightly darker and now i want to add color to this little arrow as well, so select the arrow so let's copy the color from particle cube select the arrow add a new material and paste the material then delete the object info select the color ramp and press ctrl T then select the image texture and delete it connect the mapping to the color ram then in the color ramp, set this to ease then change the color to any color you like okay this is good for me then next i want to add some additional light in our main object and all this little cube at the floor so in order to do it select our main object, let's off the render preview first, then go to our geometry node editor then go to the top ring animation part here then add a curved circle connect it to the join geometry, let's select all this node in the cloning part and press m to mute it for now, so we are easy to see what we are doing then add a curve to mesh node then add a rectangle connect it to the profile curve adjust the width to 0.1 and the height to 0.02 then add a transform node after the curve to mesh node, move the entire ring higher then change the radius of the curved circle to 0.65 and then duplicate this material assign node and put it here then select the emission material select all this node in the cloning part and press M again to unmute it, you can slightly move it, they are overlapping together turn on the render preview okay now finally we have done the main object okay next i want to add some emission light to the little cube on the floor as well so let's select the floor go to the “Small cube” section expand this cube and the instance on point, so now we need to duplicate this cube, this cube is actually the cube that we use to boolean the hole so let's add a transform node connect the cube to the transform node then add a joint geometry put it after the boolean node then connect the transform node to the Join Geometry and then we can move the cube lower then duplicate this material assign node and put it after the transform node select emission okay next i want to add this light trail to the scene so to do it in the 3d viewport let's add a cylinder press r followed by x and type 90 to rotate in 90 degree then let's scale it smaller and longer go to shader editor add a new material move the cylinder higher drag the time indicator to the 0 let's put it here move it higher change the emission color to red color let's put 10 for the strength then add the voronoi texture connect it to the alpha change this to F2 and this one to Chebychev .... change the scale to 10 then add the color ramp drag the black color close to white then now...we start to see the effects okay now press numpad 7 to see the top view, select the light trail, press shift d followed by x to duplicate it press this button to make a single user copy then select both of them press ctrl j to join them together then go to modifier properties, add a mirror modifier, in the mirror object column use the eyedropper to select our main object by doing this we are actually choose the main object as the center point of the mirror, then change the axis to y press numpad 7 to see the top view again duplicate the light trail press R followed by Z type 90 degree to rotate it change the mirror axis to x-axis then move the light trail and put it at the center okay now we almost finished it so let's add a camera we can close this for now press ctrl alt numpad 0 to set current view as camera go to camera properties tab, change the focal length to 150 then press shift ~ and start to adjust the angle you want ok then i want to add some depth of field to the scene so let's add an empty cube and i want it to cover our main object press numpad 0 to go back to camera view select the camera go to the depth of field activate the depth of field in the focus object use the eyedropper to select the empty cube then change the f-stop to 0.1 maybe okay we almost finished it let's go to output properties choose where you want to output the artwork choose the format you want i'm going to leave it png go to render and render the animation okay then finally we done it! so if you like my video Please subscribe and see you in the next video Bye!