 Nice, so there we go. That's easy So if you didn't bring your laptop that it's absolutely fine. You can see other people struggle with it I expect people to struggle with it Like part of why I wanted to do this is that a lot of flamenco at least the the current implementation Comes from me and that includes documentation as well. So I Made it with a certain mindset. I wrote the documentation with the same mindset I have a certain terminology if it doesn't click Then basically there is not really another source of up-to-date information And that's so is also why I want to help people get it installed Also for me to learn what the current pain points are and where things are still unclear what needs to be improved So a little bit of an introduction I'm going to do this rather quickly so that we have enough time to actually do the install on your machines and see What's going on? If there's anything unclear just wave your hands Flamenco is our render farm of blender animation studio and It's being used in pet projects. Oh, well, this is actually the working Like the working title wing it Charge Sprite fried and a lot of other productions, but these were actually using the new flamenco 3 That was a whole rebuilt flamenco used to be part of a blender cloud And use the blender cloud infrastructure and people were afraid of using it because it's like your IP on somebody else's infrastructure What's going on? You never know for sure. So One of the major design principles of flamenco 3 was simplicity You have to be able to install it on your own hardware Not be dependent on anything else and be confident that it doesn't do unexpected things and send your stuff to you Don't know what So the premise was that it would be as simple as blender you download a zip file you extract it you double click an executable and it runs For something as complex as a render farm. That was quite a challenge People were asking why do you use open queue because that's also an open-source render farm and then you read the installation documentation It's like that. I think no. No, I don't want that So simplicity is important for today. We're going to look at getting stuff running I'm going to explain a little bit about the storage options and we'll play around and see what the two of the three different options do We'll be looking at custom job types because the job types are the thing that you can Easily adjust in flamenco to make it do what you need to do in in your specific situation And then there's a little space and after that We're going to look at variables for cross platform support And this is like only a show-and-tell and not really using it because you don't have a mixed mixed farm on one laptop and then Plenty of time for Q&A. I hope So to start please download flamenco plus the demonstration blend file This is the QR code. That's the URL. You also have a bit of paper somewhere nearby where you can find it While you're downloading, I'm going to do more talking So to get things running it helps to have some information beforehand people have seen the flamenco 3 talk last year might recognize some things So this is basically the structure of a flamenco farm you have your artist running blender with the flamenco add-on installed and That artist submits Stuff files blend files to flamenco Flamenco consists of one manager that manages all the workers and then there's a pool of shared storage and That can be like a network drive typically it is Then there we use NFS. Other people's will use Samba or something else and Then you can see that between the artist machine and the shared storage. There's a dotted line Depending on which storage option you choose to for your farm The artist either saves there directly is Working there directly on the shared storage already many studios work like that but if you go more advanced than They can submit actually to the manager and then the manager stores is on the shared storage and then The artist doesn't need direct access to the storage except for fetching the render result So flamenco works with jobs when you say Render this file from from a to frame B. That's a job is one thing that Will fail or not will be completed and that consists of many tasks and every task is a unit of work for a worker So if you want to render an animation, you can say well every 30 frames needs to be one task And then a worker comes along picks up that task renders like starts blender renders 30 frames stops blender again and says Done. Give me the next task Depending on many factors, of course, you all know this you want to have like You render quickly maybe because you're running Eevee and it's all real-time and it's fast you you don't want to have the overhead of Starting blender and stopping blender and starting blender and stopping blender. So you have a big chunk size Maybe you have very long render times And you really want to parallelize that over many machines, and then you want to have one or two frames per task and Then you have these tasks every task consists of one or more commands Typically, this is just one Run blender with these arguments run ffmpeg with these arguments. I Write that it's high ish level invocation because it's not just run this command line Because that command line will be different for Windows for Linux for Mac You may want to move a file or move a directory and again those commands are different on different systems Also, Flamenco knows that you're running blender So it can monitor the output of blender on the that gets standard output logging It can because of that it can tell when it output it in your file That means that it can pick up that file make a thumbnail of it and that's a last render All those kind of monitoring it can do because it understands is running blender at the time So once you have some jobs like during the production of charge The jobs are here on the left Like job is selected These are the tasks and some job details about like what is the blend file which format is it rendering to which frames are output and These like blend file is the only parameter that is understood a little bit by Flamenco The rest is all arbitrary And that is just because this is a simple blender render job type We'll look at how that is done later, but if you want to modify that when you have your own settings in there You can tweak that we'll look at that later and then given that this task is selected Those are the task details with an identifier and the fact that it's complete Which machine worked on it last for the priority date was and you can see the blender render command there It's all bit clipped, but once you click on open for log it will open a new browser window and you can see everything that happened So let's look at installing stuff By now, I hope you download is done. I'm just going to talk about it I'm not even going to really show it because it's like a split-screen thing. It's a bit annoying So I would say extract Flamenco. Oh, oh, by the way question who is running Windows on their laptop Yeah, quite a few who's running Linux right now Bit less who's running Mac Also quite a few nice So apologies to the Mac users Currently we only have AMD like so Intel build And that is because from the ffmpeg website. I could only find a pre-built ffmpeg for Intel Tweak the URL, I think if you copy paste the URL for the AMD build and change AMD 64 to RM 64 You actually get an incomplete build of Flamenco The Flamenco itself is there It's just missing ffmpeg if you can find it somewhere else plonk it in in the tools directory. It should find it It's my desire to make that like a proper thing I want to work with Blender platform maintainers to have our own ffmpeg build that we can trust We know where it comes from and I feel confident sharing that with other people I'm not just going to pluck a binary because it works and tell people to use it So extract flamenco, I'm going to assume that people either run windows or have the mental Like they know how to translate this stuff to to the platform of their choice So I would say create a directory flamenco slash software on probably your C drive Extract flamenco there so you will see the flamenco manager executable the flamenco work executable tools directory Make sure that you have blender 3.6 or newer installed Then you also have the demo file so Make another directory inside see flamenco make it project because this is going to be our studio project that we want to render And then run flamenco manager and you should just be able to double click the executable or mac It's a little bit more tricky because it's not signed yet. So you have to go through the settings to allow like Insecure application. I'm sorry about that. Also something I would love to at some point get right then when it You started it should start a browser And that browser should show you A little bit of an introduction that includes this image. It starts explaining a little bit about how things work and Then you get asked what is your shared storage location for that Pick that project directory that you've made So this means we have a shared storage. It's it's fake, of course. It's not shared with anything, but It's accessible for all the all the one worker that will have running And that's the important bit every every part of the farm should be able to reach that shared storage And the flamenco manager should find blender by itself if you're on windows because it will just pick whatever blender will open when you double click a blend file On macOS only next you may need to point it to the blender executable And once you've entered all that information Basically these two things where's blender where's your files Then you click next you confirm it should automatically restart and you should see this empty dashboard Is that working for everybody or yeah, I think it thumbs up Is it working? Is it not because yeah, it will So this is when it's unused when there are no jobs in the system It won't show any empty task details. It just will in the center tell you to use the add-on because like that's the next step It will also tell you a web address where that manager is reachable For now you can just completely ignore it because it's running on your laptop It will be reachable by local host anyway So you click on get the add-on and then you install it like any other blender add-on you get a zip In blender press install point to that the zip that should do it And then we have this Be sure to enable it and to click the little triangle to open up the preferences And then Over here it should already be set to local host If you press the refresh button it should be connecting to your manager and then Find it Also a setup a video call It's a bit tricky with the split screen and everything but we can make it work So if there turned out to be many people who want to show their problems so that we can look at it together You could do a share screen the other video call. Let me know if you want that Um Do know as a disclaimer that this is being recorded. So sharing your screen then does mean Your desktop screen will be part of the public recording So does this work for people? I see a thumb up. I see another thumb up Ish. Yeah Are there any problems people are getting stuck here? I hear a That's fine like we we have the time I'm speaking fast so that we have more time for You to do your work. Yes question Is it expected that on mac you have to go through package contacts? Yes, because you need to point it to the actual executable If there are Developers working on mac and familiar with mac. I would love to have a better integration with the mac ecosystem Maybe some drag and drop support where you can just drag the blender icon onto the managing interface I don't know what would be possible on a mac But help will be very much welcome Flamenco found a path right away for blender. That is great It has a few techniques in which it tries to find blender So on windows it uses the file association with dot blend files um On any platform it will look on the system path to see like if you were to type blender Enter and that runs then flamenco will also find it for you. Okay, so if there's no cries for help Then we continue so open the demo blend file And then in the properties editor go to scene and then the flamenco panel So you want to be at the little printer thingy because that's the output and we're outputting to flamenco in this case So that's why I thought this might be a suitable suitable location Open the flamenco 3 panel There you can see the job name. You can type in whatever you find useful for identifying the current file Uh, I think even made it by default that if it's not filled in it will default to the current file name Uh, you can have slashes in there and that will put it into a sub directory on the storage when it's copying stuff over Priority determines the priority when you have multiple render jobs And they're all queued. It will just pick the one with the highest priority The tags we will go into later most importantly press this review button here and that should populate this drop down and then you can select your render time set it to simple run a simple render Scene frame range should be like the frame range of the render should be linked to the scene frame range This is a new thing in flamenco 3.3 by the way Chunk size is what I said before like how many frames do you render in one invocation of blender? Render output route set that to see flamenco renders or whatever makes sense on your platform The at path component is a bit of a weird thing But it's super useful in our studio because we store the files in like project slash scene slash shot slash whatever they'll blend When you increase the number You can include that shot and that scene name from those directories and make sure they're used in the render output as well And with that you can just have one render output route for all your stuff And have it pick up these input file dependent things as well The render output path is where things finally will go For now, it's a bit of magic, but we'll look at that later. Please just click on submit. It should work And then when you look at the flamenco web interface, you should see The thing working There we go So for those without a laptop, this is what the flamenco running the flamenco manager looks like It starts up. It tells you like some things about the architecture. You can see that I'm running windows 10 home on on this laptop on on this laptop And it's listening to certain ports opening stuff is doing stuff and these are the URLs at which it will tell you like This is where I'm reachable at first startup. It will open the browser automatically But that could be annoying on every startup So it subsequent startups of the manager. It will just tell you like this is where you can find me and It assumes you know where that is So you have people do they have it running? Do they see Like the cued job in there with its tasks and Excellent all of a sudden it was showing the presentation on my monitor Instead of here There we go So next step is start your worker So next to the flamenco manager. You'll also find a flamenco worker executable On windows, you can just double click it on other platforms. You probably know how to start a program and This will pick up the task. So when you go back to the manager interface, you should see it just running I'm going to quickly switch my My desktop over because I don't need the speaker view and if I don't have that I can just run flamenco along with all of you So I have my manager running And let me quickly go over And run blender with the job So in the meantime, are people seeing like moving stuff in the web interface and seeing things being rendered? That is fantastic. Congratulations. You have a running vendor farm Good. I'm glad to hear that. That was easy. It was the voice in the back And yeah, it was our intention to make it this simple to run a render farm There is like you downloaded a special build of the manager. Sorry of flamenco itself And that included a little file that prevents one automation Um, I don't know how this wi-fi network here is working whether machines can find each other We've done this before at a different place where all the computers were wired and they could read each other And flamenco is made for simplicity. So these workers go and look on the network for a manager to connect to You don't need to configure anything if your network layout like allows for this. They will just find that manager And this is what is turned off in the build that you have installed now Because otherwise maybe your manager or your worker found finds his manager and and his worker finds his manager And they can't find each other's files and it's all a mess. So that is disabled now So please don't use this build for the production work. Get just a regular download of flamenco So now we run flamenco with a file that was on the shared storage And that means that nothing had to be copied the workers could just reach those files directly and life is simple Maybe in your studio it is maybe it's not so we're going to over three different ways in which flamenco can handle that storage One thing that you want for that is again simplicity Another thing is efficiency You don't want to have like wait for all the files to be copied every time because that makes people cry And you want render jobs to be isolated So when you submit a job, you want it that to be rendered regardless of the work that you do afterwards And you don't want half your job using the new texture. For example You can pick two So with three approaches One is what we've done now work directly on the shared storage This won't copy any files. They are in the right place already. It's very simple. It's super efficient But you don't get that isolation if somebody changes the file while the job is running. Well, that is just being picked up This might not be an issue and if it works for you That's fantastic Then we have what flamenco used to do for a long time and that is just copy all the files that are necessary So while it's submitting it will analyze your blend files And all the textures they need and other assets that are on disk And it will copy all of that into to a directory for that job This gives you isolation. It's still a rather simple process because it's all automated. It just copies and you wait Um, but it's not efficient And this became glaringly obvious with uh, the production of spring Where we had like five of these big tree-like creatures that were one and a half gigabytes each And they were copied for every Shot they were in And it grew huge So we have a third option that is not simple But it's both efficient because it only copies what isn't yet on the farm And it gives you this isolation But it does have more dependencies on the underlying system and it's called the shaman system Um called named after the shaman and scintill but also because it takes char sums of the files to identify them um I won't go into exact detail How it works just it uses symbolic links and those are difficult for windows and that makes the whole thing much more complex That's the the gist of it if you have questions about it later. I can definitely answer them I have a few more slides, but for now I like to move on Because we're not going to use it today So as a little storage experiment for now we use the first approach where the project was there It was on the shared storage Now copy that same demo file to your desktop or somewhere else that's outside of What flamenco knows to be our shared storage and then just open it from there in blender and submit it again You don't have to run it. It will probably just render fine because it's like your worker might still be running But the important bit is look at your shared storage You will see that it created a new directory there for those files because it wasn't on the shared storage yet flamenco Thought well just submitting it. I have to copy it to where the workers can reach it And so it did that so automatically by Just by having the file not on the shared storage it will switch over to that second approach And still copy things For this it's important to know that flamenco looks at whether files like external files are referenced by absolute path or by relative path If it's an absolute path it will not copy it. It will assume that that path is valid for all the workers Again in the studio this works fine for us because all of it is running on linux All these paths are the same anyway. And we just mount things on slash shared Anything that points to slash shared it can be reached by everything on the network And that is what we use for like bigger caches so that You don't keep copying these cache files around for every render job. They just sit there one copy of it and that's it Files that are relative With a relative path to pointing to them they will be copied And if they are sitting outside of your project directory, they will be copied like as a Thing so that all the job files are still in in one directory. It's a bit of fuzzy explanation Sorry, but most importantly relative references will get copied Absolute references will be untouched So this is working for people. Do you see a jobs directory that Has something new in there? Yeah, I see some thumbs. I see some nods Good So let's take a look at the next thing that's job types. And this is what you selected. That was a simple blender render That's a job type The echo sleep test is the second job type that is like bundled with flamenco itself For me during development that was super simple because it just literally it waits for a number of seconds And then it repeats asleep for a number of seconds and Sorry, it shows a message. I have to read this well. It shows a message for and then it sleeps Number of seconds for a number of times in different tasks And this allowed me to test flamenco without having to bother with like actual rendering and stuff But also for you to test whether your firm is working This might be a nice one. Also it serves well as an example. So let's take a look. You should have a scripts directory Next to your flamenco manager and the worker and the tools. You should also have a scripts directory In which you have echo sleep test.js This is java script Because flamenco has a java script engine that will just run inside the manager And it has a hint of python in there Because it's communicating like it's causing It's sending information to blender basically and blender needs to run its python code And this is what a job looks like. So you basically have two ingredients You have the job type declaration If you ever made a blender add-on, you know the bill info dictionary at the top This is a similar thing and then you have a compile job function And this is the entry point of this script. It gets whatever got submitted from blender And then it's the responsibility of this code to create the tasks and the commands and so on So in this case, it's just a label. This is the thing you see in blender And they have the settings and those are the parameters below it. So you have the message It's a string is required The sleep duration in seconds. It's defaults to one and then sleep repeats defaults to one their numbers And this will automatically Automatically generate this part of the user interface And then compile a job That receives a job that job has settings and those settings actually map to The things up there So here we are through a task The task is named echo And the second string is a group That group is misc so that could task type The workers can be configured to only run specific task types Again by default. This is just A fixed list if you don't want to think about it. It's fine all the default things just work But if you want to have more control, maybe you have like a weaker computer in your network that you want to Just do file operations moving files around maybe running ffm bag You can just remove blender from the things it's allowed to do So that is like that's ringing again. There's nothing special about it You can feel free to to play around with it And then we have a loop that just repeats repeatedly authors a sleep task Once you have your task you can add these commands We have an echo command that takes a message and we have a sleep command that takes a duration and These are things that are actually built into the worker. So if you want to Add new commands then either learn how to programming go Or come to me and tell me what you need And i'm very interested in the ladder Then these tasks have interdependencies So in this case just for this example I wanted first that that message to be shown And then all the machines can sleep at the same time These kind of things are super important when you want to render all the frames first And then you want to have one machine that puts everything into one video So you can work with these dependencies also what I don't show here is that again these Tasks also have a priority within the job So you can have like high priority things low priority things work with the dependencies and do all kinds of fancy stuff Once you have your tasks you add them to the job And that's it Now of course this is a very simple example I hope this is Followable with people again if you don't Understand javascript that's absolutely fine Now look let's look at the simple blender render because it's called simple blender render because it's simply runs blender and it renders The script is not so simple though As I said one of the new things in flamenco is that little linkage button Um, also you can see here that it's not just like inputs, but it's also a read-only thing And that read-only thing When you hover over it, you can actually see the value like here And you can also see that I made a screenshot on a linux machine Faking that I'm on windows. So that's why Forward slash just there. Please ignore that Um So what you can see is that it took the c flamenco project, which was the Render output route It took that then added beacon 23 slash render menu, which is the job name So it took the job name Then we have a timestamp between curly braces No idea where that came from And then the hash marks that give you like the frame number dot something So let's look at how this was done and and what is hidden behind it Again, it's a job type has a label has settings I split it out into three sections We have the settings for artists to determine and this is what is important for your artist once depending on job This is what I need to do Then we have the whole logic for the render output route Of course also for artists to set, but it's like its own bit of block and then we have some automatically evaluated stuff And here you can see that We have a frame range render That is an evaluated string and this is Here this bit is a python python expression that produces a string and this expression is evaluated by blender To construct the value of that setting when you submit Chunk size is just a number The render output route i'm not going over all the details here because there's a lot Uh, most important thing is that this constructs a path And that means it takes the absolute path of the render output route It takes the last n parts of the blend file Like the shot name and the scene name and that those parts It that's where the inserts job name and this is where it starts to become interesting This is where it inserts that timestamp string And again, this is all evaluated by blender while it's like showing you that user interface And then these hash marks like one of the questions I often get is like, oh, it's so annoying that a timestamp is there Can we remove it? Yeah, just take the file rip it out. You have your own job type now um Another thing that I want to highlight here For example the chunk size you can see visible submission Which means this is visible in the submission interface But later Once it's submitted and you look at it on the dashboard of flamenco manager. You won't see this anymore The chunk size will be apparent from the task name because the task name is going to say I render from this frame to that frame anyway, so let's hide it from the user interface there and Here you have some settings that say well the blend file is only visible from the web While you're submitting you don't want to have an input field of which blend file to render Because it is opening like you have the blend file open anyway. You don't want to show it So you have choices in here visibility hidden Not showing anything at all. Maybe you maybe want to grab like here the Scene properties this evaluates to scene render file extension Just grab different properties from the blend file and Now you can use it in the way you generate your render job I'm very quickly going over this I'm going to skip all of that Walk all the way to the blend file so in the end Here you can see the authoring of the command and the commands of blender render That makes the worker know that you want to render something with blender that it has to monitor for Output files that need to be thumbnail, etc This is the executable then see you need to rerun this means the blender that you all just configured Blender args is another variable we'll look at that shortly But this is just the command line argument for blender that you want to have running for everything Like minus b for running in the background. It's kind of nice for for your render farm Then you get the arguments before the blend file name Then you get the name of the blend file then you get the arguments after the blend file name If you want to insert specific python scripts that need to override stuff or you want to Have other specific arguments before after the blend file name You can alter that here in the script And something similar for ffmpeg. It's just run ffmpeg. These are the arguments So now I would ask you to create your own So in the scripts directory take that simple blender render.js Copy it to my render.js Just something that is a different name Open it in a text editor change the label in the job type so that you can recognize it when you go to blender Change the render output path setting rip out that timestamp or add it twice or I don't know do Modify it in a way that you want Restart flamenco manager. So you press control c to Stop it cleanly And then you restart it again and at startup it will load your new file as well And then when you go to blender you should be able to hit that refresh button for the job types And see your new job type and you can submit your file Why are you doing that? I will May give a little bit of explanation of why there are all these refresh buttons in there instead of just automatically fetching it um As a rule blender should not do any networking unless it's in response to a clear request of the user So that you as a user of blender know that like there is networking going on right now So it won't go in the background go and fetch stuff from, you know, you don't know where um Like the blender team is working on something to streamline this Where maybe per add-on you can say well, this one is allowed to do networking by itself And then the refresh buttons can go away and it can just Do that automatically But for now, I thought it was good to stick For this add-on with the blender philosophy And just make it all explicit explicit And then you you're sure that it's not doing anything unless you click a button and tell it to do something So do people see their render job Is it working? Fantastic. It's so smooth. You guys are good. Let's see how much time I have Okay, quickly Variables we've just seen them. We've seen the blender and the blender args variables And these guys are a little bit special. It's not just Okay, this variable has this value They can actually define uh value per operating system So you can say well blender on linux is here Blender on windows is there blender on macOS is there um Question I get is why is this not configured per worker? Because one computer may have different installation than the other It's a choice and We decided it was probably easiest to just install it in the same place and have it predictable And then you have only one thing to configure. It's just the manager The manager tells the workers what to do and there is minimal configuration you have to do on the worker itself And that means it's much easier to scale up and put new workers there Because they need very little config It's also possible for these variables to be without operating system And then they just apply universally So this is yes run in the background. Yes execute python code because we have reasons that need to work and we trust ourselves And we've had problems with uh viewport subdivision messing up some background renders at some point So you can also just have python expressions in there that just need to be run always for every render job There's also two way variables So far it was just okay. This is a variable has to go there This is working two ways. So it's not just this is the variable name and that's its value But flamenco will actually see oh That's the value of a variable name. I'm going to put the variable there And then later on do the opposite variable to value So for example, you have a variable my storage the name doesn't matter. There's no magic here It's just just a variable name that makes sense to you It has values for linux for windows for mac Now let's say An artist on mac submits a blend file And it's sitting there Flamenco recognizes that the orange bit is the value of that Uh variable so what it stores is this and then when it hands out A job or a task that references this blend file it hands it out To a windows worker it will do the replacement And because this is made for file path replacement It will also change the backward slashes to forward slashes and vice versa. However, it feels fit And this is the way in which flamenco can support Mixed operating system render farms so This is roughly the end of Like the practical stuff that you can do on a laptop like right now We're already moving into mixed operating systems territory. Not many people have multiple operating systems running at once on the same laptop Worker tags are new in flamenco 3.3 and they allow you to tag workers and jobs So when you go to the like up there to the tags panel This is actually a screenshot of the flamenco running at our studio with ev workers we have cycles workers and we have cycles workers that have a gpu that's powerful enough and Those are the tags And the the web interface explains it a little bit, but I'll make it bigger So we have like I think the clearest explanations from two perspectives So from the job perspective a job can have one tag Or no tag at all And no tag at all is like the all thing there So if it doesn't have a tag at all It can be run by any worker and that is what we've done now But when you do give it a tag it can only be run by workers that have that tag From the worker perspective a worker can have any number of tags So for our workers that have a decent gpu they're marked both as ev and as cycles gpu And when they have tags they will get jobs with one of those tags And if a worker doesn't have any tags it will only run jobs that don't have any tags And that's how it works and you can just While submitting you can choose where it needs to go and those that cluster of workers will pick it up and do the stuff Then a thing that I Wish I had put in my last year's presentation. So I'm including it now I want you to go to that little tiny api link over there And that will open up the api browser for flamenco manager And that looks somewhat like this You can open these things up and see all the parameters. So here you have the api call I will you know, I will just open it live demo. What could possibly go wrong? I have it running here There we go. So this is the info that you get Oh, that's I Saw somebody like with the problems using this and I was like, how did he get to the file path parameter because it should be blend file Well, it's because my example is wrong. Um, so it's always good But this is what the api call looks like And this is what have one of the things that happen when you click the submit button. So if you want to submit Jobs to flamenco without opening them in blender and Like going through all the user interface You can also just Write some code that does this request. It's based on open api You can generate a client for pretty much any major language out there And integrate it into whatever you want And you can click on execute and then it will Run the thing and fail because of course the example is wrong You can get last rent of images you can This is the worker api. This is what the workers use themselves So everything in flamenco uses this one api So anything flamenco can do you can do with your own software Act as a worker and pick up tasks or mark them as failed. You can all do that So also the web interface the add-on the worker communication with the manager everything is going through This api system So what we haven't seen yet is a worker sleep schedule per worker, you can tell it went to sleep So when you have artists working during the day on a machine and you want that machine to switch over to render form at night You can tell the worker. Okay, listen from this time to that time Those days of the week you have to sleep because an artist is using it And the rest of the time will just automatically wake up and start picking up tasks We haven't looked at block listing and auto-requeuing for failing workers. So when a worker fails a task That I think pretty gracefully handled by flamenco It will assume that first the task is maybe a bit too big for that worker We've had that where a machine had like too much too little ram And it would crash on one specific blend file Well, it just gets handed over by another worker If it fails by three workers, then it's actually failing because then it's probably a different problem That won't be solved by more repetitions But there's more stuff going on. There's project finders That's another thing that's new in uh, flamenco 3.3 when submitting files to the farm Flamenco will try to maintain your project structure as closely as possible But in order to do that, it needs to know what is the root directory of your project And now it can automatically find that if you have a dot svm there or dot get or a dot blender project file Um, this is kind of convenient. There are system d integrations on linux. There was other stuff going on that way Just don't have the time for because I have two minutes Thank you So i'm super thrilled that nobody got stuck enough to like cry out That's promising any questions. Yes Good question when you have you're linking in other blend files. Does that work? Yes Um, flamenco like when it's on the shared storage, it will just do nothing and be dumb and assume that it works But when it starts to copy things it will do an analysis of your blend file And there's a tool called blender asset tracer bat for short That will open that blend file and go through all these links to other blend files and other blend files and other blend files And find everything that's necessary for that render job And then send that to the farm So it won't copy what it doesn't need and yes So is it possible for flamenco to integrate with other farm software doing non-blender stuff We'd have to talk about that because the answer is maybe because I don't know what the other stuff entails But it's made for standalone things Okay, the question is are there things that can't pack up and uh in theory, no In in practice, uh bat is doing analysis of those blend files. It's not blender itself Which has a whole bunch of advantages, but also means that sometimes it's running behind So blender may have added a path somewhere That bat doesn't know about and then it might miss something, but that is definitely worth a bug report Another finger there Yeah, yeah, totally. Um the simple blender render also has support for when you Render to EXR whether it's multi-layer or a single layer. There is a checkmark saying preview And then blender will also render a preview jpeg Uh flamenco will pick that up and send the jpeg as last rendered image to be thumbnail then shown in the web interface Uh while it's also of course keeping the EXRs Oh, is it possible to have tasks like to use other things than ffmpeg and blender? Yes um But like I want to add a generic comment line runner thingy in there. So I have to do it, but it's it's on my list And there is nothing nothing stopping us from like expanding like that last question Good question. Do you plan to add user authentication roles that kind of thing? No no One of the big issues of deploying flamenco 2 was you have to integrate with so many different things and then it was That the component was blender cloud and component was running locally But you still in order to use the local thing you had to authenticate with blender cloud which then authenticates with blender id like Setting all of that up is a lot of headaches And we could integrate something into flamenco itself, but also I don't see much use you can run Frontend like engine x in front of it if you want to do authentication But it's not something that will be ingrained into flamenco It's really made for smaller studios where people like our adults and Understand that you shouldn't mess up each other's stuff Thanks again