 I hope everybody understands me well first the little disclaimer I'm not the person who coded this what I'm gonna show you so I'm not the person who created open chatting language I'm just a user and I like it and the reason why I'm presenting here is because I hope that similar systems might end up in other programs as well like there are a lot of other Libre graphics programs and I guess a nice plug-in system with a nice coding syntax that helps to get contributions from artists is pretty sure something that would benefit quite a lot of programs first I got a more question who in the audience is an artist okay who's a coder who is both okay quite a few well I'm a blender user for a few years now and blender is actually the number one Libre graphics application that I'm using and blender is actually very very very big it's an extremely big application with a lot and lots and lots of features and it has the problem that for one thing there are many more features we would need which somebody needs to code and on the other hand it has the problem that they're coming contributions from everywhere but what should end up in blender and what is care was what's gonna be rejected and if it's gonna be rejected maybe there are users who want to use it so it's always a difficult situation but one thing that solved this kind of situation for one very specific part of blender for the cycles when the engine was the addition of the open shading language it's a success story I'm presenting here and it's a story about artists creating their own tools sharing them with others and actually contributing to blender in a way that does not interfere with the core development so people were just started producing great new plugins and great new shaders and the example I'm gonna use here are procedural textures even though some people use the open shading language even to create completely new tools for blender which is also cool but my example here will be only about procedural textures and what I basically want you to remember is what happened when open shading language was introduced in the cycles render engine and how the contributions exploded from everywhere and how artists now have the choice of a wide range of procedural textures while beforehand the range was limited to only the core procedural textures artists would be using so actually open shading language wasn't the first plug-in system for writing procedural textures in blender on the left you're not supposed to actually read this this is code that was used to create a very simple shader for blender 2.49 a very very simple procedural texture it's 100 lines and roughly 80 lines of this spoiler plate and stuff that you just had to write and create and manage only to get the texture into the system and on the right what you see is the very same texture improved with a lot of new features in just 25 lines of code and it's actually pretty readable and you have just basically two parts you have at the top the inputs and then the button the math that's actually clear doing the texture and creating the texture and also the texture yeah this is the 15 lines version of the texture for cycles because the in blender 2.49 we had this 100 lines of code for what you can do in 15 lines here and it's also integrated well with the blender cycles node system it's basically a system of yeah you obviously I guess everybody's familiar with the concept of notes that you have a flow of data and you can manipulate the data in each note and because the open shading language is so well integrated into the note systems I was able when I wrote this shader I ported it over from blender 2.49 to outsource functionality into other cycles nodes and what you see here is basically I rebuilt the functionality of the original shader it's a pie procedural texture with cycles nodes and a small this very small script here so this what you see is roughly 100% what the old 100 lines of code we're doing in blender internal but because it was so well integrated into this node system this graphical programming interface you could actually do changes what you see here is take a look at the box or the cube and you see that there is a little bit of noise in the edges that was basically how much noise you could add in the old version it also had this function to add noise but because we had this new system where we have small pieces of code working together with nodes we could change it in a way that we could really distort it the texture and we could even simply exchange the nodes and this way also the noise we want to use to distort it and you would get completely new pattern patterns actually only with a very very very little code we needed to write and so this is the present now and in the past blender has a problem that only very few people would write additional plugins because it was so complicated it was very difficult and you needed a knowledge of C you needed knowledge of the blender internals how blender to internal is you say was handling data structures and everything and we had also the problem that for non-plugging textures the developers rejected a lot of textures that were for special purposes because they did what didn't want node creep they didn't want you to open up the menu to add a texture and you would have 50 different textures and now that we integrated this shading language we have actually hundreds of small scripts flying around the internet that are giving us the artists new possibilities to create new shaders and new textures and we can also now customize our nodes and our tools thanks to this and we don't interfere anymore with the blender color development so basically this was actually very cool open shading language you see at this example once again just a little bit of code can make quite a bit difference this texture wasn't available in blender before now it is and it's very really highly customized you can do a lot of customization and so if you want to get the same success for your project here is why this open shading language was a success well first of all it integrates well with the system because this notes we have already a kind of programming and now we also have the possibility to add a shader system that's actually touring complete where you can do anything roughly anything not anything yet that means there's still a few functionalities missing but and it's all plug-in so it's all a plug-in system it's nothing that you have to integrate into the core of the software and the syntax of this open shading language is actually pretty similar to a syntax of programming language many artists in our field in this 3d field already know because many people are for example doing game development and then they are writing shaders in GLSL or maybe some people are still old school and know the old pics are random man but they did write the shader in random and shading language or the direct X people use probably HSL and the core of this open shading language plug-in system is that we have no boiler code at all we only define inputs and what we do with the data that's it so yeah one can just sit down and write a shader from scratch and just like three or four lines of code and this is actually a pretty cool for people who are artists and maybe just create a note setup and want to add a small extra features and they maybe know a bit of math but not so much about programming and they can still add for example a small piece of code that create create the formula a mathematical formula and processes it and also the cool thing about this open shading language is that it's nearly life coding so it's very good for artists except especially because you see I get the direct feedback of what you're doing and basically this is why open shading language really extended the tool kits available for blender users here are a few resources basically the third one is a really huge collection somebody just collected open shading language shaders from all over the web but it's now no longer updated but it's still a great resource or the four one the fourth one that's by me I sometimes need to write shaders for my work and I always share them I put them on MIT license and bang everybody can use them I don't care and then the one one step to the last yeah that's also something I did I created an introduction on how to port other shaders to open shading language because I'm greedy and I want more shaders so I have more tools available but I don't have time to write the tools my own on my own so I told just tell other people how to do it and maybe they will port something that I can use and yeah I hope this was done in 30 minutes perfect and yeah one thing I wanted to show you is the first one actually this is this 15 lines of code you've seen you can create all of this with it so each one of these lollipops uses this 15 lines of code shader and the sun in the background as well so okay questions