Welcome to lecture 20. So, in the previous lecture we have seen a 2D FEM code which is developed to solve a two dimensional magneto static problem. In that FEM code we have used the mesh that has been generated manually ok, but that kind of mesh is easily applicable for rectangular geometries where the discretization is also uniform. But in case of electrical machines most of the geometries will have circular boundaries. So, in that case that algorithm will be difficult to mesh such kind of geometry. So, for that case we have to use some ah machine softwares which are available online. So, one such kind of freeware to mesh a 2D geometry of any shape is G mesh ok. So, you can download G mesh you can download G mesh software using the link that is given in this slide ok. And preferably you download this version of software because the mesh data available that comes out of this software is more easy to understand. Now, in this lecture we are going to solve the same 2D geometry using the mesh generated by using G mesh ok. So, this geometry we have seen in the previous lecture already. So, first in this lecture we will go to the G mesh ah software interface and then we will draw this geometry we will mesh it and we will extract the mesh data in terms of TET matrices. And then we use the same TET matrices in the same code that we have seen in the previous lecture with very few modifications. Only in this lecture we are going to focus only on the modifications of the code in the previous lecture ok. So, now first we will go to the G mesh software you can directly download from that link and it will come in the form of a ah ZIF file ok like this. So, if you extract that ZIF file you can open that folder here there is no need of installation also. Directly you double click on the application of this icon. This is the application icon. So, you directly double click on this you can open the G mesh interface ok. Now, here on the left hand side you can see 3 3 different things 1 first is geometry. So, under this you you have different entities to draw the geometry ok. So, here these are the entities these are the entities that are used to draw the geometry ok. So, geometry according to these these list of entities we can draw geometry either by using circles rectangles circular arcs and so on. But here in this lecture we are going to draw the geometry by using points and straight lines ok. So, here why why because most of the electrical machines the geometries are basically of circular arcs and they are not complete circles and complete rectangle is it not.  So, better we draw geometry using nodes and join by straight lines that is a better way. So, here also I am going to do the same thing. So, here in this slide you can see these are the coordinates of the 8 nodes. Here the 2 rectangles are formed by 8 points is it not here the 2 rectangles are formed by 8 nodes. So, first we are going to place these nodes in the geometry ok. So, here first you click on point ok. Once this window comes here you enter all the coordinates ok. So, our coordinates are 0 0 first first coordinate is 0 0 and length of the outer boundary is 0.1 you have seen that. So, I am changing my x coordinate as 0.1 ok and then height of the rectangle is 0.1 again. So, I am changing y coordinate as 0.1 and now I am closing the rectangle with 0 comma 0.1 ok. So, we have formed the outer nodes of the nodes of the outer rectangle ok. Now, we are going to form the inner nodes of the inner rectangle ok. So, here you. So, here you just enter 0.3 0 3 and 0.3 and length is 40 mm is it not. So, you have to increase the x coordinate by 0.04 ok and then height is 0.04. So, increase y coordinate to 0.07 and then close the rectangle by placing the fourth node ok. Now, you have placed the nodes. Now, you have to frame the geometry by closing these nodes using straight lines is not it is a rectangle not. So, it will have straight lines. So, here I want to highlight one thing in case of g mesh. So, as we have discussed in the previous lecture as we have discussed in the previous lecture, we make use of the mesh information to form the to apply the boundary condition is it not. So, we need to know the something called as global edge number that is like on which there will be a label for this edge complete edge. So, that label we need to know to you to explore that condition. In g mesh the way you draw in the sequence you draw the numbering will be assigned in the same sequence ok. Similarly, for sub domain numbers also the in the sequence you assign the sub domain number in the same sequence that global known that sub domain number will be assigned ok. So, that advantage we can explore. So, to see what are all the global edge numbers and global sub domain numbers. So, you have to right click here ok go to all geometry options in visibility tab you check the line labels surface labels ok. So, now as you draw the straight line. So, I am drawing the first vertical line like this ok. Here you can see for the for this edge one has been assigned ok is it clear. Similarly, if I draw this as second this will get the second similarly third similarly fourth. So, to avoid confusion while you draw the geometry you assign the outer boundary where in general we apply most of the cases we apply a is equal to 0 with 1, 2, 3, 4 first you draw those edges. So, so that that part of the code where you assign the boundary conditions will remain same for any geometry ok. Now, after that you draw the straight lines for the inner rectangle inner rectangle ok. Now, after this we need to assign the sub domain number is it not. So, sub domain numbers here there are two sub domain ok. The first sub domain is in between the outer rectangle and the inner rectangle. So, this outer rectangle and inner rectangle form the boundary of the air sub domain ok. So, to define the plane surface you click on the two boundaries you click plane surface here and you select the two boundaries. So, these two form the boundaries of the first sub domain. So, whatever may be the sub domain sub domain you need to choose you click the two click the all boundaries in which which is bounded for that sub domain and then you click E here you can see press E to end here it is written press E to end. So, you click on E. So, that will assign the first sub domain number here you can see there is one ok. Similarly, to to second the sub domain click on second sub domain click on plane surface and select the boundary. So, for the inner inner rectangle which is rectangular conductor the boundary is only this rectangle. So, I am choosing only this one and then click on E that will select you the second sub domain ok after this. So, now we have assigned the sub domains also. Now, we need to mesh this geometry. So, here geometry thing is completed. Now, go to mesh. So, this is a 2D geometry is it not here you can mesh a 3D geometry also this is a 2D geometry. So, click on 2D. So, mesh has generated, but this is a very coarse mesh now you need to refine refine this mesh is it not. So, click on refine mesh by splitting. So, like this if you keep on refining the mesh will get refined automatically ok, but in this mesh there is a problem here you can see for these elements these triangles are obtuse angle triangle. So, it is advisable to have equilateral triangles to to to get an accurate result. So, you need to avoid this kind of obtuse angle. So, for that you need to you need to change the algorithm. So, there will be a default algorithm for G mesh which can mesh the geometry. So, you need to change the algorithm of machine. So, for that you rightly on this space go to all mesh options here in general you have 2D algorithm or getting here there is automatically automatic is selected. In that place you select this this algorithm this is Deloni algorithm ok. So, after selecting this you click on 2D. So, you can see the mesh shape has changed. Now, more or less all the elements are equilateral triangle they are equally spaced almost ok. So, and the two sub sub regions and the elements in two sub regions are with different colors ok. Now, here I want to highlight one point. So, in case of electro statics you no need to mesh the geometry mesh the geometry that correspond to conductor because E field is 0 there. So, you need no need to calculate the potential in that region ok. So, in that case to unmesh to not to mesh that region you do not select the boundary you do not select its plane surface like the way we selected this conductor you do not select that conductor. So, by doing that it will not mesh that region ok. That is how you can reduce your mesh sizes ok. Now, we have generated the mesh after generating the mesh we need to export this mesh into Sylab code ok. First of all for that first of all we need to save this mesh data. So, here under the mesh tree you have save option you click on save here you can see where it has been saved ok. So, it is it has saved here app data roaming. So, first actually you need to save this geometry file in a folder. So, that you get the mesh data in one file now you just go to that folder ok. Here you can see example 1 dot msh file. So, mesh data will get saved in the msh file. So, you just right click on this file and then open with notepad ok. We will get the complete information about the generated mesh in this file this file contains two sets of information. The first set of information will be saved under section nodes under section nodes you can see there is a number 270 this 270 corresponds to total number of nodes in the mesh and the rest of the information corresponds to the coordinates of the nodes in the mesh. So, here what you have to do is you have to copy the information that corresponds to the coordinates in a text file and you have to save it as p dot txt in a folder where you will save the code cell app code. So, you open it notepad file and copy the information and save it with p dot txt file. Now, the second set of information will be saved under section elements and this section contains three sets of data. The first set of data corresponds to the global nodes that are placed to draw the geometry and the second set of information corresponds to edges that are on the boundaries of the geometry and the third set of information corresponds to triangles in the mesh which is nothing but the connectivity matrix that we have seen in the previous lecture. So, here the question that arises is since the three set of data are saved under the same section how to distinguish these three sets of data. So, here you can see the data that corresponds to the node will have six columns the data that corresponds to edges will have seven columns and the data that corresponds to triangles will have eight columns. So, what you have to do is here we will save only the information that corresponds to edges and triangles why because the information that corresponds to nodes will have no use in our code. So, first you first you have to copy the information that corresponds to edges in a notepad file like the way we have done for the nodes and you have to save it as e dot txt file in the same folder where the p file is saved. Similarly, you have to copy the information that corresponds to triangles in a notepad file and then you have to save it in the same folder where the p and e files are saved. So, with this we have completed the task of extracting the mesh information in terms of three matrices that are p, e and t and now we will see how to use this information in the Sylab code to solve a 2D magnetostatic problem. Now, going into the slides. So, this we have seen already now here this ELC clear all you know what it is now the next part. So, now the next part is this pf scan f mat. So, this command is will read the text files this command will read the data in text files into a matrix in Sylab ok. So, there we this p dot txt we have saved already ok. So, here in this case this f scan f will take out all the information that is in the p dot txt file into this p matrix ok. So, what is the information that is in p dot txt is this ok. Here the first column is load numbers ok. Second column is x coordinates of all the nodes, third column is y coordinates of all the nodes and fourth column is z coordinates ok. As this is a 2D problem the z coordinates are by default 0 ok. So, what are all the things that we needed here? So, we have to take only the things that we need only x and y coordinates is it not. So, here I am taking only 2 and second and third columns and I am updating my p matrix with the data and I am taking a transpose of it. So, that it will be in line with the form of matrices that we have seen in the previous lectures ok. So, after this operation my p matrix will be like this. So, the column numbers of this p matrices of this p matrix is nothing, but load number ok and the size of this p matrix is 2 by number of nodes. Now, similarly e matrix. So, e dot txt file we will read into the e matrix and in the in this e matrix in this e text file we have as I have discussed earlier there are 7 columns is it not. Of these 7 columns first is element number. This element number means combination of all the 3 set of data ok. This has this numbering has of no use ok and the and these 3 also g mesh generated thing this is also has no use in this case ok. Only thing that we use here is the last 3 columns ok. The first this column this fifth column is global edge number. So, this information we will be used to assign the boundary condition ok. So, for the first for the first edge you you may remember while we are drawing the geometry the first edge got assigned to the vertical. So, that first edge similarly second for the second edge this will be changed to 2. Similarly, for the third edge and this and starting node number will be placed in the sixth column and the ending node number will be placed in the seventh column. So, after this operation so, we are taking only fifth to seventh column and we are take and we are transposing it. So, that we will get an E matrix of this kind. So, the first row of this updated E matrix will have global edge number, second row will have starting node number, third row will have ending node number ok. So, this is the that is how so, the finally, the E matrix size is 3 by number of nodes and then T matrix. Similar to the other two matrices we can get the data of T matrix and we can save it in a matrix of which is whose name is T and then as similar to E matrix the first four columns are of no use we are going to use only the columns 5 to 8 ok. That is why we are taking columns 5 to 8 and we are taking making a transpose ok. So, that our updated T matrix will be of this kind ok. So, here the fifth column this first row which is nothing, but this column this first row denotes the sub domain number ok and this sub domain number it will be used to assign the material properties and assign the source conditions and first second and sorry second third and fourth rows contains the global node numbers of each element are you getting is it clear. So, the first the second the second row third row and fourth row will have the global node numbers of each element and the element number is nothing, but column number this column corresponds to first element, this column corresponds to second element, this column corresponds to third element that is why the column number corresponds to element number ok. Now, the size of finally, the size of T matrix will be 4 by number of elements ok. So, up to here the machine and taking that machine to the code we have seen. So, this part is completely different from the code that we have seen in the previous lecture. So, from here the next part will is same up to calculation of element coefficient matrices only next thing what we need to change is assigning the source conditions is it not. So, in the previous lecture if you remember we have assigned the source conditions by verifying whether its centroid is inside that rectangular region or not is it not. So, in this lecture in this code we are not using that logic we are just checking its sub domain number. So, for every element as we have seen earlier the first row corresponds to sub domain number we are checking whether the sub domain number is 2 or not. If it is true we are assigning the source if not we are not assigning the source. If not since there are only two one is rectangle second is one is rectangular conductor second is air. So, we are assigning only to the to the rectangular conductor only. So, this part of the code will be changed for that code that we have seen in the previous lecture. Similarly the next step that we need to change is assigning the boundary conditions. So, boundary in the previous lecture we have seen boundary conditions are assigned node wise is it not. We have done a bookkeeping of all the node numbers and we have made a logic for which all the bottom edge nodes top edge nodes like that we have done. But here with the help of G mesh we know the global edge number this 1 2 3 4 ok. This we can remember as we have drawn we have drawn the geometry and we have assigned that outer 4 edges are the main boundaries outer boundaries where A should be assigned. So, that we will be check we will check whether the global edge number of each edge is 1 or 2 or 3 or 4 and we will assign the boundary conditions. This part of the code is same. There you you will see that we are applying boundary condition to one node at a time because we are assigning node wise here each edge will have two nodes ok. So, that is why we are assigning boundary conditions to two nodes at a time ok. That is why there you have seen three steps here we will see six steps ok. Now after this plotting, plotting has to be changed. So, the surf and contour plots that those commands are applicable only for rectangular grids ok. You cannot use those commands to plot for triangular mesh ok. So, that is why we need to form a rectangular grid first. So, we got the solution already and then you after getting the solution you discretize the geometry into a rectangular grid and you calculate the potential at each and every node of this rectangular grid using the solution that you have obtained. So, you frame a grid and it will have many number of points like this. Each node you check in which element it is present and then you calculate the potential at the of that node of the grid node using the three potentials of potentials of the three node ok. So, that you can calculate the potential of this complete rectangular grid ok. This is the logic that we are going to follow to plot the potentials in this case. So, here how how can you know whether a point is inside a triangle inside a triangle or not. So, if a point is inside the triangle ok if let us say a point is inside a triangle one point can be always be inside one triangle only is not. So, if a point is inside the triangle then you frame three triangles ok with this node and the triangle like this is this is that unknown potential node you form triangle with nodes 1 and 3 of the triangle that is delta 1 form a triangle with nodes 1 and 2 that is delta 2 form a triangle with nodes 2 and 3 that is delta 3 ok. If the sum of these three triangles is equal to the area of this big triangle then the node is inside the triangle if not then that area will be more than the area of big triangle that you can visualize directly using these two figures is it not. So, here to calculate the potentials on this grid for plotting purpose we are going to do this same logic. So, first we are going to discretize in the same fashion that we have done in the previous code and then for each element we are checking we are taking the difference delta 1 delta 2 delta 3 we will be calculating using that node information and then we are calculating the difference. Why we are taking difference is numerically this is a computing software sometimes that may not be numerically equal that delta 1 plus delta 2 plus delta 3 may not be numerically equal to delta. So, that is why we are calculating the difference between sum of that area and area of the triangle and we are storing it in difference matrix ok. Once we will store it for all the elements after that we will take the minimum difference triangle for the triangle for which that difference is minimum we will take the triangle number ok. So, now we got to know in which triangle that node is present ok. Now, using this formula a inside an element can be approximated as a plus b x plus c y this is our initial step of formulation ok. Using this we will calculate and using the potentials at the three nodes using this formula and potentials at the three nodes we will calculate a b c by just by inverting this step also we have seen previously ok. Now, once this is done we will get a b c a b c values you just substitute x and y coordinates you can get the potential at that point ok. So, this part of the code is nothing, but this logic ok. Here this m matrix correspond to this matrix 1 x 1 y 1 1 x 2 y 2 1 x 3 y 3. So, here x 1 y 1 is x coordinate and y coordinates are stored in p matrix first row of x first row of p matrix is x coordinate and second row of p matrix is y coordinate and global node number 1 is second row of p matrix. So, like that you can calculate you you can get the information of x 1 y 1 x 2 y 2 x 3 y 3 form this matrix like this take inverse of m into pot potential you will get a b c values and I am storing those values in a b c matrix. So, this will be a 3 by 1 matrix in which a b c 1 corresponds to a a b c 2 corresponds to b a b c 3 corresponds to c ok and substitute the x and y coordinates you will get the potential at that corresponding grid point ok. So, you can now you can plot that using the same surface command. So, this logic of plotting by using a rectangular grid on a triangular mesh is common to all the codes this this logic will be there in all the Sylab codes ok. Whereas, in case of MATLAB there is an inbuilt PDE toolbox where that toolbox also generates same PET matrices using that PDE toolbox commands which is called as PDE plot you can plot that directly, but in case of Sylab we do not have such kind of command that is why we are using this logic to plot ok. Similarly, you can plot a contour plot also for this ok. Thank you.


Welcome to another roundup of news in this episode of the not a quest is a journey to Blender 2.8. So we're still in alpha, but things have been changing. This week is being focused also on getting more stable. There has been a call for workspaces and there has to be some changes in the interface. This controversial topic that everybody loves. Who doesn't love? UI discussions. One of them, one of the big changes that happened this week was in the header. They were in the header and in the viewport itself of the Blender UI. So let's go through some of them. There is a mix of new features, fixes and then changes and organization. So where to start? Well, I don't know if you noticed in the last video that I made that I didn't mention it, but it was there. It's the flip of the shading settings viewport slash everything that has to do with your view like overlays with the snapping and the pivot point. Like everything that it on every other editor is on the right. In the viewport now it's in the center and it, yes, it's a change, but that means that the shading settings, the popovers and everything is no longer in the middle of the screen. So it would happen that if you open an overlay panel or like a popover it will just like put it in the middle of the screen and then it will hide all the whatever you're doing. So if you change a matcap then it would just, you wouldn't see the results. So that's one big change that happened this week. There's also changes and additions in regards of how to work with your scene. How to like actually work in the viewport hiding things and making some certain object types selectable. So for example, let's see this file from Spring Open Movie. Say I want to hide all the cameras. How would you do it? Well, you could select the cameras and you can hide it from the outliner. But now you can also hide by type. So in the header, which works much better if you're in the top, you can hide now per type or you can also make unselectable. So you click this working progress icon that is here that it's a very special mix of icons here. What does it mean? Well it has an eye and it has a cursor. It means that if it both are on, this will be worked on. But both are on. It means that everything is visible and everything is selectable. So we said I wanted to hide the cameras. Okay, just click on cameras. And now I don't see the cameras. And if you see the, well, the icon is hard to see. Let's go up here. Let's make the UI slightly bigger. So the eye icon now is gone. So it means that something has changed. And then I also had the armatures or like various per type. So you can see only the things that you want. And it's very, very nice. It was there last week. It was tucked in a sub panel right here because it was like it was here in the header for like a day. And it had the same icon. So you couldn't tell like it was always, it was an eye in the middle. And you couldn't, you couldn't tell the state of what was happening in this sub panel. So it didn't have a lot of sense. It had a functionality, but it could be better. So now it's brought back in the viewport with this extra functionality. So at a glance, if you open this file, somebody sent you this file, for example, and you open it and you see, okay, the eye is there. But the little arrow is not. It means that some things are not selectable. So if you're clicking around and nothing is, you can't select it, then you just have a look here. And then you see it. And it works for all kinds of combination. So yeah, the icon, we need new icons for these guys. So let's think of ideas how to make it nicer. Right now, it's just basically both icons, very small. So this is one big thing that happened regarding hiding things in the viewport. There is this overlays pop over that was introduced way some months ago. And you could toggle on or off everything basically with this button here. So it was just like, and it will even gray out the pop over. But there was something that's not possible. So here, for example, you hide everything. But in the pop over itself, even if you click and try and hide everything, then you will still see some objects certain elements in the viewport. So that was not fair. If you and hide or hide, it should just like be the same, right? If you click turn everything off here, it should be the same as clicking here. There were a few exceptions. So now those are added as new features basically. So which ones were the exception the origins? There was no way in blender until a few days ago to hide the let's see everything. So let's see, for example, select an object. And let's only see the origins. So there was no way in blender to hide this little thing in here. Or like when you add a new mesh. This thing that is usually in the center that is useful to see where the origin of the object is. It's not always the center itself, it's just the origin where where it was added. So there was no way to hide it. Now there is. And the only option that was there before it was to where you could just show all of the origins. But yeah, it was a bit distracting. Now you can you can hide it. That's for the first time in ever since Blender was born. So that's a big change. Then there is also another change that was added that you can hide individual bones. So it means what does it mean by don't just hiding the whole armature? Well, it means that you can have like motion pads on, but the bones off. So it's a nice mix. You can just show a few things that you want or not. Then another thing that was added is ornaments. What is an ornament? Well, it's every object that doesn't have a is like a like the camera, for example, or the lamp widgets around it. And it's everything that it's a wire that doesn't get rendered, basically. So if it's a mesh, yes, it's going to show. But everything that is like a decoration to the object like this, that these wires here that are actually cameras and they don't get rendered. Well, those are ornaments. So that also wasn't possible before you couldn't couldn't hide it, you could hide everything or nothing. So that's another extra addition that you can do. That's pretty nice. Then the grid also was was tweaked. But the one I want to show is the manipulators because now you can hide before you could just either show or hide everything, all kinds of manipulators. Now you can toggle which ones you want. So the first one is a navigate manipulator, which is these arrows that you find here in the corner for navigation that still a work in progress. Don't talk about the design. We know we know. But now you can toggle off. And the cool thing is that you can toggle it off also per per viewport. So let's I have the wrong there. So now you can have it on and off per viewport before you could only do it from the user preff. You could change it from there. So now what you do from the user preff is to toggle between the simple or the other one if you're more advanced. For example, this one interactive navigation. Some people say that is for beginners. I don't think it's for beginners only is if you're working with a tablet, for example, it's very handy to just click there. And you don't need like to go to the to the keyboard all the time. So it's just click there and it's fast if you're with a pen with a stylus. But also just to see where you are when when it's a bit prettier in the end and a bit smaller, it's going to be much more handy. But the fact that you can now have it per viewport that's that's a plus it wasn't possible before. So then there's also two kinds of manipulators, the active object and the active tools. So there are a few tools that have a manipulators, for example, the transform is one of them, the most obvious one. But the for the spin tool or the there is still is a work in progress all of them, this manipulators, but you can toll them on or off from here. And then there is active object what is active object? Well, it's the manipulators that only affect that one object. So for example, if I'm let's let's go to the camera. So if I select the camera, you would see that the camera has this yellow control is like a manipulator to change the zoom, for example, the spotlight also has this line where you can control the cone size. Well, that is what it means with a manipulator for the active object. So if you disable it, then you can, you can be in the camera and it's not gonna show up. If I enable it, now I have it here on the side. It's hard to see here because there are so many lines. But yeah, those are the manipulators. And that's that said, there has been a lot of arrangement changes here. The 3d cursor was already there. But this XYZ didn't say access before.  So you could maybe imagine. But yeah, that's something that changed the outline. Everything else is pretty much there. Then the this UI changed a little bit. What you see here actually, are sub panels. So sub panels are supported already in blender, like in the popovers. But they don't look like pop or one like sub panels. What do I mean with a sub panel? Well, as a panel, for example, it's something like this, something you can collapse. And for the time being, they're not, it's not implemented yet, but they are going to look like that. And you're going to be able to collapse them by default. And they won't be like a football field size gap between these two, they will be much smaller. So they will be is going to be more compact. Now it looks too big. But yes, it's going to be compact. Once the implementation for pop, for sub panel popovers is complete. For the time being, you can disable some of them, they get expanded, like motion tracking, I think for by default, it's going to be off, because it's something that not everybody uses. And maybe it can show just to make it maybe will show by default in the motion tracking workspace. So these are things that we need to still discuss. But basically to just show what is relevant to you and what when you're doing it. So that is with the overlay. So now finally, you can just click on everything and it will be the same as toggling it on or off something we wasn't possible before. Next, the shading. The shading panel has a few fixes, but not not a huge deal. Basically, it's just alignment of the of the panel itself of the popover. And this has changed match is now much smaller. So now you can see more and it won't block your screen. Before this used to be way bigger, like twice as big, and it won't be like using all the room. I should have pictures how it was before it was really huge. And the map caps is not something that you change all the time, because you usually know them, you remember them.  So that's something that was changed. The alignment was I did it as now based on a discussion on the development depth talk forums. Thank you for that. Thank you for providing feedback. And yes, lots of changes. The interface is a bit different here. But all not only that, but there's also additions. For example, shadows, I'm not going to try it on this file because I know that it's going to be slow. And I don't want to risk this one take long video with something crashing. So shadows, you know what shadows are, click, click on them. And they're like basically geometry, they're really sharp. And they're based on like geometry, you can change the intensity and you can move them around. But not a lot of people knew that because it was kind of hidden in the scene properties. So you will have to go to scene. And then here you will find the panel, not anymore. Now this is well, it made sense actually that it was there because it's a scene setting. But like to change the direction, you really do it from the viewport. So now when you have a shadow here selected, you can click on this pop over and you can just move the direction of the shadow around, which is pretty nice. And there is another property for the shift, which you can see better when there is like an object that it's curved. And at a certain angle, you're going to see it, see it change. It's very, very subtle. But basically it's based on the, it can fix some artifacts on the shadows. So just play with it if you need it. But the light direction is the one that you're going to play with the most. The shift is not something you're going to change all the time only if you see errors. And also with that concept, there is a cavity shader settings that before also were tucked in the scene property settings. Now they have their own little pop over here, where you can change the distance, attenuation and quality or samples. So that's another improvement. This also the UI kind of jumps here. Maybe we can fix it once we have the sub panel. But the, the collapsible sub panels, we're going to align a few things a bit better. Maybe in the development talk forum, there was a suggestion to make this column. That's where I took it. That's where I found this idea. It's very nice. And to apply the same here, so they're all nicely aligned. But yeah, this concept is also shared here. So now when you choose an HDR, you can also change the rotation and it's all nicely aligned. But it took me like an hour of just moving things around and just trying, trying, trying. So yeah, it's not, it's not easy. It's not easy. But it's worth it. It's fun. So that is it for today. I think it ended up being much longer than I wanted. But yeah, Splendid 2.8 continues to grow. They're more fixes. It should be more stable right now. There has been fixes all over the place. The people here, the artists working on Spring, they have been fixing modifiers, shrink wrap modifiers, fix, there were some rigid stuff. I don't know, all over the place. We keep using Blender 2.8 every day to make Spring open movie projects. So we are fixing things all the time. And remember that you can still submit fixes for the, sorry, fixes, back reports, but not back reports, but crash reports. So yes, remember that all of this is possible thanks to the Development Fund. So yeah, advertisement. This is thanks to Squares, no, no, Development Fund. That is it, where you can join. And we're working on a new version of the Development Fund, where you will be a bit more fancy. So stay tuned for that. And that is it. I will see you again in the next video. Ciao. And thank you for watching. Subscribe if you want more and like. And yeah, ciao.


Hi, I'm Kershun Sia from freerangecoder.com and I'm guest interviewing at the Jarrah Design booth at McWale IWAL 2014 for the SolarCast podcast. And I'm here with John Brewer and he's got an app to show me that really touches my heart. My dad's an electrical engineer and this looks really interesting. Now, John, tell me a little bit about your app. Okay. This app is called Resister Vision and what it does is it instantly decodes the color band codes on any standard beige four-band resistor. These are the ones you see in electronics projects and hobbyists use all the time and there's a secret code you have to know and that people have little cards and stuff. But as a programmer, I thought, why are we like, and there are actually apps for the iPhone where you dial up the colors and it tells you what the value of the resistor is. I said, well, why are we using the touch screen to ask it about a resistor? Why don't we just point the camera at the resistor and the iPhone will know that's the resistor you want to know and show you the value. That is really great because that's an amazing problem that all of us engineers have to solve because I used to have to take a multimeter and measure the resistance that way and there's never a multimeter around when you need to measure resistance. So with this app, it's really neat. Would you give us a demo? Yeah, of course. So let's go in here. So what you see here is I just got four sort of resistors I got out of a little electronics kit and I'll just move the camera, let me show you the resistors back there on the table, and I'm just going to move the camera over them. So this is a 220 ohm, that's red, red, brown. This is a one kilo ohm, that's brown, black, red. This is a 100 ohm, that's brown, black, brown. And this last one is a 10 kilo ohm. That's brown, black, orange. And you see it's happening instantly as you point the camera at the resistor, it tells you instantly what the value is. That is amazing. And the app is available in the iTunes App Store? It's currently going through the review process, it should be available shortly, and it's going to be initially priced at $2. Excellent. Thanks very much, John. And the app's name is? The app's called ResistorVision. It's ResistorVision from J-RA Design.


I have spent the past 17 years studying international peacebuilding initiatives, so I've done that mostly in the Democratic Republic of Congo and also in various other African and non-African countries. And during this fieldwork, I constantly witnessed a puzzling pattern, which is that international interveners kept using, reproducing, perpetuating ways of working that they themselves widely viewed as inefficient, ineffective, even counterproductive. And by interveners, I mean expatriates, foreigners who work in peacebuilding, so that includes donors, diplomats, United Nations peacekeepers, other United Nations staff members, and the foreign staff of international and non-governmental organizations. And by peacebuilding, I mean any and all actions that help promote peace during, before, during, and after a conflict. So when I say peacebuilding, I include all of the actions that United Nations officials and United State Department officials would usually categorize as peacemaking, peacekeeping, and long-term peacebuilding. So let me give you a couple of examples of these kind of puzzling patterns that recur. It is now conventional wisdom that local ownership is absolutely essential for successful peacebuilding, but local stakeholders are rarely included in the design of international programs. Scholars and practitioners regularly emphasize that using universal peacebuilding templates is ineffective and that it's very important to adapt the activities to the local context. And yet, interveners often use models that have worked in other conflict zones, but that are not appropriate for the specific local conditions. Local people and interveners themselves deploy the expatriate's tendency to live in a kind of bubble where they interact mostly with other expatriates and where they contact with host populations. And yet, this phenomenon still recurs in virtually all areas of intervention. Why? What I also found striking when I was in the field is that a number of individuals and organizations ignore or even actively challenge the international peacebuilder's dominant practices, and they suggest alternative modes of operation. The existence of these exceptional cases raises two questions for me. First, what can we learn from them in terms of increasing the effectiveness of international peacebuilding? And second, why haven't they managed yet to convince their colleague to adopt the alternative modes of operation that have proved to be more effective? When you look at the dominant explanations for the effectiveness or ineffectiveness of international peacebuilding, you see that they usually focus on vested interest, material constraints, and the imposition of liberal templates and values. Well, what I found in my research and the central message of the book is that the everyday dimensions of international peacebuilding initiatives on the ground also strongly impact the effectiveness of intervention efforts. And by everyday dimensions, they really mean mundane elements, like the expatriate's social habits, their standard security procedures, the habitual approaches to collecting information on violence. I also look a lot at the influence of informal relationships and personal practices on formal professional initiatives. And in my book, Peaceland, I show that these everyday practices shape the overall intervention from the bottom up. They enable, they constitute, they help reproduce the macro level policies, strategies, institutions, and discourses that political scientists usually study. They also explain the existence and the perpetuation of ways of working that interveners themselves widely view as inefficient, ineffective, even counterproductive. And of course, my approach and existing explanations are not mutually exclusive, but rather, they're complementary. So the book studies the, how interveners make sense of their environment, and especially which and whose knowledge matters in peacebuilding. As you know, in the current international system, the most valued expertise is that of intervener's strength in peacebuilding, humanitarian, and development techniques, and with extensive experience in a variety of conflict zones. In contrast, and although there are exceptions, the knowledge of country specialists is usually much less valued. And the knowledge of local people is usually trivialized. So this practice has productive, positive, intended consequences that increase the effectiveness of international efforts, but it also has negative, unintended consequences that decrease international effectiveness and create enormous local resistance. And something that makes things even worse is that on the ground, peacebuilders face multiple obstacles when they try to collect and analyze data on their areas of deployment. And so I trace the key consequences of the resulting lack of understanding of local context. And one of these key consequences is that the lack of understanding of local conditions entices interveners to rely on simple and often overly simplistic narratives to design their intervention strategies, and again that has numerous counter-projective consequences. So the second part of the book studies the everyday routines that make possible the counter-projective practices and narratives that they just told you about. And I look again at the intended consequences of these routines, such as enabling interveners to function in conflict zones and enabling their organizations to help the host contribute peace. And I also look at the unintended consequences, not only the fact that these everyday routines construct and maintain firm boundaries, a firm separation between interveners and local people, and the fact that they perform, they make visible, they perpetuate, and they reinforce an image of the intervener's superiority of our local people, which these people obviously strongly resent, and again that leads to resistance and rejection. So the routines I analyze include, for instance, the intervener's personal and social experience living and working in conflict zones, are the patterns of social relationships among interveners and between them and local populations, the intervener's standard security routines, their advertisement of their actions, their search for neutrality and impartiality, and their focus on quantitative and short-term results. And throughout the book I look at all of the exceptions to the dominant modes of thinking and acting that I describe. And I show that interveners are much more effective, for instance, when they value local knowledge on par with thematic expertise, when they develop personal and social relationships with their local counterparts, and when they forego standard security routines and the requirement to advertise their actions. So overall, I think that we should adopt a new approach to the study of international peacebuilding, an approach focused on the everyday practice of peacebuilding on the ground. This new approach produces findings that are different from those of existing research. Macro-level policies, strategies, institutions, discourses are not the only determinant of peacebuilding effectiveness. The everyday practice of peacebuilding on the ground also matches tremendously. And it is by looking at these everyday practices and habits that we can understand why interveners contribute to perpetuating modes of operation that they know that we all know are inefficient, ineffective, even counter productive. Everyday practices, habits, narratives are perfectly understandable responses to the difficulties of intervening on the ground in conflict zones. They enable interveners to function in the difficult environments that they face, but they also have numerous counterproductive consequences that decrease the effectiveness of international peace efforts. So what do these research findings tell us about what we can do to end ongoing and future wars? Well, we could rebalance the way interveners value local and thematic knowledge by following the models of the exceptional interveners that I mentioned during this talk. So very concretely, that would mean changing recruitment and promotion practices for interveners, relying much more on local employees, and creating tools and structures to gather local input from intended beneficiaries and surrounding local communities. We could also help interveners break the separations, the boundaries between them and interveners, between them and local people by creating structures for better relationships between interveners and local populations, by convincing interveners to socialize more with their local partners, and by also convincing them to forego standard security routines and the requirement to advertise their actions. And local people could further help break this separation by changing the way they routinely interact with foreign peace builders. Thank you.


James Harden putting his head set on right now James. It's been a whirlwind for you all-star game The team has one practice and then his back to game action. What was it like finding the rhythm as a group out there tonight? It's always good when you win, you know, so I think our first game back.  We do to the high level He played big time tonight. He stepped up make big shots, especially in that fourth quarter We'll take the win and in the next game. Well, you guys continue to get W's and then you look over at the next bench And there's Kevin Durant there and Blake from there as well In what ways are you guys still just scratching the surface at your potential? That's what it's about You know just finding ways to win games and we're doing it with our defense tonight, you know Fourth quarter when it's time to get stops. We did that and it just been a you know Next guy up kind of mentality guys are in line-ups Great to see Jeff back, you know after a shorter injury, but we just got to continue to keep building great habits And we've been doing that Kyrie had a 40-point game Landry shaman had a big game off the bench You had a near triple double this game was close in the fourth quarter describe the mentality that you have to have To be successful in winning time whatever it takes to win Whatever it takes to win by any means necessary, you know, whether it's boxing out getting loose balls You know, it's not just scoring a basketball, you know, and it's the small things the detailed things and we've been doing as as of lately We got to continue to do that. Thanks so much for your time. We'll see you Saturday. Thanks. Appreciate Bert