 Hey folks, welcome to the Artificial Life Advanced Class. So here's the pop quiz. What's the difference between these two diamonds? And I'm focusing on the pocket chain, the squiggly loop inside of them. How are the layout of the squiggles different on the left and the right? Here's another example, left and right. What's the difference? Can you see it? I mean, when I look at this, the ones on the right seem to have a lot more straight aways and the one on the left is much more twisted. Here's another example, more straight aways and in particular, right along the main axis, more sort of runways in the middle of the diamond. But the code, the pocket chain code for all six of these diamonds is exactly the same. So how do we get these different appearances, the more twisty and the more straight to come out of the same piece of pocket chain code? And to understand where it's coming from, we have to look at where it came from. The one on the right is growing from a small diamond. The one on the left, the diamond immediately grows out to its final size and then the pocket chain just fills in. And so that makes sense, right? You know, it's got all of this space and the pocket chain layout stuff is fundamentally random if it can be. But with the incremental growth, I mean, the important point for me was that I didn't have to change the pocket chain expansion code at all when I developed the making the diamond grow incrementally, which is one of the things that's new this time. And same code, different life history, different opportunities, different result that comes out at the end. I thought it was kind of interesting, you know, especially because symmetries always draw our eyes and, you know, we think, what does it mean? Does it mean something about the inherent structure? Well, it might just be the result of different opportunities. So the bigger picture for this is that if we're going to have diamonds growing, which we are, if we're going to have diamonds reproducing, which is the whole point of this artificial life creation countdown, then we're eventually going to run out of space. Artificial life demands artificial death. And we need to face that. I wanted to focus on it this time. So we're at T minus seven. Here's the spreadsheet, you know, strands and loops. That's the pocket chain, you know, we're sort of doing, but not too terribly there. The border stuff, we've got, you know, new versions of the border working fairly well. In fact, there's new, even new stuff today. There's one new element, a little tip that goes just to the tips of the diamonds that helps get the contact warnings in the absolute straight directions and just generally holds things together. And the borders are looking pretty good. But the purpose of the pocket chain loops and so forth was to represent code that was going to drive the reproduction process. And none of that. The HC3 sequencer, that was supposed to sort of represent, you know, the code represents the program, the HC3 sequencer represents the processor. Got none of that at all. So that is, there's some reasons for it, but it's worrisome. How long we can hold to our countdown without having to hold, we will see. On the other hand, Grow2x have a diamond that can expand on a programmatic basis was really scheduled for T-4 or T-3, and we already have a really pretty good cut at it. So we shall see. And again, why do we need these things? Well, you know, growing to two times radius. That's the very first step in the planned diamond matrix life cycle that begins with a single mother and ends with two daughters and the cycle can repeat. So sequenced matrix growth is something that we didn't have before and we absolutely need. All right. Oh, and so the version of the code that we just saw here is now running on the T2 grid. There's a T2 demo out on it about three minutes long, and we'll just watch a teeny little bit of it now. Look at that. So basically, I'm just stuffing more and more in until something happens, you know, sort of a stress test so far, reasonable. So we'll see how that develops. I'm going to let it keep running for next, I don't know, maybe a week or so. We'll see. But the second step after that, after we grow, there's this reorg, reorganization. The idea is that we're going to have to take the code, the program, and get it out of the way so that we have room within the cell to make another copy of it. And I didn't really have anything specific in mind about how that was supposed to work. There's still some questions about it, but the goal I set myself for this update, the loop operations was supposed to be related to that. Now, I didn't really make very much progress on loop operations. Well, I didn't make any progress on loop operations, at least the way I had originally conceived it, you know, where you sort of like maybe like take a loop and cut it open and put some special head on it like a locomotive on a train, and it would drag the thing elsewhere and then it would reconstitute the loop, you know, none of that. If we're still going to use it, which I'm kind of thinking we are, it's yet to come. But I had this other idea about how to navigate on the diamond, even though the HC3 grid has very limited information available about where you actually are. So let's take a look at this. All right. So this is six little diamonds, growing diamonds that are seated and they're all just bouncing around. But look, look how the pocket chain is growing. And see now, now we got four of them that actually are locked up and one of them died to make room for the other ones, which are now just sort of bouncing around and bouncing around. But look at that. The northwest quadrant, the southwest corner, northeast, got a southeast one over here and so forth. So that is new and it went in fairly well. It went in fairly easily. So, okay, there we are. Yes. These are some of the screen grabs from that we just saw. So here's the four, I can't get the screen direction right. So the four of those are locked against each other and the edge of the universe until one of them disappears. And at the time scale that that is going at, at the time lapse that that's going at, it just goes poof. But in fact, that was a complex process and the important point from my point of view was that it went away cleanly. It just disappeared and didn't leave any sludge left over. So what am I doing here? Oh yeah. All right. Well, so again, artificial life, birth plus finite resources means we need death. So how should digital organisms die? You know, the inclination, just like when you're writing traditional code is to, you know, I want to focus on the case where it works and the error handling, you know, the cleaning up, the free and the memory and stuff, you know, I get that garbage collector and get something else to deal with that. That's not the fun part, but we absolutely have to care about it, especially in these distributed cases where the stuff is all over the place. And if we don't coordinate the shutdown, who knows what happens and we'll find out what happens. So that's the reason for actually caring. All right. So the history of death, you know, death has been around for a long time. You know, the point is, is that as I've been working on the move of this machine for, you know, a decade, coming on a decade and a half now, you know, figuring out how to clean up, figuring out how to die cleanly has been an issue all the way through. So let's take a quick look at the history. The bigger these things are, the longer it takes, the more chance there is that something will mess up. Mistakes happen. Ooh. Now, I'm extremely proud of that. It didn't go insane. It didn't end the universe. It actually cleaned itself up. Let's try it again. So that was the 2D printer demo or an early version of the 2D printer demo. And we weren't actually cleaning up the entire structure because the thing that was copied in the 2D printer is fundamentally passive, whereas what we're going for now is a cell, a live operating structure that's going to copy itself while it's living. And it's a different sort of approach. Now, last year in 2021, I was focusing a lot on these plates, solid rectangular things that filled the universe and provided a local 2D coordinate system, supported hierarchical nesting plates with subplates inside and so on. And they had a pretty sophisticated system of dying. It was a very high priority process. Very early in each event on a plate, Adam, it was like, am I supposed to die? And if I am supposed to die, are my neighbors supposed to die too? And there were these two key death bits that every single Adam that was representing part of a plate had to implement, one that said, yes, I'm supposed to die and all subplates I contain. My plate is supposed to die and any subplates I have, I am supposed to die and any plates that contain me are supposed to die, which is really scary because you can then go from a small thing and then out to a big thing and then eat it all up. And we can put those together in various ways. And that worked fairly well. Now, so far I have resisted putting the, I always just sort of imagined in the back of my mind and I'll just put the death bits from the plate into the hard cell three context and so forth. But so far I haven't. We shall see what happens going forward. This year, it's this, you know, in the case of the plate, there was sort of a zero, zero and a max, x, max, y, but there was nothing really central about it. Nothing central about it at all. It was in the corners. Whereas the diamonds have the root in the center. The leader is in the center. The decision about what direction to go next is made in the center. And the idea is in death as in life, follow the leader. And so that's what I've implemented here so far. Now, I mean, that leads a question about what do we do about things that aren't the hard cell grid, but they're in the same space. They're occupied within the domain of the hard cell grid, even though they're not hard cells themselves. The obvious example so far is the pocket chains. What happens with them? Well, let's take a quick look at an example before we get too long here. Okay. So this is a diamond that I have confined by putting a wall all the way around. It's like that. So it can't actually go anywhere. And, you know, we can let this thing run. And if we zoom in here, this is the root all the way in the center. And it's got four little lines going in each direction. And those are the contact warnings that are saying there's contact warnings in all four directions. So the root, when it wants to move, it says, I can't move. There's no direction to go. So in fact, it doesn't move. Now, we can look in what's going on. And it's got this M-root watchdog, which is a timer that gets reset every time the root moves. The root is not moving. The counter is up to five. It's going to go to six, seven, eight, nine, 10. Oh, no, it's still at five. But each step takes about twice as long. So we still have a long way to go here. We're not going to sit and wait for it. But we can kind of simulate it, right? But we'll just come in with the eraser. Zoom back out again. All right, so what would happen eventually, and this is what did happen in the demo that we saw, is that one of the root will eventually time out and it just erases itself. And we get something like this. The HC-3 grid is all gone. The pocket chain is gradually cleaning itself up. But it's taken a while. And the membrane on the edge is gradually cleaning itself up also. And it's also taken quite a while. All right, there it is. And now there's just this one tiny little bit of pocket chain left. That might actually be a bug. We'll see. Well, but that's the question. What about the guests? What we're doing at the moment is we're just saying, go ahead, not worry about it. We'll probably need to revisit that. All right, so here's the title card. Engineering digital death. And the idea is you go for the root and once you take out the root, the rest just takes care of itself. All right, so the goals, you know, we missed a little bit. The loop operation is not quite so clear. The HC-3 demo not at all, but we got this quadrant stuff working. Dave's late news. Well, number one, we're going along here. Got rid of the left. So the main point is, you know, we had a living computation foundation nerd who donated a long time ago and I never got the email out. I finally shipped the email for our newest living computation foundation nerd. Thank you very much. Our next demo will be September 13th, two weeks from today. The goals are a loop reshaper demo. That's different than loop operations to get something about HC-3 sequencer, at least designed, something on paper written down and have some fun. Thank you so much. I will still be here once again after I get the render going. Thank you so much for taking a look. I hope to see you next time.