📱

Get Our Mobile App

Take your business learning on the go!

Download on the App StoreGet it on Google Play

TDFam LIVESTREAM - 8 creators, 12 operator families as one! #TouchDesigner

Function Store3:05:31

Transcription

Down. Down. Hey, Nat. Heat. Heat. N. down. Hello. Hello everybody. Uh, welcome to the TDF stream. There's already 200 of you. Jeez, that's a lot. Um, if you can hear us, please, um, give us a thumbs up on the stream. Um, I'm going to check who is not muted. themselves. Greg, I'm going to mute you. Sorry, you will need to unmute yourself. Um, okay. Yeah, you can hear us loud and clear. Everything is fine. Nice.

All right. Well, um, again, welcome everybody. This is the first of this kind of a stream that I've ever done or yeah, seen in a long time also in our community. So it's great to have everybody here um from creators to also derivative uh members. So I would just like to introduce everybody right now kind of in the in the order that we will go. So we will start with an introduction of TDFM from Lyall and me. Um then Kyle Prismatic Visuals is going to shoot L2D. Then Lucas Slavakovich is going to show his four uh family operator families. Then Yosef is gonna talk about T3D. Uh Mini UVL is going to talk about Popex. Lake Hakaman about GOPs which is caution split operators. I'm really excited for this one. Then Ethan Elway is going to talk talk about blocks uh also known as metaform. Um then admin uh Lucas C is going to talk about MCX multi- channelannel audio operators. Then simulate Lyall is gonna um round us uh off with lops. Um and then I will also have my five minutes of fame because I don't have a family to show. Um you are all my family I guess. Uh my my second third family. Um so yeah and then we have also um in the stream Marcus Hecman technical director of derivative Greg Harmonovic co-founder of derivative we also have Jared Smith also co-founder of derivative and later on Isabelle Rouset might join us also and who is the director of communic community and communications um it's really great to have everybody here um so yeah, let's let's talk a little bit about um TDF fam Uh Lyall, are you here?

>> Yeah. Yeah. Hey. Hey.

>> Cool.

>> Welcome everyone.

>> Nice.

All right. Um yeah, let's talk a little bit about uh what TDFM is and and how it came to be. I think um and why why it came to be. Um, so I think I think it's it's worth mentioning like for me the first time I saw a custom operator family was um when I saw Tommy's right and that was for me the first time I was like oh wow that's that's something crazy that's a totally new thing. Unfortunately is not part of TDFM. Uh it's it's too big I think for for to be included uh as a TDF fam. It needs to be its own thing. Um and then of course uh Ysef Peltz who is also here with us um came with T3D um which was I think where where most people were um surprised that this can be integrated into the OP create dialogue um and that was I think a big step into into getting it in people's minds that this is a thing um that's possible including mine. Um, of course I have a history of of modding Touch Designer UI as you can see up here. This is also a free and open source project um from my from my uh GitHub. Um, but yeah, I was I was really really uh interested in in what Ysef was doing and we were talking talking a bunch about what could be done. Um and then some features came for example stubbing which we will talk about which kind of um leaves a skeleton of the family for sharing with other people. Um and then came popex from u miniv um which was the next step because that that was the first time where we actually got to got to see some issues um pop up. of course having two custom operator families suddenly show up and then without having having certain standards um in the first place um some some issues were happening um so they didn't fully were yeah they didn't live next to each other perfectly well um in the beginning and then um communication started um at the same time or even before I guess um lops um from ly was under construction. So that was kind of a parallel um parallel lineage of of custom operator families Popex and LOPS and um I think that's when really TDF fam started to become a thing where where uh Lyall um started um a bit of uh standardization and then because I was also involved in the communication in all of these um I also jumped on um in the project to to kind of um round it and and create a new architecture and a new uh standard together with Lyall. And that's what DDM right now is. Um and this right now enables us to to be able to for for all of these families to live next to each other in peace and unity and love as they should. Um, yeah.

And I think and you and I >> going back to like the first moment might have been the Berlin meetup in 20 24 when Joseph was like, "Oh, I'm working on this thing." And I look over his shoulder and there's like a new operator family. It might have been a little bit after that it was actually in the operator family, but it was like, "Oh no, we can do that." Um, and I had been experimenting with the idea of like breaking lops or like these conversations into tables in touch designer and like doing conversation management through feedback. And I was like, "Oh, I want to make an operator family. This is great." Um, but obviously T3D was a little hardcoded for that name. So I took it, made it into lops, still hardcoded. There was a bunch of conflict. At one point I sent it to uh mini UV and I think that was actually around the time of the Tokyo Touch Designer Meetup. So all of these things kind of nicely land around when I'm in like hanging out with the derivative people and having a lot of like good energy which is fun. Um, but there was a moment where it was like oh no if you have three and you uninstall one they delete all of them. So we need to figure out we need to start figuring out what this means to have multiple in one. And there have now been surfaced several versions of PopX that have been released a couple versions of lops that have had like iterative versions of this like generalized family framework. And then I was chatting with Dan and it was basically like okay let's make this real. Um, and it was really fun specifically to work with Dan on like architecture choices. There's so much stuff that we've made that make it really easy. You can do all sorts of customization with like um beyond just putting that op create dialogue in your tab. You can do little help text things. You can rightclick and get the documentation links. Um, everything is defined in like a manifest. Yeah, maybe we can we can show that um right now like how to create an operator family. Um maybe that's a good time right now, right?

>> Yeah, we that's a I mean it does take about 30 seconds.

>> Yeah, my my computer is struggling a bit because I think I'm doing a lot of things with the stream right now. So I hope this will be fine. Um, but basically if you go to uh the GitHub um which um there's a there's a link that should go out now hopefully. Yeah. Um, if you check the GitHub um link um on this right side you will see the releases and what you get there is um TDF fam create talks. So you just drag and drop that into into touch designer like so. Um, yeah, my my computer's struggling. Um, and then the next step is really to name your family. So this is going to be what I call test family. Um, and that should already appear in the OP create dialogue if it opens. Hello. Yeah. So the the family is already there as test. Um, if you want to add new operators to this um we can click the create op button which just creates an empty um comp. And in here is where where you add your custom operator. So I can add the base. I will just create a very basic noise um my custom noise thing let's say. Um, so I just uh put some parameters um out there just to have something like that. So these are my custom operators. Right now it's only one. Um, and when I'm done editing my operators, I have to click ensure manifests. We will talk about manifests a bit more in one sec. But when I clicked that um, my my base one is already there. So it's I called it base one. very not interesting um example but here's our custom um test family operator called base one and I can of of course add more maybe I should add an output also just to an input just to show off that you can chain this obviously in in in I can also define um for this custom operator family um what are the compatible families? So because right now it's only a top um I will choose the top. You can also make um families cross-co compatible with each other. And when you do this um when you um set it as as a compatible operator family, what it means is when I um when I place down my base one and want to chain another base one next to it, it will be available as as such as as the compatible family um alongside top of course because it's a top output. Um, what else? Of course, you can change the color here. Um, if you want, you can change the um order that it that your family is um taking in the in the upgrade dialogue. So, if I want to make this the first one, I just put it as index zero and then that will put it before comps even. Um, other than that um, yeah, we could talk about manifests and and some some custom custom stuff. Maybe maybe L do you want to show some things that you did for love? Some more advanced um oh maybe yeah, I should talk about um stubs maybe before we go into a bit more into the weeds.

>> Yeah, stubs and updates real quick might be good.

>> So stubs um came from the need um that basically I wanted to share a T3D patch on my Patreon also um which I'm going to post the link now. Um, so I wanted to share something of of T3D um on my Patreon, but of course I didn't want to share T3D itself um because that's on Ysef's Patreon. Um, so um I told this to Ysef and then came um stubs which we adopted and and u much improved and stubbing means that if I have these two base comps here um that are the custom operators right now um when I create um stops for all when I click that one. I don't know why this became so big but um yeah created three stops and um it means that these base two and base three now if I go inside um my noise is gone. So that was kind of the let's let's say the intellectual property of of um of this operator of the family and what's left behind is is just the input and the output and the manifest. So, anything um GLS and any any other operators that would kind of give away somebody's IP or somebody's um yeah Patreon exclusive stuff that gets removed from the operator family and then what the creator can do is they can of course then remove this test family or T3D or whichever family and just share these stubs, these skeletons um with somebody And if the person they are sharing with has also um this operator family um because they are part of their Patreon or or whatever, they can just drop it in to their project file as normal or open the talks that they were sent with the with the stops. Um and simply click on replace stops for all. Uh again this is going to become huge. Uh I click on regenerate. Okay, beautiful. And now the noise is back. So um everything is magically restored to their original state. The parameters are retained. And there's a lot of rules that you can set up. Uh which kind of parameters you want to retain. Do you want to retain internal states of parameters? Um so let's say that um you you have you have edited internally something in the in the operator. Um there are rules that keep those parameter changes also and that's kind of the more advanced feature. Um as well as updates. So if if a creator um releases an update sorry to to their operator family um version something something um it's very easy to update to the new version um of your of the family operators that are already there. So you will just bring in the new operator family. Um hit update all and then if there's a new version of a certain operator that you already placed, it will update that operator in place and also keeping all your um data and and things that that the de developer wants you to retain between updates. Um so that's um updates and stops in a nutshell. Um how many how much time do we have left? I don't see the timer.

>> I think it might have might have given you some

>> Oh,

>> overflow overflow. Yeah.

>> Okay.

Um, yeah, maybe maybe that's enough about TDFM in a nutshell. And maybe if you want in your time l at the end >> to round it out.

>> Yeah, you can you can but but also I I just want to point out that um there's a documentation of course of of most things if not everything um on the GitHub link. Uh again I'm posting that. Um, so there's there's a readme and also separate um separate reference manuals for the manifest and the config reference um where you can customize a lot of things about your operator families. And I think we will see some of those customizations um coming up. Um, and yeah, I would probably now hand off the room to um to Kyle.

>> Kyle. Yeah. Yeah,

>> also yeah we will have we will have some minutes in between presentations to to chat a little bit about um the families but also at the end we will kind of keep it open-ended um for for yeah for just um chatting. So I will find you Kyle and put you on Are you sharing your screen? Yes. Great.

>> Yeah, I should be.

>> Uhhuh.

>> I need to stop sharing mine. Sorry, there's a lot to manage here. Where am I sharing mine? Okay, I'm just going to stop sharing. Cool. I think you're good to go. Kyle,

>> sweet. Okay, so yeah, I'm Kyle or Prismatic. excited to be here with y'all. And uh I'm showing L2D. Um here's what it looks like in the app. So there's three different types of operators and it's basically a system for modular 2D lighting. And first I'll show you some examples. Um this is one of my favorites where you can have these simple shapes but get all sorts of refractive um and dispersive lighting effects and global illumination with volutric lighting. So just adding a couple shapes here. And this Monte Carlo render is adding all of this um additional lighting. Um you can also get reflection on curved surfaces and get some cool like costic patterns. Um the most basic effect is just emission of your 2D objects throughout space. And then uh another one here is this is sort of a different paradigm where instead of um global illumination as those other examples, this is using direct rendering where you define point lights and those lights can cost can cast volutric shadows around any sort of um 2D object. And these objects can also cast cast shadows across themselves. like you see these letters are in the shadow of this um object here. So that one's a fun one to play around with. Um, let's see, I'll show a few more examples here. This is another sort of like um refractive example. This one is using instancing. And one cool feature is that you can instance L2G L2D geometry and vary these sort of refractive parameters per instance, which I might show a bit more later. Um, here's one like interactive drawing with global illumination. And here's that shows some more like experimental effects of the Monte Carlo render where you can bend the rays as you march through space and get watery type effects. So, um, now I want to explain basically what it is and how it works. Um, so as I mentioned earlier, there's three types of operators, geometry, lighting, render. And this is based on how um rendering usually works in touch designer. So the basic flow is that you define a geometry, you create a material for it, you optionally create some lights, and then you render it. And an L2D there are three different types of geometry. So the first one is just a basic shape generator. Oh. Uh, the second one is a top two that lets you take in any sort of texture and turn it into an L2D object. And then the third is a SOP 2 that lets you take in 3D objects and again turn them into L2D geometry. And um you can also add instancing on this tube. So this you can go pretty deep into like customizing all the different L2T L2D specific parameters per instance. And then yeah the material defines how it appears in the render. And there's different pages that correspond to these different render operators. So indirect lighting can control emission and stuff like reflection and refraction if you have um Monte Carlo rendering setup as well as dispersion um absorption too. you can get like colored glass and uh the cool thing is that all of these parameters can also be controlled via maps. So um I could like define a noise and add that as the IUR map and it will create different IUR at every point in space. It's a little subtle here but um fun to play around with. Um next I'll cover the renderers. So, Monte Carlo is really like the flagship renderer and um it is doing global illumination where at every point you shoot out a bunch of rays and take the average of what they hit. Um, and it is it can do a lot of like complex light transport effects like refraction and dispersion and these other things as well as um warping the rays which can get fun and experimental. Uh, radiance cascades is also a form of global illumination. Um, but it's just a different implementation. It was kind of recently developed. So, it's a really cool technique um that creates a more stable output and doesn't rely as much on temporal smoothing. You can see uh this one gets a little grainy. So, you often want to go into post and turn on temporal smoothing to basically dn noiseise that a bit. And then this third one is the uh direct operator. And this one, the the primary operator is these point lights that you can move around like more traditional lighting. So, that one's turned off, but I can go in here and move this point light around and cast these um soft shadows. And you can also like get area lights and and do object surface shading and stuff like this. And there's a couple more um light operators as well. You've got a distant light. So if I turn this on, this works in both sorts of operations and um yeah, creates sort of like a sun type effect from a distance. Um, and then the final type of light is this ambient light that will just add light throughout the scene. Um, like a sky. Um, one cool thing there is that you can input a color map. So you can create sort of like a sky gradient and get interesting effects there. Um, so yeah, I think that's that's kind of a basic rundown. Um, why I think this is interesting is that I think 2D lighting is a really cool paradigm in graphics. Um, because you're limiting the lighting to a single plane, you get these effects that are very particular and stylistic where you get very concrete um, volutric shadows around shapes and very yeah, very concrete global illumination that just looks very different than something you'd get in 3D. Um, and I think 2D lighting has shown up a lot in in games and game engines, but has been a little bit underrepresented in Touch Designer. So, I think it's exciting to have it as sort of like um a first class citizen of of operators you can use as if you were doing anything else. Um, how this was developed is for a while I was working on this global illumination component which is a standalone thing you may have seen. Um, and this just let you plug in anything and add the sort of Monte Carlo or radiance cascades effects. And I was developing this for a while and I started to feel this sort of friction because I wanted to add more functionality to it. I wanted to add it refraction and reflection, but there was no good way to specify that per object in the scene. I I played around with like putting in maps to control each of those parameters, but it just felt very clunky. So, I had this sort of epiphany of like, wait a minute, this should really become a modular system and it could end up um working a lot like this sort of rendering. And around that time, I reached out to uh Dan about this and it just the timing just happened to work out perfectly. He was like, "We've got a tool coming for you soon." So, um yeah, it it worked out really well with the introduction of TDFM and L2T that really coincided. So I'm grateful to these guys for developing such a great tool right when I needed it. Um, and yeah, so I think next I'll I'll do a little bit of behind the scenes about how this is working. So really the the core functionality here is all um array marching with SDS. So if you go inside um one of these render operators, they all are using a distance field. Um in this case I'm generating it via this um distance field operator which uses jump flooding but this is really like the core um functionality that makes this all possible is this jump flood SDF. Um, and then in terms of rendering it's all with these um custom JLSL shaders within here. Um, the way that the rendering works is that you can think of each of these geometry operators as basically a strct with a bunch of textures that define how it will be rendered. So, if you go inside here and go into outputs, each of these geometry operators is outputting all of these textures that define how it should appear at each um point in the frame. And those are a combination of um material properties from the yeah from the material as well as just like scene properties, color, distance, normals, ID, etc. Um, and then those are combined into larger textures to be more efficient to pass in. And then in the actual renderer, I'm basically taking in um all the different geometries and compositing all of their individual textures. So at in the end you just have one texture that defines like okay at each point how what is the IUR how refractive should it be and it um integrates all the information from all the different geometries in the scene and then in the actual um render operations in Monte Carlo you're just taking in these final um textures that combine all that data and passing it in. Um, but yeah, I think this this texturebased rendering is is really interesting and powerful because um because they're all textures, you can do things like really easily vary all of the um maps per pixel in a very intuitive way. It's not like you have to do UV mapping or anything. It's all just happening within screen space. So, it's very expressive and kind of like easy to work with in that way. Um, and yeah, looks like I'm at about 10 minutes. Uh, I think that's a decent overview. The last thing I just want to mention, one of my favorite features is this um surface shading of these objects where you can um basically add um this like faceted shading, which I just think is an interesting effect to be able to take global illumination and and add it to the actual surface shading. It's not something I've seen in other um yeah other global illumination shading systems. So that's kind of one of my favorite um L2D features and it works by um marching along the normal and sampling the global illumination value just outside the surface of the object. Um, so yeah uh lots more I could say but I think I'll I'll leave it there and yeah thanks everyone.

>> Thank you. Uh absolutely beautiful. I I love how unique these things look. Um, and yeah, can't wait to play more with these. Um, yeah, I wanted to ask you maybe to to just just show something of TDFM while you were sharing your screen. Um, the groups I wanted to just kind of point out how you organized.

>> Yeah. Let me pull it back up.

>> Yeah. Yeah. So uh within the TDFM create you can create this table called group mapping and this will define for um for each of these operators which group do they appear in within the um within the op menu and then you can set this um settings to sort within the group according to these custom values. Um, so

>> yeah, thanks. Yeah.

>> Yeah. Yeah, I want to say that yeah, this is a small family, but but I think it's still it's still an operator family um in the very raw meaning of it cuz these operators really can only um interface with each other. It's not like you can connect um any top to it or or or stuff like that except if it has a top input but um they really work together as as a group as a family. And um I think that's that's the main idea behind operator families that we will see maybe some families that are more achin to um collection of tools which are also fine. I just wanted to say this that it's a small one but still a very contained um family. Um, yeah, any any questions? I think there was a question on chat that I noted. Is this Nvidia only or does it work on on everything?

>> Uh it works on everything. Yeah, I've tested on my Mac and it's all good. Uh there's nothing Yeah, there's no sort of specific features. It's all just uh GL cell shaders, so it's pretty pretty portable.

>> Nice. Great. Um, yeah, if there's any questions from our guests, let us know. If not, we might move on and um have Luca on. Luka, are you here with us? Don't forget to unmute yourself. Um, I do not see him actually in the

>> I'm really typing with all the technical issues. Do you hear me?

>> Yeah, I I can hear you. Yeah.

>> Do you hear me at all?

>> Yeah, we do hear you.

>> Okay. So, I can share my screen.

>> Yep. Please do. Okay,

>> I'm also just looking for you in the Okay, screen is shared.

>> So,

>> wait. Um, can everybody hear Luca from the stream is my question because I there's so many people it's hard to find him. Yeah, he should be hearing. Uh, I think

>> Yeah, like all the tech stuff that could hit me probably hit me. So,

>> yeah, sweet. We can see and hear you. And I haven't Okay, you have a notification. All right. Uh the floor is yours.

>> Okay. Okay. Um, what can I say? Amazing. Thank you for this honor to have this session with you. Uh first of all, thanks to Dan and Lyel for making this amazing compatibility tool that allowed me to just make all of this compatible with the rest of creators and their operator families. So um, thanks also to amazing creators that we have uh because I took a lot of inspiration from T3D and Popex recently. I've been checking and I've been just including all the knowledge from the already touch designer masters uh to to um to have it here and also thank you for all the amazing guests from derivative because this is the most amazing piece of software that you created and I envisioned like um some things that were not native in software but you allowed me with components uh to build my own systems and just u just u yeah build all of the stuff and have all the necessary components to build build it. So without further ado, let's just dive in because I have to show I have four families to show and I've been a little ambitious about um turning all of my passionate hobbies into designer systems. So I come from background of music production um and I wanted to create fractals um for music and I also work as a street juggler all my life and mostly in Belgrade in Serbia but yeah uh so I've turned all of these things into operator systems for touch designer so last year I created a touch fractal component for touch designer and at one point I was wanted to update it but there was just too many components and turning it into a operator family really made sense. So let's get a small overview of what's going on. So these are FOPS and these are columns for fractals. These are transformations. So let's get one from each just to have a idea what's going on. And these are folds. And uh let's get very basic one box fold. So I have a fractal and as you can see this is a mix of texture tops and dots and comps. So this is a merge of these families. uh each fractal has is a like allowing to make like a local hybrid and how this works I can show you. So if I have a text this is the fractal code as you can see there is it says no transformation connected. So if I connect this to this input it will recompile the code and it will insert it inside here. This is the slots that it's expecting. So this is the most clean way I could design fractal system to have a optimized way and not to have too much code inside. So every low every transformation and every fold is piece of code that you can actually see very clear clearly and learn from it even. So all of the these are exactly shown as that and these are like local hybrids and now as I connected this I have all the parameters to additionally control the fractals. So each transformation has this blending parameter. So I have original position of in this case mandalo and I can just blend between this is very nice to use with audio reactive stuff and yeah stuff like that and you can pretty much of course expose see all the transformation happening. So this is a transformation example. Let's do a very basic box fold and it goes to the input which expects fold and how are they different in fractals you have like pre-transformation transform sorry pre-iteration iteration and post iteration so every transformation is applied to the whole fractal before iterating it and folds are applied at each iteration of the fractal. So you can set fractal iterations here and this is good example because now the scene is too big to introduce a render. So this is a render fop which is very similar to render top but it's actually only allowing fractals. So if you go to render and reference the fractal now I have render here and anyone that uses touch designer is familiar now with this workflow. I will get the camera and I might get the distant light. I will grab one point light. So now I'm connecting camera. I'm referencing to the camera that is expecting. And now I can just simply move with camera comp inside GLSL. So camera comp is a wrapper for GLSL camera that controls shader. And as you can see there is a wireframe box which is a kind of geometry orientation just to have a general idea where you are in space. So if I connect now for example light I can connect it here to light operator and that's and let's add one point light. So point light will do a code recompilation. So this is now recompiling. I really hope that this whole session is going to go well without technical issues because any recompilation is a tricky thing. also a point light which I can of course rotate I have all of these as wrappers. So it acts like hammer comps but but it's just pure GLSL shader in model way. So now I can connect something like pot tracer. Um if I there is a renderer that that expects this. And if I turn on the material reflection and stuff like that for some nice let me see like let's turn the specular a bit. You see I'm getting um I'm getting a part trace fractal. So as you know I'm if I play it but tracing is a little bit noisy by its nature it's using Monte Carlo algorithm same as Kyle's also and you have this temporal anti-alising to which works like magic for ending. If I enable all the noise disappears as you can see the difference if enabled and disabled. So you can use this with very few samples real time but it's mostly for offline rendering and I'm looking into Nvidia DLSS solutions and stuff um that are getting new to to improve the noise in general and also I've learned from the master uh uh Joseph that you can output compute shader which is a very interesting rendering technique. And then I have a kind of T3D compatibility which connected like that. And this one expects this. And now you have pretty much geometry fractal with all the all of these posed and parsed parsed like that. So yeah, pretty much and let me see. So now you can use this in standard render top workflow with the camera.

We lost your voice, Luka. But also wanted to say that um because you have four families to show the time is time is over for this family at least. I mean it's it's amazing. But maybe um we can get back to some other stuff later. I don't know if you can hear me because we cannot hear you. Oh, and he's gone. >> The sheer number of fam knocked out his mic. >> Yeah. Uh it flew flew into fractal land. The mic left us into other dimensions. I don't think he can also hear us because he had to um mute his his mic. So, that's kind of a funny situation that he's just blabbering on. Um if somebody can uh Yeah, maybe I should message him on on Discord. Maybe assist that Spyro, what's his name on Discord? Yeah. Okay. Um, Luka, we're very sorry we cannot hear you. This is live TV. This is how it works. Okay. I wish we Okay. Yeah, you should see the Discord. Cool. I think his his mic just muted. That's what happened. Okay. Uh in the meantime, are there any questions? Um, so far, uh there was a little bit of a discourse in the chat like what is what is a family or like why are these um families and these these operators or these these families they they they are families in the sense that they share information between their operators um that only mostly work with their own family. So in the case of um fractal operators as you as you saw um what's shared between the operators is that and standalone those are just pieces of code um but once they reach a conclusion in the renderer or in some other um operator um of fops then they make sense and and that's that's why this can constitute as really a family of its own similar to how rayk works or t3d um like with the with the 3D textures Where's O now? Okay. Sorry. Uh I think Luka is kind of back.

>> Does the elite all of the all of the things and let's get to the next one. Do uh okay, you see at least you hear me?

>> I'm doing a thumbs up. Do you hear me?

>> Yeah. Yeah, we hear you.

>> Cool. So,

>> that's u unfortunate. Let's just get things. Do you hear me at all? Because I cannot hear you at all. I really hope that. Let me see. I'm really apologizing about this. Okay. Okay. You hear me? Okay. Thank you. Uh that's important. I cannot. Okay. Uh let me see. Like I'm fighting all day with technical inconveniences, but yeah. Okay. I think that's fine. Let me see if I grab just tell me in the audio spectrum if I grab device out and do very basic let's see like this plate and if I do this oh I don't want to ruin your ears I will put a VCA which is a voltage control amplifier so let's get to Um um sorry the technical issues threw me off but I'm trying to get back. Okay so let's get back to swap and it's controlled voltage operators. Do you hear this now at all? Someone please let me know if if it's fine. Okay. So, how does it work? And as this is a pretty much VC system inside and I've been user of VC for a long time and you always start with a clock and there is a in this case a drummer which is kind of a drumming machine and you have like a preset for kicks and hats and stuff like that. Let's duplicate it so I cannot hear at all what I'm doing. This is ridiculous but let's just move with it. Um, so if I take a hat, I'm literally doing this um totally um without the sound. And um let's This is This is slightly um really close. I didn't know if someone should hop in before I get this technically right so I can show you properly. Uh

>> yeah, we we'll have we'll have

>> an alternative.

>> Yeah, we we have um

>> if maybe until I set these things up because there's a audio things.

>> All right, so Ysef uh you're next. Sorry guys about the technical issues. This is live TV.

>> Hello everyone. Can you hear me? Well,

>> okay. Perfect.

>> Let's just go with the Joseph.

>> Yeah. Okay.

>> Are you sharing your screen? Ysef is my

>> I think I am. Yeah.

>> Okay. We have that. Mhm. There's so many things to juggle here.

>> Let me know if you're when you're ready.

>> Yep, we are good to go.

>> Okay, so just a warm welcome to all of you. I'm so happy to have all these people interested in this tool. And most of all, I'm so glad that um Dan and Lyall went all the way and built this um yeah kind of ma meta tool for touch designer custom operator families. Um, and I think I I don't really want to show too much about T3D. I've maybe you've seen it anyway before and there's material already online. You can watch um tutorials and stuff and you'll see what it does. Um, here's just a quick demo. T3D is about 3D textures which were originally not really supported at all in touch design except for if you know how to write GLSL. Um, and I like while I was working on all kinds of stuff over the last years, I realized I'm touching on 3D textures over and over again. I'm building small GLSL snippets every now and then, but I always felt like this should be an like part of a designer. Um, and as Lyall said the and I think this is something I want to emphasize is at this touch designer round meetup in uh event in Berlin. This energy of all these people from our beautiful community coming together is also what made this all happen and possible. I was fiddling around with Lyall Torren Blanken Smith and Simon um Polyhop who were all actually staying at their place because their Airbnb was canceled I think and we just had these super active touch designer evenings and and sessions and we were kind of fiddling around to change the UI in touch design as Dan is always doing it a lot and and changing operator colors and stuff and at some point I yeah or we all I don't know actually how it came about had the realization that we can hack this in there and have the custom operator family installed and uh at that point I went on and built the first prototype of T3D hacked it all in there and um yeah that's history already. it happened now, but I'm so glad that Dan and Li took over and went beyond because uh what they built here is honestly amazing and I couldn't have done it because I don't have experience with this kind of system architecture. Um, it's amazing what you build out of this. And yeah, as I said, I don't want to go too deep into what T3D is really because you can find that online. I think I want to take this time on the stream actually to maybe give a big big shout out to both Lyall and Dan, but specifically Dan because he's kind of Lyall is also building this for his own sake or his own family of operators lops, but Dan is really doing this uh for the sake of having this tool um when he's not necessarily planning on creating his own operator family. So big shout out to Dan and this is going to be open source this tool. So if you feel like you want to support him, I'm just shouting out here. There's a Patreon where you can support Dan and and you probably should if you use any of his tools um which he's oftentimes releasing for free. So I just wanted to say that. And here's yeah, just a quick example of um some 3D texture stuff working. Um, and maybe maybe one thing to mention is by now um derivative thank you so much you went on and actually enable some of the regular tops to work with 3D textures which is amazing um and make stuff even even better than before. Uh, 3D textures are really interesting in combination with pops as you see here. So here I'm using um a 3D texture fluid that I'm rendering um as this um flower here, but I'm using that to also generate a mesh from the 3D texture to drive particles and then yeah have trails behind those particles. But uh T3D really works well together with other operator families, especially tops and pops right now. So I'm really happy um with how T3D evolved and it it feels like this um it's now kind of leaving my my hands and it's now growing beyond and I'm so happy that this is happening. Yeah, I think that's everything I want to share here. Um, I'm going to release my updated TCD which is going to be compatible with the other families um in the following hours I assume or maybe tomorrow. So So yeah, that's basically it. Thank you so much.

>> Thanks a lot for the shout out also, Joseph. Very kind of you. Um, yeah, it's also nice to see that um T3D kind of how it influenced um the vanilla touches designer experience when it comes to tops and um how much support now there is for um 3D textures in the regular tops. So that's also nice to see how it um yeah, had a major force. Um, yeah, very very nice. Thank you. Um, yeah, I think my somehow my link posting thing is broken and I cannot post the link of Fusef, but you all know his he's his parch. Um hopefully, but I'm just going to find it now.

>> Yeah, there you go. in terms of maybe stealing a couple seconds to talk about just TDF fam in general. There's like a one of the things that Dan really pushed and we like designed together. I mean so much of the development with Dan was just like us talking about maybe in a year what could be a possible compatibility issue. So it was a very there was like a lot of just interesting like discussions which was awesome. But um there is the families that are like the talks components that you'll be copied and put into your project and those copy a registry into the CIS of your project and that registry is the same tool but it's a different talks and there will be some updates to

That and not updates to the family, but the registry is now like a secondary layer that can keep this compatibility across different families as well. So, and I think I saw a question in the YouTube about what does compatible with other families mean? That means like if you drag off a from T3D, it'll be compatible with top or like lops with that and chops and stuff, and you can be compatible within the families as well.

But yeah, there will be some updates on like the registry, the TDF fam side that um might come. Maybe a new version of Touch Designer comes out. There's like some compatibility issues. So there's like a little bit of separation there where we can keep all the TD fans talking nice to each other.

Yeah, there was a question like compatible meaning what? Compatible, meaning that when you drag out an operator from from T3D, for example, um it seems that Ysef set up T3D as POP uh X compatible or not just pop compatible. Um so it will also show up as as a possible thing to put after. Of course, um this can be refined and will probably be refined. So it doesn't show all the operators that are compatible because, yeah, for example, in case of T3D or tops to pop, um it will it will only make sense for a top to pop uh scenario or something like that. Um so that's what we mean by compatibility um is really what what shows up when you open the copy create dialogue.

Um yeah, and might be a niche thing because there are T3Ds which output a top, a pop, but that's >> to be >> such >> I don't know >> uh the sprinkle >> sprinkle >> which can take in a shape defined by TCD and sprinkle into it like sprinkle points from there. Yeah, >> but it's like that one operator maybe it doesn't need to be compatible with the family.

You can you can actually define uh compatibility per operator. So this is something um we we already mentioned the manifest that is something that's inside each uh custom operator. Um and this is a a JSON and um on in the read me you can find yeah compatible types. I can define uh pops only for this one and also obviously T3D and then um from then on you don't have to define it for your whole family, just for certain operators um and that will that will work.

Amazing. That's what I meant when I said I'm happy that Dan and Lyall took over because this is next level with system building. Thank you. Yeah. And and what what also Lyall mentioned um was the FAM registry. So this is something that we install into the SLCS. Um yeah, something I wanted to mention um because this will come up this question and this has come up already.

Will the operators be there when you next open up Touch Designer um and because we are not replacing your UI. Not replacing anything in your installation, they will not be there by default. So you either have to every time you start your project file, drag in the operator families or what I suggest doing and that's what anyway I suggesting for people to do is create a custom startup file. So you can do that um if you go to file uh sorry edit preferences um and some my other screen um here in general you have startup file mode and here you can set a custom file. So you would basically um get all your families. I also have a lot of my own tools in my startup file. Um and then I save this file as something on my on my uh computer. Set it as custom file. Browse for my custom startup file. Um and then next time I open up Touch Designer um this file will be presented to me and does also the installed families. So that's the suggested workflow to to keep these families um in your Touch Designer installation so to speak. Um yeah, that was an important thing to cover.

Cool. Thank you Ysef and thanks also for the comments. Were there any questions um in the chat that I missed? I don't think so. Great. Um okay, next up we have you mini UV. Are you >> I'm here. Can you hear me? >> Let me Yeah. Let me put you on. >> I just need to figure everything out. >> Okay. Are you sharing your screen already? >> Yeah, I just did. >> Okay. Yeah. Gotcha. Okay. I think you might be good to go.

All right. Uh hello everyone. My name is Yuval, known more as Mini UV. Uh yeah, I'm going to present Popex. First of all, I want to thanks all of you to to be here and especially uh Don and Lyel for doing this amazing work. Uh I've I've been waiting for this for for a few months maybe maybe even one more one year uh since I since I started uh developing Poppex and also thanks to Joseph which uh basically he started the this kind of road for us I believe uh because originally uh when I developed Popex I I used uh is um code to kind of like integrate my family into Touch Designer.

So yeah, thank you so much. And yeah, so Popex basically uh it's an extension to to Pops. So when first Pops were introduced, I believe it was a year ago or maybe maybe even more, not sure. Um I started like diving in and finally, you know, you had a chance to to play with uh real geometry uh on the GPU and and manipulate geometry and do stuff that you couldn't do uh with subs or or just tops. And then I also started learning a bit Houdini actually and I came across this um other plug-in for Houdini which its name is MOPS which uh stands for motion operators and I thought like I I really love this workflow uh of mops in Houdini but I'm a Touch Designer user. So I I stopped learning because I really like Touch Designer and doing stuff in actual real time and and pushing it you know all the way. So this is how Popex came on.

So basically it's a it's Popex it's kind of like an ecosystem by itself where the the main workflow is to u generate any geometry with uh the generators over here and then you have fall-offs which are basically weights that you can define uh spatial weights on your geometry and the modifiers s basically are modifying your geometry. Um and they can also take a a fall-off as um kind of like um weight for how much they or where they are going to modify in in a spatial way. And there is also some extra tools over here um which are um one of them is the path tracer and uh a lot of other stuff that are related to the simulations also which are basically kind of like a standalone I would say um thing in Popex um which are basically just some solvers for example soft body or um particles uh or the flow which is fluid simulation.

But what I want to share today uh for you to get sense of what is Popex actually um is more about the workflow where you generate a geometry. For example, we have here an instancer and the instancer basically takes any geometry and it's distribute it's in uh any type that you choose. For example, I'm using here a sphere distribution and and what it does basically it creates um like kind of like a packed points which holds all the information on the um geometry. So it's mostly the position, the size, the orientation.

And to see it better, you can see I have uh a POPEX visualized frame here. And you can see here on the viewer that basically it's showing each of the instances from the instancer it's local orientation and And to get the sense of um more about this, I'm connecting a uh transform modifier. Let me just visualize it. So I'm connecting a transform modifier after the insensor. And when I'm going to rotate it on the x-axis for example, you can see that uh the instances are basically rotating um on their local orientation. And same for translation and scaling and everything which is it's a very simple kind of like you know there isn't such a complex stuff over here but to did to do this without uh like with without Popex you will need to kind of like build a more complex system where you compute some vectors or matrices and stuff and with Popex the the whole idea is to drop in two nodes and and you can kind of like animate uh your instances or any other geometry.

So just to demonstrate u a falloff for example I have a shape falloff over here which internally use it's using like the f field pop which some extra features. So here it's like a linear um fall-off and where where we where I'm coloring the fall-off. So you can see that where we are blue uh it's like a zero and where we are white we are one. So then um if I do the same um transformation, you can see that the the fall-off is um working on it. And I can also kind of like move the the fall off around um which makes it very nice to have kind of like more um I would say procedural animations. And you can also stack more U modifiers. For example, the new one from the last version that I just released is the filter. So it kind of like makes a much more smooth um spatial filtering. And um I have a spring over here for example which kind of makes the same in a different way.

And um yeah, so that's the like the basics of it. And just to show you a quick example of another um generator which is the explode. So the explode for example, it creates uh a packed points over here. So the output is always like just the points itself with all the um attributes. And you can split for example your um your mesh into um kind of like uh clusters. So maybe if I scale them down a bit. And then you can basically do the same thing with just um each of the those clusters is kind of like a Popex geometry I call it. It's a a packed Popex geometry. And also in the light latest version I upper braided it to actually use a voronoi structure. So it gets much more smoother uh pieces uh which is which is really nice. And um yeah I think this is it. I will show you just some quick examples that I have here. For example, the soft body and uh which uh basically I'm using here the path tracer. So I don't know if you can see the noisy edges over here. Um so this is using entirely Popex the soft body. Another example is um another soft body simulation which is basically using a string constraint and I've made a a tutorial about it. So you can check it out on my YouTube. So it's basically kind of like a string that are attached into a a moving um body over here and using the soft body they are kind of like acting as hairs or whatever.

And we have here another example of the path tracer which just demonstrating some nice classy materials. Yeah. So, this is Popex and um you can go to my Patreon or watch some tutorials on YouTube. I am currently thinking of like stopping developing because I'm constantly developing new stuff and I'm going to now focus on more actual tutorials to um you know to make people learn learn about those tools. So yeah, stay tuned. There going to be a lot of tutorials uh very soon. Thank you.

Amazing. Thank you. The path racer looks insane. Does Whoa. What is happening with my screen layout? There's a lot of things that should not be there. Oh, yeah. Okay. So, yeah, that's what happened. Luca came back up, right? Yeah. So, we will continue with with Luca for now. Um it will show us uh jobs.

Do you hear me? We hear you briefly maybe. Try now. Okay. Yeah, better. I apologize for all the technical issues, but let's continue further. I hope. Um so these are I think it fits nicely uh next to Popex because uh juggling operators for dogs are uh just um motion operators also. So I'm a juggler. So this these are uh the tricks uh operators are actually juggling tricks uh mainly. And I think this fits uh vibe of uh Oh, I see the stream is slightly laggy, but let's deal with it. Uh and then let's uh grab just uh two tricks uh two juggling tricks. And uh there is a very interesting methods to to to do this. And uh now I can for example take one ball from first trick and then I can take uh two balls from other trick and for example pattern and this is uh is a tool to invent new juggling tricks and I'm extremely happy about that because I'm uh uh playing around and learning new methods to to um just uh do this and learn about more tricks. So this is the uh kind of a way where where you could blend two tricks into another one. So it outputs a chop info which is uh as you can see you have a ball position x y uh uh each one you have also uh um some for example if I connect it like this directly uh I I have a sides swap number uh which is a just juggling notation uh that can be used very easily as a index. You can see that uh these two balls that so if I I I found a very nice method to to to just get this to pops. So if I go to sphere pop for example uh I have these balls uh in pops in 3D geometry. So this is I envisioned this to use this as a motion pattern uh where on the places where you would like to have a sphere pop for example. And if I for example get to um like something like a copy and uh very fast do like a few hop copies and uh you can you can easily see what will uh happen. Um and here you have a juggling trick which creates this amazing uh beautiful pattern. And yeah, it's um very easily to get from this point. So my my idea was to use this when you would like to grab an LFO, for example, you could go to job and just grab a juggling brick. Which uh and I'm sure jugglers are very excited about this. For people that don't juggle, it's maybe uh a bit uh different, but anyone who juggles really understands how amazing this is because uh it actually uh fits uh in my opinion very nicely um the whole vibe of Touch Designer and even a logo of Touch Designer and derivative is three balls. So it's I I think it kind of fits the picture very well. So this is like chop to uh pop and you can get also these to for example subs and now I have a sub geometry which I can for example uh let's do a noise and as you can see I have now kind of juggling potatoes uh and if you connect for example something like trail you can get very nice uh for example, op viewer uh you can get very nice u easily uh pattern geometry that you could use uh in your network. So there is um there is also like a sequencer uh which I'm improving on but for example you could sequence uh different tricks so I can take Mills mass this is um very standardized uh tricks from the juggling and uh yeah, let's take maybe um something let's go columns easily and um I can sequence one trick after the other. You can add some type of smoothing and everything. And uh I'm improving on this switching. But uh this way you could pretty much uh get motion inside Touch Designer in a very easy way. And I'm uh connecting this compatibility to USB mainly as a sequence for the for the like music. It's very interesting to use these as sequencers because it kind of you can map this to anything. If you have chop info that and and this it's really easy to map it to anything and I'm happy to explore this with OPEX also. We just saw amazing uh showcase by Minuv as always this um so I'm happy to explore what I can do with the pops. And yeah pretty much about jogging operators. I'd say this is a very short introduction. I want to just mention because uh these are two audio families and let's hope audio serves me well. But I have two families uh for audio and I think both make sense in Touch Designer. Like if you take a CVOP this is just as I told you VR inside art designer. I'm a huge lover of modular synthesizers and it kind of makes sense because I have an LFO which is uh like this and if you take chop LFO you can uh you can see how it if I go like analyze you get the same thing but but it just uh happens differently. So to visualize something like this it's I I think these give very nice visualization uh also like uh CVOPs let's let's try to get it work uh so as any model network you start with a clock so I have a clock that is taking some kind of beat and I want to get it to to run something and this is this is kind of drum thing that you could uh have some presets and let's see if I grab this and if I gate input and if I play it I have a very interesting already um I see this very fit very well inside of touch design because you could use this to to get it for example to pops if you get chop too and if you bring something uh like this uh to pop. Oops. What did Oh, I need a null. Sorry. Let's get null chop. And if I grab something like this, uh, and just change the attribute because it's not vector tree. You have something like this. Um uh very easily okay and as you can see okay I don't know what happened uh again so my okay we are back so this now you can again use with I mean I just love uh copy pop um that's Um it's incredible way to get very fast interesting results if you know what values to variet. I kind of have a slight orientation about it. So yeah, just uh easy visuals uh from uh audio signal like this. And if we try to make this work and get the sound out. Let's uh let's give it a go. audio device out and I will put VC A which stands for vol control amplifier. So all of these are voltage controlled oscillator filter and stuff like that. So you could grab something like that and get it to the sound. So I have no idea. Are we getting any sound? I think not. Um, let me see. Oh uh not not because of that. Okay. So this is just a kick. Um for example, if I uh duplicate this, if I change clock to some more division, you have sound. So I don't hear sound, but I'm going to do it like totally like in my mind. how it should work. But let's let's see. Oops. I apologize on that. So, oh, it wasn't connected. So, it's fine. Uh, so I have a hat. Let's say I will also add the VCA uh which controls the amplifi is just uh some how loud it is. And again uh correct uh and I have something uh like that going on already. So to keep things uh slightly uh to not break my PC, I will just bypass this for now just to give another u another u example. and for example if I take uh multiplication like I did from here and get it to something like sequencer uh I can now use uh sequence throws which I can randomize. So I have no idea what's playing but let's just deal with it. row row one because I'm on the tab of row one. It's just voltages and I've used random voltages. And let's get this to quantizer to get some notes. And I can choose like notes uh like this. Let's say and maybe again get this to VCA um just to control it uh and use proper input and just get uh out audio device out. I I'm stopping this but I'll just a second. So now what comes useful is something like keyboarding and I can just grab this and maybe uh use randomize rows and map it so I can easily um just uh switch buttons. And I have no idea what's up. I hope you're in um okay give me a second. Let's get all of these out for now. So as I press buttons, you should be hearing sound which changes based on these patterns. I'm not sure what do you hear. I hope everything is fine. So th this was uh this was a very short introduction to and I'm going to just rush through the strudel because uh we don't have much time. How it works is you spawn a strudel master and what it does this is also a strudel coding language that I turned into a operator system. So what it does it turn it spawns the Okay, we're done. So, seems like I got lost connection. Yeah. So, thank you for watching. If you're hearing this still, thank you for everyone because I will need some time to get my PC back. So, cheers.

All right. Thanks, Luka. It's good that we got to hear something at least. Uh, yeah. You still hear me? Yeah, we hear you. your your screen is gone. That's the only thing. I I just sorry we had we had electricity cut in my village and this [ __ ] this just happened. So again, thank you everyone for for for checking this uh and I will uh I will uh definitely share the systems very soon and I'm very thankful for this opportunity. So cheers. Yeah, check out Luca's Patreon and and everything else for future updates and videos on these, I guess. Um, yeah. Were there any questions? Not really. I don't think so. We could quickly move on because we're also kind of running out of time soon. Well, at least the scheduled time. So, we still have uh coming up um well, actually, yeah, we have Lake coming next with gosh split operators. Then we have uh Ethan Metform coming with um blocks I believe and then Edwin with MCX and then finally Lyall with Lops uh finishing us off. So, yeah, let's get Lake up here. Lake Lake.

Okay, can you hear me? Yep. Can you hear me? All right. All right, cool. Okay. You're good to go. Cool. Uh yes. So, GOPs are Gaus and splot operators. I've been working a lot on gausian splat pipeline um toolkit for myself and it was already kind of getting out of control and the functionality was way too much for a single component. So, I was moving in this direction and then I was talking to Lyall at one of the touch designer meetups in New York like a couple months ago and he was like, "Oh, we're doing this thing with the operator families." I was like, "Oh, I never thought about turning this into an operator family." And here we are. So I'm happy to be able to share it with everyone.

Um, basically the operating pipeline is going to start with a either particle system splat or a static splat. And so we have both of those here. These are both like generators and so they are the very beginning of the whole pipeline. And one very important thing is that they take um a render top as an input because every splat pipeline is camera and viewpoint specific. So it needs an association with a render top and a camera to be able to go through a lot of the operations.

Um, so I'm going to talk about a few of the kind of like cool stuff that I have built out for the operator family. But first just like a really high level um structure of what we have. So again, for the the IO, it's really just loading in a static splat or creating a particle system out of the splat. That was kind of the core of my first version component. And so we're keeping those, but then adding a lot of this other functionality, which is way more exciting. So things like adection, interacting with 3Dector, that sort of thing. lots of different editing, adding normals, bounding boxes, using a histogram to be able to address different attributes. And importantly, any of those changes can be saved by writing out to a splat file. And then you can load that back in. And so it's finally kind of taking out um one step in the iteration process, needing to use like an external splat editor like Super Splat to do cleanup and stuff like that. So eventually I'll be adding more kind of like splat pre-processing tools to this as well. Um, but for the time being I'm focusing on the animation side of things and the render side of things which is what I'm going to be spending most of the time for this little demo talking about.

Um, so we have over here our viewer and like I said there's the static version which still allows you to switch between splats very easily. you can load them based on sequential parameters. Uh, one cool thing that I've been working a lot on is also a really nice easy way to actually map and change your viewpoints of splats and then um, be able to have these viewpoints pre-transform the splats themselves so that it's a much more intuitive kind of like homing process and figuring out where you are than um, just like using a transform pop and clicking and dragging. And then the particle side is very similar in the sense that there are um, you can load n different splats as many as your GPU memory can handle. I'm already a little bit over there with my GPU memory. Um, but the cool thing here is that we're able to actually mix between the different splats in real time. And that's like an any to any sort of mix. And so the particle system aspect really makes that possible. and then gives you a bunch of other stuff like distorting and dispersing the splat itself, adding some cool post-processing in the background and yeah, just kind of like all the stuff you would want to do with a particle system. Um, but being able to do that with any splat and then again actually transition from one splat to another super easily.

Also, as part of this, I've created uh like this control panel component where you can actually be able to see your real-time render and adjust. I think I just broke something there. Um, adjust a little bit easier. And then finally in our uh render. So all of the splats are compatible with the other gops of course and then pops because they are just pops under the hood. So one thing that this means is that you can really easily add something like a regular feedback loop. Um, because I wanted to make sure that this was going to be compatible with whatever other workflow anybody's using Touch Designer with and not kind of like having an opinionated framework that makes other people use my setup. Um, so if I let's just put in like a really light twist and then we start this feedback loop. See, you could do this with noise instead of a twist. There's a ton of different things that you could do. And the point here is that these are operators that make working with splats easier. But then you can use regular Touch Designer kind of workflow along with everything else. And so that really is pretty powerful, I think, and I'm sure will provide a lot of areas for exploration once people start to be able to use this. And so, uh, where I guess we'll end is the splat pipeline terminates in this splat geometry, which is a geo with a render material inside of it. And so, this is actually what's going to be rendered in the render top. And what's great about that is it means you can copy and paste this and render different versions of different splats uh with different rendering parameters really easily without needing to kill your GPU memory and reload a bunch like the same splat multiple times. Uh, so that's really handy and something that I found myself touching quite a bit.

Couple different highlights on the render side of things. You got like all the normal parameters like splat size. Um, but there are some other good stuff that I really am excited to talk about. One of them is this bokeh, which is great. It allows you to set a strength and a focal length and kind of scan through your scene really nicely. You can apply some additional parameters like this to kind of make it more like a um uncovering or depth slicing of the scene, which is also pretty cool. We can also use a texture input to be able to do the same thing here. Um, and we can combine that with another texture input which actually determines whether or not we're rendering splat alpha or color and can compress the depth of field in the splats. And so these techniques can be added together. And here I just have two little rectangles that are animated. One of them is controlling the bokeh and the other is controlling the alpha as examples. So here is just the alpha kind of like a x-ray type of effect and um, yeah the bokeh we'll turn those off. Uh, we also have touch designer lighting. So we have splat relighting. Finally this is using this light and if we change the color to like blue or purple or whatever you can see that's changing the render in real time. This light is just animating ever so slightly. You can also do things like color correction. Um, which I guess I'll kind of mess right now. Yeah, color correction for the splats. And one of the other things that I really like is a chroma key. So you can actually select in the um panel viewer and then use that selection to chroma key your splat which is also kind of fun interactively because if I go back here you can kind of like by clicking iteratively like get yourself into some cool path dependent chroma key looks and so I've been experimenting with that having a lot of fun all of these are flaggable and then I have some quantization as kind of like a final fun part of the render. So, last thing that I have is this refractive pass that I have as a add-on. Um, this will just take in any pop and allow you to refract through your scene as just like a nice bonus. So, I think that's a pretty good highle overview of everything. I'm very excited to get this out there and see what others can create using the pipeline and the framework. And also thank you to TDF fam guys for making this possible and actually like enjoyable to to work on developing.

Great. Thanks. Like this is super cool. I'm very excited for this. Um, I think yeah, based on the chat reactions the relighting was a good highlight that people were like whoa >> that's that's very sick. >> Uh good to hear >> support Lake over his Patreon. Um, okay cool. We are getting close to the end. Um, yeah, at the end I I would also like to ask some questions to derivative and we will hear some comments from them hopefully about the future of operator families and packages and all that. So uh thanks to them also for sticking around and hope everybody's enjoying the stream so far. Uh next up we have uh Ethan Metform coming up with blocks.

Hey guys, how's it going? Hey, >> you hear me? Sweet. >> Hear you and see you. >> Cool. >> Well, hey, thank you so much guys again for like many have said, just putting the time and effort into this. It's really funny because I was needing it very badly, but then I had not um started and then it was super timely because I got invited in here and was like, "Oh, wow. Now I have a lot of catching up to do." Um, so a lot of these are more of a road map than they are necessarily fully operational. Um, but what I've done is I've created an operator called blocks. Um, also by the way, sorry, I'm Ethan from Matterform. We uh do a lot of uh physical interactive and immersive installations. So, a big thing with our stuff is uh interoperability and workflow automation because typically it's working with items that already exist and then integrating them into a space. So, that's a big reason why we created blocks. So, I'll show you guys blocks.

Um, here's the pallet right here. So we have lots of different things. Um, the primary categories are content, IO, interactive, inputs and sorry outputs and utility. And content is for creating content. Um IO is for managing things coming in and out of the computer. Interactive is sort of like internal tools for uh effects and systems to do like blob tracking, 3D, any sort of tracking stuff. um also rendering those tracking systems. Those will probably get folded in uh into just like a tracker or a sensor. Um, and then additionally, outputs. Outputs are really important because I think that's a thing that people uh prep a system for an install, let's say, and then the big issue is is you get there and then getting it on the screen becomes annoying. So, uh Oh, nice. That's awesome. Um, so, then also utilities. These are a big big big one. So these are kind of like my internal tools that I'm deciding would be much better to be outside for everybody to have. Um, and the big ones are autoc calibration. So we have systems for autoc calibrating uh let's say the orbeck for example. So it does a lookout point. You can click on the on that lookout point and then it'll automatically figure out based on bearing angles precisely where it is in that space. So if you can create a ground truth on the ground, then you have an automation system for all of your sensors honing in finding that point. Um, the advantage of this type of workflow is that we're looking at this from like a long-term standpoint. So it's how do we create something that is easy to build but also very easy to maintain and manage. Um, and creating blocks is helpful because blocks are able to It's funny the auto chat was saying butt like 30 times. the uh the addition of this allows you to then manage things with little standards to remember instead of one gigantic system.

Um, so let's see see S2 I'm not sure if that was regarding to LAR but let me show you guys kind of some of the expected compatible platforms and how we're going to work. Oh, sorry. The rest of the utility stuff. This one is grayed out. Um, and that is because TDGTF is a paid um license system that we're releasing that we're very excited about. I'll be showing you that in a little bit. Um, but that's a huge software um that works inside of this. This is aimed at creating uh components that are actually very easy to manage and maintain. Um, so think of this as something that would like be used for building tours or sphere style shows where you have a bunch of render nodes that need to manage things. So that's the use case for this.

Um, in practice, um, we would do something kind of like this. I think I'm likely going to go with interconnected wires just to create a workflow. Um, but they can kind of all exist. So that's the the main advantage here. So we take something like the sensor, grab a LAR sensor. or we could choose from the existing ones and that list will grow. Um, and we'll take slam for example. We then render the slam tech, put it into a blob tracker. It would then use um my preferred methods and what I've found to be the most, you know, consistent on site and it would like refine the contrast. Then it would use a filter top to then manage uh filter top is a smoothe over time. So it's a time interpolator. Uh, we can then threshold through time. So we can actually trim um clicks down to like if it's a button hold or versus if it's just noise that people are um, you know, let's say there's sensor noise or people are just tapping randomly and you don't want those to trigger. Um, then we'll downscale put into a blob tracker ship that off and then we can then do logic based on that using the output here. Oops. And that would also then have a uh a cousin node that would then be able to interpolate that into like a UI click for example. Um, then we could also do stuff like create particles whatever. Uh, then for outputs this is really important. So you can see my whole render of my screen capture here. So if I go to create an output uh this let's say I have a drop-own menu system for everything that looks at what your hardware is. Um, and we're gonna throw this on my Ino view. And then we're going to open that as a separate monitor. And as you can see, that's opening that there. So now what we're going to do is we're going to shoot it over to Samsung. And now it's moved it over with the test pattern. So this would then have a linked window operator. Um, this window operator acts as kind of like a landing zone uh for another system and that is a router. So this router allows us to then choose all of the outputs in our system, choose all the inputs in our system and then route from A to B. Um, is also dynamic so you can scale as you need to. Um, and this is really important because as we create a system, we want it to be able to patch and be managed remotely. And we'll be getting to that in a second with TDGTF. Um, we also have switchers. These are cool. You can do either direct uh links of the uh wires or you can also use selects and then you can set them directly via pulse for example. Um, and then other than that we also have things like effects. So we have libraries for effects um where there's like a gallery. Oops. Sorry one above here has it. Um, for example in here we just have a simple media player. Um, this will have generalized helpful tools for just like, hey, I want to load a library of these clips. Please play them in order. Or play them randomly. Then we have like an effects gallery where we can drop down and choose from different effects that are going to be pre-built into here. Um, and then the main goal of this is that we now have a comp component here that has parameters. So eventually there'll be a promotion system where then once you've created your little network of things, you can then choose with a promote button to then put it up onto the destination target component with all of the links. So this is huge for then creating a single talk file which then could be used on a show um to be managed very easily. So that is kind of the general overview. Um, we've got a bunch of operators in here. Um, there's some projection automation stuff and a bunch of cool little things.

Um, now importantly, let's talk about TDGDTF really quick. So I'm going to try to run through this, but what this is is this is actually a web-based system for managing your block and your comps. So what this does is this actually can look through your network. So we're going to go in, we're going to grab blocks. We're going to find what is this guy? my show. I think it's here we go in there. And this is also a one one of your network which is kind of fun. Um, here I'll search for it is my show. So, we're going to choose this as our fixture. And then we move through here. We can then grab parameters. And you know, this isn't looking like it's going to work really well in here. Um, but I'm going to be releasing tutorial videos and example videos of this as advertising soon. Um, but essentially, we can then go through and manage and create a system for then patching and managing that as a DMX system. Um, so the goal with TDGTF and with other softwares are going to be coming out for us are that we want to create things that people can integrate into existing pipelines like um live tours for example are a big one. We want to make something that people can come in with confidence and also the tour manager and the LD and all the other people who are going to be working with you feel comfortable with your workflow. So, it's not a question of like, hey, we're really feeling on the edge about this. We'll try it out. It's like, hey, this competes with disguise, Pixera, H, you know, Hippo, all the other media servers. So, uh, this workflow will be a paid platform in the future, um, with a licensebased system and, uh, very excited about that. There's a whole licensing system. So, this this guy can't be, uh, copy and pasted or spammed. But, yeah, this is kind of a general overview of blocks. Um, the other uh operator family that I'm planning on making as well is up here. And these are just all of our general uh like super super help kind of assists that are like hey managing measurements between positions or like auto menu which is a really handy one for creating those drop downs automatically or auto timer which does scripts based on boots and delays or document uh which is a documentation assist. So that can like be fed to a LLM and then autocreate documentation for your toxes. Um, things like that. So yeah, this is a general overview kind of blocks as a workflow. Um, but overall these will essentially just act as like little op snippets that are really tried and true and tested uh in advance. So yeah, thank you guys for uh having me on. I appreciate time.

Thank you Ethan. Um, >> yeah, >> I have to have to throw in a little anecdote here cuz uh Ethan has just recently become a dad. Um, so he's been really pushing pushing for this and it's it's really funny because internally in our group we have been calling the um developers daddies uh of the families. Um, and yeah, there's there's actually two real daddies in here. I think uh at least >> Yeah. And uh it's also funny because yeah, we wish we wish we could have mummies also. So like if there's any fam TD fam mommies out there, don't don't hide that are looking for for mommies or something like that. Um, okay, >> we need all the help we can get. >> Yeah. >> Yeah. >> Uh cool. >> Thanks, Dan. >> Thank you for the presentation. Really, really pro stuff. Um, yeah, GDTF I think will be really uh interesting uh for those working with lights and all that. Um, yeah, next up we have Edwin Alagast. Are you here with us?

Yes. Are you hearing me? Yes, we can hear you. Okay. Do you see my screen? Mhm. We can test your audio also, I guess, because Admin is also sharing an audio family. Yeah. Let me check you something. Yeah. Yeah, you're good to go.

Okay, cool. Okay. Uh, okay. So, hi everybody. Uh, I'm Edi. I am guitarist and teacher musician based in Italy. Um, I think nobody know me because I was around in touch designer since 2017 but I have worked a lot in the high school and public school. But uh when I discover some uh this some weeks ago that Luca and Dan and are making this amazing families. I try to contact and thank you for having me uh this night because I try to develop for touch designer this family that as you can see is um hmed for audio and multi- channelannel audio. I come up with this idea after some uh lesson in high school where the student um don't properly understand well pure data maxim and I found that touch designer which is the sign of viewing u the waves could be a nice um environment to teach music also I was inspired by Maxp multi- channelannel paradigma. So I try to replicate inside in touch design. As you can see I use of course the TD farm but this I have hacked a little because my operators are within C++. So I try to make something really really easy to uh install these plugins. You just drop the folder where I share the plugins. uh you push the p that install automatically in the folder. You see that I'm using a Mac a macros. I'm trying to porting so in Windows ecosystem and uh of course these plugins as you can see I hope you you see in the custom tab but with this that I did inside the defam I was able to register and uh you don't see anymore here and all the operators stand here and as you can see my operators try to make the audio system set designer

Using the classic paradigma of generator filters f and emble generator utility that uh I talk about how I handled all this stuff inside Touch Designer. And this two beast is where I started because the third March, um, there was the 303 acid uh day. So I tried to make that inside Touch Designer.

Now I want to try the thing because I want that you see. >> Um, you >> you should share your whole screen, not just Touch Designer, because uh the OP create dialog cannot be seen if you share only the Touch uh application. >> Okay. >> Yeah. >> Okay. >> Thanks for for pointing it out. >> Okay. I go around. Uh, you can see this. You can see my hands. >> Yeah. Yeah. Yeah. We just don't see the OP create the thing we don't see. >> Ah, okay. Okay. I go to I let you hear something. Okay. And uh here you can see you can see my acid operator. I just let you hear what this does. You have heard something, I hope. Uh, so okay. Okay.

So uh just to a little uh brief of what this uh does. You can see the OP. Okay. This parameter, you can see that is a C++ uh C++ plug-in. So we have some parameters integrated. And um, basically, why I started to develop this thing? Because uh here you can see I use four pixels which um uh three uh with all the three colors, but each color is a parameter that controls each instancing like the J instancing of one voice. So my idea was to control each voice independently and find a system that was able to uh control a lot of parameters in real time.

And uh to explain better this stuff, I have prepared this because if somebody of you have tried to work with audio inside Touch Designer knows this that you can make many channels you want. For instance, for this audio sh you can change the pitch independently. But sometimes I'm now asked why I can't change the amplitude. To do this, you have to make maybe a m with some other operation and do this along. Another problem that I come uh with this system is that maybe I want to control each uh voice independently and uh maybe I don't know, I want the first voice is a sign, the second voice is a Gaussian, the third voice is a triangle. The only way that I know uh to do this is using a Python script. But uh this is not u this kills my group because I can't write the Python script to make music. I need um using like a MI a MIDI controller and change uh every parame parameters.

So uh this is my M6 oscillator. You can see that uh uh this operator has a lot of functionalities. I started to develop this two months ago. And uh for instance, if I want to change the pitch of this oscillator, I can use this operator to say, okay, I want to change pitch. I I write the pitch. I change and you can see that is the same functionality of before. But let's say that I want instantiate now for voices. I just up this and now I have four voices that I can control independently. As before, I said, okay, I want to change the amplitude. How we can do here is super simple because you just say, okay, I want to change them and now uh this uh iterate other four channels that is paired with the suffix and now I can change the amplitude of each one. But this is not out because I want to change the waveform. So how can do I have to change these parameters? But you can see there is a lot and uh sometimes I forget how call them. So I try to do this stuff where each operator can have some info where you can see uh clearly which are the name of parameters that you can change. So I see here that is waveform. So I try I call this waveform. And now if I go to my slot C, I can change each waveform independently as you can see. Oh.

Okay. So this is uh the first step having uh all these par all these operators that can understand this language. And the second big problem is that in Touch Designer you don't have um a consistent way to communicate with audio operators because each one has some particularities that uh don't share the same architecture. So I try to uh make this top using this mode. Uh, to explain this, you can see this uh the suffix are the channels numbered. So I can uh maybe make this stuff, I don't know, to control uh the pitch of each voice of oscillator maybe 1,000 and then I want to do the same for the amplitude. Where is the problem here? The problem is that okay, I have a lot of channels, but I can't understand very well because there are a Right.

So, uh also you can see that it's all the same because LFO needs some randomization and this is where I was inspired by MaxP to distribute them. So, you can see that already this for me is a visual and this is the way why I like to see the sound inside Touch Designer because you can see uh straight uh you. So this is the first type of the data. You have the second type of data that in my opinion is the instance uh friendly uh the way where uh you have you say this the pitch are the parameters that I want control. Each sample is the instancing of oscillator. So here you can see clearly uh what kind of data you are controlling and you see that you can um having a lot of parameters without lost your mind. And another thing that I really, really like about this system is that uh of course, I told this for the audio, but you can uh mangle the data. For instance, I have done this wave folder. This is a classic effect from uh synthesizer, but you can mangle um the data using the wave folding. So here I call this array. And now if I restart the animation, uh yes, and now I skip up the fold. You can see that you can fold in your data.

So my idea is uh creating a system that shares uh the logic of audio, but you can use also to make uh some mangling of your data. And this for instance, you can uh translate like uh a chop. Maybe I make this fit square and now you can see some pattern maybe so not so defined, but this operator is optimized to work with a lot of channels. If I try again, you can see that now I start to have some pattern part interesting that you can uh mangle. Okay.

So this is the the the main idea of this operator to list. And so my example, I have prepared this some maybe I'm out of time. I hope to do faster just to let you see here something. Okay. Um, for instance, we have the sampler. Everyone know what is a sampler and everybody know this uh sample. Okay. Now here I can change um for instance the the pitch and uh I can change here. I make some algorithm that keeps the time but changes the pitch. And if you want, you can have multiple voices. And this is super easy to do because uh the system is uh harmonized to understand the type of data you put inside.

Another example that I want to show you is something that I shared recently on Instagram. This is a stress test uh about how can handle this operator uh between the native audio. Here I have uh texture with 64 by 64 pixels. So we have 4,096 samples. I hope that doesn't crash. So uh just for the sake of demonstration, you can see that I have 40,096 samples. Okay, maybe with the screen share this goes doesn't go below this uh rate, but you can see it's uh it's uh really okay. Now I try to do the same. We have uh this time, try to do the same with the native one and you see that value is much, much bigger. What does this mean? It means that uh maybe in a much better scenario that is not this because I'm sharing with you the screen, but you can see that I'm still in 30 FPS. I can make the sound mapping each pixel for each oscillator. I would try to let you hear this sample.

So, uh I stop here because I have out of time already, but I hope that you understand what I have done. Uh, if you are curious, uh follow me on Patreon because there is where I share my developments. Thank you. >> Thank you, Edwin. Beautiful. That was especially the was just uh yeah, I could listen to that for ages for sure. And also people love your accent and your voice. Um, so yeah, keep uh keep on making videos, I guess. >> And podcasts. >> Um, cool. Great. Thank you very much. Uh, we have our final presenter, Lyall, with Lops here. Yes. >> Great. >> So my Yeah. Just going to throw this out there. My screen share is only letting me select the window. So, you won't be able to see the app create dialogue, which is just too bad. >> Um, because I do have I mean, yeah, I have open up. >> Yeah, screen grab. >> True. True. >> And just uh >> or just do a screen grab of your window. >> I think this this is better. Like just right click on the >> Yeah, you're right. Right there. >> Yeah, >> you can right click on the whole window. Yeah. >> Or I'll just zoom in here because it it'll have a window. Okay. But yeah, we got we got some Lops. So, I mean, I I originally posted the I guess alpha version. Um, I have not posted anything beyond the alpha version. I haven't posted a Lops update since September. There is likely going to be coming one within the next couple hours. Um, and there also is a dev version on Discord that some people have been testing and having good results with. So that's feeling good to get on Patreon. But yeah, so if anyone has been familiar or familiar with what Lops are initially, I wanted to bring kind of playing with um agents and tools and seeing how they can interact with the Touch Designer runtime live in Touch Designer about uh a year and a half ago. I did a presentation in DATL, I guess almost like over a year ago now, and it was crazy to look at the video because I think Lops had like 20 operators and almost all of them were these modifiers that basically just um adjust like this basic uh table format. So there's like a it all kind of started with this idea that I could break the role, the message, the ID, the timestamp into a table in Touch becomes like almost a DAT format, if you will, and then you can manipulate that in the UI network. The simplest way was like, all right, cool. The agent gets a table. Maybe you would add a message, which I'm not going to do that now because that'll take too long. And then you call the agent. This evolved into a toolset of a handful of Touch Designer-based tool operators. Um, connects to any sort of LLM in any provider through a library called light LLM. And yeah, so it existed like this for a while. It was almost my like play play area for integrating some of these more confusing, almost like new tech things like engineering with LLMs. What does a tool mean? How like what does the system prompt control versus like a tool definition versus your input prompt? And now Lops has kind of changed a little bit. I would say it's almost it's more positioned not necessarily as a like, oh, AI in Touch or just LLMs in Touch. I'm thinking of it as a uh it has an LLM framework, but it is also a general logic and complex module authoring system. Um, so we'll get there in a minute, but there's a lot of Lops now in the new set, which I think it's like 90 or so um components, maybe 80 custom operators, but many of them you can have you or your agents um writing modules to expand, build your own Lops, build any sort of Lop and integrate with the system. But I'm going to try to go through all of these little bases that I prepared. So like one of the basic ideas is this agent operator. There's a bunch of parameter pages. There are three types of agents. Also, there's agent, a voice agent, which gets mic in, mic out, or audio out. Then there's a Claude code agent, which connects to Claude code CLI directly, but it all controls from Touch Designer. I have more coming out soon that I don't need to talk about, but um, they will all generally take this shape. So there's like the first page, which is like the IO. Second page is model configuration. Third page is your tools. Then you have skills, which if you're familiar with skills with Claude, uh, like Anthropic's Claude model, this kind of takes after that, but it also adds the idea of dynamic skills. So you can write Python that does either even executes things in your network or dynamic gathers context for the model. I have a profile system, which basically just sets all the parameters for the models, but they're composable, so you can like stack the profiles. Um, oh, don't mind me finding a bug. Um, this is one reason why the Discord talks has an underscore dev. There's going to be a Patreon Patreon one posted later today without that little naming caveat. But then if you like this agent is connected to three tools: TD code, which is basically just Python execute tool runtime is actually not included. Um, so maybe not the best to have in this example, but it's a super simple small tool where the model can write its own live runtime API live. So it basically um defines what it wants to do and then it writes a module that it can call later. And earlier in this example, it created itself a todo tracker so that then that is a tool that is in the runtime module. That's too complicated to explain. Tool that edits stats, but then I can, oh, I can maybe undo that. In the agent, there's also persistent session now, but I can clear the session, call the thing and ask, can you check my project for errors? And it scanned the project. It's now saying that I have zero errors because this is a nice and clean project. And you can see it called this TD network uh module grabbing the errors and it got zero error counts.

Moving on to a different type of agent, this is like the voice agent, which I also didn't enable audio, but you see like a little mic in. I can hit connect and I can say, "Hello, what's up?" Hopefully this works. >> All right. >> I'm going to disconnect from that voice agent. But the voice agent similarly, um, kind of your IO, your model configuration, you also have playback, but tools, skills, profiles, callbacks, um, life cycle, life cycle, but you don't actually have to think about that because all of these are cloud providers. Voice agent. Also, you can use Grok, Gemini, OpenAI, or Hume. Um, I would say a little less powerful potentially as far as the tool calling, but I'm going to have some example projects and some demos where you can have the voice agent be like a trigger pops up. It knows about like kind of what you're working on. It can uh adjust and update expressions potentially. Um, I think I've seen a lot of or I'll get to that in a second. This is another one that's um, kind of a larger, a larger setup in a network, but it uses the speech to text and the text to speech flop, which are also generalized. Previously, I had a bunch of different providers in these operators. Now, each one of them come with different providers. And when you change this, it actually updates what parameters are available on the second page. So also just having fun with um crazy Touch Designer parameter management and dynamic updating. All of these providers, you can link a custom provider profile folder. So, I will be releasing guides on the API that you need to write for this, but right now, like as soon as I release it, you'll be able to author your own providers for speech to text and text to speech through this general interface as well. But this setup also has the voice activity, which has I'm just listing features, um, echo cancellation. So, this is a fully local. Won't connect to the cloud if you don't want it. If you have a local model, I don't have it selected here. But if I put in a custom server, then this can become a fully isolated, not connected to the internet, uh, voice-to-voice loop instead of using like the voice agent that's built in. But you can build these parts out of the smaller parts in Lops. Um, another thing that I've seen a lot of people doing with uh, like LLM or like cloud code or codex in Lops is connecting that through to Touch Designer via via some sort of MCP portal. So I have that also in Lops and similarly, this is kind of a module layer thing where you can author your own servers. Um, so the MCP client is basically the thing that connects to the servers externally and it exposes the tools as tools to Lops agents. Then the MCP server, you can write um Touch Designer Python code with the same fast MCP um tool uh shorthand stuff that they have, and that is something that the uh LLMs are very familiar with now. So it bridges the gap and this becomes this makes MCPs authorable as well, and then you manage the runtime here. This can connect to external agents or it can connect to um Lops can also use the tool manager as a wrapper to wrap more Lops tools to MCP servers externally or to Lops agents. This is, I it might make sense for some people, but if you want to even take the MCP server, create your own MCP server, expose that, wrap it in the tool manager, and then expose all of those tools together as a single MCP server to an external agent. You do that with the tool manager, and you can even route external MCP servers through the MCP client, through the tool manager, into an MCP server that connects to code. So lots of stuff there. The flow system is a state state machine system that has a flow controller, which is like you set up your steps, flow router, which can take a table code or um these like just input phrases or a chop, and um, yeah, state machines. There's more to show there, but I'm not going to talk too much. Agent swarms. You can run an agent that is in control of these two other agents. This is just a simple test where it's basically saying, make sure the agents can say hey back, and they did. Um, status swarm complete. >> Sorry, Lyall. Um, we'll have to maybe cut you off a bit earlier. Needs to leave and >> would like to get some uh comments from them and and stuff like that. So >> no, I mean >> we can we can we can circle back as at the end as the like uh free form ending. Um, I think a lot of people want to see more Lops. >> Yeah, that also pretty much actually covers covers all the stuff. >> But yeah, >> I will be releasing much more uh information and short short videos soon. >> Great. Amazing. I mean, I've I've been kind of following Lops development because we chat quite often with Ly and we always end up talking about what he's working on also, and I'm just always always amazed um by the stuff. So, >> I'm very I'm I'm It's not maybe the best um, but I'm very good at working hard and not marketing myself. So, yeah. >> Same same, brother. Uh, all right. Uh, yeah, thanks a lot and this have been all the TD fam families for now. Um, I hope more more are coming and yeah, I also wanted to uh since we have uh some Derivative people here to get their idea on it or how they look at TDFam and going forward maybe with uh like in the five minutes that we have um where they see this kind of evolving and developing and how they see custom operator families be integrated to the native experience. We have uh Jarrett here and Marcus already left I think and Greg and Isabelle. >> Hey guys, sorry, I was just trying to find the unmute button. >> Can you guys hear me? >> Yeah. >> Um, yeah, thanks for showing us um all this amazing work. Quite mind-blowing. Uh, and yeah, I was excited the first uh time I saw what Joseph had done with um with T3D and and uh it's I'm not surprised it's now proliferated like this, that technique. Um, on our side um, we've known about this problem, which is that people want to be able to create their own um systems and um I think we're all used to working like this with Python and things like that, and that's done through a package manager. Um, and we're working on a package system. Um, and I can't even predict when it's going to come out um publicly. So, so hopefully this will um, this kind of architecture that you guys have developed will at least tide us over till then. And then in the future, you know, how op families um, how these things are sort of communicated to the users, it's not clear. So I think this will certainly be an inspiration for the future um, where you can have everyone can have different sorts of families um, that are connecting together. It's interesting, some of these systems are components still, others are actually uh C++ operators, which I thought was quite interesting as well. Um, we, you know, technically an op in Touch Designer is a C++ um single operator, but uh, so yeah, I mean, uh, otherwise, other than just saying that the package manager is a thing is coming out, um, the main thing, the main objectives it's trying to to support is the ability to upgrade um or to add Python um dependencies, which I don't think any of these packages I saw depend on any external Python dependencies. Um, and so we're trying to deal with that. >> Probably does. >> It does. Or some of them do. >> Yeah, I'm using some external Python stuff. >> Okay, cool. Nice. >> So, you've you've figured out how to deal with that on your own. Um, >> yeah, I do it all through UV and it isolates and puts itself after the TDIS. So, um, you guys still get precedent in that, and then I get to deal with it. But it's been really smooth, actually. Um, >> yeah, UV is pretty great. Agreed. >> I've got a little bit of it, but it's just like text like modules basically, like like deep embedded into the tool itself, which can get clunky. So that'd be really nice to have the p the package manager. >> Yeah. And then the other thing connected to package manager is obviously we want to be able to update um things. Is there an update pathway, Dan, that you thought through >> as far as like version one, version two? If somebody's deployed at >> an OP in their file already, >> what's the pathway to upgrade to version two? Um, when it comes to like major versions, we were thinking about some ways to to like gate certain things. Um, but when it comes to also the whole update mechanism as far as operators, we don't give a mechanism to update remotely operators. But when it comes to the registry, uh, we do it from GitHub. Um, yeah. Mhm. And then for the individual families, there's the op comp where you can embed them in your project. Then the op folder. So like with Lops, I have like my own R2 bucket sign-in thing and I can launch individual updates that can be downloaded to the op folder. And we have logic and TDFam to match and take the highest version. So if you download a talks version 2.0.0 or 2.0.0, it'll be version 1.0.0 in your op comp. So there is full family up update via TDFam and then also like almost per OP update based on that version. Cool. Yeah. So, yeah, I think that's the main sort of thing. Those are the the two relevant things that we're working on to um that will make this sort of workflow better. And then certainly I, you know, the UI system, the ability to just get at operators directly instead of having to go on the pallet. I completely get that as well. So um, um, yeah, it's uh very inspiring and uh looks like a a whole new world ahead of us. So, um, that's it for me. I don't know if Greg wants to say anything else. Greg's audio is not working. >> Dan, I think you did it earlier. >> Yeah. Oh, it's muted. >> Yeah. >> I don't know if you guys can hear me, but >> yeah. Can can hear you. And the the sirens. >> Are there sirens in Toronto right now behind you guys? Sounded like I we heard we heard um Isabelle for a second. Um >> I think you might have muted Greg manually. >> No, no, I'm I'm definitely unmuting. >> He's also jumping in and out constantly, so I'm not sure. Can hear me. I'll just hear you. Greg is having a lot of difficulty uh joining with sound. Greg, Greg, you can come use you can come and use my screen. >> I can't. Yeah, you're >> I do a lot of tech support, guys, in case you haven't figured that out yet. >> For sure. >> How about now? >> We can hear you through through Isabelle. The TD stream toolkit coming out next. >> Yeah, it's not a bad idea. >> Okay, let's see. >> Okay. >> Yeah, >> cool together. Um, first of all, I want to thank you guys for >> first of all, recognizing um long delay, first of all, recognizing that that there's this kind of organization problem that um started occurring people when people started making their own their own um component groups and and stuff. So, um, in your natural way of trying to organize things, Dan, uh, you you pulled it all together with Lyle. So, I really appreciate you doing that for the for the community. And also, I really want to thank all all the contributors of the families like you really blew my mind with some of the things you've done um to to extend Touch way beyond what the basics give you. So it was really amazing to see uh your your your vision and extending stuff from there. Um, do you have any questions other questions of us? Um, >> sorry, >> not not not us. Well, not not me specifically because we've talked about this. We have some tickets for Derivative which um we have sent over. Um, so we will we will communicate about that. I don't know about the um that is if they have any questions right now or >> actually I have a question back back for you guys. >> Um >> for a user, a new user, how are what's the entry point to realizing that this toolset exists and the user experience of deciding the first family you want to adopt? How's what's that sequence look like? Um, in terms of like using TDF um, I think we showed in the beginning, it's it's very easy, but maybe I'll question >> yeah, no, I can I think one of the I mean, one of the most basic uses could be if you just have a folder of operators. I mean, potentially even if you didn't make them all yourself, but they're just your go-to things, like your pallet folder and dropping that in like my go-to fam. That's probably too long of a name. Just saying. But, um, dropping that in as like u my fam or something and then just having that in your OP create dialogue could be like the like basic user. I think the way we've thought about it is maybe not necessarily discovering TDFam and then thinking, how am I going to build a family? It's very much kind of for the developers here to feel like they if they have an idea, they don't have to think about authoring all of the logic to insert this into Touch, and then they can just hit the ground running. And then there's a couple things like with we have like built-in keyboard shortcuts and we have like a single keyboard in execute that looks and you can write your own callback scripts for little simple keyboard shortcuts. So there's like extensions and callbacks and these little methods that also can inspire the developers to go much farther than like inventing that stack themselves. So, as a a new user that's never that is choosing TD T3D as the first >> thing that they've ever used and they don't even know about um TD Fam per se, they just go to to Joseph's um Patreon, they get T3D, they're if they follow those instructions, they're immediately going to be using TD Fam without per se knowing. Is that right? And that's kind of the entryway. >> Okay. >> And then the second time they go to to um somebody else's it that you've just made that seamless. So the next op family will plop in if they follow those instructions um from from that set. >> Yeah. As long I mean, there is obvious I think there are a lot of or not maybe a lot, but there's a handful of other people that are have released tools and might be doing certain things like modifying the base install of Touch. Our component is designed to insert itself at runtime and be fully like play really nicely with your base install of Touch. So they're um part of that is then to handle all of that conflict layer for people. So a user that is like, oh, I have Touch Designer installed, I want to install five different families. >> Then they don't have to think about at all or worry about their Touch Designer installation breaking or having any issues from that. >> And then I like a question idea about it. It'll almost be kind of like the the community factor of like what you guys already do by like running the community page could be like a way to discover existing op families and stuff like that. Um, so that way it doesn't turn into like a million side sidebar conversations, but there's kind of like a highlight of like this has been proven because obviously you guys built a tool that's provable like this has been proven as trusted and also like this developer is cool and we'd like to show their work. That might be like a method for like discovery on top of the existing thing. And obviously there's paywalls and not paywalls mixed in with that. But I think it could be kind of a cool like discovery base for it. >> Yeah, we >> where you experience that is a question. I don't know. >> Well, that's yeah, >> that is kind of the interesting part about how we've separated TDFam create like the talks that the developers drop into their project and then inside that has the registry. The registry is a kind of a separate release on GitHub and it will auto update for the users. So there we don't have exact plans. The plan is to keep everything extremely forwards backwards compatible too. But there could be routes where the registry then ships with a registry of known families and maybe even just like download links for them, not even managing the download for you. But this Yeah. >> Yeah. So, a lot of this sounds familiar with packages and the what we're >> doing right now. Um, >> which I also don't necessarily want to journey into the land of package management because that is a whole another >> thing. Just yeah, I mean Dan and I like the uh updates and stubs. There were so many discussions about like what gets updated versus what gets stubbed, when is this useful and what could be backwards compatibility issues. But like adding the package manager side on top of that is a whole another layer of like us responsibly like >> I think that leaning on UV for the Python part of it, I think is is >> completely acceptable for now, right? Once I realized that I could take UV and then have multiple virtual environments that share the same packages, >> but they're isolated and then they all have UV sync files. >> Like with Lops, I have this sidecar system. So anything that imports torch or does anything >> run in a subprocess. So it runs out of Touch in an isolated um sidecar and I ship with basically I just ship with like five UV sync files and then when the user wants to run them, it UV syncs and it creates a virtual environment. That it's wild >> that's working a lot too. I agree. >> I think also, sorry, when it comes to like the updates and packages and um, like people were asking in the in the chat like a store like something where where you can find TD families and like buy them and things like this. Also, why we didn't start going down this road and like we didn't like yeah, dipped our toes into this too much. It's because we know that at one point Derivative is going to come up with something. Uh, I mean, the package manager, we already knew is something that's coming and everything that comes with the package manager would be then handled kind of natively. So I think that's also just to answer some questions also on the in the chat. >> Yeah. Yeah. It's it's yeah, you've relieved some pressure um um I think for for um allowing the community to kind of start building. We've we've always envisioned a workflow like this and I think it just never really manifested until I think this is going to really crystallize things and make people realize that they can make a compatible set of components that do things right and um and you guys have, you know, it's amazing, just this organizational shift is all that was kind of needed to to uh maybe make people realize, oh, this is a way I can work. I mean, immediately when I was looking at your the component and I put it down just today. Um, I was like, "Oh, well, I'm going to immediately make my set of ops just for myself." Even though I don't even plan to to to release it, but just I have a bunch of things that I always have lying around, certainly in the pallet and stuff like that that I would just >> move over there, right? So, I Yeah. So, I think it's I think it's great, but yeah, I hopefully like this was just a crossfade. I think it's going to be a crossfade to the package manager and the future and all that. So um uh this effort might have its own legs forever, right? Um, it might just wrap the package manager and um in some way or another over time. Who knows, right? So >> for sure. >> Yeah. And I think I mean, just in general, like the way that people learn, I mean, learn Touch Designer or the approach at it, a lot of it's through tutorials where it's flat networks. Um, which isn't bad. It's a very good way to like learn how data flows and touch, >> but like being presented with like a set of parameter-facing UIs that then tie together and then just even figuring out how those tools work together is a tutorial in itself. And this is like packaging information in a different way. And like, I mean, I'm bad at releasing video tutorials, but I think I'm pretty good at making parameter UIs. So, some a lot of people have done crazy things with Lops and I'm like, "Oh my god, how'd you do that?" I'm I guess you figured it out through the operators themselves. >> Um, >> right. Yeah, that's that's dope when that happens. Yeah, >> I think there's Yeah, I'm not saying I'm not going to release tutorials because my parameter UIs are just that great. They're not. But, um, >> I think it's a fair point, though. And also it forces >> if everyone's working this way, it forces good style, which is that >> you don't really want to know what's going on inside everyone's components, right? You just want to know that it works well at the top level. Um, and therefore the stuff on the inside is also um open to be changed by the developer, right? >> And improved, optimized. I mean, so many of my discussions with Dan, like we've known each other, been chatting about TD tooling for like three years, but like so much of it is just sharing little extension tricks or little wacky UI things or little discoveries about Touch. So like yeah, these techniques and stuff I think surface in like complex studio workflows, internal pipelines, like people are sharing these things in Touch Designer, but not necessarily as like releasing them as toolkits or as general workflows. Um, so yeah, I mean, the best examples have been like the Pops examples and stuff where people put together the like almost pallet style or snippet style like super projects, and that's really cool to see. But yeah, this is a definitely a different packaging method. >> Yeah, it's a level it's a level up um from from really organized projects because it's components that other people can use, right? Um, and they're, you know, in the longer term, it needs to be easy for people to update them and know that their versions have changed and all that stuff, but that's what we're going to figure out over the next uh, two years for sure. So, we're we're all stepping in the same direction together here. So, >> I have a little question. Um, something we've been talking about in the like chat around these families is like how to properly license these things. And think about like whether to lock the components or you know, basically how how do you work with sharing these open tools and I guess that's a broader question for any sort of release, but I'm curious if you guys have thoughts about that and how that'll work with the potential package manager. >> Yeah, it's a there's I mean, there it depends on the circumstance. There's a wide array of things. I think it's just best to express what those are. Um, you can lock your component. Sure. Now people can't look at your network. Um, that works for a lot of things. It doesn't work in cases where um it's being used by other people in the field often because they're like, if I can't get in there and fix something, then I can't unless they know that they can trust it. I know a lot of places >> in the professional world that won't use lock components. Um, and I get that. Um, uh, so licensing is a thing. Uh, opens you have the same. So once you unlock the component and you're licensing it, you can refer to GitHub and all the licensing schemes that exist there are for GitHub um in the open source community. Um, that you have the same issues there. Um, and so I think I would just defer to to to that world for for licensing. Um, at the other end, there there are there are opportunities that you can create um a code meter license for your system, right? So if you want to do that, if you really getting serious about your op set, your tool set, and you really want to protect it properly, uh, I think just reach out to us and there's there's avenues to protect things using. You could add a, for example, you can add a code directly to the code meter dongle that works with Touch Designer, Notch, all of those guys, and guys all use that same code meter dongle. Um, so that's an avenue as well. Um, and you can do your own research on that if you just look at code meter, um, the website, code meter for that. Um, third is um, is obviously figure out your own licensing circumstance, which there's opportunities there. There are solutions out there. So you can look, you can um, just, you know, work with a AI agent on that maybe um to see what's out there. Um, yeah. So, and then the other one that I thought was really cool um was uh um the fact that sorry uh um um Alagast, the the last presentation was C++ operators, and that's another way um, which is becoming more a reality, I think um, uh, that that people will be maybe maybe some of these are prototype types for future C++ operators. That's a great way to protect your stuff. So, because a lot of this is business logic, right? And you're working through, you know, you're a professional working in the field and you're you're really tuning an architecture um and you're hardening it, and then it's becoming components, and then it's so stable that you can release it to the public. Um, and then it's almost becoming um, uh, more and more rigid, and then you can start to think about things like that as well. Um, hardening things into C++ is is a real opportunity, I think. So that's a big spectrum of different opportunities there for protection. Yeah, I've been thinking about C++ operators and how they how they hide the business logic and and all the IP um, and that's how kind of a unique way to to look at tool building also and and even translating some Python-based logic into C++ for that reason. Um, yeah, especially now with all the all the LLM stuff coming out, um, people want to want to re want to yeah, close a little bit more their their uh logic and not put it out for anyone to scrape. Um >> yeah, I think that's the tragedy of this, you know, the new world that we live in that we didn't ask for. Um, but nevertheless, we have to pay attention and accept what it is, is that it's going to be, you know, I think this community was kind of driving in a more share-oriented mentality. Um >> and um, I think that it's just, I mean, Google doesn't let their staff write papers anymore, right? So like it's just everything's going to become more and more closed up. But um, I don't know, we got to find the balance somewhere. But Um, >> it's interesting that it'll be like here's a closed licensed system, but then the how we use it is open. So, there's like a small barrier of entry fee. But then, for instance, like PopX has like amazing multiple tutorial examples where people are like from all over using it, but then the barrier of entry fee is like $5 for example, which is kind of funny. Um, I think it's great that we're in that world, but it's also all kind of leaning on trust on the uh, the average Joe to like be a good person and to like not just transfer files to each other. So, the licensing thing is a very interesting circle. And that with TDGTF, the tool I was showing earlier, like that's a huge factor for us because it's an expiry basis where it's like you have 30 days, you have 90, 365. Um, and because you're paying for the time it's being used, not necessarily owning it, those big question to it. So, yeah, it's like something that I don't think there is a right answer for because you can't say there's like a right answer on how to use Touch Designer. >> Um, >> yeah, >> somewhat. I mean, I'm sure you guys all have opinions and I think that's a good thing. Like, we all should, but um, yeah, it's an interesting thing where it's like if it was too closed, it might be useless to some people. Um, I was curious in general, like how do we avoid a world where we go down similar paths but have just slight differences where it's like as developers, while you guys are developing a software where we actually like kind of split in a bad way potentially, like we want to align well, integrate well. What are your thoughts on that? >> Yeah, I worry about that all constantly. Um, >> I bet >> and I Yeah, bifurcation is the right sort of word to kind of describe the concern. Uh, this is this is a good example of of a potential bifurcation. Um, I like how it's kind of centrally located and I like that we're communicating right now about this and I like the fact that you guys are okay with the package manager coming and that you guys were already aware of that and so I think a lot of that is communication, right? Um, I also notice when we're developing things, we take a long time to do them. Um, and as we go, we'll incrementally release and tune Touch Designer so that it's more aligned with that possibility. And then the closer we get to that possibility, our users are like, "Okay, like we can I'm going to get there tomorrow or like in the next month or two," and they'll get there quicker. Um, and so we kind of manifest that to a certain degree, right? You manifest that. But so so then it is really a lot of it is about communication. Um, and also not trying on our end, we try not to do too much. We try not to get too fancy and try to keep things down to the metal as much as possible without kind of getting, you know.

too oriented towards different paradigms and user interface and stuff. I, you know, we're a small company, so, um, that's sort of, >> you can't like out nerd 100 thousand nerds like it's impossible. >> We'll try. Yeah, people. Yeah. And that's why this is inspiring to see that you got like everyone has their own interests and like that really to let that breathe well, um, is is key.

I mean, um, you know, you guys kind of take make our life easier when there's huge industries that you guys are like opening up for TouchDesigner, um, and both in rendering and in in in ML and and all this stuff and different techniques. So, um, yeah, I we we need to stay focused. I, I do. I think at Derivative, we look at our tool as a very as a tuned small nucleus, um, and and then focus on the things that really matter. Like if we if we, if there is, I it seems like there's a little bit of a, we should probably be paying a little bit more attention to some more stepping off points for in the spectrum of licenseability. That's kind of what I think I'm taking away here, where like, you know, we we know we can lock components. Sure. Okay. Fine. Yes, you can make C++ operators. Okay. What are the other ways that we can protect our IP but still maintain an open, um, environment for people to kind of use these these nodes?

Um, um, I think that's great. So, and I think it's cool that TouchDesigner now we're thinking of TouchDesigner as making ops itself. It's like, Touch, Touch making ops. Sure, there are components, but but like that's that's the workflow, like the being able to collapse things back down and continue on. It's, uh, it's an infinite thing, right? So, building on top of each other. So, um, I don't know. Sorry, I'm rambling now, but, um, >> that's really helpful. It's interesting. >> Yeah.

I think in one of our, not super initial, but just a recent conversation we had a short little call with Greg and a couple other people, but he was he was like, I don't know if they're families because technically like TouchDesigner already has f and, um, and it was a good point, but it is >> yeah, I mean, they are like groups of components, I think, but, um, >> yeah, it's probably more like concentric circle circles, right? It's it's more like we know that there's the operators that are made in C++ um by Derivative. And I would say that that's probably the central circle. And then there's things that we haven't seen enough of. I think I thought we would have seen more over the years is C++ community-based C++ operators, which we which we saw a little bit of today. Then but that but it but that core nucleus is what in C++ right? And I think that that still that ball of engineering still exists and, um, um, it's real. And then and then there's there's this other layer, which I think you guys have exposed better than we did, which is that people want to create families of operators themselves, either for themselves, for for their companies, for their personal selves, for their companies, and for sharing and for selling and so on, right? And so like that's the big change today is, um, that we're admitting that that's a real workflow and that we should really kind of think hard about how to keep that moment to to keep the momentum going in that in the right direction. Sure, we're making packet advantage going to get better. Sure. Okay. Let's get better licensing capabilities. um, um, let's make sure that this isn't confusing for people. Let's like you said, bifurcation and like let's let's let's not let this become confusing, right? Um, and and I don't know what we need to do to ensure that, but we can tune it over time, right? So, um, and up updatability and management for users is critical of critical importance, but that again, like I said, our package manager, it needs to be able to enable you guys to do that. So, yeah.

And like, I mean, yeah, we're looking forward to also the communication side of it and like you're almost saying like iterating live for you in what like how families that are user-authored could work and how they would fit. Um, yeah, the reason to say they >> bring generalize it was both because it was necessary because anyone that dropped T3D into Lops would delete Lops, but also >> um, just because like Dan and I talked and was like, "Oh, this is actually it's kind of a cool like engineering question >> and let's like get let's get dirty for a little bit." And >> I think a lot of it was was was that it was it wasn't necessarily out of necessity that we did a lot of the features. I mean, in the end, they became necess necessary, uh, if we look at it back now. >> But as we were doing it, we were a little bit more like, can we actually solve this? Uh, is is this going to be useful? Probably maybe, but, um, if if we saw a point of generalization, then we just went for it, um, because for sure it's going to be useful in the future for somebody at some point. >> Yeah. Absolutely. And I, it's good. I I'm glad. I'm happy to hear that you used some restraint with how far deep you went with it. You didn't get too far into like, for example, store stuff or or um, massive websites with user interfaces and stuff. So >> yeah, I mean, it's yeah, it's not a marketplace. Uh, it's a framework to >> yeah, for the for the developers like that are on the call here >> and the viewers watching to make their own stuff and >> release their own tool sets. I will say there also is, uh, just like licensing, it's Apache 2.0, but there's a little notice, just want to throw that out there that we do want some just simple attribution on project pages if you use it, but that's about it. Um, but yeah, it is a free and open-source thing available now on GitHub for people to use.

Great. Well, this has been really, uh, interesting the conversation and, yeah, um, there were some comments, uh, in in YouTube that we should do this more often and, yeah, definitely it would be nice to have more of these, uh, discussions going on. I think they're really important when it comes to how the community is going and where it's heading and where the world is heading and, um, that these channels are kept open, uh, in in in a software where it's all for me, it's all about the community, like I wouldn't be doing this if if the community wasn't as such, um, and there are some shifts happening and, yeah, we need to we need to kind of keep together and then put our heads together how we can maintain the the state that we like, or maybe it's not the right state, maybe it's an evolution thing, but, yeah, from my side, I I really value the the openness and that you can just go into anybody's operator and kind of, um, get some ideas from them. Not steal ideas, obviously, but you can learn a lot from looking at other people's components. That's how I learned a lot of my Python extension stuff from looking at, uh, Alpha Moonbase tools, um, from Olib and and all these and, yeah, just kind of going through GitHub and finding all the repos, and that's a big part of learning, um, and, yeah, it's it's it would be kind of a shame to to lose this, uh, this learning path. Yeah.

Uh, all right. Uh, I think we can conclude here soon, but I have also my five minutes of fame. >> Yeah, we got to get Dan. Dan's been building. >> Please full screen yourself, Dan. >> Really cool stuff. >> I'll do that. >> Um, so I just want to show what kind of community community projects I've been working on and also what kind of non-community projects I've been working on. Um, and why you might want to, um, join my Patreon, if you will. Um, am I? Wait, I want to do screen share. Yes. So, um, yeah, a lot of stuff that I release, um, are free and open source also because I I love the idea of being able to do that. But of course, it takes a lot of time to also to to develop these things. So always I, uh, I welcome, uh, Patreon, uh, support from all over the place. There's even, um, a supporter tier where if you, um, appreciate the free and open source tools, you can do a smaller donation. But I also have a lot of, um, exclusive stuff as well, um, that you can check out on my Patreon. The links are there. And I just wanted to share some things that that I'm kind of excited about. Um, something that's coming up is Value Letter. Uh, it's a website that I've been working on, and it's a community project. It's fully fully for the community, um, from the community. Um, so the point of this is, I'm getting a lot of times the question from beginners and even friends and peers, um, how much they should charge for certain projects, and it's always, it's always not, it's never a simple, uh, simple answer, obviously, um, this can change from situation to situation, but to kind of help people, um, navigate in this world, especially beginners, um, I'm started this project together with my friend Linda from from Berlin, um, and I just kept on building and building on top of this idea that we should have a centralized kind of price database and project, um, database where everything is anonymized. Um, of course, that's a big part of this, but at the end, we would end up with a database of, um, projects and their descriptions. Um, so you could browse through what other people are charging. Um, and also the, a big part of it, uh, is the estimation. That's when when we get enough data from the community, we will be able to build some algorithms that can provide estimations for your upcoming projects using, um, using just data analysis algorithms, let's say, but as well as AI assisted, uh, an analysis of the upcoming projects and the previous projects in the database. So this is something I'm very passionate about, and I hope, um, this can grow into into well, I would say like a union. Of course, it's that's a pretty strong word, but, um, yeah, I I wish for, I wish for a unionized world in a way. So you can read the read the mission. Uh, you can already check out value.com. Um, yeah, this will this will surface more in the future. Uh, we just need people to to submit projects. So if you're somebody, uh, who's already a professional and and even not a professional, want to submit projects, you can already do so at value.com. Um, so far this is, uh, closed. So you cannot you cannot see the database until we have enough submissions, and the estimation then will be a later point where we get enough data and can fine-tune the estimation algorithm for all of our benefits. Um, so this is something of a utopian dream, maybe to to to align on on these these questions, but if you don't try them, we will never know if this is possible. Um, so that's that's something I wanted to show. Uh, in general, my my my GitHub page is is a is full of, um, free and open source stuff. Um, function store tools is one of them. Um, this has been a project that I've been working on for the past three years, I think now, um, is an extra toolbar in TouchDesigner with a lot of extra features. So, yeah, maybe maybe check that out if you have not done so. Um, and, yeah, as I said, my Patreon has a lot of exclusive stuff also, and more will come. Um, I'm working on something that's called TDMAP, uh, which is going to be a generalized MIDI mapping tool with a lot of features other than outside of MIDI mapping. So, um, it will be something to for sure, uh, look out for. Um, and also wanted to mention, uh, because it also ties in here, the, um, VSN1 from INTEC. This is has been my go-to controller, um, for for the past, uh, five months now. I've developed an integration for this, and if I get the right page, um, I can also show you, um, INTEC pages. Something. Yes. Um, yeah, there's there's this website where you can check out this integration for me. This has, um, supercharged my TD workflow when building stuff, and also when working on installations. So, yeah, um, do check this out. Um, just wanted to put this out there. But yeah, a generalized version of this also comes, um, soon to my Patreon, and I think that's all the things that I wanted to say. Um, thanks for everyone for being here. It's been it's been really, really lovely, and, um, I'm very inspired by all the things that we've seen today and all the discussions, and I think I think we're on a we're on a very nice path as a community also to tackle some issues that we that we have in front of us, and, yeah, we we shall prevail, I think. Um, yeah, that's that's been the stream. Thanks for thanks to everybody for joining and, yeah, for chatting. It's been great to have you all and subscribe also to the channel so we can maybe do this a little bit more often. Um, yeah, go fam. Go TD fam. And, yeah, make make more fams. >> All right. >> Yeah. >> Was great. >> Thanks, guys. >> Cool. >> Very much. >> Thanks, Ted. It's awesome. Bye. >> Bye. Cheers. >> Okay. See you guys. >> Yeah. Bye. Bye. Bye.