While we've taken a look at nearly all of the stunning residences belonging to the royal family, one member of the clan doesn't get as much positive attention. I'm talking about Prince Andrew, and while he has been lucky enough to call the stunning royal lodge home, who knows how long that's gonna last. Also, Michael and I have dropped our own house tour of our new home that we moved into this year, so go ahead and subscribe to our personal channel if you want to see where we're living and more of what we're up to. In these videos, we don't reveal any addresses and even though I've done a house tour of my own place, please do not show up at any private residences because it's not safe for anyone. With the UK getting its first new monarch in nearly a lifetime this past weekend, after the passing of Queen Elizabeth II and the ascension of King Charles III, soon enough, all eyes will turn to Charles' brother, Prince Andrew, to find out what fate might have in store for this disgraced member of the royal family for years now. Andrew's status as the Queen's favorite son has kept him housed on the Crown Estate. More specifically, a portion of that estate that's known as the Royal Lodge. Andrew has been living there alongside his ex-wife, Sarah Ferguson, ever since the passing of his dear old grandmother back in 2002. And it's from this very 30-room property in Windsor that he's done his level best to outlast a series of horrendous scandals, many of which involve his association with former friend Jeffrey Epstein. Prior to those shocking revelations and the dissolution of their marriage, Andrew and Sarah used to share yet another property that's only a stone's throw away from Windsor Castle known as Sunning Hill Park. But that estate, much like Prince Andrew's current reputation, is now in shambles. Hey guys, it's Kara the Vampire Slayer back with another exclusive house tour here on Famous Entertainment and in this one, we're looking at where Prince Andrew calls home. Don't forget to like, subscribe and hit me up on Instagram to chat and now let's get into this video. In a leafy and very well-off corner of Her Majesty's Empire lies Prince Andrew and Sarah Ferguson's former family home, a gigantic mansion sitting in Sunning Hill Park. For a very long time, this house, which is located on the edge of Windsor Great Park, stood simply as a testament for the vast wealth of the royals with no full-time occupants to call it home. But then in 1986, this 12-bed, 12-bathroom mansion was given to Andrew and his new bride Sarah Ferguson as a wedding gift by Elizabeth, seemingly confirming the rumors that Andrew was the Queen's golden child. Andrew and Sarah would live here together throughout all 10 years of their marriage. But in 1996, the couple separated after Andrew was revealed to have been having an affair. The Prince would move on while Sarah stayed at Sunning Hill raising their two daughters.  Six years later in 2002, Sarah and her children would finally move out of this neglected space and head off for a new chapter in America. Unfortunately, it wouldn't take and by 2008, she was moving back in with Prince Andrew. But that's getting a little ahead of ourselves. As for what befell the Sunning Hill estate, while Andrew was apparently in no great hurry to sell the property once Sarah left. It's had empty on the market for five years after being vacated and was finally bought in 2007 when a billionaire spent 3 million pounds over the asking price, which was already set very high at 12 million pounds. Securing 15 million pounds for a crumbling estate turned more than a few eyes over in the UK media. The palace has always insisted that the deal Andrew received was legitimate and that he was merely fortunate to get such a good price for the manner. Fact that the Prince was a regular visitor to Kazakhstan, the buyer's home country and even when goose hunting with the president there who just happened to be the father-in-law of the man buying the house had nothing to do with it, obviously. So what's going on with the property now? Well, the estate's new owner totally demolished the original building and is now nearing the completion of its replacement, which has reportedly been souped up with all the modern add-ons you might expect. This includes a gym with a steam bath, ice and sauna rooms and even an epic size library. There's also a large split-level terrace for entertaining, a sun deck, a fountain as well as a walled kitchen garden. Further out on the premises are tennis courts, a four-car garage, guardhouses and staff quarters as well. The strange thing is that even though construction was apparently completed in 2021, no one has yet to move into this property since it was sold over 15 years ago now. Will anyone ever call a Sunning Hill estate home once again? We'll just have to wait and see. But for now, let's head over to Prince Andrew's current home, the Royal Lodge. The history of Prince Andrew's longtime residence, the Royal Lodge, dates back to the mid-17th century. But it wasn't until the 1930s that it would receive its first royal occupants in the form of King George VI and the Queen Mother. And then Duke and Duchess of York, who used this space as a weekend retreat. Over the years, the Queen Mother would make several additions to the property, including a mini cottage which was gifted to Queen Elizabeth, then Princess Elizabeth in 1932. Even following the king's death in 1952, the estate was largely used as a grace and favor home by the Queen Mother up until she passed away on this very property in March of 2002 with her daughter Elizabeth by her side. Following his grandmother's passing, Prince Andrew would move in and he's been calling this grade two listed residence with its 30 rooms and many incredible features home ever since. Highlights of this property are said to include a sunny conservatory, multiple grand living rooms and even an indoor swimming pool. Over the years, we've occasionally been granted a peek inside the premises to discover a host of fantastic amenities, like this piano that a young Princess Elizabeth was photographed playing in 1942. King Charles III also used to enjoy this estate as a young prince. He and his sister Anne would play all throughout the immense grounds of their grandmother's home every chance they could get. But eventually when Andrew moved in, the other royal family members stopped visiting quite as often. The Duke of York then invests 7.5 million pounds of his own money into renovating the giant Georgian main house with further additions that were said to include a private chapel as well as eight separate additional properties for staff set within its 21 acres of gardens. The Princess family didn't let all that extra space go to waste either. Not only did his ex-wife Sarah move back in with him after her plans in America didn't pan out, but his two daughters, Princess Beatrice and Princess Eugenie, both celebrated their wedding receptions at the family home. Fans were offered a further peek inside once Sarah moved in as the Duchess of York loves to share behind-the-scenes peaks on social media. That includes a look at the beautiful dressing table inside her bedroom which features a large vanity mirror with double wings topped off with a white and gold flower vase. And once lockdown set in in 2020, she shared even more of her home life than ever before, including a series of YouTube videos taken from the property's conservatory, a bright and airy room attached to the main house. While yet another clip takes us inside the couple's dining room with decorated concrete floors, burnt orange walls and a pair of large white wooden doors. In fact, it was thanks to Sarah that we also got a taste of how Andrew likes to unwind at home as she shared this image of him on his birthday which shows him relaxing with two of their five dogs in the living room with its floor-length curtains hanging on the windows and a patterned rug lying on the hardwood floor. Outside, the Royal Lodge includes a massive garden with two wooden benches set under some large trees and Princess Eugenie's personalized swing can also be seen hanging off another nearby tree. When asked to speak about her unusual living arrangement with her ex-husband, Sarah Ferguson would state during an interview on Italian radio, I'm in and out all the time and he's in and out all the time. I believe that the love I have for him and he has for me is just very different from what normal people have. We have great respect and love for each other. It really is our own fairytale and it's our own lives. How we like to be with total respect and honor to each other. All that's well and good, but now the Charles has ascended the throne. Will he finally bow to public pressure and ostracize Prince Andrew from the royal family ending his fairytale existence and booting him from the Royal Lodge? Well, it's still too early to tell for sure, but you gotta believe something like that just might be in the cards. But for now, that's gonna bring this house tour to a close. Let me know what you thought of Prince Andrew's homes down in the comments and be sure to check out our recent videos on the rest of the royal family's estates. Thanks for tuning in. Hit that subscribe button if you haven't. Follow me on Instagram to chat and I will see you all in another video. Bye.


All right, my next question.  And to put more of a point on it, I think we really mean ancient Athens, the ancient Athenian Empire. And kind of a sliver about half a century in length that really was its golden era of philosophy and art and culture. What would you say, and I know this is difficult for lack of evidence, but what would you say are some of the cultural differences between that period of time in ancient Greece and let's say in ancient Athens versus contemporary America or in American history as well? That's a great, it's a great question. And I'll refer you as I often do to a lecture by Leonard Peacock. I'll answer the question as well, but I'll also refer you to a lecture by Leonard Peacock that I'm sure is available somewhere about why ancient Greece is his favorite civilization. And I mean, one of the proud things, one of the things I've done in my life that I'm proud of is there was a period in time when, really throughout my tenure at the Institute, why I hired Leonard Peacock to do courses and lectures and stuff. And I hired him to do philosophy through induction. It was my, it was the first time I'd ever done a video conference. It was like, it was over the video you sat and you watched Leonard on a television screen. And this is in the mid to late 90s. This was early technology. It cost us a fortune to do. And it was great, it was great. And he did philosophy through induction. Well, one of the things I did is in 1997, I organized a Greek Island cruise with a bunch of objectivist intellectuals, including Leonard Peacock. And there will probably be about 60, 70 attendees. And they would lecture on the boat, on the cruise. Now, what people remember for that cruise was that the cruise ship sucked. That it almost, that it really was not a very nice cruise ship. We tried to keep this cheap. We didn't realize objectivists had money in those days. We thought all objectivists were cheap. Certainly I was very, I was poor in those days. So I didn't know. And so we did it in a very economy and people with a lot of money came and they were disappointed in the facilities. But Leonard gave this lecture on why ancient Greece, as we're going, we did an event in Athens. I got to walk with Leonard Peacock in places and toast Aristotle at dinner. So it was an amazing, amazing trip. Anyway, I highly recommend that talk by Leonard about what made Greek special and why it's his favorite civilization.  Wait, sorry, I missed that. I'm sorry. I believe that listening to that speech at the end, you all, there's a glass and a toast raised. I think that's right. I think that's right. I mean, during the whole time in Greece, we raised several glasses, I think. But yes, the talk was very moving, very emotional and very powerful. So what was I going? Yes, Greece. I mean, the thing that makes Greeks unique is how intellectual the culture was. Now remember, when we talk about Greek culture, we're talking about men. We're talking about free men, right? So slaves didn't have much of a culture and women didn't participate much. But apart from that, the culture was phenomenal. I mean, you had a deep appreciation for the arts, drama, poetry, you had a deep appreciation for sculpture, decoration, painting, although not many paintings from that era survived. Architecture, there was just a deep appreciation for scientists, for thinking, for progress, for philosophers, right? Remember, Socrates walks around town debating people.   We go to school to study and we get, you know, professors telling us what, you know, there's no, you know, it's, so a deep respect for reason, a deep respect for thinking, but a deep respect for beauty and art, and a respect admiration and for the, for the, for human beings, mind and body. It was a mind and body, it was an integrated culture, a culture of integrated mind and body. So while the Greeks respected the intellect and loved the intellect, they also respected beauty and body, right? So athletes were heroes and successful athletes were heroes and, you know, I don't know how many people know this, but the Olympics, the athletes competed nude. They don't wear anything. So there's even a positive, a very pre-Christian, positive attitude to the human body, to nudity, to sexuality. So even in terms of sex, I think there's a sense in which they were more open, more, you know, they viewed it as part of life. It wasn't this thing that, you know, somehow initiates original sin and is sinful and bad. So it's a civilization of mind, body integration, real integration of knowledge, admiration of human beings, admiration of heroes, admiration of beauty, and, you know, you walked in a Greek city, sculptures, and not just Athens. I mean, I've been to Ephesus, which is probably the best preserved ancient Greek ruins. And it's just magnificent and the sculptures everywhere, everything is sculptures and everything is decorated and it's alive. It's alive in a way that I don't think our civilization is. We suffer so, I mean, I don't think, I don't think any, almost anybody appreciates the extent to which Christianity is destructive to the human spirit and destructive to civilization. And how much we've got to overcome, you know, overcoming original sin, the Garden of Eden, all these religious mythologies that, you know, what's his name? Jordan Peterson celebrates and we should condemn and we should move on from. So yeah, Greece was amazing. I get the impression that a lot of what we think of as public works of creations of public baths and things in ancient Greece and ancient Rome were largely privately funded by, you know, large donors. They could have been, I don't know enough of the history, but it wasn't a laissez-fait place, but it was a place of democracy in the sense that people actually determining their own political fate. And there was a lot of positive, I mean, yes, and it was the beginning of a market and Athens was a trading. It was a port and it was a trading city that became rich through trade. First, maybe not the first, the Phoenicians were probably the first, but they continued the trend towards globalization in the context, they context globalization, man, trade across the entire Middle East and even contact with far away places like India and China existed back then through kind of the Persian empire. So yeah, I mean, you know, but the real expression of Greece is through its art and through its philosophy. I think we all agree that the Olympics should be done naked now. I'm not sure we all agree, but yes, that would be something, that would be something. What we need today, what I call the new intellectual would be any man or woman who is willing to think, meaning any man or woman who knows that man's life must be guided by reason, by the intellect, not by feelings, wishes, whims or mystic revelations. Any man or woman who values his life and who does not want to give in to today's cult of the stare, cynicism and impotence and does not intend to give up the world to the dark ages and to the role of the collectivist, broods. All right, before we go on, reminder, please like the show, we've got 163 live listeners right now, 30 likes, that should be at least 100. I figure at least 100 of you actually like the show. Maybe they're like 60 of the Matthews out there who hate it, but at least the people who are liking it, I wanna see a thumbs up, there you go. Start liking it, I wanna see that go to 100. All it takes is a click of a thing, whether you're looking at this. And you know the likes matter, it's not an issue of my ego, it's an issue of the algorithm. The more you like something, the more the algorithm likes it. So you know, and if you don't like the show, give it a thumbs down. Let's see your actual views being reflected in the likes. But if you like it, don't just sit there, help get the show promoted. Of course, you should also share and you can support the show at urunbrookshow.com slash support on Patreon or subscribe star or locals and show your support for the work, for the value, hopefully you're receiving from this.  So yes, like, share, subscribe, support. Like, share, subscribe, support. There you go. Easy. Do one or all of those please.


Hello everyone, so today we're going to be making a very simple game. We're going to cover grid based movement, collision detection, kinematic bodies, static bodies and areas to do which are the basic nodes that you would need to make any 2D game with basic collisions. So I have this empty product here with only the assets which you can download from the descriptions. There are only four sprites and one font that I really like. It's pixelated, you can use it in many other places. Since you already seen the end product at the beginning of the video we have to set up the scene first. So if you notice if I move the player here it's very very small in the screen so we need to make it zoom and also you see that the sprites are not pixelated as they should. So if I add them here on the screen you see that they have the blurry borders so we need to reimport them. To do that you can select them here and in the import tab you can disable the filter, flag and click on reimport. That way all the pixels are going to be pixelated as we want it. Another thing that we have to do is set up the scene size because let's try this out. Let's save it, game, okay and everything is very tiny so we need to submit it. To do that let's go to the project settings. Now display here and window okay size when we're gonna go with 1, 2, 8, 4, 7, 20 and at the bottom here in mode let's do duty and keep. That way it will keep the aspect ratio when we stretch it. Now let's do the background. So here in rendering environment here the background color and the color that we are using for this is 71, 45 and 60. So the colors and the sprites are available here in this website you can download them. They are public domain so you can use them for any kind of purpose. Yeah I really recommend if you need something to prototype you can go here and download them. So going back to the project let's remove these nodes. Yes we don't want them and this one as well let's create a new one which is only going to be a simple node 2d and let's create the camera. The camera is going to be zooming in to the sprites. Let's add one again for reference. Okay let's add the camera 2d okay here in the anchor mode which means where it's going to be set on here the position. So if you go to transform you see that it's there and we want it to be on the top corner right now. Let's change the anchor to fixed top left that way we can set it to zero and let's use the zoom. We want this to be like 0.25 which is like super big in comparison to the other. Like if you do it to half like 0.5 you should be like half and this is going to be like half of that. So we see the new frame of the window which is this purple thing and if we run this let's see we need to first say to current the border goes wider which means it's the camera that we're going to use and we press play and now the view is zoomed in and sprites are pixelated so we have that already done. Another important thing is that we need to have everything on our grid so let's enable here the grid and as we see it it's not exactly as we want it to be because like we don't want the half steps we only want like the bigger ones. Let's change the settings of the grid by going here and configure snap. So here the steps should be 16 so we get the same size as the sprite. Now we need to do the same as with the camera but with the sprite. So here on the offset instead of having it on center zero in x and y is going to be the top left corner same as with the camera. So now we have it and we can move the player in this kind of grid. Let's move the player to zero position. Let's create a new node which is kinematic body and put the sprite inside of the kinematic body and we see a warning here because every collision node every node that has physics or collisions they need to have like a bounding box like a hit box where it will detect when something is colliding with it otherwise Godot doesn't know exactly when the sprite ends or when it finishes. So we need to create one to do so let's add a new child and they are all here in collision object 2d physics bodies. These are the objects that need this kind of collision and the collision shapes is over here. So we created now we get another warning which is that we need a shape in this case since everything is going to be grid based let's going to use a rectangle shape and now we can set the transform so the position is going to be 8 and 8 and it's going to make it a bit smaller. Let's disable for a second the grid so that way we make it a bit smaller than what we actually want and there we have it. We have the kinematic body, the player sprite and the collision shape. Now with this we can save it as a separate scene and let's create a folder which will be called scenes and let's call this player let's rename it as player as well here. So if in the future we want to have two players at the same time we can use the same scene and everything's okay and now that we have the player we can start with some code so let's go to the editor so now we open only this scene let's attach script to it inside of scenes player.gd and let's do the code right here. So to make this tutorial I use kidscan code grid based movement code as a reference so most of the explanations are here if you want to go deeper for now we're just gonna get the basics of it and modify it so it fits better our project but I really recommend it there's links in the description as well as where you can download everything that I'm using but let's continue now with the movement. So we want to capture every event that is happening which means every key that is being pressed so we handle inputs which is a built-in function and now we find the directions that the player wants to move so that way we know that when we are going up we're going to this vector which is zero and y and when we're down or left or right so that way we can always multiply the grid size which is right now 16 by 16 by the direction that the player is moving so if it's up we multiply that on top and we know exactly where the player should be in the next grid movement so let's define those now inputs and we have the defaults here in the project settings input map here we have ui up down left and right which are the ones that are binded to the arrow keys and we're gonna be using that no need to create anyone so ui up vector 2 and you can write it like so so godot already knows that you want the vector that is going up now ui down and with same vector to down okay so now that we have the inputs we can continue with this which is for direction in inputs and we want to check for the keys which are these strings here if the event the event is the thing that could not tell us that it's not being used is action pressed and the direction so we're checking the ui up ui down left ui right we'll do the moving here so move in the direction and we are basically sending the value that we want to another function which will handle the movement so we keep those separated the movement on one side and the input for the other the move and we move the position equal to the input we select the direction that we're going multiplied by 16 which is the size of the grid so 16 is the size of the grid the inputs will be checking for this and it will give us the direction that we're going and this should work let's let's try it out I'm not entirely sure yes it's moving on a grid okay so now that we have the movement we can continue doing other stuff and we're gonna get back to this one just in case you want to change the grid later on or you have a different size of sprites I really recommend to have a variable called grid size which in this case is going to be 16 so instead of doing this number here and later on when you have a lot of codes you don't really know you have to change it in many places let's do it always with the grid size variable so okay so we have the grid size there now let's create some walls to do that let's do the same but instead of creating a kinematic body we're gonna be creating a static body since it's a wall let's add a sprite so sprite and the texture we can use the wall texture same we change the offset and we create the collision so here we have this story okay so collision shape and we do new rectangular shape zoom in to be more precise eight and eight we disable the grid we make it smaller well we have the wall and we enable the grid again so now we have a wall let's see let's put now whenever we have a complex structure like this I'm gonna be saving it as a different scene so that way we can reuse it many times so let's save this branch as a scene and it's gonna be wall and let's rename it wall so now let's move the wall here and let's let's try okay so we are moving on top of the wall why is that happening because we're not doing any collision checking so since we're moving the position of something we need to first check if that position is available or not can I move there and if you cannot don't allow it so let's go ahead and code that to check that we're gonna be using what is called a raycast so we create raycast which is imagine like a laser that you have and you can point to some directions and if that laser touches something it will tell you you're touching that thing so instead of checking whenever you are already there you can check with the laser okay and that place is gonna be busy because I can see the spot so raycast is basically doing that let's add it and you see this arrow which is represented in Godot as the thing that will be checking the direction and we want that raycast to be first smaller in this case 16 because we're not gonna be checking very far away only the next block and we want to have this on the eighth position and eight okay so that's coming from the center of the block that way we know where we are going and that's it for the setup of the node now let's go to the code let's do a variable already far and let's call it ray to make it shorter because we're gonna be using this a lot and that's the raycast 2d now before moving we need to check if that direction is available or not we check with the raycast cast to which means change the direction to and we want to get the same position that we're gonna be moving eventually which is this one since we're gonna be using this a lot let's create it as a variable and let's call it vector position okay so we know that we're gonna be checking that the vector position and also we're gonna be moving to that vector position after moving the raycast sometimes since the physics engine like updates in a different pace you need to make sure that the raycast is updated so let's call the forest raycast update which will make sure that we know exactly that the raycast is looking where we wanted to look and we check this exclamation sign means that the opposite so if it's not colliding we can move it so to go back a bit we first update the position we make sure that the raycast is looking where we want now we check if that place is not colliding with anything we can finally move let's try it out again we should be moving and yeah whenever i try to move in that direction i cannot so we have walls working let's try it out a little bit better let's create now here on the main scene the wall let's if you press ctrl d or command t on mac you can duplicate this node so we can move it and we have different ones so we can start creating our level like this and let's try it out if it works it should work no problem yes okay can i go through the walls yeah okay perfect now since we're gonna be making our levels like this we're gonna have a lot of instances of nodes that are gonna get really messy so let's create a new empty node let's call it walls and let's put all the walls inside of it okay so that way we know that all the walls are there and we'll have to see them all the time now another really important thing of this is the boxes that we're gonna be pushing and the spots where they should be so let's create those nodes so one the boxes since are you also gonna be moving we can use the same kinematic body that we use for the player so this is going to be the box and for the spots we're gonna be using a different one which is the area gd areas are to detect that something is inside of a place or outside of it and we don't want that to be the area doesn't have to collide with anything it just needs to check that there's something on top of it or not so let's create that area for a spot and the box it's already there so we now need to create the sprites inside of them and the collisions so we create a collision shape same as before rectangle transform 8 8 let's disable this make it smaller okay enable it again and instead of doing it again we can just duplicate this one with control d and move it to the spot one okay now let's save them as separate scenes so we can reuse them or create a bunch of them so this is the box one and this is the spot so now we have one box and one spot around for our levels so the basic goal of this game as you might already know is move the box to the spot so whenever the box is there and all the boxes are in all the spots you win the level and it continues so let's do a very basic level to test that things are working and then we can create a more complex one whoops and okay so it's gonna be super simple box here spot here and okay let's try it out let's see if we are colliding with things okay we can move on top of that that's it but we cannot go into the box which is the same logic that goes with the walls the raycast is checking and it's seeing that there's a kinematic body there and it's colliding so you're gonna move there okay let's now make that the boxes are also able to move whenever you are pushing them so if you want to move to that direction it will check if the place that it will go it's available and if it is it's gonna move and your player is gonna move as well so it's gonna require a little bit of the same code that we were using also it's gonna require a raycast so let's create it right now same properties as before 16 and it's gonna be eight and eight and we have it there okay so this is the raycast that we're gonna be using and let's create a script it's gonna be called box okay I'm just gonna copy all this from the player and use it in the box as well now we're gonna modify and remove the things that we don't want we don't want it to move individually so we can remove this we also want to be checking and returning that to the player so now let's do this that if it can move let's do return true and if it cannot move it will return false that way every time we call the move function we're gonna see if it's movable or not and that's gonna be useful because now now here in the player we need to check that if it is colliding with a box if that box returns true to that moment we can also move let's make the boxes now here in the node you have a different tab which is groups let's add them to a group which is box now boxes are on a group and we know that all the boxes are inside of that group so we don't have to check individually if the object that we are colliding is a box or not we just have to check is it on this group yes okay so now we assume that we are colliding with something so we need to check if that collider so now we have to check if that collider so get collider if collider is in group box which is the group that we created we make it move into the direction that we want which is the same that we were trying to move and since this is gonna return true if the object can move we can now move ourselves so position and vector position and that should be it so now what is happening is if we are colliding with something we get the collider we check if that collider is indeed a box if that's a box we can move in that direction the box and if that returns true it will move ourselves is if the box cannot move it will return false so we will not move okay let's save this and let's try it out we should be able to now move the box yes okay and I cannot move the box to a wall so whenever we are there we cannot move and we lose because there's no way to move it outside of it okay if you have some issues here and the arrows are not working the walls are colliding weirdly or anything like that you can always here on the debug tab press on visible collision shapes and you will see the game as you see it here so you will see the direction that the raycast is going and everything like that that way you can check if there's something wrong in your setup if the raycast is not looking where it should be looking or if the collisions are not properly set up it's a very good way of debugging any issues that you might encounter but let's now make that whenever I move this box into the spot the game shows us like a okay you've done it like level clear let's create a dialog so in control pop up window dialog accept dialog let's create it we have to set it to visible and let's move it to the middle of the screen now it's looking like it's behind the elements but it's gonna be on top of them and let's change the title to smiley face and the dialog is gonna say level cleared okay so we know that we cleared level let's do this lower case okay so we want to show this dialog whenever the box is inside the spot but to do that we need to check and since we haven't done any code for that let's create the code now for the for the spots let's go to spot scene and touch script this is gonna be much much simpler occupy so are we occupied or not this is the variable that we're gonna check for checking that all the spots are occupied and we need to use these signals which are body entered we connected to the script and the other signal is body exited so if a body is inside of this we do something and the same with the other one in this case we need to check if the body is in group box so we don't want the player to be one of those elements that makes it be occupied or not so occupied it's true and we can copy and paste now and set to false so whenever a body entered that means that there's a new body that goes in it's true and whenever a body goes out we say it to false so that means that it's not occupied yet this of course works because everything is moving on a grid and there's no chance that two objects are gonna be on the same place so that's all you need for spots and now we need to create a script here for the game itself to check if the game is over so let's create one script which is called game and here on the game script let's create a new function just the process the delta you can do the underscore because we're not gonna use it and if you don't do it you will get a warning like you are not using this variable but it's okay we want to check all the spots so to do that but let's first move the spots into a different node like we did with the walls so spots so we know that all the spots are gonna be inside of this node same we're gonna do with the boxes okay the boxes okay now is everything steady and we can also check them so spots are gonna be spots get children count so this will return if there is only one spot it will return one if there are two spots it will return two and so on and so on because we want to make sure that all the spots are occupied so now that we have all the spots we need to check if any every spot is filled so for in spots get children this will give us an array with all the nodes that are inside of there so if it is occupied we can set the spots count that we had to minus one so if we are checking everyone if it's occupied and we subtract one that means that when all the spots are occupied we're gonna get the zero as the number of spots so if spots is equal to zero show the accept dialogue which we do it like this with pop up since process is something that is happening all the time and you don't want to show the pop up all the time let's do an extra variable which is game and and let's check also for that if game and is equal to false that means that the game hasn't ended yet then we can do this and if the spots are zero game and shoot so that means that whenever we are checking this if we get to the end we show the pop up and we say that the game has ended let's try it out now oh i will disable these visible collision shapes okay now if i move this there level clear okay probably means that now we can keep playing and we want to just change level or do anything else so we can set this signal which is confirmed so whenever they press on okay we can get the tree which is the node that has all the the the scene and everything and we reload the current scene that means that the game will start over level clear okay yeah and it goes back to the beginning let's make now a different level let's make it like this let's do two spots now to test it and let's do one box here and the other box there let's add some difficulty to it something like this okay it's not that hard but i mean it's getting a little bit more interesting let's try now what happens with two boxes and two spots first of all you will notice that if you move the box one to another you cannot push two boxes at the same time because it detects it as if it was a wall which is what we want in these kind of games and now let's see if we move one there okay we still need to fill the other spot so as soon as we move it okay level cleared that's great and when it's okay it resets so another thing that it's very common in these kind of games since there's many ways to finish complex levels is to have a counter of how many steps you have done that way we can see if you can clear it in less steps than the others and eventually in a future episode we're gonna make a level editor and if you share those levels with other people you can also have like a high score to check if people clears level in less moments than the others so let's do that with the label now let's add a label one label is going to be for the name of the level which is level one and we want to use this custom font because the default one is very pixelated and blurred so that's why i added this asset at the beginning to do that let's take this one and here in custom fonts we can create a new dynamic font just gonna make sure that i'm not covering the properties with my head here so font is gonna be this one and we need to set now on the settings where is it here here okay if you press on the font and the alias you need to disable it and size let's make it a bit smaller let's do 12 okay now let's call this name label which is gonna be the name of the level and let's duplicate it with control d and let's do this moves zero so moves label so every time we make a move with the character we want to add one to this label so to do so let's go to the player script and we want to add it here movement plus one and also here which is also when it moves but to track it since we're not sure how many players we have things like that let's do it on the game script which has all the the information we need here we can do the moves equals to zero and here let's do that the moves label text is gonna be moves equal to plus string of moves so that way every time like we're moving it will always checking and we are always updating the kind the amount of moves so now when we go to the player we can set get parent which is gonna be the game node this node let's do that in a clear way so game is gonna be get parent so now game moves plus one and the same for here so we are updating the variable here and this variable is adding the text let's see one two three four five six six okay so if I cleared level I did it in 37 moves when we press okay it goes back to zero so we know that we are in a new game okay there's one final thing that I would like to add here and is that when you whenever you press the letter R you can reset the game so you give the players a way out this kind of situations where they find that they cannot complete it because they made a mistake it could be any of these mistakes so it's very simple in the player events here in the unhandled inputs we need to create an action which is going to be reset that reset action is a new action that we can set to the key R and if the event is action pressed reset the same as we did before get three and reload current scene so whenever we are moving around and you made a mistake you press R and you go back to the beginning the next video will cover this the movement so we can try to make it smoother or you can also do it yourself with the tutorial from kids can code like the one that I talked about at the beginning and my goal for this series is to add a level editor so in the next episodes we're gonna see how to create a game editor and how to share those levels with other people have you liked it thank you very much everyone for all your supports and thank you very much for all your supports to all my patrons because it's thanks to you that I can keep doing these videos so thank you very much


How to welcome a new employee is a big deal, after all you've spent time, effort and money finding a great person to join your team and help solve some of the problems that you're wrestling with. You want them to be excited to get off to a great start and be happy working in the team so they stay and do the best work they can. I've had some great welcomes with everything laid on the desk, lots of colleagues to meet etc, all the way through to some terrible ones where the IT is not set up, everyone's busy and I'm twiddling my thumbs for half the day worrying about whether I made the wrong decision to join. These first impressions stay with you for a long time. Make sure new joiners into your team look back with fond memories and remain excited about wanting to work in your business long after they join. So I'm taking you through these 10 tips today. I explain how to make each of these tips actionable and effective in providing a great experience for your new team member. My name is Jess Coles and I've had a 25 year management career in corporate and household names through to SMEs. I personally have had some great welcomes as mentioned from places like Innocent Drinks and I've also had some really poor ones. A great welcome does make a big difference to the new team member. Do put in the effort and get the benefits from doing so. If you're new to this channel, enhance.training shares business and people management expertise to help you improve your performance and that of your team and business. If you like this video, please give it a thumbs up and subscribe. Tip 1 when planning how to welcome a new employee is to send them pre-reads before they start. When a person has gone to the trouble of applying, getting through the recruitment process and getting an offer from you, they should be excited about joining and starting a new chapter in their career. Your new team member is likely to have to work a notice period. Anywhere from one month to three months is typical, though notice periods can be a lot longer. A great way to keep up this excitement and to help them have a better start is to send them information about what is happening in the team and in the company so they can learn and feel part of the team before actually joining. Your examples of information include firstly company news, new product launches, custom wins etc. Secondly, team news, projects delivered, projects coming up and new customers they've just won and so forth. Thirdly, organisational charts, team bios or anything else to help them get to know the people that they'll be working with. Fourth, mini projects planned or being undertaken that the new joiner will be involved in. Fifth, information relevant to the new joiner's job. Sixth, team events, socials and any other opportunities for the new joiner to meet the team before starting officially. Keeping up contacts also reduces the risk of counter offers being successful and starts to build positive professional relationships early on. Don't just send over the boring official documentation such as the employee's manual or generic training or induction material. Make it personal to them, your team and their new job. Tip two when planning how to welcome a new team member is to introduce them within the company before they start. There is nothing worse than joining a company and most people have no idea who you are and what you are here to do. This really does not make you feel welcome at all. You want your new team member to feel welcome from day one with the current team knowing who they are and what they have joined to do. Even better is to provide a bit of information about your new joiner to your current team so they have some talking points to get the conversations going. So send one or a couple of emails out to your team and all the stakeholders are likely to come into contact with your new team member. Or if you work in a medium or small company, send it to all your staff. Introduce the new employee. Some of the things you could share as well as their name of course are firstly the position for which they're joining. Secondly, some of their key tasks, deliverables or projects. Thirdly, which company they're coming from. Fourth, any memorable stories about their hobbies, sports, interests, travels, etc, which will help team members remember them and start talking to them when they join. Fifth, some of their achievements from their CV. Sixth, a recent photograph. And seventh, anything else you think will be interesting to share. Share information that will help the current team. Firstly, learn about their new team member. Secondly, understand where they fit into the organization. Third, provide talking points. So speaking to them for the first time is a lot easier. And fourth, anything else to help build personal connections. Do ask the new employee if you're okay to share information before you do so. Even better is to get their help in drafting what you actually share. Tip three when planning how to welcome a new joiner is to get all the IT set up. Getting all the IT organized and working before a new employee starts is about presenting an organized welcoming company that demonstrates they care. You don't want your new team member having to chase around to get things sorted on the first day. So as a minimum, make sure the following are set up. Their email address and it's working. Secondly, their computer, that's both the hardware and all the software that needs to be put onto it. Third, their desk or mobile phones if they have them are working. Fourth, their access to the right systems and at the right levels are set up. And then fifth, anything else that's needed for them to do their job well from day one. And of course, make sure they have their desk set up and it's neat and tidy. Add any welcoming presence so they have a lovely surprise when turning up to their desk. Tip four when planning how to welcome a new employee is to ask them to start late on their first day. You're asked them to start at 9.30 AM instead of 9 AM on their first day. Give yourself and everyone else in the team a chance to get in and get settled. When your new employee arrives, your team will be ready to greet them properly without being distracted. And starting a little later also takes the pressure off your new joiner and gives them a more relaxed start to their new job. The days and weeks ahead are going to be busy and tiring enough for the new employee so give them an easier start. A later start also gives you a chance to remind the team that the new member is starting that day and gives you a chance to send out one last reminder email to the rest of the company and check everything is ready. First impressions count for a lot, so make sure everything is organized and ready. Tip five when planning how to welcome a new team member is to be there to greet them in person. Book out the starting time in your diary so you are available to greet them in person. Don't let others book you into meetings or call you away. Your relationship as manager to your new employee is very important. You want this professional relationship to start on the right foot and being there to greet them in person demonstrates that they are important, that you care and will put the effort in to support them. It will also be good if their immediate team members are also available and at their desk so you are able to introduce them in person as soon as they arrive. Give them a chance to settle in and have a bit of a chat with the other team members before kicking off within the induction plans. So tip six when planning how to welcome a new employee is to take them through the induction plan. Focus the induction plan on helping them get to know and start building relationships with colleagues and team members as quickly as possible. Starting to build these relationships are a lot more important than reading through the HR employee handbook or other official documentation. That background reading could be done later or as part of their homework. In the weeks leading up to your new team members starting, you should have been creating their induction plan, detailing out what activities are going to happen when and with whom. Again, focus on helping them build relationships and work out who to speak to about what area. Get them meeting as many relevant people throughout the business as possible. Book in these meetings into the new employee's calendar and also who they're meeting and make sure they happen. Talk your new joiner through the plan, explain why you have included what you have and answer any questions they have. Listen to any suggestions or requests that your new joiner makes. Their input can be really valuable too. Tip seven when planning how to welcome a new team member is to book time in to train them. No matter how experienced the new employee is, they will need some training on the systems you use and how to use them. You'll need to show them your company's way of doing things, what the rules and expectations are, what the meeting rhythms are and so on. If you have training materials, videos or other reference documents, make sure they have access to these, which will give them a clear instructions and make them self-sufficient as quickly as possible. Show them where to find all the information they need and how it is organised. Now could be a great time to introduce them to a buddy so they have another person responsible for helping them settle into the company as quickly as possible. A buddy should ideally be a peer. Set expectations out early and clearly. This ensures that the new joiner knows exactly what's needed and how they can meet those expectations. The training by you or other team members gives them the tools to meet the expectations set out. Tip eight when planning how to welcome a new employee is to organise lunch and coffees. Organise your current team members to individually or in pairs take out your new employee to lunch on the first day and over the first week or two. The aim is to help build good working relationships between your current team and the new joiner. It is also very nice touch to have team members looking after you over those first few weeks when you are trying to get your bearings, get to know people and how everything works. You as their manager should also book in a lunch or two with your new employee. The lunches don't have to be anything extravagant. Building relationships and looking after your new employee are the key aims. Arrange for other stakeholders outside your team to invite your new team member for coffee over the first few weeks. The coffee meetings could be part of a formal induction program or as part of a much more informal approach. Having an informal setting such as lunch or coffee gets the personal side of relationships building which is just as important as a professional side. Meetings in workplace settings such as meeting rooms are not as good for early relationship building in my view. Tip 9 when planning how to welcome a new employee is to plan a mini project. The purpose of planning a mini project is to give your new employee a project to keep them busy from the word go. Ideally it would be a mini project that firstly the new team member can own. Secondly that gets them into contact with a wide range of people. Third that asks a new employee to review and potentially challenge the status quo. New employees are perfectly positioned to look at the processes, ways of doing things and the rules are current in place with an unbiased eye. Use their natural questioning and openness at this stage to bring immediate benefits to the company. And be prepared to implement any sensible changes suggested through these mini projects. I mean what better way to create a sense of achievement for them and show the company's openness while getting great value from the process. Tip 10 when planning how to welcome a new employee is to book in a team social night. Social meetings with team members are great places to build positive and long lasting relationships. The more personalized settings allow team members to let their hair down more and get to know each other quicker. Building the personal side of relationships helps with the professional side of the relationship. Think of all the reasons behind all the team building exercises and offsite activities many companies run to build relationships between team members, which in turn increases trust and teamwork. Consider stopping work early on a Thursday or Friday and get the team to the local pub, bar or coffee shop or take them out, temping bowling or to crazy golf or to something fun. Make it as easy for everyone to attend as possible and enjoy it. So there you have 10 actionable tips when planning how to welcome a new employee in the best possible way to get them up and running as quickly as possible and adding value to you, the team and the company. As a quick reminder, the 10 tips are. Firstly, send them pre-reads before they start. Secondly, introduce them within the company before they start. Third, get all the IT set up. Fourth, ask them to start late on the first day. Fifth, greet them in person and send a welcome note. Sixth, take them through the induction plan. Seventh, book in time to train them. Eight, organize lunch and coffees. Nine, plan a mini project and ten, book in a team social night. If you have any questions, please leave them in the comment section below and I'll get back to you. Thanks very much for watching and I look forward to seeing you again soon.


If I had a bullet in my hand and I threw it at you, then of course the change that would occur in your body when the bullet hits the body is not very dangerous. Change, most times, is not very dangerous. Speed, however, can make change dangerous. Today's topic is the speed of change. Okay, I'm back after a long summer break for another season of short speeches about future trends. And today I'm in Berlin and I thought I'd start the fall season and talk about the speed of change. So let's dive right into it. Now, first of all, this is more than a cliche. Change is faster today than it's ever been before. One example is the average lifespan of companies, big market leading companies listed on the S&P 500. Back in 1958, the average lifespan was 61 years. Today it's less than 18. And in 10 years time, 75% of all the companies currently quoted on the S&P 500 will have disappeared. They will be bought out, merged or bankrupt. I will leave a link to this study by McKinsey down below. At the same time, the big ones are dying. We can count a growing number of the so-called unicorn companies. Those that are privately held startup companies value that $1 billion or more. Currently, there are more than 320 unicorns. There were no unicorns at all when I was young. Zero. Back in the 70s, 80s, 90s even, you had to have one thing more than anything else to stay in top. You had to be big. Only the ones big enough to have resources for R&D, manufacturing, marketing, sales. Those were the ones that could drive an industry and decide what the future market will look like. Today, there is still one thing you need to stay in top, but it's not size. You don't have to be big. You have to be fast, however. When I speak about this topic, I often refer to the relation between new technology and adoption rate. How long does it take a market to adapt? If we, for instance, look at the automobile, the first affordable one, the T-Ford, was introduced to the US market in 1914. It's the red line you can see in the slide I'm presenting there. So 1914, new technology. And it took until 1990 to see 91% adoption rate. It's in the upper right corner. So it took the US market 76 years to change from horse to car. 76 years. It's a lifetime to adapt. Now we hear about this new technology, a buzzword like blockchain, virtual reality, artificial intelligence, and then boom, a couple of months later we'll read about this unicorn startup who disrupted an industry and everything changed. Of course, this is great when we think about inefficiency, how many things will get cheaper, how we can create more with less. But it's also scary because of the speed. We as human beings are no faster, so we need to understand how to navigate, what to do when the job market is changing, what to teach our kids in school and all these things. Remember what I told you, change is not dangerous. Focus on the speed. Thanks for watching.


works for me.  Hi everyone, my name is Ted Gould. Um I've been working on Inkscape for one of the longest time. Um but here I'm going to talk about SVG filters which is a feature of SVG and thus uh in Inkscape. And so to talk a little bit about it, what SVG filters are is they were actually part of the SVG spec in 1.0. Um they weren't implemented by a lot of renders including Inkscape when the SVG 1.0 spec came out. Um but it is an old standard. It's uh everything should support it. Um not everything does and some of the SVG filters aren't the same. But basically what the SVG filters are is they're a way to modify the rendering pipeline of the graphic. So you've got a vector graphic and it's got to get out to the um the actual display. And SVG filters allows you to modify that. Which gives you a lot of artistic control that isn't normally associated with vector graphics. And it can be just a powerful way to just make your designs pop. Make them more exciting. So let's learn a little bit what that looks like. So we've got traditional vector graphics. And uh we've got a friend Homer Simpson here and he's kind of a traditional vector. In the fact that he's got flat areas, yellow flat areas. And the way that they've got depth and they create depth for this character is they put little dark areas in. And now that isn't real depth. They've just put another graphic on there and created a visual effective depth. For the most part that's great. I mean I don't want to criticize the Simpsons. Uh they've made a lot more money than I have. But the the reality is that's not sort of realistic. So when we look at the right side this is the uh about screen for Inkscape 45. Which was the first version of Inkscape that supported um SVG filters. And you can see here we've got a set of balls.  And what they've got is they've got a depth of field effect. Which creates uh blurs as things move away from the focal plane. And so this is created in a vector graphic that has this photo effect. And so what you can do is you can start to create this more photo realistic vector than the traditional vector of Homer Simpson. So that's really what we're trying to do with SVG filters. So when I'm talking about modifying the pipeline we kind of have to go back to how vector graphics work. In essence you take a vector graphic which is the definition of the schematic of what things look like. And we render it to different outputs. And so what's neat about vector graphics is we can start with the same vector image. We can go to a phone screen. Which is tiny. And create one image. And create it exactly for that phone screen the way it should look. Or we can go to like a billboard or a large sign. And we can also make it so it's correct resolution for that sign. And so we go from the same schematic over on the left of the vector image. And we can have different bitmaps. And that's how we render a vector graphic to those different display outputs. And so that's kind of the same process that actually happens inside your vector editor or your vector renderer. And so what happens is you start with a blank image. You start with zeros on all your graphics. And so we take our first object. Here I've got two objects. The blue circle and the red square. And so internally we take the blue circle. We turn it into a bitmap for the resolution. And then we add it to the blank. So we come to start with a blank image. We add in the blue circle. And then we go to when we say okay we've got the red square. We go through the red square. We render it to a bitmap. And then we overlay that onto. And so then we get our final image which is this bitmap that has the blue circle and the red square. And so what SVG filters do is they add another part of this overall rendering pipeline where we get to modify that bitmap before it gets overlaid. So we start again with our blank image. We've got our blue circle. It's a vector object. It gets rendered into a bitmap. Then we run a filter on that bitmap. And then we put it onto the blank image. And so what that allows us to do is to modify this pipeline of the object as it's coming through and getting rendered and to do different things. And so in this case we've got our same blue circle as before but we blurred it after it became a bitmap. So we created the original bitmap that wasn't blurred. We applied the blur filter and then we could pose it onto the images. So what we have is a filter element. We call them filter elements in SVG that is a blur. So we take the import bitmap, we go through the blur filter, and then we get an output bitmap. And that's just the same image kind of explained how we're doing it with the SVG element, a filter element. What's cool about us the way they've implemented SG filters is that a filter can have more than one element. And this is very similar to Tom's note editor. It's how kind of SVG filters work. And so you have inputs that go through elements that each generate their outputs from those inputs whether it be blur and we'll talk about a lot of the different elements you can have. And then we all combine down to the final output which gets actually put in your graphic. And so we can create really, really complex things from just a set of elements, a set of toolboxes that are given to us by the SVG committee. So what are some of the inputs? First we're going to talk about inputs. Here I've got a source graphic on the left. It's a blue circle with a yellow stroke on a red plane. Romantic, I understand, you know, but we take that image. It's beautiful. Yes, art. And so we've got one of the input choices is the source image. And in this case, the source image, we're just applying the filter to the blue circle. So the source image is a blue circle with the yellow stroke. We also have a choice of the source alpha, which is basically the transparency component of the source image. Because we're only applying it to the blue circle, everything else is transparent.  And so it creates a grayscale image of the original source based on the alpha channel, which is basically the blue circle is white, everything else is black. And so if you had something that was like a gradient or transparent, that would come through also into the alpha channel before it was a transparent gradient. And then we have the background is the one. And here the it's real simple. The background is just the red square. It could be it could be you don't anything it could be an image. It could be, you know, anything that is the background could come through. But in this case, was just a red square. So it's pretty simple and straightforward. Also, just you know, I actually uploaded the presentation this morning. So I'm actually like an hour ahead of the game. So if you don't want to take pictures, you can just grab the presentation. It's on my website. So last background alpha, which is the same as the other alpha channel, but this case, we'll only have white because it's just a red square. It's not very exciting. And then there's two that are kind of interesting, the stroke color and stroke fill color. These are used to if you want to recombine images, you can get those. It's not really interesting in this case, because it's just a color is just yellow and blue. But if you're instance, your stroke was a gradient or your stroke was a pattern, these could be really, really complex. And you'd want to integrate those back in your filters. Not nothing we talk about today is it really going to use those, but I wanted to have them on here for completeness. In inkscape, we have a filters dialogue. And this is what you're going to start using to build and edit your filters. And so the filter we've got now is just a Gaussian blur. We just to put a blur on a circle. That's all we did. And so voila, we've got a Gaussian blur. And so then on the right side, we have all of your different inputs. And you can't see on this screen. So you'll have to trust me, you'll see on your display that there's an arrow that's coming from the source graphic here to the Gaussian blur. And so we have a set of arrows in here that connect the different elements together to create that graph. It's not as beautiful a graph editor as Tom's, but it kind of works in that we get to bring in the input to the different outputs, and the outputs of the filters as you see, we'll start building up filters at the end, connect into each other. But right now we just have the Gaussian blur. Inkscape hopefully gives you a name for it filter 825. And then you can edit the parameters down here. So here we've got the standard deviation, which is the amount of blur. And we'll talk about some of the parameters for blur. But this is the standard deviation of how much blur it is. And so we can edit and modify the different elements of each of the different parameters of each of the elements. The other thing that's in this dialogue and we'll show it in the dialogue in a second is that filters apply to an area. So in SVG, you have a bounding box or most vector graphics have a bounding box for the graphic. And here we've got a bounding box, which is just the line that encloses all of the pixels that are drawn in the image. And so in our blue circle, it's just a box that goes around the blue circle. It's not very exciting. But for filters, we also have the area that the filter modifies. And so by default, in Inkscape, and most, and it's actually recommended in the spec, it's 10% larger than the bounding box of the object. So 10% larger, you get the filter area. The number one mistake I see people making with filters when they go and try to use them is they turn up their filter more than this bounding box. What happens is if you get out of this bounding box, it just clips. And so this is an optimization mostly for SVG renders like for webs, for browsers and stuff like that. Because they have to render quickly, they have to do animations, you're doing JavaScript to edit them. They need to be able to restrict how much filtering is going on. So they use this bounding box to make sure that the image doesn't get crazy and slow down the browser overall. But for most of the time when I see artists using it, I haven't seen anybody use the bounding box artistically. Let's put it that way. Most of the time it's in error. So you need to watch this. And it is on the dialogue in the filter general settings. So we've got the filter general settings. What happens in the filter general settings is that 1.0 is the width of the bounding box. Then any value of that, oh, anything over one is bigger than the bounding box. Anything less than one is smaller than the bounding box. So in this case, I've got the coordinates set up to just some effectively random values. So I created the box that is negative .54, so it's to the left of the bounding box, and negative .49, which is to the top of the bounding box. And its width is two bounding boxes. So you'll see that the width of the outside square is twice the size of the one on the interior side square. That's a little bit bigger than 10%. But that's what I wanted there for this filter because it's kind of blurry. So you could edit that and modify that. And if you find a way to use the clipping mask successfully in art, that'd be cool. But that's something how it happens. So next, I want to go through the different elements. I want to stress for this part because I struggle with how do I talk about these because the reality is you're not going to remember any of them at the end of this presentation. But what I want is I want you guys to have some experience with them and kind of know what there is available so you get the ideas in a toolbox. Because when you start breaking down and working on your projects, you're going to need to have ideas of what's possible.  But don't feel bad like I don't even know what multiply is. But I want you to kind of just get experience and kind of see how they work. I tried for the most part to use the examples that are in the SVG spec when showing these so that you could go back to the SVG spec and they'd be familiar to you and seeing what the different parameters do and stuff like that. No difference to the W3C guys but some of the examples kind of sucked. So I placed them with things that I thought were more illustrative. But I tried as hard as I could, I promise. So the first one we just talked about the border is FE blend which stands for filter effect blend. And this is just about blending two inputs together. And so we're here we've got a background that is a gradient that has different colors and then we do different types of blending normal blending, multiplicative blending, screen blending, darkening and lightening with the different text. So they just create a different way for you to mix two inputs. So whether it be a image or the background and you could just do different compositing and blending these two objects together. There's also FE color matrix. The color matrix filter. What this allows you to do is to edit the color channels based on a set of matrix parameters. Excuse me. So we've got unfiltered at the top which is this crazy gradient. We can do a matrix which is the absolute most flexible. You can set all the parameters. You can make your linear algebra teacher happy. But that's probably not as useful for most people as saturate and rotate which allows you to set a single value for saturation or doing a rotation across the entire image. This is where you start to get to like your Instagram type effects. This one and the next one was the component transfer, FE component transfer. I don't think it is useful for most graphic artists using Inkscape. I think they're more useful for the web because the reality is if you're a graphic artist you have a lot more control over the rest of your color set. So you don't need a filter to adjust color as much. But on the web you've got your Instagram graphic that you upload. But you can do really cool things with the mapping of these filters. Component transfer is the same. It allows you to do basically color mapping but you define a function. So like a programmable function for how the color mapping goes across. You can do table lookup linear functions, gamma, you can do curves, all kinds of fun stuff like that. Compositing is a little bit like blend but allows you to mix the two images in a more straightforward way. You can do in and out or XOR or arithmetic. So it's at the opacity. Here we've got the blue rectangle and the, what's that purple rectangle? Cyan? Magenta. That works for me. Magenta. I've got big words. We mix those two together. They're just placed over each other. That just means they're laid on top of each other. There's no real blending. We can blend them in different ways and create different effects as we start to build this pipeline up. The color matrix is convolution matrix. This is, you're going to have to Google the matrixes, convolution matrices if you are not familiar with them. But one of the big effects and the one we're going to use later in the talk is edge detection. So it allows you to set a matrix that gets applied to all the parameters and you can do different effects. You could do bigger ones, edge detection, but you can also do horizontal edge and vertical edge, all kinds of fun stuff like that. But if you're not familiar with those, you're going to have to, it's pretty high level math, but you can look it up. It's fun. There's different lighting modes. You can do different lighting ones. On the far left is ambient lighting, which is just flat. Then you've got diffuse and specular lighting. And what I liked about this one, actually from the SVGM, or the Inkscape book, is that you combine them at the side to show how you can combine the diffuse, the specular, and create what you'd expect. This looks like a 3D object at the end with the different lighting effects on top of it. Displacement map is very cool because it allows you to use a mapping with another image and create effects. And so you can do like the magnifying glass effect that moves around, or you can do here the ripple effect. You can actually move the pixels based on another image. And so you can take a gradient or a ripple or whatever you want, really. You can do noise and cause that to ripple through the actual displacement of the pixels on the screen. So here's a ripple. Effy flood. So I couldn't figure out an example for Effy Flood. Effy Flood is just about putting a color into your pipeline. So it's about, yeah, I need an initialization value for this input. And so you can assume that my example here is I flooded this with white. Yeah, exactly. There's a cat. This is the signature example. They use it for three of the filters in the SVG spec. But you can see what we did is we did a drop shadow on this SVG icon. And so you see the back is the same actual outline as the SVG icon. Dropped in the back and blurred for the edges. We'll go a lot more into blurs. Effy image allows you to take a image source so you can grab any graphic. Here's a smiley face and place it in. The really cool thing you can do with this is actually you could do like an element that is off screen and apply that into your graphics. And so you could do some sort of texture or an object that you're editing that doesn't necessarily visible and have it affect the objects inside your canvas. And so it's an interesting way to create a controllable source for your filters. Merge is just put things on top of each other. I haven't asked anyone on the SVG committee but I'm guessing it was just optimization for browsers because you can do exactly the same things with compose but merge means you won't do any blending and so therefore it makes it faster. So I think it's a optimization. Morphology is dilation and erosion. There's a lot of math behind this but basically for the most part it means make it bigger or make it smaller. Erosion means that you take the empty areas and you try to expand those. Dilation means you take the empty areas and you try to make them smaller. We'll use this a little bit later. You can see how it creates an effect because sometimes you have a bit map and you just want those lines a little thicker and you just can't adjust the stroke width. And so we can use erosion and dilation to get those kind of effects. The problem is it's a mathematical way so you're used to on vector graphics. It's you know I've got their straight line. It's real sharp and I make it bigger. It's still really straight. Well erosion and dilation don't do that. You get kind of a blurring or a curvature when you expand. So if you can I would always say make it bigger on the vector side rather than going through filters. That's not always the case. F E offset. This is an interesting one I wouldn't have thought of if I was on the committee. But it basically just shifts the pixels off by a little bit. And so that's how they get this gradient, this drop blur to be often to the right as they add a little effect where they just take every pixel and they move it over to you know a few pixels to the right, a few pixels to the left and drop it down. It's really simple but it creates it gives you a lot of flexibility when you're designing your pipelines. Specular lighting we kind of did lighting before but this is the example with specular lighting. There's tile which allows you to take a smaller image and tile it throughout your image. Here we've got the stripe image and it's tiled throughout the text. So the filters are being applied to the text. The text is the object for the filter here and it's got a F E tile that refers to another object which is the stripes. And so you get an effect where you've got the fun stripes. Turbulence turbulence is just turbulence and it's just it's just effectively random noise. It doesn't necessarily seem at first glance you'd want to use this but a lot of effects like especially wood grain effects or frosted glass effects need some source of noise and I think Tom said that actually in his talk where you know we've got to make it look human. Computer graphics make things too sharp and so the turbulence effect is how we can add some human in there. So it creates random effects that you can start to mix into your pipelines. So you'll see how to use these as we start moving through it. So next up I kind of wanted to go through building up a filter that could be useful and kind of see how that starts to go together and how we start to build the actual full filter from the different elements. So I got an image of grass. It's great because it's a relatively busy image and I really wanted to label it. Grass. So we've put text on an image. You guys are all expert designers. You can do anything on the Internet now. Is this what the whole Internet is? Course over. So I wanted the grass to show up a little bit and be a little bit nicer and kind of blend in with the image. And so the first thing I want to do is I want to be able to blur the background because if I put that noisy, noisy, noisy grass into my text you're not really going to see it. And so I just ran a blur over the background and this is the effect of having the blur in the background. It kind of comes out like that. And so then I applied the blur. Oh, I've got a graphic. They're same graphics. Don't read the text ahead or you'll know what's going to happen before it happens. But we've got the blur and it's happening to the background image and that's what's creating our blurred background image. So now we're going to apply that filter to the text. I'm hoping this comes out on the screen. You can almost, I don't know if you can see it in the back for sure. But what you can see is that the grass text, the background's blurred where it says grass, but it's not blurred where it doesn't say grass. So we've now taken the the effect and only applied it to the text. So we took the foreground of it and then we applied it composite it with the background and we now have the text as the blurred background. So now we can start to play with that because we only have that area for the blurred background text. But as we mentioned, you couldn't see it in the back. So we need to do something to make that come out more a little bit better. So I wanted to lighten it. So we're going to retake our original image. We've got our original white grass text and we're going to mix it back on top. So now you can kind of see it better. We still have the blurred background so you don't lose the edges on the text because otherwise you'd have the high noise grass and you couldn't really see it.  This is not, not unreasonable. We're getting there. I see what that looks like in the filter effects editor. We did a blend. So we have the Gaussian blur, we have the composite and then we did a blend where we pull back in the source graphic. The source graphic was the white text and we were blending it now with the original background we had and that creates our grass text at the end. So I was reasonably happy with that but I felt like it really still didn't pop. So I'm like, well, it's okay, but let's, let's get some edges on there so you're not gonna be able to see that but too well. But what we're doing right now is we're actually highlighting the edge, we're putting white edge, white to kind of give us some edge between the text and the background. So what I did is I put a convolution matrix to find the edge. Here's a convolution matrix. You can look this up online, that's a pretty standard edge detection convolution matrix. The fun part, the key with those matrices is if you make them all add up to zero, things work out really well. You don't have to worry about devisors and stuff like that. So just, you know, all negative, big number in the center, you're pretty good to go. So we put the convolution matrix and so we took our original blend, which is our blend that came and we put our lightning in, and we're now putting in a convolution matrix on the original image, and now we're blending that again. So you see how we've got one blend where we're coming in with the lightning text, then this is an entirely different channel. So I've got just coming from my source graphic into the convolution matrix, and then I'm blending those two together at the end. But that didn't really stand out. You couldn't really see it in the back. We just really needed a thicker edge. And so normally I would say, hey, just modify the stroke. You can do a mask. That's how you do it in vectors, right? But we're doing a filters class today. So we're going to do filters. And so we've got to do this with our filter in the specifically, we're going to take that edge, that thin line, and we're going to do a dilation on it. So we got them, the composite convolved matrix, which gave us our edge detection. So we grabbed all the edges from the edge of the text. We throw it through a, a dilation here. So there's a pretty small dilation, a couple of pixels, and that created the thicker edge. And then we blend the thicker edge in. So I have this grass image. There's grass.svg. That's also on web page. And what I've done is I've taken each of these steps and I've put it as layers in that image. And so you can bring it up an inkscape. You can grab the layers and you can just turn them on and off and kind of see how they are. I recommend if you want to play with this more, you grab that image and you pull it into inkscape and you just, you know, change it, change the parameters, thicker edge, but larger dilation, smaller dilation. That, that svg is available and you can start to play with it. So the really cool thing I, I like maybe because I wrote the code, but this is the coolest feature to me. And so I got to talk about it. So we take this grass image and so I can make a directory and this is a Linux conference. So I'll give you the Linux instructions. In your configuration directory, you can have a filters directory. And in that filters directory, you can put as many svg files as you want. When inkscape starts up, it'll read every, every svg file in that directory and it will pull the filters out of those svg filters. So if you find something online, you're like, Hey, this is a really cool image. You can use their filters. So, but this is also a great way to share. Like if you have a design team and you need artists to be able to use the same filters, it becomes a really nice way to share between all the artists that are working on the project. They can just do one filters. And so you'll notice I spend some time naming my filters really nicely on the previous slides. And the reason is because those names end up in the menus. So what happens is you in the filters menu in inkscape, you'll come down, there's a personal sub folder and you'll have, you know, the same image names that we have before. So now if I select an object in this document, whether, you know, be my blue circle or anything else, I can apply those same filters directly to those objects and reuse them and play with them. And then generally, that's what everything is in the filters menu. And the filters menu is all svg filters. And there's an in we're distributing escape, there's a filters dot svg that just gets distributed with it. And these are all filters within that image within that svg. So you want to learn more about filters. You had this, you saw this really great presentation at scale. And so you want to start playing with it. There's a lot that we've packaged in inkscape. There's a lot of good filters. And probably some of them are things that you want to do or a source image for what you want to do. So what I'd really recommend doing is, Hey, this is close. Apply this to my graphic and then start editing it and modifying it. Don't necessarily start from scratch for your first few filters. Just take an object, apply one of the filters that comes in inkscape and work with it and start playing with it. This is actually an old graphic. I've realized it was out of date when I pulled it. But that's all the svg filters that we shipped a couple of releases ago. I think that was 090 was last time I was up to date. And it's got a, in the very left hand corner, you can barely see it. It's a source image. And then this is what happens when you apply each of those filters to that source image. There's even more now, but this isn't up to date. The folder structure is actually wrong. Because we redid the folder structure in 91. Excuse me. But you can grab this in the examples directory and you can see what the different filters do. Open up, play with them, adjust the parameters, change how they lay out, reorder them, do whatever you want. It's a good way to start to learn and get a feel for svg filters, especially in inkscape. Further information, the svg spec. The svg spec actually goes into this. It's got the examples. I tried to show those so you felt comfortable going to the svg spec. There's lots of good info in the svg spec about how filters work. If you want the specific math of how they work, all the math is there. I found this smashing article, a magazine article really good. He goes through, he has a lot of text examples. I find that a lot of times people who are using filters are trying to fancy up their text, make it a little bit nicer. It do something like an effect on text. And the smashing article has a lot of great examples of how to modify text. So I'd recommend that article to go through. He also has a section on not all the filter elements, but a lot of them and how they can be used. So I really enjoy that article. Tav is one of the inkscape developers. He's our representative of the svg committee. And he has a book. It's free online. Of course, I know Tav and I like him. I recommend you buy a copy. But you can also see it online. And he has a filter section. I grabbed a few of the examples from his book on for the filters examples. It's a really great book. It really goes into all the details of inkscape. There's probably no question that's not answered in that book. It's really nice. And last but not least, is there any questions for me? Microphone, I guess. Yeah. Yes, it is live preview. As you edit them, they will adjust. So there's no anything you need to enable. Actually, it's actually the other way. If you go to the view menu, you can disable filters. One of the problems is that if you have a lot of filters, like you got just a really complex design, you'll start to slow down your machine. And so you can actually go view and disable filters to get rid of some of the blurs as you're editing your objects. So assuming browsers as a primary viewing medium, is there any advantage to using vectors over OpenGL primitives that do similar things? Vectors versus SVH. So the question is about SVG vectors versus GL graphics in browsers. I guess it probably depends on what you're doing. I think the SVG graphics are going to be faster vector graphics. It depends on what effect you're going for. I guess it would also be compatibility. More browsers, especially mobile browsers support SVG. I don't know there's a clear answer there. It probably depends on your use case. If you're doing like a lot of lighting effects, I don't think there's a reason not to use 3D. But if you're doing just a lot of text, you probably want to be using vector graphics or even HTML. Because the HTML does text flowing a lot better than SVG does. Any other questions? Going once, twice? Awesome. Thank you, everyone.


always win. This game is rigged. How could this game possibly be rigged? He memorized all of the maps. They're randomly generated. My controller is broken. I just bought that one. Gaming is an unsafe space for people like me. Well if the game isn't rigged, how is it that he has more points than me? I don't know Is this better than you? Bob, a disparity is not proof of injustice. Yes it is! Actually, here we go. Bob, just because one person outperforms someone else doesn't mean the game is rigged. We all have different interests, talents and skills. And as a result, we tend to accomplish different things. This is a huge part of why we see disparities on the individual level and also at the group level. And usually, it's actually a good thing. Are you suggesting it's my fault that the game is rigged against me? That's victim blaming! And now you're telling me it's okay that some groups have unequal results? When those results are a product of people's unique choices and actions? Absolutely! If equal outcomes in every arena is mandatory, we end up reducing people to statistics instead of treating them as unique individuals with different goals and values making their own decisions. Like a hearing day's excuses? Someone needs to modify this game so that everyone's a winner. We're equal. What? No, we're not. You didn't learn how to play the game better, did you? You didn't actually beat me. Nothing about our abilities changed. But now, thanks to this jerk, the score doesn't even mean anything. Now it actually is rigged. Yep, sorry Bob, you both started out with an equal opportunity to win the game. But you didn't have equal skills. And there are tons of areas of life where people will never be equal. Ron needs glasses and you don't.  I thought you were going to stop bringing those up. In the end, demanding equal outcomes will never be fair or account for the real differences in people's choices. It's just another way of cheating when things don't work out the way you want. That's why we need to focus on making sure everyone has equal opportunity instead. People will never be perfectly equal. But as long as the rules don't give some people special advantages over others, ehem Bob, then we should embrace our differences instead of trying to eliminate them. If you enjoyed this video and would like similar educational content, please check out Fee.org. Thank you.