Houdini 18.5 Keynote

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
[Music] welcome to the launch of houdini 18.5 so not much has changed since 18.0 except pretty much the entire world and we hope you're really doing well as well as you can in these crazy times i'm happy to say that it's side effects both the company and the team are both healthy and well on the business side what we're really missing is getting out and seeing you all face to face but what that's enabled us to do is focus on digital events like the worldwide hive the game dev hive and houdini user groups from around the world and so we've got dozens and dozens of amazing presentations by some of the world's top houdini artists from all over available on side effects.com today another area that we've been focusing on is learning material and so mid-level material is what we've been focusing on because we've heard from you that's an area that we needed to work on more we have lots of great foundational getting started guides and some amazing master classes by the r d team but you wanted us to focus on that mid-level production type of material and so you'll see lots of great new courses on character grooming world building destruction solaris lighting layout and look dev as well as shading and rendering in both karma as well as third party renderers like render man redshift arnold and any third-party renderer that is a usd hydra delegate at the end of this month we're hosting an 18.5 hive two days of learning with master classes from the developers tds and artists who worked on the 18.5 features on the software development side we really haven't skipped a beat and the r d team has been as busy as ever as you'll see today to walk us through some of those new features i'd like to welcome to the stage our vp of r d christian bargail and senior product designer scott keating thank you chris and welcome everyone to the release of houdini 18 5 which is a minor release in name only the past couple of years have seen the addition of some major new architectures to houdini like vellum like ptg like solaris and it's all happened very fast to you perhaps and to us as well now growing these foundations into rich environments takes time it takes production feedback from you guys and it takes steady focus from us which is why for 18.5 we've all hunkered down and put together an across-the-board set of enhancements for these three architectures and others as well as you will see very soon and while we did so we were very happy to see how many of you already adopted vellum and pdg and solaris in your workflows and and did things with them that we weren't even expecting so that's fantastic let's talk about some themes for houdini 18.5 at least two of them one big theme is about high level features and that's building whether it's houdini digital assets or or shelf tools or entire workflows with interactive viewport capabilities to help you not only accelerate your learning curve but also sometimes shield you from the underlying framework should you choose to not go there at all so whether you're building large-scale environments or lighting a huge scene or blowing up something big or clothing a character you should find a quicker entry point into houdini than ever before the second the second big theme uh is about performance and specifically interactive performance that's leveraging the gpu and everything else that we can find to give you more of that real time or let's call it near real-time experience in your creative work whether it's for dynamics or or anything else now the fact that houdini has a finely tuned architecture that speaks directly to large scales and and massive complexity should not and does not preclude it from giving you the the fast performance where it can as long as it continues to deliver value to you uh this is particularly true with dynamics where we have you know a lot of expertise and our goal there is to turn it into an everything tool if you will a tool that you use not just for physical simulation but interactively in other ways say modeling lighting maybe rigging an animation the edit stop that you may recall from last year's reveal of solaris was a prime example of that and we're continuing that and we want to do that in 1805 and beyond finally this release keeps with a recent tradition in houdini of releasing a major new tool set uh every year or at least once a year in houdini 18 5 we're particularly excited to announce that we are now tackling character character workflows in their in their entirety but not just as an added feature here and there as a big platform-wide way the name of that project is kin effects and that's a brand new foundation for everything to do with character and it's all built into socks so let's begin in the works for several years now kinfx is our new procedural foundation for rigging retargeting motion editing and more it is implemented exclusively in sops with some vops mixed in and key to it is the fact that joints enjoy entire case rigs are expressed as points and edges in fact as regular geometry this approach uh has several advantages and i should mention as well that motion as well is expressed as geometry with no more chops involved so this system has a number of advantages that scott will get into in a minute i'll mention just two of them first one is that riggers instantly gain access to all the modeling tool set in sops if you think about it by putting everything in sops a rigging becomes a set of modeling operations okay and the second advantage is that sops happen to be that environment in houdini that everyone goes into and has fun it's the easiest to understand the easiest to become productive with so these are two of the advantages i i wanted to bring up and the rest will come from scott now we refer to kin effects in houdini 18 5 as a foundation but we're not delivering just a bare bones architecture in fact in this release we bring you some sizeable rigging capabilities a tool set for retargeting and motion editing and also enhanced i o for mocap imports fbx and game engine exports and this is just the beginning we seek an effect as a continuum that will grow not just in the areas that i've mentioned but also has a destination which is as you might guess it's character animation in fact it is the entire character pipeline scott on to you knfx is our new procedural rigging retargeting and motion editing technology in houdini 18.5 and when i say technology i don't mean it's just sort of low level nodes for doing small utility things it's very functional and you'll see that in just a second but really just that it's going to lay the groundwork for future work for a full character animation rigging pipeline in future releases the key feature of kinfx is that it takes um rigging and character tools out of the object level and brings them into the geometry or sop level and there's a couple of reasons for this one is sort of technological we can have better performance in salts but it's also in some ways just um for the for the friendliness of the interface um users are familiar with sops and so they're familiar with doing the type of editing that you're going to want to do on characters using subs um but this will be a lot more clear when we start talking about you know some some specifics so let's just uh jump into some examples here so let's just start with uh rigging so here's like the most basic thing you can do here we are in solves we have an fbx character and you'll see this three input three output sort of node um the first stream is the geometry the second is the restaurant skeleton and the third is the animated there's no animation in this case so we're going to put down a rig pose node and suddenly you can see you know we've got access to the skeleton in sops we can move these joints around we can position them by dragging the the joints or by dragging on the links so in sops you know we're dealing with joints not bones the bones are more or less a visualization between the joints and of course this is not at all how an animator would want to work but again this is the groundwork for how an animator might interact with these types of tools in houdini so what is a soft break so here's a really good example where we're starting with an l system obviously not a character at all just a bunch of points connected by polylines but using the rig doctor we can initialize these to essentially become a rig a rig in houdini are really just points with transforms and names and suddenly you know you open up this world of possibility of manipulating geometry using tools that are you know really meant for character interactions but not exclusively including something like this this is the full body ik solver against happening directly in sops and what's happening here is that we're manipulating these sort of target joints and the solver is trying to pull the rest of the hierarchy toward it um we can do things like edit the weights on different parts of the the the rig or the skeleton and so now you can see when we pull the the limb the trunk doesn't bend as much and so this really opens up a lot of possibilities because even though these are you know theory character tools they're really no different than other nodes in sops meaning that they can interact with all the other tools it solves so here we're just using you know the race up a very old top in houdini to kind of push the branches of this tree around and so really the goal here is not so much just to take all the object level tools and bring them into sops just because people are more familiar there but it's more about bringing all of the sop tools into character it's really about bringing those two worlds as close together as possible to open up possibilities that just weren't really there before so not only do you have character tools you now have all of the full arsenal of geometry editing tools in sops to help you manipulate your characters i think this is a really amazing foundation for the tools to come okay so the first thing you're going to want to do obviously is have some animation we even saw one of the inputs there was for animated geometry so the first way to do that the simplest way is to do some retargeting from some motion capture so let's again take a look at a very simple example here we've got our demo character we'll take a look at his uh his underlying skeleton and then we've brought in this walk animation now these are different rigs you can see that um you know they don't have the same number of bones they're shaped slightly differently so we're going to use a tool called the rig match pose and basically all we want to do is more or less line up the joint angles and you know it would be better if this animation had a rest uh position like a t-pose but it's okay we can use this match pose to try and get these angles to line up obviously these characters are different sizes the skeletons are not the same size but we just want to get things in the ballpark we don't have to be that close but it'll allow our brake solver our full body ik solver to have an easier time of manipulating these the next thing we want to do is map these joints so right now they're kind of lined up but we want to say which joint is driving which so we'll just go ahead and use this interactive state to click and drag from one rig to the other one skeleton to the other to define you know which pieces of the rig align with which pieces of the other rig or the other skeleton you can see that we're mirroring this so as i'm drawing out one knee the other one is automatically assigned um and this is you know a very quick setup now the interesting thing is that if this was done um procedurally you actually could have a hero rig and a standard mocap rig and drive all this just by name attributes but the interactive state is nice for fast setups and so right away we've got the full body ik solver now using those goal positions to animate our skeleton our original skeleton you can see there's some issues with the shoulders kind of collapsed so let's go ahead and fix the clavicles basically by reconnecting them here just to give a little more information to the solver and let it do a little bit of a better job with those joints that we didn't assign and you can see that this is a sparse solving right we haven't actually included much of the spine but the solver is able to sort of walk through the hierarchy and still animate all of the joints along the way so okay we've got a character we've put some animation on there in just a handful of nodes and you can start to see now how we can build up these soft networks to do interesting more complex things than just grabbing a handle and moving it um and of course these these rigs don't have to be very close to each other at all so on the far right there we have the target rig this uh blue skeleton which is just some mocap animation then the the green is a very very different rig with these huge arms um retargeted and then the final character is actually an interesting hybrid um where the overall animation is coming from the underlying skeleton but the animation on the arms is actually being driven by the chainsaw which we talked about in the modeling section um or we will talk about in the modeling section and so you can really start to get this truly hybrid idea that a rig now is just geometry with a transform and positions changing and suddenly this is going to open up a lot of really interesting possibilities for the future and just to drive home the idea that the rigs do not have to really be very close together at all here are some paragon characters courtesy of epic games where we're driving them via the mocap but you can see these wildly different body types and body size being driven by this uh underlying motion capture data and giving you really nice clean results even on like again wildly different characters like this guy riding his robot lizard dinosaur really really interesting and really flexible and i think it really shows the power of this workshop so motion so obviously you know motion takes place over time and if you're familiar with subs you'll know that there really isn't an idea of time it solves everything sort of lives in its own um timeless space in a way um and typically if you want to deal with time you would introduce something like a chop network one of the older networks in houdini but we wanted to avoid that because chops is complex and it's a bit alienating for people to use um so it brought up the idea well how do we get time into salts if it sort of inherently is timeless and that brings us to this concept of a motion clip um so on the bottom there you just see our standard animation you know we've got a walk or a start walk a walk and a stop walk and we want to deal with these pieces over time so we can use a note called motion clip this is sort of a very interesting concept where basically the way we deal with time and salts is by turning it into geometry so we're actually taking space time and turning it into a piece of geometry that can be manipulated using the standard nodes in houdini so we'll do that for our start walk and our stop walk and we'll use this note called motion clip sequence um the nice thing is we can use a locomotion joint now to blend these two clips together so you can see the blue and the green being blended together uh over that period so now the start walk and the walk animation actually blend into each other and we can do this because we're really just looking at geometry placed in space and sort of world space and this gives us the ability to basically manipulate time by manipulating geometry so let's take this a little further now we'll actually create a sequence out of the walking animation so we get a few cycles of walks and then we'll just do the third thing for the third the same thing for our third animation uh and blend those together as well so again just grab the locomotion joint uh move it to the end and you can see that by using this joint we're able to place them correctly in space you know if we didn't do this they would all sit together on top of each other now you can see the three sequences lining up directly to the skeletons and the motion clips that are driving them this is an extremely powerful concept and it actually is the underlying technology for a lot of the geometry manipulation that you'll see uh moving forward here so here's the result of what we we just did you know not the greatest animation in the world there's some issues and you can see this foot sort of sliding on the ground as the character walks forward so let's take a look at how we can clean that up a bit um so here i've just brought in that that same animation you can see the foot sort of dragging and slipping this is just the result of our previous setup so let's see if we can fix that so first of all we'll go ahead and put down a stabilized joint node and what this is going to let you do is select some joints to stabilize in this case we'll just grab the ankles and you can see them turning red and that means they're pinned at a certain point and it's doing this by looking at the animation over time and figuring out when something stops and then starts moving again in this case just to get that other foot that's really sliding we're going to increase this now in a real setup you'd probably want to do you know a bit more finesse than this this is a bit of a brute force approach but you can see that red dot sticking uh keeping everything still so this actually isn't really doing the solve just yet it's identifying the positions it's moving the joints but we don't want to do this sort of brute force what we want to do is now do an actual solve on this to get the feet into the right position so again we'll use that full body ik solvent same solver that we use for the retargeting to solve just for the ankles in the waist and now all the animation comes through the feet are pinned but it's still believable other joints are allowed to move more freely it's not a rigid copying of animation which i think is really important it helps keep this really nice looking and of course with a little more work retargeting you know getting the hands in there you can get some really nice walk cycle feet locking to the ground giving a really nice believable result um and that includes terrain adaptation so um the same sort of set of techniques take that exact same animation and modify the entire skeleton to sort of have the character lean forward lift their feet as they walk up the hill so they don't get sort of foot drag as the feet are projected to the surface you can see the lean um and all underlying all this is that same idea of using basically a motion clip modifying the data and then putting it back into the animation so you can probably start to see now the possibilities that really open up when you start thinking about you know time as space which i guess is a funny concept but i think you can see where we're going with it um here's just another example of two clips being blended together this sort of drop kick and this running animation and more or less we do exactly the same thing we take these two motion clips um we bring them together using a clip sequence um target the locomotion joint to make sure that they line up in space and then immediately we can get a really nice believable sequence result of two animations playing back to back now again you want to massage this you can go even further blend things together try and keep the feet locked keep everything nicely smoothly going together but but at the end of the day it really is just this handful of nodes to get a really good result but what about blending things together so here we have these two completely different walk cycles we have this person sort of walking in a circle and then this other skeleton doing a capoeira um so what if we wanted to actually blend these these skeletons together well um if you just sort of naively do it and blend them together you'll get something more or less like you would expect we hit play and as we blend between these two animations it sort of you know glides through space until it gets to the other one it's not very convincing but it seems to be kind of working okay but let's just grab a couple of the joints so we're just going to grab the upper arms and then we'll hit play and now we can blend sort of in in local space into world space so now the upper body is doing the capoeira movement and the lower body is doing the walk-in circles movement and this is going to really open up a lot of possibilities because suddenly you can blend multiple motion clips together in different ways so if you have only have a small library of motion data you can manufacture manufacture large sets of data by blending bits and pieces of the skeletons together to produce essentially new animations um and again this is a you know a single note so you can imagine doing more work adding more nodes to clean this up the kinds of results you would be able to get another way of just driving home this idea of of characters in sops is this is um the character just walking forward and we're gonna go ahead and just draw a curve here again this is not a special curve for characters this is just the standard curve saw and then we'll put down the path to form node again this is essentially a modeling node a node for deforming things along a path but we can go ahead and put the skeleton on this path and suddenly even though this note has nothing to do with animation it doesn't really understand animation it has nothing to do with rigging it suddenly becomes an animator's tool it becomes a way of moving a character in your scene even making them walk in circles to give very nice surprisingly clean results and i think this is where this hybrid world of character tools modeling tools and essentially just geometry manipulation tools are going to open up like a huge world of possibilities for rigging so let's take just take a look at some examples here of the types of things you can do so here we're using the full body ik node along with the new uh rig bop node where you can build um constraints using vop networks to create this sort of man fascinated by a glowing green sphere animation but you can see colliding the fingers with the sphere leaning back as the sphere gets too close the elbows moving you can create very subtle interesting animations just by combining some very simple techniques together and again because this is insults all these and the animations the inputs can all change and all this would just sort of update um so adding a layer of proceduralism that wasn't really possible with object level rigs without basically writing a lot of python to support your efforts here now the physical full body ik solver being used um with a center of gravity so the solver isn't just about grabbing joints and targeting them it actually can basically behave as if the rig is trying to balance itself so as we move this platform beneath it you know there's no keyframe animation here whatsoever the character is basically just trying to move its body to get its center of gravity to be where it needs to be to match the orientation of the legs um really awesome to just to look at um fun to play with and i think again just like we're gonna get some really awesome results out of this um and of course as we've moved our solvers into sops things like the vellum solver you know suddenly become a rigging tool um here we've got these little antennae attached to the helmet moving around and that's basically taking some skeleton uh some parts of the skeleton and turning them into a vellum sip i think this is a much more interesting example of where you could take this idea of a hybrid approach where on the left we have you know basically just pure input animation the rope is purely animated rotating around the hands simple constraint and then on the right you can see the the foot stabilization the foot planting um for the feet to fix that issue and then the rope using collision detection and a vellum simulation so you know just to look at the underlying data here suddenly you can fix all this animation and add a believable secondary motion to um to the rope just by including these these um simulated elements so again we're really bridging this gap between geometry and animation um in some ways what we're trying to do is erase the distinction that you know a character in some ways is no it's modeling over time and so you can start to think about it like that um and finally here just to wrap up you know a question obviously if we're doing all this motion retargeting if we're doing work it stops can we can we get these rigs into crowds um you know of course the answer is yes yes we can um so just to give you a quick example we have nodes to help set these up so we have the agent from rig node and then the agent layer and some of the other nodes that have already existed previously for dealing with agents have been adapted to work with things like motion clips and so it allows you to create um agents out of this this new sort of data type these uh these motion clips um which again suddenly means that even though you know we were targeting sort of character animation um retargeting it also opens up a whole lot of new possibilities for agents from for crowd simulation so here we've turned this uh this character now into an agent um but we can also go the the opposite way so here we have a crowd sim of these characters um walking and basically we want to do some editing to these characters you know something that's sometimes called you know heroining out a character so let's just grab these two characters that were just walking near each other in uh in the crowd sim you can also see the rig tree view popping open there for a moment which is a nice sort of schematic view that lets you pick different parts of your rig we're just going to isolate the arms and again you can see you know a blast stop and edit soft these are just standard nodes um in houdini um we're gonna basically move them together and copy over the positions and then we'll use an ik solver in this case just to bring the hands together and so suddenly now we've modified this um this agent now these two agents you know so again we have this two-way motion now between crowds uh into sop rigging and kin effects tools so again this is this is the foundational layer but you can see how much functionality is already embedded there how useful these tools will be i think a really interesting fact is that i can imagine this actually being used for a lot of effects workflows where suddenly you're adding essentially rigs to things like props or other effects elements um but of course the future of this um is is animation and this is coming down the road in future releases where this base toolset will become wrapped up in tools to really become an animation and rigging tool set right now we're very much focused on the rigging retargeting emotion and motion editing but absolutely in the future our goal is a full character pipeline using the kin effects toolset so every release of houdini has somewhat of a focus on geometry and geometry processing and houdini 18.5 is no no different this is really because you know our surface operators or sops are really kind of almost the beating heart of houdini it's where a lot of the processing occurs so let's take a look at some of what we've tackled here for 18.5 um so modeling now in this case you know modeling is being used maybe a little more generically just to mean like creating things putting things together modifying geometry in interesting ways so perhaps not so much on the traditional modeling front even though there has been some work there you're going to find a lot of again processing tools here in a sense with a focus on usability and interaction so right off the bat we have this really awesome tool called topo transfer and the idea here is basically that you have possibly a template mesh and then some sort of high res or scan mesh and really what you want to do is map one to the other so maybe your template mesh already has really nice uvs maybe it has really nice topology and you want to conform it to this high res mesh or scan mesh and you can see we have this really nice state that lets you pick the points on one side or the other and switch back and forth between low and high res or template and target and it gives you this sort of point cloud essentially that shows this mapping from one to the other and the results can be quite nice so even though this character the scan data is holding this weight its fingers are sort of inter penetrating the mesh we're still able to get a really nice clean transfer from our template mesh to this high res sort of scanned data even with all that sort of interpenetration on the hands holding the weight or even the hands holding hands on the waist there and so really this is a nice way of getting geometry from one shape to another in a procedural kind of way of course a lot of this can be driven by groups on the template mesh and group on the high res mesh and you can imagine in the future we want to automate even more of this process you know allow these targets to be discovered more automatically and do this pairing in a more procedural way but i think even in the beginning here you can see how nice the results already are using the new topo transfer node and so poly bevel um you know you've seen this come up multiple times over the years and that's because we're always doing these improvements on this node it's not sort of a finished node we we do some we do a release we get feedback we try to match the expectations of users and so again we've done some improvements on the actual quality and output of the poly bevel node but we've also done some work on this idea of the interactive state so a lot of times houdini's nodes have this idea of make a selection and then apply the result or apply the operation to that selection and what we're starting to experiment here with poly bevel is the idea that the state kind of controls that interaction so without having to make selections and then apply the result you can sort of work in this interactive way so poly bevel here now is letting you sort of add and remove things to be poly beveled kind of all at the same time in this tool i think it really just frees you up as a modeler to to to not have to sort of pre-plan everything that you're doing instead you can work more spontaneously and make those selections as you go and this is really the beginning or at least another step on the road of trying to to almost put a um an interactive layer on top of this sort of procedural engine that sort of drives houdini as i mentioned earlier and this is another great example here from uh from side effects labs this tool already is actually available to you but i think it's a really good illustration of how we're taking these states and not only using them internally to do things but allowing users to generate them themselves so this is taking advantage of the new python state api that was introduced a while back and this kind of thing would have just been really almost impossible to do previously but with python handles python states suddenly you can create again this very sort of direct modeling kind of operation and apply it to you know standard houdini nodes but now you suddenly have this really nice feeling of directly manipulating your geometry rather than the sort of hands-off approach that you might typically imagine from houdini and i think this is going to give us a really sort of bright future it gives us a lot of possibility again internally to build these tools but also for users out there to to build their own tools to build tools that really weren't possible until we added this sort of infrastructure for states python handles and and we're just going to sort of keep enriching that ecosystem as we move forward another tool that actually was released part way through the year is path to form path to form an extremely useful tool for deforming things along a path um and basically we had this ready pretty early in the development cycle and we thought you know let's get this out there early let people start using it and i think it was a really sort of nice way of letting people sort of see what we're doing sort of mid-release you know not necessarily tied directly to a release but still a very useful very powerful tool and of course all these handles in this case being driven by this same idea of a python state so again letting you sort of work directly in the viewport interactively creating these types of deformations so a cousin of the path to form is a new node that we're calling the chainsaw and so what we're going to look at here is basically i've got several pieces of geometry in this case there's sort of an arm of a chair then this sort of base theatrical chair and then different versions with the seat up and down just just imagine a bunch of pieces and what the chainsaw will allow you to do is take that sort of library of pieces and then chain them together based on an input curve and by chaining we really mean like putting them together so abutting them against each other so we measure the the shape of them and then we align them and there are actually a lot of options for how you align them based on attributes or the bounding box so you can create very complex sort of new pieces of geometry with interlocking pieces and you can also see we're doing some of this weighting here to have you know more or less of uh certain pieces so i'm just presenting more options giving you more ability to work directly with those pieces rather than having you have to sort of generate all these attributes up front which we have a lot of tools to do but we figured let's build it directly into the tool and make it a lot easier for people to get this far you also see that it's quite efficient so we can create a very large group of these chairs we're just using the bends up to bend the curve that they're sitting on and you can see that with a copy stop we can create an entire theater's worth of chairs in just a couple of seconds with this really nice complex interaction of all these random pieces we're correctly putting you know the sides on the chairs on the start and end of each row this is something that obviously you could have done previously but it would have been a lot more work to figure out well how many rows or how many chairs per row how do we make sure that these different pieces you know press up against each other and the chainsaw really handles all that for you and here's another example with some different size pieces as you can see and some of the other abilities to do this sort of uh almost interactive building of these chains just by using a you know a stroke stop or a draw curve as the input um and then of course because it takes curves as inputs there's no reason you can't just go ahead and run a simulation on those curves before you do the actual chaining and that gives you the ability to have these really awesome uh results where you have this wonderful animation but still this really interesting very intricate piece of connecting geometry that again absolutely was possible in the past but quite challenging to set up on your own and this wraps it up into a really nice tool and in fact along with path to form and some of the other tools that we already talked about gives you this really rich ability to suddenly take a few pieces of geometry and turn them into very complex outputs and speaking of that let's take a look at environment so again here we're not necessarily talking about actually generating the environment itself this is about dealing with environments and one of the key things that comes up with an environment is scattering things and we've had some scattering tools for a long time but in 18.5 we've added a new node called scatter and align and this basically takes a couple of tools and combines them into something new more or less it scatters points does it in a really interesting way based on the coverage to sort of pack them together tightly and then provides a lot of options for how to to create the attributes that drive the alignment of of things that will be copied later here you can see that we can offset the angle we can set a min and max angle we can scatter the pieces over the surface align them in different ways and this gives you a lot of potential but with all these tools you know whenever we talk about simplifying something or making something more accessible i want to be clear that that doesn't mean removing any of the power all of these tools still accept attributes they still accept inputs totally procedural inputs and so the idea is to just make it easier to get started but not cover up or hide any of the the power that houdini is known for with these procedural setups so here we're just using the comb soft to drive a normal attribute on the points and then using scatter and align to align to those points and it gives you this really nice way of sort of painting a direction onto a surface so what about the things you're going to put on those points so here's just a quick example of of a tool that basically gives you a bunch of different patterns essentially to take pieces and put them on points and let's take a little bit of a closer look here so the node is called attribute from pieces and it essentially creates the attribute you need to copy the correct piece onto the correct point um so we have a bunch of different really useful ways of doing that this is the the patches method which basically gives you almost these clumps of similar assets together there's noise and we're all probably pretty familiar with noise and it can be really useful creating for creating sort of natural looking patterns and obviously using uh ramps and uh roughness and distortion can give you a really natural look um you know and then there's randomness which is obviously used quite a bit but something interesting here much like the chain stop is we've added this ability to to find the pieces populate this interface and then allow you to weight them because the reality is on environments most things aren't truly random you know there is some organization you know maybe there's more grass than there's trees and so on and so this gives you the ability to to really customize what your distribution would look like and then this is an example of like well let's say we haven't provided you with the tool that you need well you can actually just use of expression to drive it directly so we've simplified the number of pieces here a bit just to make it clear but basically we're going to say like hey let's put all of the blue flowers on the negative x-axis and all of these bushes you know below the z-axis um and then we'll do the opposite for these buttercups and you can see we get this really interesting mix of of these pieces um scattered or at least assigned to the points on uh on in this case a grid but obviously it could be a terrain and we can go even a bit further with that by actually directly mapping to an attribute so in this case we're just showing the sort of circles the template with a p scale assigned in this case we're going to use these trees and scatter them or assign them to each point but what we're actually doing you can see with these sliders is mapping a range of values to a range of pieces so you know the trees are bigger so they go to the higher end of the pea scale the the weeds and clovers and so on are in the small end and so that gives you this ability to create this really nice distribution where you're mapping values one to the other uh pieces to ranges and suddenly it gives you a lot of possibilities now we're using p scale in this example just because it's sort of very obvious but it could also be something like how arid the soil is or maybe any other sort of terrain attribute where you want to control the distribution of instances compared to some attribute on your geometry and you know so far we've shown these sort of small scale examples to some degree but let's take a look now of doing something like a city so again to scatter a line feeding into attribute from pieces feeding into a copy to points so a very familiar workflow just with a nice sort of wrapper around it here's a really nice example of an option on the scatter and a line which is to round to multiples of a number so in the case of the city like this you know you want these sort of right angles you don't want a fully random city because that's not really how things tend to look um and then of course because we're using pack geometry you can see how efficiently we can create this large scale sort of cityscape in just a handful of nodes and if we zoom out you can see just you know how big we actually made this city so again we're taking familiar tools providing new interfaces and new possibilities so it isn't just about putting a a wrapper around an existing set of tools or an existing set of nodes it's about providing a new way of thinking about these nodes and a new way of interacting with them to broaden the possibilities and allow you to work just more efficiently you know inside this context of scattering and align but so far you know we've just been doing sort of a blind scatter you know just taking points and putting it on things but we wanted to also give you nice ways of sort of assigning where those points should go so we have this new note called mask by feature and it kind of looks like it's doing some sort of lighting like baking lighting into an attribute and it kind of is but really what we're doing here is saying let's create a mask for things that are facing a certain direction or are occluded from that direction or in the case of ambient occlusion actually occluded sort of in a hemisphere almost and these three sort of possibilities can be used in really interesting ways to to scatter points so let's just go ahead and use a scatter and a line here and we'll just put our mask attribute as the coverage attribute and you can see right away we're getting some interesting effect where points are kind of avoiding the bases of objects as if they're sort of in shadow you know or we can obviously invert that and say like no we want things that are close together things that are living in the shadows or living near the base of things um and here we're just interactively adjusting the direction to show you how all these masks sort of combine together and you can start to imagine interesting possibilities where maybe certain types of things like to live in the shadows of other things or maybe you want to put um objects within the crevices or cracks of other things and a tool like this allows you to a generate the mask and b send that downstream into the tools that we've already described like scatter and align so let's take a look here at an example so we're just going to walk through this scene but basically we're just going to create a mask in this case close to the objects here and what we want to do is take that and put a library of in this case rocks around there so he kind of helps embed those sort of template geometry into the environment a bit more um and here we're almost just inverting it and saying like we want the trees to grow but nowhere near the other objects you know give them a lot of space kind of push them out to the edges then the bushes kind of live in between there somewhere you know between the rocks and the trees um and then the flowers want to live in between those things and then finally things like moss or clover sitting entirely on the tops of geometry so very quickly you can see essentially the same operation four or five times in a row you can build up what is almost sort of a an ecosystem that really gives you a nice believable result a nice sort of full result with a lot of control you have each of these masks just feeding into the other down the line and of course this is a simple example here's just sort of a nice opengl flipbook using some of our new fog and depth of field just to make it look spooky i guess but you can see it gives this really nice natural result but it's not all about these small scale scenes of course you you know we want to have uh large scale things so this is just an example of a large terrain but essentially doing the the same operation you're just finding using masks and using these scattering tools to you know take useful information from the terrain or your environment to drive these processes so it's about finding the useful pieces of information and then feeding them into the tools that do the scattering so here's a tool from side effects labs that's really interesting because in some ways it's on the opposite end of the spectrum it's about actually just placing by hand um you know in this case rocks in your environment and you can see pick and place as the node is called lets you really rapidly build up you know really hand generated content here you know you placing these things exactly where you want them and so some ways on the opposite end of the spectrum from the tools we talked about before but of course this could become the input to those tools so i feel like we're finding a really nice balance now between procedural tools that can take away you know the work of doing huge amounts of things large scale environments large scale scattering that's just not really practical to do by hand and then tools like this again using that same python api python handles to build tools for artists to feel like they are directly influencing or art directing the result so we've we're sort of living on a spectrum now between fully art directable fully in control of the artist's sort of one-to-one interactive state versus a tool that ingests geometry processes it interrogates it for useful information and then exports an interesting result and here's just the sort of end result of this image looking quite nice so solaris so obviously solaris um joined the ranks of uh houdini um in version 18 and it was a big push a brand new sort of architecture within houdini um and a lot of the work that we did was about taking usd and everything that usd provides and and providing those same tools to houdini users in a procedural network so almost a procedural wrapper on top of usd and so what 185 is really about is a finishing that work but also then starting to provide tools to help people work at a higher level than directly with the usd itself and to sort of wrap up those tools in a way that makes uh solaris easier to work with so that the artist can be more productive as they do so so let's start with variance variants are this really awesome idea where i can have you know multiple things in one primitive so in this case again going back to this theater seat so we have a variant for each type of piece of seat but you only really see one at a time it's hard to see what variants exist on a primitive and so the new explore variance lop allows you to basically see all the variants all at once and this can be used to just explore the variants as it's suggested or to actually pick one so you can pick from an actual visual sort of representation of the variance rather than trying to go by a name and if you imagine you have 50 variants it could be quite tedious to find the right one you can also duplicate the variant so what this does is instead of just setting one variant it takes whatever variance you've selected and basically creates new primitives for each of them and where this can be really handy is when you want to do something like this like scatter or copy those variants to chairs so use the variant to store all your variations of each instance and then the explore variance node to actually create a primitive for every one of those and apply those as a prototype essentially to your instancing operation and you can see here in the scene graph tree over there how we've taken the original seat and then broken it into every possible variant within it really useful tool really nice way to find variants and work with variants without having to deal directly with you know the paths and primitive names um something else we've done is taken the edit lot now the edit lop is really useful obviously for adding things moving them around and we've basically improved performance we've improved the handles we've improved the way you interact with it but something else is that we've added this new interface that lets you see the operations that you've done so you can see i've moved two objects here here are the transform values and i can even do things like disable or enable the actions that i've done and so you know the edit lock was sort of an opaque tool you you did these actions but over time would be easy to lose what you did at any given time and this new interface allows you to sort of see the results you can type them into that interface and it's a really nice way of sort of keeping track and organizing your edits and this of course also applies to other types of editing in this case we're going to take a look at maybe doing some um physical editing and so we can do things like for instance show all of the primitives so now instead of having to select from the viewport i can select directly from this tool on the side filter it do things like add physics to those pieces and basically again it gives you this nice little layer on top of what you're normally used to to give you an idea of what pieces have been selected what what am i actually doing at any given time and again this is essentially the same node in a lot of ways but by adding this extra layer of interface on top it suddenly makes it more comfortable to use for an artist especially as someone who might be tweaking and tweaking and editing a scene like this over a long period of time so these tools seeing what's selected filtering what's selected allowing you to enable and disable things really just smooths out that workflow it makes it feel like you're in more control than maybe you have felt in the past of course we can take this uh even further in solaris and add new tools for dealing with destruction for integrating rigid bodies into layout tasks or effects tasks and to simplify this process so we have a new rigid body destruction lock that helps you make sure you deal with all the the intricacies of um of solaris and usd like maintaining the same number of primitives things that are difficult to deal with on your own on your own just wrapped up into a new node and the this this editing capability has now been expanded into the light mixer so uh we can take a look at creating lights for within the light mixer here we're just going to set a color to it and you'll see that what's happened is that it's created in this subnet directly above the light mixer so now all your lights go into one place you're not sort of hunting all over your network to deal with them and not only that it also allows you to manipulate them using the light state from the light mixer so again you're not required to go to the actual node that set up the light the light mixer itself has sort of inherited that state this now gives you the ability to basically create lights edit lights you can see the the same sort of view as the edit state here embedded now into the light mixer so it gives you basically a sort of a one stop for all the things you might want to do with your lights in a scene but the nice thing is that it is still generating the network for you so even though this tool sort of existed previously in bits and pieces what we've done is brought all of those disparate elements together put them in one place so that editing lights manipulating lights creating lights all sort of are driven by all this this almost this uh this one control panel and this then makes you feel like you're in more control unless you focus on your work which in this case is lighting and it keeps you from having to focus too much on the network itself and instead lets you just you know be an artist place lights make things look nice so what about dealing with multiple shots so in this case we have this network very simple we have three different cameras you know we can jump to each chain in this uh in this network and look from a different camera but you can imagine that's that's kind of tedious it means you have to move display flags you have to jump around so let's start off with adding some nodes that that can help with this so we're going to start with a render settings node and this existed previously in solaris but what we've now added is the ability to use the settings prim to drive the camera so we're now just going to move shot to shot and automatically we just pick up the correct camera we don't have to select it every time so that's a useful capability we can tie that in with a switch stop and now we can sort of drive that using a switch but all of this still means like sort of tending to your network you know really paying attention to what node is selected where i'm looking so we've added some new options to the edit contacts options node which basically allows you to use a couple of different ways in this example we're going to use time based options so essentially i'm just going to set up our three shots using these frame rates so shot one is one to eighty shot two is 81 to 160 and shot three is 160 to 240. and once we've set up these variables in this sort of pattern we can go to our switch now and just use the at shot variable to grab those values based on the time so maybe it's easier if we just play this and see how it works so now as i change my frame range you see the camera automatically changes so i no longer have to actually go to the node i no longer have to worry about my network so much once it's set up i can now work more freely just by changing to the correct part of the timeline where my shot takes place but let's take this even a little bit further than that so again we've got this sort of nice little setup now but what about when i want to add nodes into this network i still need to sort of know where to go i need to jump to the correct place in the network so we've introduced this idea of an insertion point and this is essentially a named node and the names can actually be the same in different chains in this case we've set up sequence lighting and shot lighting and now we have this nice menu in the viewport that lets you pick your target so let's start with sequence layer and you'll see now that if i type dome light the node is automatically added above that insertion point i didn't have to go into the network to drop it my display flag is still at the bottom uh of my network so it lets you see the the result that lets you see your shot sort of in context um and frees you up from having to sort of jump to those specific parts of your network so now let's switch to shot lighting and we'll move to our third shot just by changing the timeline so if i add a light now you see it automatically went into that chain on the the right for shot three just because it understands the context option that's driving it so the insertion points are sort of aware of this path they're aware of the cook path so that light did not show up in shot one or two only in shot three let's jump back to shot one we'll go ahead and add a light here and i'm really just making these exaggerated lights just so it's really clear which shot we're in but you can imagine now that you know we're showing sequence lighting and shot lighting but this actually applies to any sort of task within your network also a nice little action here is that radial menus can dynamically pick up the insertion points and not only pick them up it will let you select them so you have the menus you have radio menus you have our new light handles that let you change the size of lights so really now what we've added is almost an ability to target your specific task you know whether it's lighting effects um characters whatever piece of your network you need to work in you can select an insertion point automatically start placing nodes there and it gives you a really nice way to have a almost a template a layout for your network and almost fill in the pieces as you go rather than constantly having to kind of babysit the network and add these nodes just as an aside since we've talked about the radial menus the dynamic radio menus we've also added the ability for radial menus to exist in the network editor so here we're just looking at one of our default navigation uh radial menus that lets you jump up and down networks jump to different parts of your network and so adding this ability into the into the network really gives you a nice a nice way of having these tools that exist in different places that give you the functionality you need for that specific environment just a nice little update and i think we can really use this to some powerful results down the road okay so let's take a look at sort of a lighting task here we've got just a bunch of lights feeding into a light mixer and let's go ahead and just make some changes here i do have the optics denoiser turned on in the viewport just to give us some fast results now let's say i like this result but i want to do some tweaking of our lights well now with the new render gallery i can pop it open i can make a snapshot of that gallery and then i'm safe to go ahead and make some tweaks so you know i've moved to a different lighting setup here we have this sort of spotlight we have this rim light and we want to now go ahead and add another snapshot of that so we can we can keep track of these and now for this third setup let's say i really increase that lighting on the back wall and i decided actually i don't need any of these lights these are superfluous so i'll just delete them from the network and then i'll go ahead and create another snapshot so we have these three different versions now then we can go to the render gallery viewer and go ahead and look at these objects or these images and compare them but we can go further than that we can set an a and a b version and then we can sort of swipe between those uh those images to compare them directly this can be really nice when you're doing sort of small tweaks of course in this example these are very extremely different but i think you understand where the idea goes now let's say you have a lot of these things you can stare them and filter for that star so find the ones that you think are good you can actually name your your snapshots and then we have a more advanced filter possible as well so let's go ahead and filter for things that have star or things that are spooky so i'll just go ahead and type a spooky into our filter there and say any of those and so now we've filtered those to just that that selection of images so let's say i've decided that i actually prefer this but the network is different now so i can actually use revert to network to go back to the state of the network at the time i took that snapshot and that works the other way as well i can go back to this edited network so the render gallery has a lot of functionality embedded into it and it's really designed to let you work as sort of naturally as possible create the snapshots when you need them automatically create them based on time periods we tag them with things like the date and so on so you can always find them um and not only that i think a really important feature is make free you up as an artist not to be concerned with oh i made a tweak and i don't actually like it i need to go back to where i was but that's been lost each of these snapshots actually stores your net your network the state of your network so you can actually freely make large scale changes without fear of sort of ruining the result or losing the result you wanted before so and this is kind of what i was talking about earlier when we said you know version 18 of solaris uh was about introducing all the features and 18.5 is sort of a the next step where we're now saying like okay now let's make artists lives a bit easier let's make it nicer to actually work within this context um we've also added some features to the viewport itself just to make things feel a little nicer when you're actually just using gl before you actually render anything so here's just a little animation of sort of racking focus from foreground to background using the new depth of field um in our viewport here you can see uh some bokeh options with the the lights in the background sort of blooming and showing that actual shape of the camera aperture back there so again you can get some really nice looking results just in opengl which can be a nice guide for your final rendering um we also added volumetric uh fog support so you can have you know god rays the the the sort of glowing uh very spectacular looking uh results in your in your viewport and this is just an open gl effect of course this won't necessarily match one to one with whatever volumes you may be rendering using karma but it lets you sort of get into the zone get into the idea and certainly see where light is being cast within your scene so again it's about visualizing things to get you as close as you can to the rendered result as possible in this case it also just looks cool so karma and karma is still in beta and so let's just take a second to talk about why that beta tag still exists and essentially it exists because we're not fully at feature parity with mantra which is where we want to be before we come out of uh of beta but we're getting there you know fur support has sort of come online really nice results of course they won't be identical to mentor this is a different renderer but the idea is to get up to that production quality renderer and we're starting to get there we're getting some really nice uh results we've also added some some nice extra features so that for instance if you want to render to mplay you can use this interactively it will progressively render it lets you click in areas to focus the results so something similar to the old render view that mantra used to have sort of a karma version of this where you see this progressive image allows you to focus on different areas and you can see some some really nice results here from this awesome curly haired pig so here's an example of something that we couldn't do before in karma which is this rounded edge shader and that was because there was a vex function called trace which wasn't available um in cairo and now we have some limited support for that and when i say limited something i want to be clear about is that you know karma is a new architecture the the goal of karma is to be a modern production renderer and that means not everything from mantra can come across because some of the things mantra could do are also some of the things that held it back in terms of performance and scalability so it's a balance between matching old options but also being a very contemporary modern uh renderer and on that road we've also added something called physical lens shader so here's an example where basically what we're doing is creating a focal plane using this tool so you can imagine this as basically a tilt shift lens and the really nice thing is that we're doing this interactively so the the shader is being modified by picking these three points on the geometry and you can see you can tweak it very closely and align that focus plane exactly as you want in this sort of way where it's in this case aligned to sort of the head of this mechanical object here but the the lens shader has other options it's not just um it's not just the uh the tilt shift you can see the shader itself has lens distortion for instance so you can add um chromatic aberration uh to to give that sort of quality of maybe a cheaper lens uh or this standard sort of fringing you might see on the outside of uh the outer edges of real physical lenses we can also distort things distort the curvature by using a texture map or a ramp to sort of change essentially the shape of the lens over the surface so lots of really interesting possibilities here to take your renders to kind of an interesting new level where you're actually creating different lens effects to get the result that you want and then here is a early tech preview of the karma gpu engine so again this is all sort of running in real time here you can see we're changing lights we're moving the camera it's it's rendering progressively this whole time you can grab this light and move it around you get really nice fast interactive high quality results this is very promising results uh i do want to stress of course this is an early tech preview this is still you know down the road um but we've got a lot of progress made you can bring in usd we can render it we can move light so we're really coming along we've come a long way in fact let's take a look at the theater that we were showing before and again this is the sort of worst case scenario for a ray tracer where the scene is almost entirely lit from outside there are no lights on the interior of this space but you can still see how quickly it resolves to a clean image i think in our our tests it takes maybe a minute to get to a very clean image whereas karma was taking around 27 minutes to get to a clean image not exactly a one-to-one comparison obviously there are no texture maps here there's less information but still again a very promising result and now a gpu volumetric rendering happening here really really nice you can see interactive results we can move these lights around more or less in real time get um remarkably clean results even while playing the animation back so you know we're really we're really pushing what we can do with this technology to give a really nice clean render very rapidly uh once again i just do want to stress that this is an early tech preview before you get too too excited but i think the the future here for gpu rendering is uh is bright so conduits um this is really our way of just describing how houdini can sort of pass information back and forth to other pieces of software um obviously houdini engines started all this with the idea of taking a houdini asset and bringing it into another piece of software like unreal or unity or maya and we're really trying to expand on that and what that can actually even mean so let's take a look at just some examples of exactly what we mean by conduits so the unreal engine 4 plug-in version 2.0 still in beta um is a really good example of where we can take some of this obviously the plug-ins these are essentially houdini engine plug-ins but they've expanded their capabilities quite a bit so with unreal we can access blueprints now um world composition a lot of features that were sort of out of reach of the previous plugin are available in the version 2.0 and of course we're aiming for a december 2020 release um for uh version 2.0 but let's take a closer look at some of the actual features here um so first of all is just the the speed of processing things generally update much faster you get a much much more uh responsive result which is which is obviously key when you're playing with parameters like this and part of how we've accomplished that is with proxy meshes uh being much much faster so as you're playing with results you start to see results much quicker you can see in the version one of the plug-in can take a long time to update a complex mesh and with this new proxy mesh you can get you know six seven eight times faster results than you could previously in the old uh in the old plugin which is really nice because it means that it feels more like the plug-in is really part of your work as you're working in uh unreal along those same lines are what are called brushes in unreal these bsp brushes which are sort of a fundamental building block of a scene in unreal and previously we couldn't really uh interact with those with uh with houdini engine or with the unreal plug-in everything had to be converted to a static mesh but now we can directly interface with those brushes to create these sort of hybrid tools where you block out the base shape with these brushes and then houdini engine processes it processes it into something sort of more complete which i think is really interesting opens up a lot of possibilities for how you build these tools in in houdini for unreal here is pdg interacting with unreal so in this case we're basically pre-processing these desert tiles and you can see that now we're bringing them in and world composition is able to pick those up so in real world composition handling the streaming of this data so pre-processing using pdg and then using the results in the world composition in unreal to get this sort of streaming uh data which is again really nice using pdg exactly what it should be used for which is processing massive amounts of of data as quickly as possible by distributing it and now bringing it into unreal and giving us access to the world composition gives this really nice feeling again of these two worlds coming closer together you know unreal and who need to get closer uh closer together as a tool um and along those same lines is this sort of live link that's being demonstrated here here we have luis wearing the uh axis neuron motion capture sort of harness going into the capturing software being brought into houdini all live this is a live sort of real-time recording of this session and then the interesting thing is that in houdini we're processing it using the new kin effects tools and then going into unreal so again we're trying to create this uh world where you can seamlessly move between these spaces where even live you can take data process it and bring it into unreal so you see uh the processing happening in houdini and the output happening more or less in real time all the way into unreal which i think is is really really powerful it opens up a lot of potential especially when you start talking about characters another services and by services we kind of mean again using houdini not just as like well i have an hda and i want to embed it in a piece of software but instead allowing more communication between these different pieces of software and allowing them to sort of reach out and get information from houdini or for houdini to pass information downstream without it being necessary directly about an hda directly about cooking a node um again probably more clear if we take a look at what i mean with a with a little example here so if you imagine that you know we have houdini engine we have pdg we have houdini itself um and what this idea of houdini as a service means is that you can access not just the sort of geometry processing plug-ins but things like um things like a web server which is uh something we're talking about here today and then combining them in different and interesting ways you know think of pdg in the cloud um there's lots of ways houdini can be used beyond simply cooking a node and what houdini is a surface service uh sort of opens up is this sort of wide world of possibilities where you're using you know the python api api for houdini engine the hom python ap api for houdini itself combining them together communicating outside of houdini but again let's just take a look at some examples of what this might mean here's an example of something called session sync and basically session sync is again using this this idea of communication beyond simply cooking a node here on the right side we have unreal we're changing the parameters and sort of in sync there's a houdini session running that is picking up those changes and applying them uh to the network and of course the opposite is true as well change the houdini parameters and the houdini the unreal session update so in some ways this is an expanded version of the debugging tool that we had before but that was a very static workflow whereas here it's very much live you're directly interacting on one side or the other so multiple hosts can connect to a houdini session get this live session sync and again this opens up a lot of interesting possibilities because you can work with the network this isn't again it's not just cooking a hda you're actually sending this information as you're building it so as you build your network in houdini you start to see the results inside of the unreal engine which again was not really possible at all to do before and again opens up this this feeling that houdini now is is communicating all of the possibilities of houdini not just um you know a node being cooked as if you were pressing a button taking it even further you know we've got uh unreal and houdini synced here even to the camera so we can manipulate the uh the handles in houdini uh and see the result uh in unreal but we can also manipulate the camera in houdini and see the results at unreal so the idea of a session sync is really true you're really keeping things in sync as much as possible so that it really feels like you're manipulating both things at the same time somehow which really makes it a almost truly hybrid sort of approach everything that you want from houdini and everything you want from unreal communicating as much as possible back and forth of course it's not just unreal here is immunity doing a session sync as well so as we manipulate this curve um in houdini on the upper left you do see it updating inside of of unity as well which again um is is a really interesting uh interesting sort of workflow because there are advantages to working in um the engine whether it's unreal and unity and there are advantages to working in houdini and this kind of blurs the lines between those two things to some degree so here's an example of using the python states that obviously can only exist inside of uh inside of houdini um they can't really live inside of the unity engine at all um but nevertheless you can interact with them in houdini so again creating this hybrid workflow where the advantages of houdini are used in houdini and the advantages of unity are being used in unity so you really get the benefit of both sides by having this sort of clear line of communication between the two worlds so if we're going to talk about processing large amounts of data and sending it around pdg is obviously a good place to start thinking about integrating into your workflow and for houdini 18.5 we've tried to make things a little more accessible we've cleaned up the ui and we've made some other improvements along the way so let's take a look here at some some nice little ui and ux improvements so first of all here's this nice asset that's actually available on the content library to be downloaded it publishes shotgun assets and basically you can see here a couple of things one improvements to the the network itself and how we display information so collapsible entries printing printing information into the middle mouse button data to give you as much information as possible but also showing cooking information in the host network so here it is inside of sops for instance seeing the work items the progress and so on so this is a really big help for people who use these sort of integrated workflows between sops and pdg and really need to keep a track of what data is being used when what's cooking you know what work item is active and so on um and of course we've also worked on performance so we've already made some significant performances uh performance upgrades to pdg and that's sort of just continue here you can see this fetch sir rob fetch service i'm getting a huge speed boost over the previous version without this service that's a really nice benefit much faster to to generate these work items and process them we've also added a lot of new nodes for dealing with partitioning we've improved partitioners and we've also added new workflows for dealing with frame ranges which can be really important for film workflows where you have you know multiple frame ranges overlapping perhaps you even have sort of local frame ranges that need to be embedded into sequence level frame ranges and dealing with all that complexity can be a challenge previously so we've added a lot of new tools to help you deal with these frame range issues in inside of tops and pdg um and since we talked a little bit about performance here's a way you can actually debug your scene and look at the performance of your of your graph you could visualize these things as color previously but the performance monitor didn't really understand uh tops in pvg and now you can see it working um exactly like the soft performance monitor giving you a lot of information helping you debug what parts of your network are slowing things down what parts are going well and just keeping a track overall on the performance of your whole network dynamics have always been a huge part of houdini and again it's a fundamental piece of what houdini is capable of and what it provides users and so with 18.5 of course we want to continue that trend um but like a lot of the other areas of houdini in this relate latest release it's about offering new technology but also improving existing technology to make it easier to use more intuitive to use and to let the user get to where they need to go faster so let's take a look at some of the new features fem fem is a powerhouse solver true sort of physical solver gives you incredibly realistic believable results for all sorts of material types but it was sort of lacking a little bit you know some of the types of constraints you could use with it so in 18.5 we have these new attach constraints and sliding constraints so attach obviously attaching these sort of tubes to the sphere but also these sliding constraints so that attached geometry sort of moves along the surface as if it's constrained to the surface and this really opens up a lot of possibilities uh for this solver um again adding that true physical believability you get from an fem solver with these really cool uh constraint types and so obviously this is sort of an interesting almost tech demo of the possibilities and here's a really interesting example one of our tds put together of this character's skin sort of melting off falling off but what is interesting here again is this idea that this is an fem simulation so this the skin really has this almost fluid dynamic quality to it that would be really difficult to get from a cloth solver for instance um let's take a look um closer up the other thing is that there's volume here right this isn't just a skin it's not just the outside this is it's meat it has volume and so fem is really suited to this it's really interesting to see the the combination of this very physically correct solver with this constraint where it wants to to stick or slide along the surface of whatever it's constrained to so i think people are going to come up with some really really interesting effects using this new tool maybe not all is quite as gross as this viscosity viscosity you know when you're doing fluid simulations is is costly and anything you can do to speed that up would be hugely beneficial and so in houdini 18.5 we have the new adaptive viscosity solve so here's just an example of some fluids with different viscosities all interacting together with the various timings so you'll see some cases have pretty dramatic improvements in performance and others sort of medium or almost none and of course being an adaptive solver that's to be expected uh it depends on how adaptive the viscosity is the more uh the more you can take advantage of that adaptivity obviously the better the performance would be but you can see a some nice gains in certain places but also as you go higher as you tend to get better gains so there is there's sort of a benefit to this no matter what but the benefit tends to increase as a it becomes more adaptive or b you get to longer and longer sims where where the time difference actually piles up over time and here just another example showing different settings um different sims and the sort of gains you can get one way or the other using uh the adaptive viscosity and again keep in mind that you're not losing anything in terms of quality quality of the result the fluid sim still behaves the way you would expect it to you're not losing anything by having this adaptive viscosity there's just a potentially very nice gain you can see 25 faster 33 faster 35 percent faster so there's a there's a lot of gain to be had here without losing uh quality or accuracy of the simulation so again a really nice tool just to really help um with some of these more challenging highly viscous simulations that people are using with the flip solver and vellum vellum has actually been around for a little while now it's a it's a very solid solver with lots of possibilities um and so some of the focus here has been well again let's make things a bit more accessible to people now now that it's out there and it's working so we've added to our content library a bunch of different fabric essentially presets it's a way of getting directly to a result that you want faster so here we're just going through a couple of different examples wool leather just to sort of show the different examples that will be available to you to download but let's take a look you know on some animation which is more likely how you'll be looking at it you know on a person rather than just sort of a tube you can see some nice results here from this animation of this dress and now let's take a look with using some of these examples um and again you get that nice feeling of the actual material right that the simulation actually is plausible to some degree that it's actually following physical laws it looks like a real piece of material of these various types of course the shader helps quite a bit but you can definitely see that for instance this sort of vinyl or plasticy sort of dress compared to sort of the wool uh the wool dress again really interesting nice results here and then all of them sort of combined together with this character walking you know you can see the strings on the hoodie the little buckles and chains and things on the backpack the the leather jacket versus the hoodie underneath it's a very believable simulation all together again using the same presets that you'll be able to download from the content library to get you up and running really quickly on really nice film sims so what you're seeing here is something really interesting and kind of new for houdini which is that this is a vellum simulation um running sort of interactively in the viewport um here we've got about 40 to 50 000 hairs or blades of grass in this case being brushed interactively this is something that we are now calling the vellum brush it is a tool that lets you interact with the simulation sort of live the vellum is running you can see the grass sort of interacting it relaxes it moves around gives you really nice performance and this is really going to open up a lot of interesting possibilities here and it's worth noting i think that it's working with for instance wires or fur or hair in this case but it can be used with other things so this is a soft body for instance manipulating this tree and the brush has a lot of interesting possibilities like pinning things so that they don't move um creating a snapshot of the rest state which just happened here and so this tree is now sort of maintaining its previous position it wants to snap back to where it was rather than stay bent and so this brush is not just a fur brush or a tree brush or a tet mesh brush it's almost all of the vellum constraint types are supported excluding grains which we'll probably try and look at in the future but for the moment is not available so let's take a look at a cloth example here because the brush isn't just about grabbing things and moving them it actually has a couple of different possibilities so here we're using kind of a ruffle or a crease brush to basically change the sort of length of the constraints here to create this you know crumpled effect or almost as if there are seams along these areas that we're brushing um we also have compression or expansion ex brushes to pull or push things apart you can see you can get some really nice looks there by doing that kind of almost inflating the material pulling it apart and then you can actually smooth things back down to its rest state so again keeping things nice and interactive there's also a twist brush so you can take the cloth and twist it together to give sort of some interesting results and of course you can grab and move things around efforts with twists to sort of untangle it if you need to and you can see that you're able to really manipulate this even with this high resolution cloth and get some nice interactive results from it um we're going to fold this cloth over now just to sort of show how you can work with this in 3d and then we can pin the edges of the cloth similar to what was done in the tree example and then actually move the simulation forward in time so it's not just this static version of the brush you can immediately jump over to a simulation a sort of simplified simulation to get some really nice results and still interactively edit move those pins edit those pins drag them around while the sim is actually playing live so again it's not sort of sitting in this static state you can choose to have a live simulation running in the background so you can see these sort of live updates or you can work in this highly damped you know zero gravity environment for when you're doing more of a sculpting or brushing type interaction and both of them allow you to get to really nice results pretty quickly and as you can see the playback is pretty fast and it's falling sort of slowly under gravity because we have a bit of a reduced gravity in this simulation just to make it a little easier to work with slightly more dense than you would get for a real cloth sim and just to drive home the point that this is multiple types of interactions here we're going to take a cloth sim um and some soft body objects and we're just going to mix them together and suddenly the possibilities for set dressing become really interesting we'll just take this sort of drop cloth push it around against this collision object and then start adding things like these sandbags can rotate them around and again using pinning using the different brush type types to stay in this sort of interactive state and give you some really interesting possibilities here you know modeling something like this is obviously possible but again nothing sort of gets you there faster than being able to simulate the result and the fact that these different types of objects soft bodies and cloth hair can interact together in a single vellum brush simulation is is really really useful so let's say we've stopped here we like what we've got and now we want to add some extra detail so what we've done is move to a secondary simulation now we've turned everything into cloth so whereas we had a soft body of four now we're just manipulating the shell as cloth in order to add um wrinkles in places you can see occasionally we're grabbing snapshots to sort of freeze the cloth into a certain state so let's let's you sort of act in in passes you know work with a simulation get things generally into the shape that you want and then basically layer simulations on top of simulations or in this case these vellum brush sims on top of each other to give really nice fast results in this very interactive uh interactive way and obviously you know looking to the future this type of of real-time interactive result is going to show up more and more frequently in our uh in our tools you saw it with the last release with some of our tools in solaris and it's starting to show up everywhere here now another example using a tet mesh so this is sort of a soft body we're just manipulating this pig almost like he's made out of well pig i guess um maybe a boneless pig but we're also able to do things like create these snapshots so this becomes the new rest shape while we're building here so when we move the the simulation forward and actually play it you see that it kind of again much like that tree was resisting bending the pig's nose and ears are trying to kind of stay in place kind of stay where we put them so there's again a lot of possibilities here for for manipulating things in this sort of physical way i wouldn't necessarily go so far as to say it's a sculpting tool so much as it is almost a opposing tool or a a clay kind of tool i guess but again really nice really fast interactions and it's always fun to play with the picket so let's move on to pyro um obviously again pyro a very important part of houdini and we wanted to to push this forward again we recently introduced the sparse pyro solver and what we're introducing now in houdini 18.5 is what we're calling the minimal solver and so the minimal solver is meant to be a interactive fluid simulation tool so here this is playing sort of live in the viewport as i manipulate these sliders and the idea here is to give you very very fast results so that you can sort of plan out your simulation get the res to get the settings that you like set it up exactly how you like it um very very rapidly um you know we're able to go to very high resolutions and stay at i wouldn't necessarily say interactive speeds at extremely high um resolutions but still quite fast you know one to two frames per second for a very high resolution simulations now this is obviously quite a bit more low res and it's playing back um quite quickly you can't entirely trust the fps there at the bottom as it sometimes exaggerates or underestimates or overestimates but it's a good guide and you can see that we can manipulate this simulation greatly from where it started and dial in those settings exactly how we won which is the goal of the the minimal solver um and to go along with it there is the simple gpu explosion you know this is all running on the gpu that's that's the goal of the minimal solver and you can get some really nice results along with our new pyro shader which we'll talk about in just a bit to really bring out as much detail as possible and really make your sim look as nice as you possibly can so now let's take a look at an actual workflow here we're going to use some tools that we're going to talk about in a little while but this is a whole new workflow we've introduced with these pyro burst tools and what is the pyroburst tool basically it's a tool set that mimics what a lot of effects setups tend to be which is quite often particle sims that just explode at work outward giving sort of an interesting shape to be used as more or less an initial state for an uh a pyro simulation and so this tool is designed to kind of give you that in real time insults without having to go to a simulation using all the standard sort of tools that we have to do this so again this is designed to get you to where you need to go faster this is likely a tool you've either built yourself or a setup that you constantly rebuild um in order to get so right away we can hit play now we're using the minimal solver here and you can see we get you know maybe not very exciting results but you can see how quickly we got this result into the viewport so let's go ahead and play with some of our settings here because this is simulating back so quickly so first of all you know let's add some smoke so we get a bit of a nicer sort of bang there let's increase the density a bit make it feel a little bit fuller uh in the in the viewport there and then we'll reduce this dissipation so we get more of a sort of a cloud of smoke you know now we're starting to get something kind of interesting and you'll notice that most of the options that are available to you on the spare solver are available in the minimal solver so you can add disturbance you can shape this the same way you would shape your regular simulation it's just a faster turnaround time and so quickly you know we've gone from a very you know boring simulation to something that looks a lot more interesting and so we can tweak the dissipation now and now we have a nice little sort of smoke explosion there so let's take this a little bit further we're going to add a new tool called pyro trail and the idea here is to create those sort of long trails that you typically see in explosions like this but again do it in salts rather than having to build a particle system to to do this instead provide this as geometry so not only can this be used by the way as an input to piral simulations it can be used as geometry as something to almost model with if you wanted to but of course in this case what we're trying to do is create some nice sources to add those sort of smoky trails to our simulation an interesting side though is that these can actually be really nicely used directly as part of your explosion without doing a simulation because how you can sort of shade them into the shape of these trails but here we go so now we've got a nice little pyro bang a couple of little trails shooting out the side that's pretty nice so this basically gives you a nice fast setup but let's take it you know even further now let's say well i don't want one explosion i want you know a whole bunch of explosions um so i'm just going to draw a trail here inside of our pyro container do a classic sort of houdini manipulation just resample it into a couple of points and right away now we've got a different pyroburst and a different trail for every one of our points on our path so again let's jump down to our pyro source and hit play and now you can see we get you know all of these things exploding at the same time which which is pretty interesting you know we've gone from you know not very nice simulation to um you know a large scale uh simulation at a pretty decent resolution as well there's enough detail there to actually evaluate what you're doing now let's take it even further than we did before so we're going to go ahead now and use an attribute expression node to create a start frame and basically we're just going to randomize a start frame based on each point so we're going to create a range of values from 0 to 1. we're going to remap those values to 0 to 55 using the attribute remap node and then go ahead and plug that into our pyroburst nodes and basically what this is going to allow us to do is say instead of just making a burst per point do that but offset them in time and again just using an attribute so much like some of the other tools that we've talked about this is a high level wrapper around a workflow but it doesn't prevent you from using any of the standard tools that you use in houdini to really get the most power possible out of it so here now playing back in this sort of interactive state is this now offset simulation of these explosions and this is something that absolutely could have set up before but by having this interactive pyro sim along with these tools for doing the shaping you can get really nice results very quickly with a minimal number of nodes um and then finally just to dial in the look we're going to go ahead and add our pyrobake volume node which basically gives you our new shader which works in the viewport and of course at render time and it really helps you bring out interesting detail in your simulation that was difficult to get previously with our previous shader it took a lot of work now you can get it not only looking really nice in the viewport but obviously you can get it looking really nice at render time as well and so let's just go ahead and throw down a footbook to get a look at how this uh looks with the shader applied you'll notice it's a little bit slower than the real time playback you had before because this shader is pretty complicated it's doing a lot of stuff under the hood um but pretty quickly you can get a really nice result really quickly and let's just take a look at the result and keep in mind this is just the viewport hasn't been rendered it really is just the output of the sim we were just looking at and of course the beauty of this setup is that you know you can take those same principles now and apply it to something very large scale something that could never fit on your gpu you know billions of voxels enormous amounts of detail over a long period of time um and that's really the benefit of this that this minimal solver becomes a way of rapid prototype rapid look development before sending your simulation somewhere to scale it to to you know proportions that are just not possible on a gpu at least current gpus and again you can see just a huge amount of detail that's in this simulation but as well the nice benefit of having this new solve new shader i'm sorry too to really pull out a lot of that detail so let's just take a look again at these these trails so here we are just showing um just the trails and you can see we could add uh some noise and this this system this burst and trail system is at the heart of almost every pyro explosion um and so this is again a really nice wrapper around that tool set and the output of a simulation like that shown from this camera angle now can look you know really incredible you can see the bright sparks on the ends of the trails i'm just a huge amount of detail in this simulation and again just this is the viewport this is this is the new shader being rendered here just using the viewport so you can get very close to your final result in the viewport high detail really interesting results using these high level tools for artists to shape uh the result um and then of course a render being the sort of final pass that really gives all that beautiful sort of internal lighting all the stuff that a full render um will give you where you see this real beautiful illumination of the fire within the smoke um again pulling out all of the detail that you worked so hard to get into the simulation in the first place but these trails are sort of necessarily used by themselves so really they're meant to be sort of potentially even changed together so here you're seeing um you know this sort of rapid explosion of these bursts um creating a sort of secondary explosion inside the original one as well as those the trails um being spawned sort of almost on a tree a spine on the inside of this um sort of volcanic explosion and again so the idea is is not to give you a single look it's not just about this one type of thing it's about empowering you to create dozens of different kinds of things but using the same base set of nodes and because this is all living in sops instead of having to be you know a pop solver or something external um you can actually manipulate this even further using standard um sop tools and stop workflows so again it's taking what was entirely simulation set up previously and moving it closer into our familiar world of sops where you have a huge number of tools to help you get the result that you want and so i've been saying that this is sort of a replacement for a simulation which which it really is and it can it can do things that you know you typically expect to have to use a simulation for like collisions so again this is all sops it's all updating sort of in real time but you can get these things interacting with uh with objects and so you can create complex results it's not this again not this simple tool that does one thing it really is a robust tool set meant to give you many different looks um and once again just at a scale that is just incredible really when you think about billions of boxes just huge amount huge amounts of detail basically covering this entire sort of city block here with smoke and fire and so a lot of times when we introduce tools like this what happens is people will come to us and say like these tools are great but we don't know how to use them yet you know we need to get up and running and so we've included shelf tools to come along with this um and these shelf tools give you you know usable results these are not toys you can see the network is not hugely complicated but it's complicated enough to give you a really really nice result um and it shows you how to use the shader how to use these tools in conjunction with each other to get something that you actually would want to use these these tools are meant to give you real results i can't necessarily say they're production quality results but they're very useful results to get you started and to take them to that next level which is of course why your job as an artist is there's an aerial explosion which is just another preset and again we're showing um just the possibilities here using these tools and how you can get these really nice results and then providing you with shelf tools to get you there faster and we also updated some previous tools so there was a fireball tool in older versions of houdini that's now been updated to use the new setup as well as the new shader to go along with it and again the shader allows you to sort of pull out lots of detail in the explosion stuff that's always been in the simulation but it took a lot of work to pull it out you can see the nice crispy edges the sort of black soot on the outside of the the fireball really really nice stuff and now very achievable using this new shader and new pyro workflow and of course it's not always massive explosions sometimes it's bonfires or smaller things on fire and we want to provide you with some some nice tools for that as well so really just trying to round out the tool set and give you lots of examples to give you a sort of vector of approach for whatever effect you might be working on so just to end off here just because these are really cool looking simulations we've got a cool sort of flame thrower here looking really nice really high res really super detailed and finally i've sort of run out of tricks here's our final explosion to end off this section on dynamics in houdini 18.5 all right scott thank you that was awesome as always so folks we're almost at the end of our show uh houdini 18 5 is going to come out in just a couple of days october 20th hope you enjoy it and it's going to come out with all the features that you've seen and a few more we can never capture them all in our little presentations but hopefully we'll all uh enjoy them as users of 18 5. there's lots more there hard to name a particular one i'll just pick one randomly many more compile softs to make your saw productivity even faster and on the side effects lab side of things look for a lot of tools there that are not just for game development everyone in film games commercials are using our side effects labs tools more and more there's a lot of good stuff in there and of course the big question at the end of the day is is houdini 18.5 ready for python 3.7 and the answer is yes all right let me uh finish by thanking our wonderful r d crew and everyone at side effects who made this possible um our r d team that's developers qa documentation tds and an ever growing list of interns have outdone themselves their creativity and their drive once again have found no bounds and even more so incredibly in a year like this they're able to outdo themselves even beyond that they had some pretty major features ready early on i'm talking about session sync and topo transfer and some of the fbx features and they were ready early enough for us to be able to backport them to houdini 18 in july so you can enjoy them throughout the year so fantastic uh fantastic job to all of them and also finally a big thank you to our alpha and beta testers who are with us from beginning to end hopefully they'll come back um without them we wouldn't have a release as robust and polished and ready for production as we hope you'll find it so thank you all enjoy houdini 18 5. thank you everyone enjoy thanks take care see you soon [Music] you
Info
Channel: Houdini
Views: 146,217
Rating: 4.95995 out of 5
Keywords:
Id: zMrvCWy85xM
Channel Id: undefined
Length: 117min 19sec (7039 seconds)
Published: Thu Oct 15 2020
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.