Be Unique. Be You.

Video Winner in The Rookies Awards 2020. Motion Graphics category and Winner on People Choice

LINK: The Rookies Discover’s article

LINK: The article in RENDEROUT! Magazine

LINK: The project in the California’s road

Software: SideFX Houdini, The Foundry Nuke, Adobe Audition, Adobe After Effects.

Render Engine: Redshift.

Art direction, idea, creation & Sound Design: David Inlines

How did I do?

Here, you can see how I did this project.

To create the story behind “Be Unique”, one of my Rookie Awards 2020 entry, I’ve focused on the way society works today. The famous saying “Learn a lot to get a good job without risking too much and you will live well” suggests that we should all follow the path already forged; to follow the crowd. In “Be Unique” I wanted to express that if you stand out from the crowd, you will always reach where you want. Be unique.

The terrain that you can see in the video moving, represents the daily issues that face society which makes us all the same. Notice that the movement starts after a moment, but in the beginning it is flat and then starts to deform eventually.


Here I wanted to express that when we are children everything goes well, the road is paved and flat, but when we grow up daily problems start; the terrain becomes unstable. Society has been represented with the little balls that move in the same direction along the path forged in the terrain. The balls that jump to a different beat, is different from others, has a different texture and follows a different path: they create new connections and challenges in order to arrive somewhere new.

I added these balls to represent those individuals who are more daring. In the end, these balls disappears among the “stars”, giving a sense that they have joined that particular daring and enterprising group society.

As for the sound, I was inspired by industrial sound, cold without humanity. When all the balls together move in the same direction, it’s almost like you can hear a voice that says “we are a flock” and when the ball stand up, there is another voice saying “Stand Up!”, ‘Be Unique!”

Terrain

The terrain creation is the union of two displacements. For the low-frequency displacement, I used the simple node “Mountain” with a variation time. For the detailed noise, and this is the more artistic concept on the video, is an Anti-Aliased noise displacement configured inside to the “attribute VOP”.

The Offset variation in Y is what gives the waves the slow flow movement and detail.

Artistically, I wanted to convey the many common problems of all humans. This slow-frequency displacement affects the high-frequency movement, which represents the individual problems that humans face. In metaphorical form, within society exists the common problems as well as the individual’s problems, that many times stem from the conflicts that arise from the “common”.

Point projection

Usually, when we put a “Scatter” node in animated geometry, the points change their position in every frame (like the Seed parameter has a $F expression). I wanted to try to keep every point always in the same position from the first frame to the last – every point representing the birth of the particles (and I also didn’t want to change position in every frame). VEX allows us to do this!

To achieve this simulation, we need to “Freeze” this geometry to get the points position information and the first frame of this geometry too. We need to add a “TimeShift” node and indicate, in this case, that we need frame number 1; this node will keep the same position as these points throughout time. We will set an “Attribute Wrangler” in the following way:

  • In the first input, we will connect points from “Scatter” node in frame 1.
  • In the second input, we will connect the geometry’s frame 1.
  • In the third input, we will connect the animated geometry.

VEX: First, define the “prim” variable as an integer which will be where we will save the information from the nearest primitive of each point, and the “UV” variable as a vector which will be the parametric position inside this primitive where each point is.

The functions we will use will be: xyzdist(geometry, origin, &prim, &uv): this function is reading the position of the points in the input “0”, the position’s points of the static geometry in the input “1” and returns the nearest primitive from the input “1” to each point to the points of input “0”, it also returns the position of the point inside this primitive (parametric position).

primuv(geometry, attribute_name, prim_num, uvw): with this function, we can interpolate a position with the primitive and the “UVs” it is reading. We send all this information to the points (from input 0) equaling the position of these points to the “primuv”, so the function recovers the position’s value and gives it to the points.

More or less, what we are doing is recovering the value of the position in the input 2 (animated geometry), from input 1 ( frame 1 of the geometry). With the function xyzdist() we catch the nearest geometry and the parametric position of the static geometry (input 1) and the points of the input 0 (scatter node) it “projects” to this primitive and this position, throughout the time.

At this stage in the artistic process I wanted to reflect on the human functioning by collectives. When the collective has a common imaginary idea, it runs well; there is an understanding between them and they advance in the same way. This we can see reflected in the religion, politics, culture, patriotic, economic doctrines, etc. The same idea can join and “drive” a lot of people in the same direction even if this idea may be wrong.

“Volume Gradient” technique

To do this effect I used the “Volume Gradient” technique. In the Volume Gradient, the voxels are vectors –  the direction it marks is from inside to outside, anything like the “normal” in a primitive. We will get this technique with a simple VDBs node setup.

  • The first node: “VDB from polygons” will create a surface.
  • The second node “VDB Analysis” will create the gradient.
  • The third node, one more “VDB Analysis” will normalize the gradient.

primuv(geometry, attribute_name, prim_num, uvw): with this function, we can interpolate a position with the primitive and the “UVs” it is reading. We send all this information to the points (from input 0) equaling the position of these points to the “primuv”, so the function recovers the position’s value and gives it to the points.

More or less, what we are doing is recovering the value of the position in the input 2 (animated geometry), from input 1 ( frame 1 of the geometry). With the function xyzdist() we catch the nearest geometry and the parametric position of the static geometry (input 1) and the points of the input 0 (scatter node) it “projects” to this primitive and this position, throughout the time.

At this stage in the artistic process I wanted to reflect on the human functioning by collectives. When the collective has a common imaginary idea, it runs well; there is an understanding between them and they advance in the same way. This we can see reflected in the religion, politics, culture, patriotic, economic doctrines, etc. The same idea can join and “drive” a lot of people in the same direction even if this idea may be wrong.

Preparation to emit particles

When we have the points projected throughout time, we need a random direction and a velocity, to make the concept of people traveling in the “same direction” possible, with the added feature that these particles would change through time in random form. For this, in an “Attribute VOP” I set up a “Scalar Product” which is varying through time getting a random direction in each second.

This Houdini technique allowed me to represent a static attraction – the “collective” will not veer from its path, it will not derail. I was hoping viewers would reflect on the current state of the world.

Particles

As I mentioned earlier, the particles would derive from the projected points on the animated geometry: never leaving the surface. The particles also followed the random direction and velocity setup.

The particle setup is easy:

The first node is the POP Source and the particles will be born from “all points” with a long life (50). I chose a high number for having different shots with a lot of particles.

Note the Pscale curve in the wrangle.

The second node is for modifying the scale; starting small, growing in time, and in the end, diminishing again. This was intentional, mirroring what happens in real life: we begin in a cell, grow, age, and die.

The third node POP VOP gives the particles a little bit of variation with a “Curl Noise”, reflecting those people who choose to change direction but not by much.

The fourth node POP VOP multiplies the surface information given by “VDB from polygons” node x gradient value given for the VDB analysis node. It then negates this value to get an inverted sign, allowing the outside surface particles to come back to the surface. The particles in the negative part of the Surface come back to the surface again. At this point we get what we want: The position in the particles is 0 with respect to the surface.

The sixth node is “POP interact” which ensures the particles don’t collide with each other.

The particles represent society: the sum of the terrain deformation, the direction, the velocity, and the “Volume Gradient” technique create a “flock of particles”, all moving in the same direction and velocity, until they all come together.

Sphere

The most important aspect of the sphere is the sense that neural connections are growing. For this, I used the “Growth system” technique. The setup is built for a “Scatter” node that will create the connection points of the Growth Geometry. It’s connected to the “Solver” node. Inside the Solver, I included the “Attribute Wrangler” with some VEX lines. Check out the following images to see the steps I’ve followed:

The stars that feature at the end of the piece are a simple setup: “Copy to points” with a “Jitter” node and a super simple Wrangler for random size.

The sixth node is “POP interact” which ensures the particles don’t collide with each other.

This lone sphere rising from the rest of the particles aspires to be unique: If you follow your own way and your heart, you will reach the stars.

If you look, the sphere is surrounded by stars which represent the “daring” people on our planet. In the “flock” there are some spheres with a different shader; more matte or more glossy. This is because the people are equals but we evolve differently.

The large sphere changes from the bottom up with the animated neural pathways that are shaded in both the matte and shiny materials representing something like “the good and bad”, “the difficulties and superations”, “Yin and Yang”.

The sphere changes because it is growing, learning, developing in ways only possible by standing up and reaching the stars, by allowing itself to be unique.

Lighting

Lighting can transmit sensations to the viewer, so I tried to give the scene an elegant touch. I searched for big close-up shots for transmitting “the smallness of society”. The lighting setup is composed of a Light Dome and a basic setup of three points which changed in each shot. The last light’s position was this:

Here I used a glossy grey shader and a darker colour to represent life’s ups and downs – when things are bad, life can feel dark. When we have solved a problem, we can see the light.

Render

This project was rendered with Redshift, a super-versatile engine, easy to use and very fast, along with Houdini which gives a very cool result and complements it very well.

I’ve used various offline engines throughout my professional life, but this is the best render engine that I’ve tested. In the past two years, I have been immersed in Real-Time engines like Unreal Engine but much more with our software “Jet Engine” developed with Gameloft Barcelona.

Composition

For the composition, I used The Foundry’s Nuke. I rendered various AOVs to edit it separately but the Houdini + redshift render is almost the same result.

The most emphasised part is the use of the nodes of the DOF to create “something little.” I also added some colour retouches to accentuate the elegance of the LookDev.

Sound

I searched for an industrial sound, cold and without feeling. My friend Nicolas Ojesto, a Musical Producer based in Madrid, gave me some concepts for using these sounds. When the particles are on the screen, we can hear “We Are a flock”, and at the end when the main sphere has reached the stars, we can hear “Stand Up”.

Final

All this might sound complex, bringing together all the techniques and ideas in a software like Houdini, but, in the end, I see it as “drawing” an idea with software.

A little personal advice: In Houdini, your only limit is your imagination.

Why Houdini

I chose Houdini for several reasons. One of them is because it is my main tool, it’s the software I feel most comfortable with and allows me to do everything I want.

The “Procedural World” is the most versatile form to work in 3d, it doesn’t destroy the geometry and the changes at any level are faster (very very fast), and we are able to test each step of the project to a low level (debugging node by node). The the information on the SideFX website, along with forums, websites, and the community, allows you to easily pick up the techniques to help you create pieces like I have above.

For the people who start in this awesome world of 3d from no experience using software, I recommend Houdini as I would classify it as a “Low-Level Software”: it is able to deal with everything that you throw at it. Also, it has a Composition Context (COPs: Compositing Operators) which allows you to create, manipulate, filter, and compose image data – Awesome! There is also the added benefit of  accessing Substance Designer inside with the external plugin COPstance (the unique plugin inside my Houdini).

As for creating fluids, Houdini doesn’t need plugins like other software does. For example, in other software I needed a plugin or Realflow. To create explosions I used FumeFX. To calculate Rigid Bodies I used to PullDownit, etc.

Houdini is definitely not limited to creating FX work, and it isn’t that hard to learn.  The trick is easy: consistency and learning, not only in school. At school you only will learn to know the software and you will see it deeply, but you will have to learn to use and focus it on what you want you want to achieve.

Learning Houdini can be compared to a tree. I always say that in school you learn the “Trunk part”, the software and the theory. I would suggest that while you are studying you should practice and do your own projects in non-teaching hours, then, when you finish school, I always advise to take short courses online (there are a million) or in-person to get advanced knowledge about VEX, advanced procedural modeling (Hard-surface, for example), and many others specialties to build these necessary “Branches” of the knowledge.

After all this, you will have a “Tree” of deep knowledge in Houdini: you just have to keep practicing and keep doing beautiful projects, without limits in this world of 3d and you will get a job in the companies that you have dreamed of…why not?

I use Houdini every day for procedural (and non-procedural) modeling, particle simulations, the FX before mentioned, for developing ideas and fast 3d sketches, for Motion Graphics, and to do procedural modeling for a project for architects. The perfect pair is Houdini + RealTime Engine plus their other commercial softwares.

Using GameDEV tools that SideFX offers us, we in Gameloft Barcelona connect Houdini with our own software: Jet Engine. This is very powerful.

I’ll say it again: Never stop learning. I recommend you follow artists of any scope and try “to do exercises” to create their artwork with Houdini. It is a very powerful practice for learning it. For example, create a Van Gogh Style picture or simply, imitate nature and try to get the hyperrealism and give it your magic touch.

I would like thank Miguel Angel Arribas for the personal and professional help in his Patreon (stupdbrain.net) and Animum school too. The lectures of David Plaza help you to create award-winning projects and deeply learn Houdini. A special mention to Gameloft Barcelona, many thanks for the opportunities and career advancement that it offers us day by day.

You can find the Spanish version of this article in the Renderout! Magazine.

Be unique in sites:

 

Be Unique in Maxon’s website: LINK

—————————

In California’s roads