Houdini Ocean Tools Quickstart | Worldwide HUG | Montréal

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
[Music] all right let's get started on the ocean tools overview we're going to look at the ocean's toolbar in houdini we will be examining the small ocean the large ocean the guided ocean layer we're going to skip the wave tank and the beach tank those are more specialized tools we're also going to look at the flat tank and the ocean flat tank the small ocean the small ocean uses the ocean spectrum this is a way to describe an ocean without doing a simulation open oceans would be really hard to describe as a fluid sim as the number of voxels would be just huge as you can imagine in the trillions i'm sure depending on the size of the ocean the ocean spectrum models the effect of constant wind and tidal pull on ocean waves over time it's based on the latest research in oceans and by actual on-the-ground observation of real oceans it's an algorithm that takes arguments in other words you say about one frame that describes your simulation and then it's solved at the current time step it's pre-visible in houdini as a displacement on a grid but the actual final geometry is rendered as a displacement usually that geometry is a flat grid and the ocean shader supplies the correct displacement at render time you can combine multiple ocean spectrums to get different effects and you can add mass to mimic calm and choppy waters the areas often seen in large bodies of water like you see in this image here where we have the still water close to the camera and then we have this choppier water and various patches of different frequencies of water so what is an ocean spectrum well it's important to note that water does not move waves move if you look at a large ocean it shows energy traveling through a medium the medium obviously is water if you look at these ropes here you see that the medium is rope and of course the ropes are moving up and down but they're not moving from left to right you know the same part of the rope is always in the same position in x in this image it's just moving up and down and it's the same thing with water there is a little bit of transportation of the water as it's pushed around by the waves but for the large part the water is just moving up and down multiple waves combine to form an ocean surface if you take a low frequency sine wave and then a higher frequency sine wave and a higher frequency sine wave and a higher frequency sine wave and you offset them in different phases frequencies and amplitudes you will get an ocean surface phase frequency and amplitude define the elementary waves and this was first modeled by jerry tessendorf there's a famous paper that he did that you can still look up online and it was first used in cg for titanic in 1997 which was the first time we we saw a photorealistic cg generated large ocean in a film so the next tool on the toolbar is the large ocean tool this uses the ocean spectrum too it's used not surprisingly for large ocean surfaces where tiling artifacts would be noticeable but it uses wave instancing to remove the visibility of these tiling artifacts and we're going to go over that in a few minutes next we're going to go to the flat tank we're going to come back to the guided ocean layer in a minute the flat tank is simply a flip fluid simulation it's used for hero splashes the ocean flat tank is similar to the flat tank but it adds the ocean spectrum waves at render time so in other words you will model your hero splash and then at render time you will add the high frequency ocean spectrum onto the render and through various masking techniques you can avoid adding waves from the spectrum onto your splash the last one we're going to cover today is the guided ocean layer which is the big enchilada it uses a flip fluid simulation it adds the ocean spectrum waves at render time it also uses the ocean spectrum to seed the flip simulation so you set up your ocean spectrum you you take the phase frequency and amplitude from that ocean spectrum and that's used to start your flip simulation this is particularly useful when you have large waves in the ocean integrating with objects so if you've got a wave that's about as big as the object that's interfacing with the ocean you probably need a guided ocean layer if it's a large object and it's a fairly calm ocean you probably don't notice the influence of the ocean itself on the large object splash so probably the ocean flat tank is enough and let's have john lynch the houdini developer briefly explain how the guided ocean layer works and so this is a setup that's really better for larger waves simulations where the dynamics of the ocean are really drive the simulation in a lot of ways the the interaction between the objects and the waves are kind of the primary part of the simulation um and the size of the waves tends to be bigger or at least as big as the objects we're dealing with uh so that's when you would use this versus something like the ocean flat tank more programmer art here i apologize but but so you get this sort of idea where you've got we've got a an ocean with an object in the middle and this area in the middle here is obviously simulated but the surrounding area that that matches up very well is is just uh render time displacement and the idea is that it's fairly tough to tell even with this kind of close-up static camera no secondary elements where the simulation domain is and where the where the rendered displacement is let's go ahead and start with a small ocean so i'll just click on the small ocean tool and wait a second for it to do its thing and let's see what it's added so we'll go to the object level and you can see i already have this environment light in here we've got an ocean surface and an ocean interior we're not going to really worry about the ocean interior this is just a way to create like a foggy interior to your ocean so that doesn't look completely transparent so we're just going to delete that for now and we'll we won't deal with that in this tutorial go into the ocean surface and there are all these notes here so let's just tidy this up a bit this stuff here is the ocean foam we're not going to be dealing with the ocean foam in this tutorial so i'm going to delete that as well over here we have a grid this is the thing that is actually rendered we'll come back to that in a second here we have the preview grid emerge so we can merge in the phone if we want we're not going to like say we're not dealing with that so i'm going to delete that here we have another merge where we can merge in multiple ocean spectra and we're not doing that either so i'll delete it so we really get down to this very simple network of nodes here let's take a look at what we have here here we have a preview grid and as i said this is just for for preview purposes i'm going to turn on the headlight here there we go so we can see what's happening a little bit better again this grid is not the thing that is actually rendered if you look at your network of nodes here you can see that the actual thing that's rendered is this flat grid here there's no isoparms in here at all the mantra will take care of dicing this up into the required number of micro polygons at render time but you don't really need any amount of detail on the thing that's actually rendered this is the display soft but this is what is actually going to be rendered as i said this is just for preview purposes it's actually not used for anything except that so really you don't even need this but of course you probably would like an idea of what your ocean looks like before you you go ahead and start rendering it the ocean spectrum we'll just quickly go over these parameters here grade size is the size of the ocean center obviously where it's centered the depth is the depth of the ocean in meters most of the stuff you probably won't change for for most oceans gravity etc etc the seed is just different random seed obviously time offset and time scale are things you probably won't end up doing too many changes to here in the wind tab that's something you will definitely be playing around with the direction obviously is the direction that the wind is traveling in so we'll just leave this one alone for now the speed if you turn down the speed of the wind the ocean becomes basically a mirror which is you know if you're ever on a calm link in the morning and there's no wind at all it is basically a mirror so that's what's happening there as we increase the wind speed you can see we get these really large low frequency waves you can see this is what happens in the real world when you've got a very windy ocean you get these big giant waves going through it the directional bias you'll notice some of these waves they're mostly aligned along the the wind direction but if we change that we could make this behavior a lot more random so the waves are kind of going all over the place and they're not really aligned with the wind direction but if we turn that up we can make it more so now they're really aligned with the wind direction and we as we turn it down they become less and less aligned with the wind direction so let's turn that way up and over here the directional movement most of the waves are traveling forward but there's also some ways to reflect and travel backwards so we can change that so that we get a lot of waves traveling forward and backwards or we get the waves just traveling in the direction of the wind the chop adds choppiness to the water the amplitude normally you leave this stuff alone the only time you would play with it maybe is the scale if you look at your ocean you say well i'm really happy with the way it's behaving but i just want you know the waves in general to be bigger you would turn that up you got to be careful this because it starts to look pretty fake pretty quickly uh wave instancing we're going to get into that in a bit here's the mask so this mask will allow you to add those flat calm areas that i was telling you about and right now we do have a mask on here this is quite a small ocean so its influence is not really apparent we'll have a look at that again when we look at the large ocean so let's say that you're you're kind of happy with the way this is looking the most important thing here is that you save out your spectra okay so i'm just going to go ahead and save it to disk and you notice that took almost no time whatsoever that's because the spectra is just a single frame the only time you need to save out more than one frame of your spectra is if you've animated something in here normally you don't animate these things unless you want your ocean maybe to get windier over time or you want the waves to increase in size over time then you might animate it in which case you need to save out a sequence of frames but if that hasn't happened if you don't have any animation here you only need to save out one frame so again the reason for that is the ocean is described by the phase frequency and amplitude and passes those things on to the program which returns an ocean surface and if you look here in the geometry spreadsheet there's the amplitude here's your offset p scale et cetera et cetera so everything you see in here are the attributes that are passed on as arguments to the program which returns the ocean surface remember i told you this is what actually renders let's display the render grid let's add a camera okay and let's go to the render view and just render this so while that's doing that let's take a look at the material network so here in the material network you can see the ocean surface and here's the key is this spectrum geometry you see here if you ever render your ocean and nothing shows up it's because probably you have not saved out your spectrum geometry so this geometry is also read by the shader to give you the fully realized ocean surface that you see in the ocean preview over here as a low-res version so now you can see all the high-res detail in this ocean let's look at a few other features of the ocean spectrum saw remember i told you earlier that at some point we're going to take this ocean spectrum and we're going to feed it into our flip solver so that we could seed our flip simulation with the ocean simulation so that later when we combine the flip simulation with the ocean spectrum they're going to look integrated the way we do that is we take our ocean spectrum and we're going to filter out these low frequency waves so if i go here to the amplitude tab of the ocean spectrum and i click on filter above resolution you can see that as i go up and down i'm filtering out the higher frequency waves and i'm just keeping the low frequency waves so this is what will pass on to the flip simulation now similarly you can do the other other way around you can filter out the low frequency waves and just keep the high frequency waves the other thing i mentioned is you can combine multiple ocean spectra so i'm going to make a copy of that one and i'm going to put down a merge here and we'll take a look so now because these are exactly the same you can see all that it's doing is doubling the amplitude of our simulation but if we were to change these things for example i'll turn down my wind speed and now we're combining the two together so this is a way that you could have a calm area and then you can have a choppy area somewhere else with a completely different behavior very easily just by combining multiple spectra of course the other way to do this calm choppy thing is with the the masks which we will again talk about later so let's talk a little bit about wave instancing which is going to be used when we look at the large ocean so if i put down an ad soft which simply adds a single point so i go here and add a single point of the origin and if you put your mouse over the inputs on the ocean spectrum stop you can see wave instancing points there and mask input here so i'm going to go ahead and add a single point which of course is right there and you can see what it's doing to the ocean it's basically acting as a coffee salt right it's copying a wave to that point if you go to the ocean spectrum here you can see that we can change the radius of that we could rotate these around we could change the amplitude offset etc etc so if we add more points we're going to get more of these let's go ahead and scatter some points on this and oops so we'll just plug that in like that and i'll just scatter a lot less points and let's plug that in there so now you can see this is where we scattered the points and we're getting these waves uh instanced on here so imagine that you've got a giant ocean let's take this ocean here and the ocean is so big that we can see that that there are little tiles and you can see these tiling artifacts so i'm going to merge these two together and i'm going to make sure that i disconnect the instancing from the second one so if i've only got the second one in there we've got this but if i merge the two together we're now going to get the effect of these scattered waves combined with the existing ocean so this is the way we can hide the tiling artifacts just by adding these waves randomly around the surface the other thing that's worth noting is if you look at the ocean spectrum you can see that we've got these controls for rotation radius amplitude and offset these can also be overwritten with geometry attributes so let's just go ahead and do that i'm going to put down a point or angle or an attribute wrangle here and we're going to give this a new amplitude so i'm going to say f at amplitude equals 10. okay so nothing happens we have to turn off this amplitude here because that's overriding our point attribute and you can see now we've got this outrageous amount of amplitude on those waves so let's just turn that down to something more reasonable okay so in this way you can control the wave instancing through point attributes okay i've added the large ocean to this scene if we go inside the node that's added the ocean surface we can see something looks quite familiar i'm going to get rid of the ocean foam because we're not going to be doing the ocean foam over here we have our preview grid just as before and we have our render grid up here now we've plugged in a scatter because we're going to be doing some wave instancing on the grid that's rendered and here we've split so we've added 2 000 points here and all we're doing here is splitting uh half the points into this side and half the points into that side see a middle click here see there's a thousand points there and a thousand points there now you notice that when you look at the preview in here we don't really see much of an ocean surface that's because we're so far away from it this ocean is now super big it is 8 000 meters so eight kilometers wide so we don't really see those individual waves here you can actually see the effect of those waves if you just go crazy with one of these scales and you can see those are the ocean waves there but of course that looks ridiculous because we're tens of kilometers away from the surface right now okay so what's happening here we've added half the points we're doing wave instancing here and half the points we're doing wave instance in here so if we were to just plug this into here and again we're just going to use that trick of increasing the amplitude and you can see that our grid is scattered with waves and over here if we plug this one in you can see that this grid is scattered with waves in a different position and then as we said we can combine these two together and we get an untiled looking simulation we look over here at the render view this render here i've turned on the masking so that we can get some calm areas in here and in this render the masking is off so adding this masking really helps to improve the look of a large ocean you know by mimicking the calm areas that you see maybe i went a bit overboard because it is quite flat in some areas but you get the picture so let's have a look at what this would look like if we weren't using wave instancing so what i'm going to do is i'm going to plug this ocean spectrum in alone i'm going to take away the wave instancing and i'm going to make sure that i save out my spectra so i press save to disk and now i've got the spectra saved out without the wave instancing and to spare you the excitement waiting for the render i've done it beforehand and you can see this is now what our ocean looks like you can see the ocean is tiling because it's repeating all the way to infinity it looks terrible looks like it's 1994 all over again so this is really why we we have to use wave instancing on these super large oceans okay let's have a look at the rest of the tools so we're going to look at the flat tank first hit the flat tank button hit enter and enter and it puts down a few nodes so let's go to the object level let's get rid of the fluid interior we know we don't want to deal with that right now so we've got the flat tank initial and the flat tank fluid so the flat tank initial just sets up the initial conditions for our flip simulation we're going to turn off the merge collisions because there are no collisions right now wave tank this is a defined region where we're going to do something so in a minute i'm going to show you i took a little box and i made it splash into this wave tank what happens next is we separate the initial particles which are here if you middle click we see that we've got a 115 000 particles and we've got a surface volume so this also gives us a surface volume as a separate output which is what we need for the water line when we do a water line simulation this will prevent the particles from escaping from our box so we want this to look like an infinite surface once they go beyond this point they shouldn't pour out the side of the box once we've got that set up we then run our simulation and here we're bringing in our flat tank we're doing a flip solver and that's pretty much it now nothing's going to happen in this because we don't have any collisions or anything exciting happening and in a minute i'll show you how we we're going to do that and the flat tank fluid just imports the fluid compresses it we save out the compressed cache we then surface it and finally we save out the surfaced cache so how do we combine a flip simulation with a spectrum i'm going to do a quick review of how that is done so over here i've got a simple cube that's going to be coming down and splashing into our ocean let's just assume that we've done our flip simulation we've got our cube going into our tank which is going to be that thing and we've saved out our our cache and this is what it looks like when it's saved out if you put in a convert oops just put in a convert stop can't type today there we go convert so that's approximately what our simulation looks like the particle fluid surface has an option in the regions tab if we use a bounding box we can then extend this out as as far as we want so if i display the particle fluid surface it's now going to surface this simulation but it's also going to create a great big grid that extends as far out as we want it to so the splashes from the collider are coming in causing these giant waves but of course the waves that are on the rest of the ocean we're going to get them from the spectrum okay so what we've got here is we're taking our initial simulation and then we just extrude it out in all these directions because remember this just needs to be a flat plane and we're going to be putting our spectrum on top of it so how did that rbd convert constraints again and that shouldn't be there okay so there's our particle fluid surface so you can see here that we can extend the distance that we extrude this as far as we want and we can add these divisions but these divisions aren't really necessary because again it can just be a simple polygonal grid with no isoparms whatsoever and it will work just fine so remember what's going to happen at render time is we're going to add the displacements from the spectrum on top of it and it's going to look like an ocean now one thing though we don't want to add the displacements on top of these displacements because that's going to look weird so what we do is we mask out this area here we only add the high frequency displacements to this and the low frequency displacements are masked out let's see that in action we're going to go to the ocean flat tank and hit enter enter wait a few seconds and as before we've got something that looks very similar we've got our flat tank initial we've got our flat tank fluid we've got our flat tank interior so we're going to get rid of that and we got our flat tank extended and there's our dot network okay so the flat tank initial looks a lot like what we saw before we can just delete these we've got our wave tank here we've got our and we're we're now splitting out our particles from our volumes okay inside the dot network as before nothing different there flat tank fluid here's where we're saving out that fluid simulation and finally here's the flat tank fluid extended and this is where we're taking we'll just tidy this up a little bit okay we're bringing in our cached simulation and then we're doing the extension that i showed you here right so we're bringing in our cache simulation we're doing the extension and we're going to render this out now all this stuff over here this is what's going to sort out the spectrum for us this looks pretty daunting when you look at this um but what's happening here is we've got our we've got our fluid it goes into this particle fluid mask and the idea here is that we want to take well actually let's look at my finished one it'll be a bit easier okay we've got our simulation let me go to here view there we go we've got our simulation we've got our spectrum here and we want to use a mask this is what it looks like with the mask right so this is where we're going to use the low frequency waves in our final render and over here is a high frequency mass this doesn't look like much when we look at it it's going to be a big box but we're bringing in our high frequency waves on top of the whole thing merging those two things together we need to save out the mass for every frame so that's why this is a sequence of frames you can see 1 to 240 and this is a single frame then we merge them together and goes into the ocean evaluate again what's happening in the shader of course if we go here to the displacement here we now have the spectrum geometry and the mask geometry so it's really important that these are saved out the spectrum is one frame unless you've animated something in the spectrum and the masks are a sequence of frames of course because this mask changes depending on what's happening with the splash and that's it really at render time it's just this sort of flat grid with our low frequency big splashes waves added on top of it and if we're looking through this camera this is going to look a bit weird if you see this kind of corner here and you know you're probably wondering well how can i make this look like an ocean that goes all the way to the horizon well there's this node called the circle from edges you can use that so we just drop one of those down here and what it's going to do is put a big circle around here so let's just zoom out a little bit and we can just click on the radius here and we'll make this as big as we want and now if you look through the camera it's hard to tell that that is not a flat horizon if you make it big enough okay so i know i went through that really quickly so let's actually you know do a simulation together we've talked about the ocean flat tank we're actually going to use the guided ocean layer instead and the reason we're going to do that is because the ocean flat tank is very similar to the guided ocean layer the difference again is that we're actually going to feed the initial spectrum into the guided ocean layer so that we get our big waves so they will interact with our spinning dude here we want the the waves that are in the ocean to interact also with the waves that are generated by this thing that hits the surface okay so let's go ahead and click on the guided ocean layer tool enter and enter and wait a second we'll go up to the object level and we've got this mess of nodes here so let's just move all this stuff out of the way so these are the things that were here already let's get rid of the interior just to make things a little bit clearer here is our guided ocean layer initial so this is where we're going to set up this wave tank here okay i'll turn that off for a second this is our initial wave tank this is where we take the results of the simulation and we extend it oh and this is where of course we import the fluid from the simulation and this is where the simulation is done so in our collider we've got a box and it's just sitting there and what i've done is i've done a vdb from polygons so then we have this bad boy and we're calling this uh collide okay and then we're transforming it so that it moves through the scene and the reason i'm transforming it after we do the vdb from polygons is so that we don't have to calculate the vdb again every time so we've got a vdb out and we've got a reference copy where it's doing exactly the same thing with the geometry and that's our geometry out over here we have our autodop network let's put this into manual mode for a second go in there and hit layout so here's our flip fluid object here is our guiding ocean volume we'll have to talk about this in a second this is what's going to bring in the initial wave motion from the the spectrum for us let's add our collision so we're going to put down a static object and we're going to plug it in over here and shift r okay so this will call this collider and we want to get this thing here so this is our colliders let's just copy that oops what did i do accidentally deleted something there we go copy that okay we'll go back inside we'll say that this is our sot path object collider out use deforming geometry in the collisions tab we're going to change it to use volume collisions we're going to say volume sample and then we're going to point it to the vdb here so i'm just pasting the same thing and changing to the vdb so up here we've got the soft path to our polygonal geometry we don't need the object path because it's not deformed at the object level or transformed at the object level and over here object collider vdb out is the volume over here we have the guided ocean volume so if we go into one of these objects we can again get rid of these collisions let's bring this up over here so here we have our ocean spectrum we'll just turn this back on to auto update so this is what we want our ocean to look like this is a pretty wavy ocean actually it's a bit out of control maybe we should make that a little bit turn the amplitude down okay i'm gonna make that about three all right so there we've got our ocean spectrum so we want actually this movement to come into the flip simulation so that those things can interact with each other so there's a guided ocean there's our ocean spectrum and then we feed that into the wave tank you can see the first input in the wave tank is an ocean spectrum so if we look at that wave tank now it's actually got the movement from the ocean in it okay so that we should file cache that out because that will be enough okay so that's file cache to disk and here we have the ocean surface now these aren't going to look like anything because these are volume so there's a surface there's the velocity there's the sink and there is the guiding surface so if you want to know what these things do it's best to look at john lynch's master class he goes into that in quite a bit of detail but if you want to see what these things look like there's a lot of different ways of doing it but if you put down a primitive sock for example you can just go here and you can turn that on and then the volumes you can turn on the visualization and we could look at this as an iso surface for example so there's that surface there okay so we've now cashed out our wave tank and these are the initial conditions of our wave tank so now if we go back in here to this guided ocean volume just put that back onto manual mode for a second okay surface velocity and sync are being used in the guided ocean volume and they're pumped into the flip solver okay so i'm going to save out this simulation and we'll come back in a second when that's done i cache those files to disk now and the compressed ocean is going to look like this so it doesn't look like much until you either convert it or you surface it so here i've also cached out the surface and these nodes are already in here so you just have to catch them out and if i press play you can see that this is the effect that we've got so we've got my little cube interacting with the water but we also have the water interacting with the cube so there's the surface cache and there's a surface preview we're going to need to integrate this into our entire ocean so how do we do that okay let's go into our guided ocean layer fluid extended alright so the first thing we're going to do is reorganize this a little bit we will bring the import the cache fluid over here we're getting that from the guided ocean fluid compressed cache so that is here this of course is doing what i explained earlier if we use the regions and we turn on use bounding box we can then extend this to well as far as we want i'll make the extrude distance let's say 200 okay and let's look through the camera and we can still maybe see that this is not to the horizon so we're going to put down one of those circle from edges node put that in there and we'll make sure that it's big enough i'll turn on the radius and just crank that up there we go and now it looks like it's going to the horizon let's just see what this looks like okay so obviously it's a very low res sim so it it's going to look a bit weird uh but you'll notice that we've got these waves here which came from the ocean spectrum right these big waves so what we don't want to do is take our ocean spectrum and add those waves those low frequency waves on again because these waves will be twice as big if we do that so what we want to do is say where we've got this simulation our flip simulation here we want to you know keep that but we want to mask out the low frequency waves there in the spectrum we want to add the high frequency waves on top of it and we want to have the high frequency and low frequency waves everywhere else so that's what this is all doing so here we're importing the spectrum over here we're taking this simulation and we're masking it so if we look here well that's our high frequency mass that's not going to look like much let's look at our low frequency mask this is the mask here so wherever we've got our flip simulation we are going to make sure that when we go to render it we don't add these low frequency waves back in as a displacement however we do want the high frequency waves to be everywhere and that's what this mask is for so we're merging the spectras together and then we're baking them out so this one here is going to be the ocean spectrum and this one here is going to be our masks okay so if you middle click on these you can see this phase frequency amplitude and this one here is oops and this one here are the the masks we merge them together for this spectra again it's just a single frame and this one here is the entire range because of course this mask changes over time so i'm going to just pause it while i save those out okay so i've saved out those masks and of course you can see if we go to the material that we're using the masks here and the spectrum okay so the ocean evaluate shows us the planet extended simulation without the ocean spectrum added back in and this shows it with the ocean spectrum added back in now of course the thing that's actually going to render is over here so let's just render that and see how it looks and so this is what it will look like when it's rendered with our collision object in red and our terrible super super low res flip fluid sim included i know this is actually quite complex and especially when you look inside here and you see well we've got a lot of red flags because i've only simulated the 50 frames but if you tear this apart and examine these nodes one by one it starts to make a little bit more sense so again here we're bringing in our imported flip fluid simulation here we are surfacing it with extending the regions all the way out to the horizon let's just pause that and take a look at it right so we're just extending our regions out to the horizon here with this particle fluid surface and the circle from edges we now have our hero splash with a flat grid over here using these two masks where we're isolating the high and low frequencies and we're saving out our ocean spectrum and our max over here and then of course when we go to render the shaders using the spectrum and the masks to apply a displacement shader to this whole thing and if we come back here you'll notice that we've filtered out the low frequency the low frequency big waves here and we've replaced them with the waves that are introduced in the flip simulation but we've added the high frequency waves back on to everything all right so again i really strongly suggest you watch john lynch's master class now that you've got a basic overview of this and you'll have a much greater understanding of what's going on i'd like to thank you for listening and if you have any questions please shoot me an email shawn lostboysstudios.com if you're interested in attending the school please visit our webpage for more information thank you and i look forward to talking to you in the chat if you've got any questions
Info
Channel: Houdini
Views: 11,659
Rating: 4.9322033 out of 5
Keywords:
Id: vi0WIWHLBqY
Channel Id: undefined
Length: 37min 44sec (2264 seconds)
Published: Tue Dec 01 2020
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.