 everybody. Good afternoon. This is very exciting for us to be here on this stage today. I would like to thank the Blaine Institute having accepted our talk because we actually quite late submitted our proposal a couple of weeks after the official deadline. So what are we presenting today? It's an add-on which we have been developing now for eight months. It's called Bullet Constraints Builder. And what is it? It is an add-on for Blender to complement Blender's viewport physics with plausible physical dependencies between rigid bodies. A tool that enables the simulation of collapsing building structures with an accuracy that was not possible in Blender before. That's about the shortening. So we thought that we are going to divide this talk into two parts. In the first 10 to 15 minutes I will talk very generally about the nature of our development. Kai is then going to take over in the second half and he will then show some simulations in real time. Especially there's a small house that is built in Blender and he will then he will let work the script on it in real time. These three images there that you can see on the top, they are like snapshots of a simulation we did with the script. It's actually our last, the result of the last script version. And this simulation you will see too within this presentation. But maybe we are going to first present ourselves so that you have an idea who we are and what is our background. My name is Oliver Walter. I'm an architect, German architect. I'm living in Finland now for about 18 years and beside my architects works I'm very passionately designing LED lighting fixtures that are made from wood. This is one example of the products that I develop. It's called PAIR. And I mention this now especially because Blender has been a very, very active part in the development of this product. You can see the gears on the left lower side there designed with this gear add-on which is in Blender and which was designed or written by Michel Anders. Yeah. That's what I wanted to say. I'm also a very long time Blender user. Hello. My name is Kai Kostak. I'm a 3D artist and animator from Berlin. I'm working as a freelancer and my main field of activity is mainly the creation of visualization for architecture and industrial machines. However, the Blender community probably knows me better for my destruction physics experiments. And here you can see one which shows a full dynamic fracture system which I have developed because I'm also into Python and C programming and hopefully this serves as a prototype for later C implementation. But this is left to be seen because the Blender core is still not sufficient and it is subject to a larger redesign in the next month as we have learned on Friday. And hopefully this will make it possible at least. And as we all know, this can really make interesting futures possible like this one. So, but this is not what we are talking about today. We are having a more serious background and Oliver will take over now for explain what our research is about. Yes. And I have to say that Kai is actually the one who is doing the scripting work, the programming work. I'm not really familiar with programming. To me, programming is something like a closed book. So I will talk very shortly about the context that our development takes place. Kai and I, we are now employed in the University of Applied Sciences. Laurea in Leppavara. Leppavara is a city district very close to Helsinki. Laurea is now taking part in an EU funded research project. It's a project called INOCUS. INOCUS is a four-year research and development project which lasts from 2015 until 2018. It's a consortium of 20 partners from 11 European countries. The aim of INOCUS in a nutshell is developing a set of tools that will improve the effectiveness of research and rescue operations. Those tools will reduce the response time and improve the speed, victims can be localized and rescued. There are 12 specialized working groups within this INOCUS project and these groups are working optimized tools that shall support rescue teams in catastrophic events. There are tools like electromagnetic and chemical sensors, airborne 3D scans for fast damage assessment, robot mechanisms that penetrate debris and 3D simulation tools for virtual building collapse. And then there's a sophisticated communication network which is combining all those tools with each other to ensure that data transfer is possible very efficiently. The working group that Laurea and Kai and I now are involved is a group that researches and optimizes the use of 3D software to simulate building collapse. We are in this group comparing three different simulation methods. The discrete element method which is covered by Blender and it's integrated bullet physics. Then we have this applied and finite element method. I'm not going to go into detail because it would take a little bit of time to explain really what is the difference between these different simulation methods. It's too specific and also quite complicated actually to explain but I would like to just pick this DEM and AEM. Basically they are using the same principle that there are rigid bodies as the smallest unit which is simulated. This rigid bodies are in the case of applied element method that are connected with matrix of springs that you can see in the middle on the right. And this underlying physics is actually then solved with a stiffness mark that is based on differential equations. The discrete element method which is now covered with Blender and bullet physics is a method which also handles rigid bodies but in this case these rigid bodies are connected with single constraints and the underlying physics is solved with iterative equations or iterative process. So within this IANAPUS project we are simulating a range of buildings that's the AEM to create a kind of a building catalogue. So you can refer to certain kind of buildings, look at this simulation and then get some kind of conclusion how these buildings, this kind of building will react on the similar kind of circumstances. This is our first simulation case. It's a high rise building with 20 stories and this is something that Blender, I think you agree, is not able to simulate physically correct at the moment. What we have in Blender, we have this viewport physics which is actually very nice functionality. Those of you may ask you who has been using or playing around with this bullet physics. Okay, quite a lot so you know that it has actually quite a high fun factor in itself. So it's nearly addictive that you can really apply physical active states to rigid bodies and then add them in the scene hundreds and thousands and arrange them in wild configurations and then trigger some collapse and it's really fascinating to see, it's really addictive. And there's this image what you can see this is from a YouTube channel from FIMEC. He takes this to the extreme, I think he has about 6000 maximum elements that he has been putting into the scene and it's perfectly visualized and he's collecting hundreds and thousands up to a million even more views within a very short period of time. But this physics is not really appropriate to be used in really complex building simulations because there are separated rigid bodies and there's no connection between them. It just acts with the gravity and with the interaction of the parts with each other. But we have investigated a little bit other tools, external tools and there in fact are two programs which are available which a little bit extend this functionality. The one add on, it's an add on, it's called bullet constraints tools and it's a bit irritating because it's very close to the name that we chose. Our name is a bit of an understatement you will see why soon. And this bullet constraints tool is written by Bashi, I don't know who is actually what is the name behind it. And then there's another tool which is called fraction modifier and it's written by Scorpion 81. I think his name is Martin Felke. This fraction modifier is actually a separate blender build, it's not an add on. And with these tools you have a little bit extended functionality in blender so you can easily select certain amount of rigid bodies and batch connect them with constraints. And this gives a little bit higher amount of complexity into the simulation because all of a sudden there are some connections between the rigid bodies established. But it's still not physically accurate. There are certain problems because the constraints which are then created there are not exactly placed. There's a threshold which is unique for all the constraints, there's no differentiation. And it's only one threshold that is placed which is always the same. And you have to repeat this process and for different selections of elements to get differentiated amounts of diversity into it. My god it's already 12 parts, it's going fast, extremely fast. So maybe I have to go forward a bit faster now. So because it was not really appropriate these tools that we found we wrote a new one, Kai wrote a new one, a new add on. And this add on allows realistic structural dependence is between building elements such as billows, walls, beams, slabs and so forth. By calculating breaking thresholds based on real material properties. So yes, placing the constraints precisely in the middle of the contact surface of elements, placing multiple generic constraints per element pair. So back to the simulation case. It's a 20 story building, totally concrete and in the middle there's a core and then the pillars are then grouped on the outer facades. And these pillars that's also important, they are diminishing in size over the whole height of the building. The biggest more massive in the ground and then they are very thin on the top. One, this blue articulated element is a strong beam, a girder. And so let's play this animation. Is there talk afterwards immediately? Is there talk afterwards? Okay. Okay, another place. So you can see this is the overview, skeleton, facade. Now the scenario is that in the lowest basement floor there are three pillars in the corner taken off by an explosion. Now you can just guess what is going to happen. Please try to guess what is happening with this building. This was very surprised to us that it's not collapsing. And the other method, this applied element method did the same simulation and came to the same result. Now we are, as you see, on the right upper corner there's a text and we are now continuously decreasing the material strength. And the more the material strength is reduced, the more the building is collapsing. I go a little bit faster because I'm afraid that Kai doesn't have time. It doesn't go. So the material acts more and more brittle. The lower the material strength is set. And the material strength in the beginning was actually set for concrete. I think it was concrete 30, wasn't it? Kai. Maybe I stop here because I think you saw enough. You just have to imagine that there's more and more of this progressive collapse happening over time. The last one. What was the, I cannot go back now. Sorry. This is an image which just, because the question comes, how is the accuracy of the simulations? Is it really accurate or not? We are not aiming at absolute 100 percent accuracy. But this, on the left-hand side you see a building which has collapsed 2011 in Christchurch, New Zealand. And you see very much of similarity between these scenarios. The core stays intact. This is a bit leaning but still intact. And then the floor slabs are slightly bend it. But still connected. Still connected to the core. Which means, which is of course natural because they are the reinforcement irons connected. So there are three key principles in this, our script. This goes so fast. Accurate constraint placement in the middle of the contact area of two elements. Breaking threshold evaluation based on contact area between elements. And placement of multiple constraints per element pair. This is the first point. Accurate constraint placement. The standard bullet in Blender, this viewport integration, places these constraints on the active, on the selected, or then in between of those elements. And it's never exact. It's never on the contact area where it should be. On the right you see two cases where our script has been placed. Placing the constraints exactly in the middle of the contact surfaces. And on the right side you see still another function of this script. It can cluster constraints to one single point in space. This is important because those beams that can have the possibility to bend, which wouldn't be otherwise possible. I go very fast now. Do you want to just mention these points? This is the second point, one of the key, the second key concept of the script. It's the definition of the breaking threshold because we made some very simple ricks and experiments and we found that there's really like a correlation between the threshold and the real physical force in Newton. But there's a formula depending on the simulation steps per second that you have in your scene. You have to divide in order to get the threshold value, the force in Newton by the amount of steps. This is not in any case, the case, but most of the cases of the constraints. And then on the lower side you see the differentiated blue areas. This is the defined contact area and by this area it is found the threshold by multiplying this area with the strength of the material and then again dividing it by the steps amount. So it's very accurate. And this is the third and last concept of this script. It is that we are using multiple constraints. The standard is only to use one. And that's the reason why a material has different strength in different directions. You have concrete for example, much, much stronger compressive resistance but much less tensile resistance. And that means that you cannot deal with only one threshold and one constraint. You have to have more. This is the second last slide now. This shows the approach that we are placing three separate constraints to a connection between two elements. The constraint type is generic and we lock the different axis and secure them with a breaking threshold, a unique breaking threshold which represents the recording force. And then this combination you see on the right side that's actually the final composition of constraints. This very quickly it's a speed thing because this is very crucial of course when you make big animations of big models. You can see here a comparison between Bashi's script on the left. It's magenta and then this red one is our speed curve. And you see in both cases that there's an exponential increase in rendering time which lets you assume that it's not reasonable to simulate for example 12,000 elements because you might wait many, many, many hours and so on. But you can see also that our script is ten times faster than Bashi's. Okay, let's actually eat simulation time. Okay, then let's be quick. I have to switch the display mode. So I'm showing this now in the action, the script. I'm starting I have only five minutes or so. I'm starting with a classical reinforced concrete building which is called the Domino House and it is slightly prepared. It stands on a platform which is animated by a noise function so that it reproduces some kind of earthquake-like motion and the building itself is consisting of rigid bodies only. They are otherwise not prepared and if I now going to select them, the building. And here on the left side you can see the add-on just when you have installed it, it should appear like this. And I'm leaving the presets here. They are predefined for reinforced concrete and just building a clicking build to build our actual constraints. It should take only a few seconds and now I'm moving the new constraints to a different layer and press bake to simulate the actual new structure and you can see it happens quite fast. We needed to implement our own bake function because we need to monitor the constraints because since we have multiple constraints per connection and the constraints don't know each other and have no knowledge about other constraints in the same connection, we have to monitor them and if we detect one is detached, all the others of the same connections are detached as well. So otherwise you would have to deal with some strange behavior like elements sliding through the air like on rails and this is to avoid that. So it should be enough, 500 frames. Should be enough to bring the building to a collapse. Now I'm playing back and you see it's just collapsing. So let's go to our actual high-rise building simulation. I have only the baking data here because it otherwise would take really long to load the scene with all constraints. It's like about 50,000 objects. It's a pretty hard, tough thing for Blender and I'm just playing back this as well because I want to show you how the current Blender features can be used even for this research project like the clipping border tool because you can now look inside the simulation and you can observe where air pockets are forming and cavities and this is important and interesting for search and rescue organizations because they now have a clue where potential survivors could be found and where they have to search for. So the last one is our expectations for the future. We want to expand the script to maybe even differentiate more forces and maybe even add more constraints per connections. So we may be able to simulate even more complex materials like steel structures with even complex shapes and not only box-like shapes and that's for our future that we hope to simulate something like this, a bridge with really complex connections and that's the next step for us. I think that's it. Thanks for listening. Yeah, surprisingly we are before ending. So if you have questions then please. The earthquake you were simulating, when the epicenter is under the building, the building does this and when the epicenter is far away, the building does this. Did you take that into account? It can be taken into account without any problems, yes? In this case it was just a generic noise function, not an actual earthquake. In our case it was only two-dimensional. This is a good question because this reference building in Christchurch which collapsed in 2011, this is actually one plan that we have that we might model it in Blender and then we have actually all the data, we have the construction drawings and we also have the ground movement information and that was indeed a very strong because it was just right under Christchurch. There was very heavy uplift so that would be very interesting to cross-validate our software of course. Other questions? Thank you.