 Well, hello. My name is Sebastian König. I am from a small studio in Leipzig called BlendFX and as the name suggests we started out to do visual effects and exciting stuff and From time to time we do that so we get the chance to work on some interesting projects But most of the time we do this Well, not all of us, but we have a small team here that that works mainly on doors and Whenever someone asked me what what do we do and I say we render doors I get this reaction and I can understand But there is an amazing universe of doors that you would never have dreamed of and this is what I'm going to talk about today the Multiverse of madness a glimpse into the abyss Because it's really deep But I will only be able to touch the surf to scratch the surface so there's there will be more but I cannot talk about anything and Yeah, I want to first talk about how that happened a little bit of the history and disclaimer This is totally subjective. So the timelines maybe don't Are exactly the way it happened but like It feels like it happened that way so in 2015 I got an email from dinature, which means your door which is an online shop for doors and You can you can go there and configure your own door with a texture and the model and whatever you like and then they will order it and ship it to you and They started out as a reseller for Wooden doors or must he falls to an solid wood doors And of course, it's impossible to to build every door With every type of wood and every texture. So they only have had the Schematics of it and then needed someone to to render them for for them So they asked me and I was happy to be able to put my blender skills to good use and build a door But of course, it's not just one door. It's like they have 120 models of doors So that's not even all of them and of course, they have different types of wood. So there's oak and oak in with with oil Waxed oak stuff like that. So It's a lot. So this is just one model in all the different combinations So they they had roughly at the beginning 120 models With 13 textures. So 13 types of wood and nine different materials and If you do the math, that's 14,000 different renderings, which is quite a lot but So this is a Like this is a 24 frame animation and every frame has One two three four, I don't know how many different types of doors So this is just the first job I did with all the different combinations of material and texture, but They wanted to have 360 degree animation on the website so that people can see how the light reacts to the to the wood So to to see it from all sides. So that's a little bit more. That's now 363,000 different combinations or renderings And I didn't want to do that by hand and I'm not a developer. So I just googled for it and Luckily, I found in inside blender The the templates. So it's the the background job Dot py which you can use to render something in the background because you don't want to sit there and render doors all the time by hand so It works like this. So you you run like some kind of batch script from your console And this will open up blender and will at the same time put the background job Inside blender and then we'll do all the things that you need to be done So this is how it looks like this is the I called it the run script which runs blender. So you You have you give it the path to the executable to the blend file to your batch script And then you pass it to the to the system call and then it will run blender and inside blender You have another script, which is the the batch script now It starts with main. So when blender opens and sees there's a script it will run it Will go to the main function call Then pass all the arguments that you can use to configure your door and the run the render function and Eventually that will then render your door So the the good thing is that you can in the run you can have like Lists of models. So it's just a very condensed list. There's more of course, but for This presentation. I made it shorter. So you can go through all the models and for each model There's a texture for each texture. There's a material and then you pass it to the script and the arguments will then go into the Blender with the batch script and then you can do stuff with it like for instance change materials Put the door and the place you want it to be and and so on For me that was like amazing that you can do that and there's just two files for it You need the run and the and the batch And you go to your command line and run the script and it will render 300,000 doors for you. It took a while, but you don't have to stand beside it to wait for it So that was awesome and I thought mission accomplished job is done But then they came and they wanted more for instance They wanted to have like these close up to to better see the how the construction of the door to see the surface better So I used the same script to render like 14,000 versions of that And then of course there's the door frame or as we in Germany say the target So that thing where you put the door inside and again like a couple of thousand combinations so I was copying this batch script all over the place to to render all these things and Then they they told me that they need a naming convention to be able to to upload these doors and their online configurator So they wanted to have product IDs in the in the name. So when I was rendering the doors It looked like that. So I have the the model then the type of texture and material and the material again And inside that folder then is is the image and then you can they want to upload that so I had to write a script Where I can translate the the models and the wood type and the surface to a product key And put that in the in the folder name and that again that like I'm not a developer. So Tried my best to to write a script that will then copy and rename the stuff So that they end up with this So it's just a folder and then you have the product ID and then they can give it to their online system that will upload the the files So the script folder grew and was getting more complicated, but I mean, that's not bad unless There's more doors Like not just a new door, but a new reseller. So this is a door from Dynature and this is Completely different type of door from a different reseller and there's another one and another manufacturer. They built totally different doors But yeah, the the world needs doors apparently and Yeah, and they the each each manufacturer had their own thing So at some point they came up and said look we want to have a cross textures So textures where the wood goes not straight like this But like that way but then we have the the the glass frames and it looks silly if the texture also goes That way so I had to find a way to to have one texture that goes going across and one that goes in in that direction So that it looks a little bit better So yeah, okay, so if the the the cross texture it goes like this And you have you have to copy the image make it a straight line So you can make it go along with the UV's in that direction. I mean, it's all not bad, but it kind of adds up And then the the question is how do you separate that so we use the path index So if the door if the object has a path index one you use the the cross texture and for all the objects that have the path index to you use a different texture and That works unless there's another reseller that will Produce totally different doors Yeah, so at some point they wanted to expand the the online Presence or the what you see on the website Because many or many shops and many door manufacturers, they have like these kinds of images It's just like a flat door slapped onto some environment And ideally in CMYK, of course so Because we have the doors in 3d we can put them in a 3d scene, so I started to to try to find an environment that shows off the door in different Combinations and I have iterated until I had something that looked Like this so it just have two doors one of them is open so you can see the light a little bit better Yeah So yeah, and then another one like for the for the white fancy doors Then you have to find an angle where you see the door where it's not obstructed by something But it still looks good. You see inside or outside So there are a few iterations until you get to the desired result and Now I want to briefly show you how this looks like in blender so this is the One of the environment files Everything is linked from an asset folder. Of course, we make use of the agent 3 2 7 Assets on the the blender assets So yeah, so everything is an empty or a collection linked into into the scene And then you can arrange that with different view layers and scenes. So there's a base scene where everything is like put up to to Configure and then there's another scene where you put the cameras and you You put the actual doors inside and to be able to do that all the empties that will then Get the collection have to follow a certain naming structure a certain parenting type So you have a hinge so you can rotate the door and Yeah, so that way you can configure a scene and then with Python you open up this File in the background you link in the door You configure the texture and the material and then and at some point you will have a Door or an environment with a door now, of course, it would be would take quite a while to render the entire thing 14,000 times so we used a hold out where you just have the door With a little bit of space around so you get the lighting and everything and then render that Put into the compositor where we have like the pre-rendered environment. We can just Put the render door on top of that. So here's the compositor So that's the blank environment and then you have the the two doors rendered and then it will just be combined And then in the end you have your finished render Okay, so I'm gonna skip this come on So in each each of these environments has different views So there's the the main view with we see a several doors then there's the front view Often with the door open. There's another view from the side then a close-up where you can look through the door So in the end you have like collection of images that will represent the door So there's the the environments. There's the front view. There's a close-up of the the handle Thing I don't know the name in German in English Yeah But then there's the variance of the doors. So you have the normal door With a handle, but then there's a wing door Like like that and then there's a door with different hinges and different handle and then there's a door with a Opener and then there's an entrance door and for the entrance door you need of course a different environment again and There's the sliding doors Which is like the end boss of all doors because usually you have the handle and We have the the keyhole like with the bull which is all fine But then if you swap that with the handle, of course, okay now you have to put a bull inside that To cut out the space for the for the sliding door handle I do want to show you how that works in blender because all that is again configured per python so there's the the the base collection with the hinges and the handle and then there's the the the actual door So This is the the object that is selected is the the door and you have a Bull which you can toggle the the the states through python so you can swap the kind of Handle type and if there's a bull or not, but then a sliding door doesn't have this This thing a sliding door at least in Germany I realized that here most doors just have a flat side Sliding doors have that too. So now we have the the main part of the door Which has a different kind of edge so that's why we used The all the cutouts for the glasses are also bull objects that again can be configured per python from from the command line So, yeah, that's That kind of adds up to the complexity of things so The thing is that we developed these workflows also while we were Working for one manufacturer and in the meantime the other manufacturer also came up with sliding doors So we have to put all these different workflows and configurations into the other resellers So it's like you you build up one and then you swap to the next and then they also want cross textures And so on It's going to be a lot of whining today in this talk I'll try to go to the next slide, which is apparently not possible for some reason Hello Okay. All right. So so far so good, but then you want to do that inside of the Environment as well. Well, no problem unless you link in all the files because Then you have like the one is the sliding door the other one is the normal door But lo and behold Because everything is linked and configured through python now the this door has the bull cutout as well Right, so you go back to your file and then you Create Like a small patch that if you if you render a sliding door But if you also are in environment and if this environment also has a normal door, then you will put a Cover up onto that place Yeah Well steel doors should be simpler, right? Well, no because there's all these combinations as well And of course you want to see them in the in an environment too So you have to come up with a script that will also like configure the cutout of the off the wall and put the doors where they belong so scripting and It's getting it's starting to get complex especially because now there is so many different files in my script folder It was I don't know it was time for a team upgrade So we got more people like claimants who's also here. He's like the mean in the meantime He's become the backbone of the of the doors Jonas was was a while with us. He was scripting a lot Zilke who's also here is Together with claimants like core team Micha was briefly with us and now we have like four different people working on doors So we need a project manager. So there's just five people who were employed just for doors Yeah, so well in the beginning you've seen that that I've done all this with little lists in the Python script Well, that's complicated unless you find out that you can use Open pixel because then you can use an Excel file or as we say in Germany an Excel file So you can just have the Excel file the spreadsheet open up that with with your script Import the open pixel library and then you will just go through all the different Rows and it will then configure your door, which is like wow. How did we not do that all these years? but now we have these enormous spreadsheets and There there are conventions so no oom louts no spaces everything has to be very very Excuse me very strict and you have to communicate that to to the guys from dinoteur because there we have the people like responsible to to creating these spreadsheets and then putting in the the images and the text and all that stuff so Communication and again like and again and again. We have to tell them. Please. No oom louts. Don't use the the spaces in between Yeah Speaking of order The at some point they decided now we have all these different resellers that do white doors Wouldn't it be nice if we have all these white doors in one place? Yeah, but then we realized okay now because we adjusted the lighting for each manufacturer to make it look really nice Now the the white the shades of white are not quite as even So they wanted us to unify that So we have to go to all these different Brands and folders from the doors and make and unify them And now we wanted to unify the script as well So luckily Jonas and Clemens Formed a team and they worked on something we called scripture So we have just one script to To rule them all Well, of course, it was not just one script it was like like a system So you have a batch script that will then call the batch But then you have to manage the infos and all that stuff you have to configure the pile the file path Where is the environment? Where's the door? Where's the texture? Put all that in a script and then load that in blender At that point, I didn't really understand what they were doing, but it was amazing Of course for that to work you have to be very strict with your folder structure. Otherwise it's chaos Well, they they they continued to come up with more doors front doors in this case Because there's like as many front doors as there are indoor doors They are all beautiful but They have to be an environment too. So we built these Environments to put the door in Front doors are a little bit more complex So the hinges look different. There's a certain locking mechanisms and all these stuff So, of course, we needed the information like how how does it actually look like? I mean we cannot just use one Black and white image from the front to to build that we need more information But often that that was hard to get from the manufacturers Not always many of our many are very helpful and give us DXF files and references and all that stuff But the point is like often it's really hard to get the information you need to build something in detail Well, then okay, they have a 360 view of that as well And they wanted to change the color from the front and the backside. So now we need to find a way how to how to differentiate that and how to assign the The colors so this is just a small Overview of the how a front door blend file looks like so that's all the different paths in DC's And because you lose track and don't know which pass index was assigned to which object We built a script like a pass debugger. So when you run that Depending on the pass index the the object color of the open GL object will be then colored So we know if something is not green from the front Then the pass index is missing or wrong So Yeah, that's the the door to a script because things get complicated. So there's all these helpers that let you assign a material For a door or a hinge or whatever you want So, yeah, the complexity Was growing then there's so many collections So we needed script to to cycle through the collections without clicking in the outliner always because there's so many doors like the Front or the term will save one seventy seven the five or one five or two 504 and all these all these doors with all these numbers is like super weird so We kind of had a hard time to keep track of that and communicate all that with the guys from dining tour like which Exact model are we now talking about is the five or four or the five or five Which one has the glass thing which doesn't? It's it's a lot Yeah, that's the the different view layers So the main model is in the is in the blend file, but there's all to the views that we can use to to render them like the detailed view from the with the cutouts and Then I'm gonna skip this now because time is getting short so That's front doors Wait, there's floor and more because when you have a pipeline that can render doors Why not use a pipeline to to render floors? So they started to sell floors now. All right Now floors they they have these different patterns how how the the planks are getting laid out So we had to script that as well put that in the environment Do all that stuff luckily we could reuse the environments So this is one of the door environments, but it looks different because we just inverted the camera like mirror along the X axis So everything looks totally different Again with the h and three to seven images on the wall Yeah, that's the script that lets us Put the planks in the right order and if you have Wooden floors you can have tiles as well. So yeah tiles in this case we used Evie but Evie is Difficult because they're so easy to lose your baked lighting So in the end we were happy to switch back to the cycles because it renders faster, but it's easier to handle You need something to put on your floor like a floor mat so And imagine like this is not just one image like there's thousands of different sizes of these floor mats So it got all a lot That's all the manufacturers that we are in the meantime now dealing with and each manufacturer has these different kinds of doors like the The line which line of product you want to render. So each manufacturer has that many lines That will have different doors inside. So it was time for another upgrade Scripture 2.0 and We were very lucky to have Simon Lenz who went to an internship for us at us And he helped us to to rewrite everything So now we have a GUI so we can open that we can pick the manufacturer we pick the the Excel file which renders script and was very automatic and was lifesaver He also Made us use classes because that list that's all the different door types the indoor doors the steel doors The sliding doors wet room doors The sliding wet room doors the slidel sliding winged doors. I spare you the rest and then he made a very clever system where you can put all the information about the job that you're rendering into one class and then you pickle the class and then you put that inside some Thing which will then be loaded in blender and I don't really understand how it works anymore But it works and it's amazing So now our photos look like that. It's just the The textures the doors and there's one render script which we can adjust It's just a few lines and everything else will be configured by Scripture at the moment. We are working on a script to a 3.0 which will follow the Object-oriented Thing so nothing is linked anymore every door is unique So no more bullying a sliding door a cut out from an indoor door and so on So thank you Zemon for that. He's not here But thank you again and thank you Clemens. He is really amazing Thank you Zilke to you do amazing work and Thanks to Dynature as well for the trust and patience and the collaborations because we do that since eight years now And it's a rare really friendly Collaboration it's it's great. It's a lot of fun Sometimes, but it's good. It's a good collaboration. Let's say that and also thanks for the money oh wait Numbers so we have one million and almost four hundred thousand dollars that we have rendered now There is thirteen thousand floors probably as many o's as well and 2626,000 tiles and probably more So and I think there's a lesson to be learned from all this stuff And my point is always there is an industry outside the industry So nothing not not everything has to be Hollywood and stuff There's many many small companies who have can make a living with smaller Projects that are not as visible anymore, but there's money to be made outside the industry Thank you. Also Create your own pipeline. So we when we started this it I stumbled into that I didn't know about pipelines and scripting but if you just continue to to try to figure out your your Stuff that you have to do then at the end you will end up with a pipeline that is really tailored to you so do it yourself and don't trust the some Reconfigured things that you might find online. Sometimes it's better to to do your own Also build a good relationship with your client. That's really essential. I think because this would not work If we wouldn't have a good relationship with dinature. So we have weekly meetings where we Talk about the things we have to do our plans their plans and it's over the eight years It's has developed into a really friendly Kind of work, which is very nice and also learn Python. It's it's really helpful. It's the most versatile tool in blender and that's it. Thank you