Touch of Colour | Jakub Spacek | FMX HIVE 2022

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
[Music] uh some of you may know my work my name is jacob oh that was a good transition um and throughout my work i'm focusing on design in visual effects or we can call it the niche niche that i enjoy the most is abstract design uh with regards to simulation techniques and so i'm excited to be here and share some of my work and so definitely thank you side effects and i want to give a big shout out to fiona wong which introduced me about this project and she was a great help throughout the process and um a touch of color let me just show you this i haven't noticed that it's not playing there we go um this is some of the some of my work and the project touch of color that i'll be talking about was created as a title sequence for upcoming houdini channel houdini connect and throughout this presentation i will guide you through the process and the whole story of how such a project essentially comes to be my background is motion design so it might be less a large scale visual effects houses sort of approach but i try to design it in a way that people that will that want to get into this sort of abstract design and will work with the file the file will be eventually available as well we'll sort of have a clear understanding how to approach the principles behind working with liquids specifically liquids in this way so this is what it's going to be can we get a sound sorry [Music] i'll let it play one more time [Music] that's one more time isn't it enough [Music] [Music] so i'm going to guide you through the process in houdini and also show you some references and r d's within the look dev so uh initial step for me was to put together these sort of feelers it's essentially mood board or whatever you want references and i was just wiping in with things that i like these are some of my uh previous r d project and personal projects some of it was from commercial r d's as well and i really just started focusing on like uh finding the analogy of this like a connect element merging elements and and colors and sort of different techniques and i was also thinking about maybe something larger can be created from smaller elements and how it would work as a sort of sort of story or analogy uh i love infection systems so i was thinking oh yeah it would be cool to put it there somehow and play around with what it can do uh one other project that i did before with some different viscosities in liquids i was thinking it would be nice to use this element in in this project as well and uh this is from a previous work shmeld which i worked with my ex-colleague james lee and i wanted to sort of use some of the fidelity that we can get from textures onto the liquid simulation itself and uh here's another reference example of multi-phase um liquids where let's say the liquid simulation doesn't mix but they interact with themselves and affect their own behavior i started visiting some ideas about the material itself and how it could look maybe some sort of candle-like wax and i wanted to play with translucency as well and sort of subsurface scattering so at this stage all these ideas started to come together and uh i also did some sketches where i just wanted to test proof how the liquid would behave on the surface don't get distracted i like drawing but this was drawn with a mouse so it's a little bit of a edgy sketch okay so the first test that i did initial simulation just few tests was this concept proof of mixing colors on a shape it's very basic and i put together this storyboard um to sort of test myself if the if the analogy and and the timeline would work so i was evolving into this shape that's being affected by these colorful particles and gradually changing the color into the sort of hero moment of of this organic shape and i always knew i want to link it somehow with some analogy of like houdini branding but obviously not too obvious and um so so this idea started to happen it would be interesting that this hero shape has some behavior that's uh interesting and pleasing to look at so first thing i'm going to dive into is the surface operators that i use to create all the sources for my simulation and here very simply it's just a beautiful box i give it some uvs with ue unwrap and uv layout if you don't work with something too fancy you don't need anything else than some custom use they will be promoted to points eventually so it will get messy at some point so you can use i promoted the uvs from uh vertices to points at the end so the next step was to create this sort of collision object we all know this workflow and i knew that i want to get rid of some of the inside points to save simulation time so this collision object is offsetted and gives me uh essentially collision geometry and a vdb object that i will later on use in simulation as a collider uh so next thing i needed to do is to uh essentially give make it into a liquid so i use a flip source to turn it into particles and then i'm using the collision object to sort of kill the inside uh points of the simulation and this is sometimes it seems simple but i've seen many times people don't do this let's say tweaks to save simulation times because at this resolution it may not make sense but when you go high-res all those points inside can be tens of millions of points that would be simulating for no reason so it's a little a little bit of optimization that you want to do and i give it some custom attributes i knew i want to use this principle of multi-phase liquid so i have a density viscosity and temperature which will vary from the eventual sources that will be falling onto this object and i have some custom attributes as well which i'll talk about in a moment so then the next step was to take the uvs from the box and transfer it onto my voice points so i'm using qe transfer it's very simple and i'm just taking point attribute and transferring it to another point object sorry so here we have this custom edge attribute and the reason why i created it is uh let's say if you have a uv texture on a geometry even if you have the most perfect seams the moment you promote it onto point cloud or let's say point source like this you will end up with seams that will look ugly in your final render especially if you use textures for displacement and uh stuff like that so i wanted to create this mask that would give me control over the areas where the uvs can let's say glitch or behave in a way that would be not nice to essentially look at so i took the box turn it into convert it into splines and i just transferred this edge attribute onto the points and gave me this beautiful mask and next step the let's say the main driving force for those droplets that will be falling onto this uh box shape um needed to be versatile and animated and have all the properties for some interesting motion that i wanted to get out of the simulation so this is a essentially noise velocity but it's aligned to a surface and we have a volume node that gives me the resolution and sampling and vdb that gives me the sign distance field information that essentially put the noise in a respectful distance from the from the object and here you can see the setup how it works in volume warp so we can see that the curl noise is feeding in the sign distance field from the vdb and eventually i'm just exporting it as a velocity vector attribute and um yeah this is this is the result of the of the velocity field that makes everything move and next additional field that i created was this sort of attraction for this many way in houdini how you can create things and i implemented it into the setup so that you can sort of see a different approach how to create a velocity field so you can just rasterize your point cloud with attributes into a volume field essentially in dynamics you could create some simple pop attract and drive your particles with that but this gives you sort of another layer of control especially if you're going to be mixing two different velocity fields and finally the droplets so it's very simple i just have a sphere fill it with points and because it's sphere i can use polar projection in my uv project node and then i'm scattering it around the box and what i'm doing here is just i'm taking a scatter on a larger box and using a simple expression very handy expression i use it all the time which will give me a random momentum where this point will appear and with global seed i'm offsetting where it's appearing on the in space so i can change and iterate many different simulations with different results very easily and again i have these custom attributes and you can notice density is lower and the original shape has a higher density so when the droplets fall the liquid mixes it doesn't mix uh too much it makes just a little bit enough and you can play with these values depending on the resolution of your simulation or properties that you have as well and viscosity is also lower but the temperature here is very high and that's what will what will be driving this sort of melting vaccine feeling so one lesson that i want to leave you with here is cache your sources and the reason for it is that if you have for example the velocity field right here or the sourcing points depending on your resolution of the simulation it can get slow to read these sources into your simulation and eventually you'll end up with slowing down the whole process so look at your sources check which which are essentially playing slowly and cache them up front and here is a initial animatic from the very very first simulation i was doing uh at the time i was just dropping it into after effects and stretching it down and slowing it down as i needed and this is the thing with simulations like this if you start with some low resolution you might find moments that you like and think oh this is the angle that you want to keep but as you will ramp up your resolution you'll end up with completely different looks behavior and shape so you need to think about it everything will change even the speed of the simulation as you will progress and i'm just going to show you a few little look deaths that i was doing at this stage so we can see that at this moment the simulation has these like errors it's shooting out the velocity was very sharp on the corners of the box and i knew there's still a lot of stuff i needed to i needed to smooth out so i was playing with the values that i need for the final velocity and here it's sort of more composed i was getting good result and it was test proving that this this overall idea is working and with high resolution i was getting even some nice moments within the simulation the textures were working on it as well and i'll talk about it a bit more later on and obviously i took a camera and started chasing around some interesting shots and this is really for me if you're someone who works with simulations rendering lighting even though if it's a task that you have to do for a client i feel that's like a reward that i can essentially procrastinate with and just relax and just play around with the material so it was very nice to just see that the concept that i had in mind is coming together i played around with the material this the displacement was working as well and uh it was just about ramping up the resolution and behavior i was looking at some macros i do a lot of just ipr screenshots just to have loads of images i can take a look back at and i introduced some neutral background so the colors would be always the main sort of story in this animation and at this stage i knew that that everything's working so let's look at the dynamic so it's dynamic operators and flip simulation uh as probably most of you know it's fluids and particle simulations so we are working with points as well as voxel information that drives the behavior and interaction of those points so this is like a just basic setup and we bring everything together we have the flip solver collider and sourcing this initial shape and obviously you enable stuff like aging particles id attributes so you can do a lot of things in post with it but the main one i want to talk about is apply particle separation it's a very handy function to have enabled it will give you much better behavior of the particles and also the distribution of them and all the attributes that they carry will be evenly distributed the downside is that it it's going to take longer to simulate and at some cases you will end up with problems like this where those points are constantly trying to find the ideal separation and end up with something weirdly looking so i needed to find a hack to go around this because i didn't want this hero shape to have any deformation unless i drop those hot droplets on it so i dive into a sub solver and all of these droplets were carrying this mask attributes right so i was just transferring the attribute onto the simulation to give me this gradually spreading mask and then back on the dynamic level i created a lerp function that was essentially blending the initial position of the points with the let's say a position that had the applied particle separation within it and you can see it works so the box doesn't start shrinking unless those droplets are involved and at this stage i knew it works you know the shape motion velocity that you can see there is driving the the droplets everything is mixing uh as it should however the especially the color is not mixing between the liquids and the other attributes as well and because i know i want to work with uvs i want to be mixing everything together so another step that i wanted to do is achieve this mixing without mixing the white coming from the hero shape onto the points so all i did is kept the droplets i mixed the color and attributes like uvs or like ids or whatever between themselves and then affected the hero shape at the end so if i wouldn't do this step everything would start mixing and end up with some like a gray looking sort of moldy object so i needed to sort of tweak this bit a little bit and then i created this timer which is incoming time attribute at a certain time i just say hey there start cooling down or sort of decreasing its value and that sort of gave me the ability to try drive the velocity of that shape in a procedural way so every droplet that's coming in i'm just saying as you age just speed up uh with your velocity you can't go higher than velocity 10 and after the after certain time that i can change can be one second or three seconds you can have it anywhere in your controls in your scene i essentially hardwire an order to start slowing down and whatever you would change in your setup it would always respect these rules so it was good for me as i was doing different iterations and moments in different simulations and now the most important bit that drives this whole let's say unique motions so it's obviously the temperature and gas temperature update it's a great tool it was introduced somewhere around hoodie in a 15 if i'm not mistaken and it gives you the ability to just skip the whole process of melting and and doing these things in solver so it takes the incoming temperature value from whatever you're feeding it in and it has its presets of uh you know how how the radius of this of the effect you can map the temperature to viscosity so all these things can be used but you can still have your own attribute for melting and this sort of gives you much cleaner and elegant solution for for this approach uh so here you can use the you can see the whole setup and the last thing was this cooler so even though gas temperature update has its own sort of cooling mechanism um i wanted that at certain moment the whole simulation will just stop and sort of solidify and this is this sort of cooler decks function so here another little lesson that i'm going to give you start with the slice and what i mean by it don't start simulating your whole simulation until you test proof that all of your steps and things that you want to happen in your simulation work on a slice and you can save enormous amount of time with this so here what i did the i adjusted the collision object so the points are not escaping somewhere when i run the simulation and also within your dynamics you can scale down the bounding box of your let's say voxels within the flip solver so you'll end up with much faster simulating process and you can do a lot of iterations in short time and i've seen a lot of people in studios on projects that would like hand me over or show me that they're working on something and and i would try to convince them that they can just scale it down to a little slice until they're sure that it's gonna look good um so that's that's another one so and then the last step for this was post-processing so i take all the simulation bringing into another geometry node and essentially the most important part with liquids let's say is fluid compress obviously liquids can get very heavy and here we can see this was some frame 300 within the simulation i had 22 million points and fluid compress can make a massive difference um with the size of the cache that you have on your hard drive so it's almost a half essentially however it's a sort of packed geometry essentially so you need to tell it which attributes you want to keep and link your particle separation to your liquid simulation resolution and the last step that i wanted to do is i was doing very heavy simulation and now we're talking about single workstation you know 128 megabytes gigabytes of memory and some sort of uh threadripper it's not like a pipeline with distributed simming in a big vfx house so you want to simulate as least as you can and i knew that i want a nice slow animation so i simulated let's say 500 frames of assimilation and then i used retime to sort of slow it all down and you can you can even subdivide the interpolation of all the attributes with return so that was super handy and here you can see i'm using unpack to sort of open up the fluid compress cache and then i'm using retime and then i do just surface cache and surface cache there's no sort of set recipe for what are the best values you always want to sort of test what you need for your for your own project um and the last step was to promote normals to points so i can blur them and give the liquid this the sort of final touch and here we can see uh the final result of the simulation everything is slowed down there's no i don't know weird glitches or problems that i would have and i knew that like everything is inside so uh one little note again sorry for teaching you all the time uh essentials only and what i mean by that is just keep in your final cache that will be saved on your hard drives only the necessary attributes that you have and again i've seen before even like smoke uh simulations that people would be storing velocities or it would be even in a format of dot sim and it would have like terabytes of of space on a hard drive so keep what you really need and here aside from color and id which is like the obvious must i have the edge attribute h verticity you can see temperature and essentially the shape drops and the uv and i knew i can start playing around again with some fancy rendering and this is the animatic that was coming out at this stage i still wasn't happy about a few angles few cameras and i was looking for uh for more sort of final and composed rhythm so look def make it shine i always think it's good to use as many things that the simulation is offering to you so i started by just testing you know if all the materials and displacement are working on my liquid simulation so it doesn't necessarily look like a that it's a liquid or something that would be liquefied uh and then you can give like a lot of interesting properties by using textures and and you know displacement and similar and i really started just you know looking for the right values for the material and the shading and overall i wanted to the idea was that it needs to be like positive inviting sort of neutral uh yet sort of juicy and creative and i started implementing this idea of sort of this heat map emanating temperature from below the surface so again i had all those attributes i could drive it with like vorticity or temperature or even age so all those came together and gave me really handy setup for doing something that's like nice and pleasing to look at and again what's beautiful with simulations you don't need to follow any any with abstract simulations you don't need to follow any rules of a real world you can just put in whatever you find interesting and at this stage i was still experimenting with the infection setup you saw at the beginning i had this as a r d so i wanted this sort of orange wave spill over the um the whole shape eventually but it would be too orange what do you say so uh gradually i i was just toning it down a little bit and started visiting some color themes and and sort of a combination of shades that will that would work together and uh now i'm just gonna show you shot by shot how it sort of evolved into the final uh final stage so this shot was bothering me for a long time so i started implementing different camera angles and then i noticed in some angles you will be seeing these droplets being spawn so you know you just have to delete them and uh eventually everything came together fine i really was happy with this angle and now all of the animation i was trying to combine it and connect it with this sense of rotation so all the shots had this sort of connectivity uh with the next shot and the next shot and here are some of the previous iterations of the first hang first job and the next one this was really fun to play with in this stage i started to play around with the idea starting start to mixing in some metal materials and again something that we would normally see happening uh so it was a lot of fun to just search for the for the right sort of colors and materials and values and i had really i what i usually have as an issue is like finding the stop and deciding what will be the like the the one that i like the most or what what should it look like so um yeah and this was the final sort of sort of look and here are some of the previous iterations and you know sometimes using everything isn't always the best so uh you know the heat map didn't really work for me here and i was i was thinking it can evolve over the course of animation and shot three i really like this one because we can see three planes of the box and each motion is different so there was a lot of experimenting with this and um redshift that's something i didn't mention it's all rendered in redshift and it gave me a lot of good tools to play around and split the colors and sort of have a lot of control over the shader and here we can see some again previous version of the shot so i was playing around with the metallic moments and how it sort of missed emission of the temperature and in short four i had this little break and started to experiment with different color theme and eventually i sort of stick with my chewing gum mix and gradually again started to implement the metallic shader and this sort of heat map and comparing how these uh elements would work together in the extreme moments so um it's a it's a lot of sort of fun when everything works and you have your simulation done to just you know play around with the with the final stuff and here you can see with and without the uh sort of metallic shader and the last uh the next shot uh everything was working sort of out of the box so i was just looking for the right angle to sort of complement the animation so it would sort of finish into the next shot in the right way and this was the final moment with or and without the metallic material so um now i'm going to talk about a little bit about the sound design and it was done in collaboration with jonah stegenfeld he's a swedish swedish composer and we had a lot of fun uh with developing the sound design definitely check out this uh page and i put together just a few moments like i want to you know be able to hear what's happening in the simulation even though maybe in a real world we wouldn't necessarily hear how melting backs uh you know sounds like so it's about finding a balance of a sound that will be relatable for the simulation as opposed to just doing something that wouldn't sound right and jonas uh started testing some of his initial ideas and we started with some basic sound yes so jonas went for this sort of ambient um music and and surroundings and i was always pushing the idea of hearing the individual droplets and elements so he worked on a little bit more and started layering and adding more sort of sounds on top of it [Music] but even though it may seem enough i still wasn't happy and i was like let's try some really specific sounds that will sort of work with the motions where something goes over the edge or something speeds up or slows down so i ended up saying sending him a loads of asmr references from youtube which can be like three hour video of someone whispering into a microphone it's ridiculous where you can find so here's some of the funny examples it's surprising what you can find [Music] but that being said there is a lot of interesting references and jonas ended up recording some of his sound design the sound effects uh at home so i'm gonna play the final one more time and you can just listen if there's something similar [Music] and there we go so the last notion i want to keep you simplicity is the ultimate sophistication and the reason for it is that in houdini in general i found overly um you know complicated setups sometimes when i look at people's files and it's it's about like looking for the most elegant solution because if it's not elegant and it doesn't feel right it's not the best one and i know uh usually it all comes down to how much time do you have on a project so um yeah it's good to think about these things with how you organize your scene how you sort of plan for the project and yeah keep it simple so thank you so much sorry for all the technical problems i hope you enjoyed it and yeah thank you [Applause] [Music] [Applause] amazing work and presentation yucca thank you really awesome uh in case uh any of you don't know what a houdini connect is it's about a four or five minute video like a project profile on some work that's been done with houdini by artists in the community um and so uh this is the intro to our houdini connects now uh it replaced some work that was done by simon holmendall a few years ago we used that for many years because it was amazing and and uh it took us a long time to replace it with something uh equally good but jacob did a great job with that the the concept of houdini connects is to showcase what the artists are doing and as a series the interplay between side effects and the software and the artists and the projects and their clients or their work um you know blending together uh is really nicely represented by that uh by that work so nice thing um questions yeah anything hi great talk thank you really really beautiful stuff i have a question about the strain marks you are living whereas as the as all the fluid is moving these are very detailed and i would like to know if everything is driven by the drug at uvs or are you doing something um with the curvature in the say there so so uh as the as the sort of the droplet droplet drags by the velocity it distorts the uvs right and then when you apply texture to it uh it will respect this distortion as well so even if you would you could render this as a stone at the beginning and the stone would start melting uh so this would be something interesting for people to pick up the file play around with it and um yeah if if you do that let me know and i'll be happy too sure no that's awesome yeah thank you it's very handy to to to do on new liquids other questions yeah hello uh awesome stuff it's already said um in the beginning you mentioned multiphase fluids i recognize that you can do this with vellum fluids but is there also a way to do that with flip not not by checking some sort of parameter on the solver but this is more about the physical aspect of just using the right values for your densities and viscosities so the liquids wouldn't mix completely together uh yeah so so lower density will obviously stay above so you can think of it in this ways it's physically multiphase but not in terms of like the solar so you just prevent the emerging by the physical attributes yes so there's a force constantly pushing everything together but they never mix completely okay thanks another one yeah um why do you wake up the particles at the very beginning when the in instead of using the viscosity which is another way of doing it why have you choose to doing attacking the velocity directly um now you mean when they sort of spawn to sort of speed up uh that was just sort of give them this sort of punch or impact uh so they would maybe connect more uh you know aggressively into the material um yeah but i mean the particles from the cube itself yeah you are they are a stop oh yeah the particles at the very beginning and you uh make it stop using i see not not not the viscosity you can do a very hard viscosity cube and then lower down the viscosity until it gets fluid um but you haven't done it in that way i would like to know well that's the thing if you use apply particle separation what you saw in that example with the shrinking down that's what was happening still even with viscosity million uh without any forces so that that is sort of unfortunate result of sort of static simulation having this applied particle separation um and initially exactly i was thinking yeah i'll just keep adding viscosity and it's going to still stop but it didn't work okay answer my question perfectly thank you other questions yeah hi great work um can you maybe explain a bit more how you kind of got rid of the um uv seams with a mask attribute that's a that's a good point so essentially at the very end um i just took the mask and in redshift i used displacement blender and i essentially said in the area of the edge attribute i want the displacement to be let's say 0.0 or 0.001 let's say so you can sort of give it you could even disable it completely but this way you can control where it's going to be happening or not and without this mask attributes at the edges of the box it would be sort of like a you know wrinkly uv and and displacement so you don't want that um unfortunately that's that's what will happen always because if you transfer uvs from a geometry on a points there will be a seam somewhere at some point so you basically just toned down the displacement yeah yeah it's like a little cheat essentially okay great thanks any others well thank you very much yakub thank you so much yeah thanks guys
Info
Channel: Houdini
Views: 35,221
Rating: undefined out of 5
Keywords:
Id: Xw6i9gFtsgo
Channel Id: undefined
Length: 37min 40sec (2260 seconds)
Published: Tue May 17 2022
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.