 Okay. Hey everybody. I am the nicest guy in visual effects. That is a fact So okay, I'm gonna talk about Solaris, which is essentially a new Context in Houdini and it is entirely based around USD as was just mentioned and that means all the operations happen on actual USD It's not turned into a proprietary format or something like that. It happens directly on the USD And that gives us a lot of interesting capabilities that aren't necessarily Available until now. So let's just dive right in. We're just gonna walk through a little example of some of the things you can do And we'll just stay in Houdini and see what we can do So here we are inside of Houdini Down in the bottom left, you'll see the scene graph tree and if you've ever seen USD view It looks very similar to what you would expect And you can see we can just go ahead and load directly the Duke Kaboom asset which Pixar was very kind to let us use for this demo We load it directly into the scene. You see the scene graph tree showing up at the bottom left there Obviously the animation comes in Everything that you would expect to come in comes in we can zoom in and because render man is now a Hydra render delegate we can say something like well Let's look through the camera that was provided and now switch to render man And when you get this sort of live update in the viewport We can change the frame range and everything updates live And this is really nice now your your whole scene comes through USD Cameras lights materials geometry animation everything sort of in one place and of course it's again is very live You can navigate around the viewport just like you would in an open GL view You can see the nice motion blur there on Duke. So so this is great We pulled in the whole scene everything is exactly as you would hope it would be so let's start doing some modifications to this scene So basically what we're going to do is we're going to say this is great We're going to take advantage of something called a variant In USD and a variant is just really a way of saying I want to alter my scene graph tree in this sort of non Destructive way so what we're going to do is we're going to say okay We're going to take Duke exactly as he is in this in this setup And we're basically going to repeat or replace sorry his motorcycle with our test geometry in Houdini our flip toy In Houdini So the first thing we're going to do is put down a couple of nodes that allow us to Create these variants and you can see we can name it. We'll just make Duke the default and The first step is to say okay. Let's get rid of the motorcycle. Let's hide that because we don't want that For our variant So we'll just use the prune node. We can grab it directly from the scene graph tree. Just drag it up into the parameters And there we go. We've hidden. We've hidden the bike. That's great. So now let's go ahead and reference in our Test geometry our toy asset and you can see that the interesting thing we can do with these tools is actually insert Our toy our new asset directly into the hierarchy where the motorcycle was so when we put flip Into Into the position where the motorcycle was it will automatically inherit all of the transforms that existed there So now we've got Duke. He's on his flip cycle. He's ready to go and you see it inherits all the animation Everything comes along for the ride. So so this is this is awesome And and what's really great about this is not just that you can do this But that all this is non-destructive We're using USD concepts like variants layers and so on so that I can safely do anything I want I guess I can't lay them on fire. I just learned but I could do anything I want to Duke here And it just lives on this layer. So I'm not affecting anything that came in upstream I can safely work make changes without harming anything below And here now we'll just put down this node that let's us set which variant we're looking at and again The beauty of having render man as a Hydra render delegate is that everything updates life as soon as something changes in your scene graph It updates live in render man. So we can swap dynamically between flip and Duke's original bike Okay, so let's let's take this a little bit further now. So we've got the scene. We've got flip. We've got a flip cycle Let's make a bit of a race and so what we're going to do is we're going to just take this whole scene graph now And we're just going to duplicate it. So we're going to make multiple copies of it There's lots of ways we actually could approach this but for the sake of the demo demo will We'll do something very sort of basic and just say let's copy everything the whole scene over excluding the lights and Again just dragging and dropping from the scene graph tree You can see we're targeting slash world which is sort of the root level of our scene graph and we'll just copy everything over and To make it interesting. We'll make six copies instead of just two copies And there we go very simple almost like a modeling operation in this sort of look development layout context So we're ready to go. We've got our we've got all of our Dukes lined up But you can see that they're all using the same animation, right? So all of our flip cycles are all in a row and and that's not that interesting So we want to turn this into side of a race So what we'll do is we'll make some edits now to those references to this Duplicated world and we'll do something called instance retie And what that's going to allow us to do is take that animation and just offset it per copy And we can do that in a again a lot of different ways But in this case what we're going to do is say okay all of these all of these copies Let's target those and then we're going to look at the internal sop And what that means is I can dive inside the instance retie node and I can get access to all of Houdini's tools Everything that was there for geometry editing animation Attribute modifying you can you have access to those tools now as a layout artist or a lighting artist So we're just going to use attribute randomized and what that's going to do is Let us set some Alternative frame ranges here. So we're just going to randomly shift the timeline for each of those copies And you can see now that we can play back and we have a little bit of a race each flip is now offset From the others in time So this is awesome. We've overwritten Essentially the the start frame for these animations and then of course obviously Render man then picks up all the changes you made even though we've created, you know Quite a different scene than what we started with again, all the motion blur comes across each each Copy is doing exactly what you would hope it would do and of course We can update everything by changing the timeline So finally now that we've created this sort of larger larger scene We want to tweak the lighting a bit because it was really set up for one Duke, you know in the background so Again, all these lights came through with USD right we didn't add any lights to the scene They came through the original USD file So what the light mixer allows you to do is look at your scene graph tree and then give you this really nice High-level artist interface to all of the lights in your scene So we can just do things like change the color Maybe tweak the intensity of our environment light that's in here And so we can drastically modify the original scene just by playing with this panel This is really powerful right because this means we have tools all the way down to like the geometry level where we're changing points We're changing attributes and then all the way up to a high level sort of lighting perspective where I just want Fast updates in my viewport. I want to see exactly what the change of my light Does to my scene and the light mixer? Absolutely allows you to do that and of course again the beauty of having this sort of live updating Hydra Paying attention to what's happening in the scene graph and passing that data to the render delegate gives us this nice feedback loop and So just to sort of briefly recap here. Here's the whole network for everything that we did not too bad relatively simple Here's where we started with Duke on his bike his original motorcycle Again just navigating around in the viewport and then the final result we've swapped out his motorcycle for a flip cycle We can now render the whole scene with our tweak lighting all of this exists on its own Usd layer so it can be written out to disk and just layered on top of the original layout So everything we've done is non-destructive and that's really using the usd tool set That already exists and then what Houdini brings is this procedural layer on top of that So you procedurally modify the usd seed which is a again? We hope a really compelling way to work with this type of file format So if you if you'd like to learn some more about Solaris on Thursday at 11 o'clock at the Houdini hive That we're doing basically like about an hour long presentation on Solaris We go into a lot more detail than we did here today But hopefully you found that interesting and useful. So thank you very much