 Yeah, I think I think we can start Okay Thanks Richard. Hey everybody. I I wish I could be with you But I've got a ton of stuff to talk about so I just want to go really fast so Just over a year ago, I decided to build new life As I gave myself a six month challenge. This is soft a life. This is so software based I had a bunch of desires for it I wanted it well to be a you know proper life that was actually, you know struggling to preserve itself I wanted to have some kind of equivalent of like digital DNA Some kind of program that was in the thing that would help take care of the perform the replication And I wanted to make it, you know Not to cheat on the physics as much as I could and and part of what was making that possible Was that it was always no matter what it was going to have to run These tiles these t2 tiles that I've shown before previously not just one of them But on this matrix of them and you know at the moment We're still building it out, but it's 76 of these tiles each of them connected together to the nearest six neighbors. There's no synchronization Nothing in charge no head node Each of these tiles is racing with its neighbors to grab locks to try to have the next event It's the entire system is viciously non-deterministic and on top of that for example But this whole quarter down here is currently powered down and the rest is going and it's also supposed to handle that My scheme was I would have something representing like Organism a diamond cell something like that It would have the squiggle in the middle representing the digital DNA It would grow to twice its size move the code off to one side Then make a copy of the code to the other side and then cut it and end up with two Not necessarily identical the whole thing is this non-deterministic stuff, but both equally functional copies of the mother Let's take a look at the demo to see how well it worked So it's hard to see it first down here I seeded it in the lower right-hand corner And it's it's sending out a construction arm toward the left in order to copy the code on the left It raced now it's building another construction arm over to the right where it's going to copy the code again And then shortly after it erases the construction arm it splits And it works out okay, and and both the daughters immediately start trying to do the same thing You'll see when the next split there Here that there's an extra little step where these things put out a barcode Representing their lineage back to the ancestors. So Jumped ahead here. Okay, so that's the demo. That's the diamond replicator working There was here we are. No, I let it run for over a month But the data that's in the paper reports is reported over 20 days. There were 330 diamonds there were typically between 15 and 20 alive on the t2 matrix at any given time and You know life was pretty much nasty brutish and short, you know 25% of all diamonds lived lived less than six hours long, although a couple of them Lived for several days. They both had defects that actually caused them to live longer than the ones that were working properly You can talk about that in questions if folks want to Okay, I want to talk about the movable feast machine the cellular automata that underlies all this I've talked about it before but now it's a little bit more real. So, you know in the last Several years decade or so. There's really been this flourishing this diversification of Cellular automata that people are looking at and that's great. I really love it So, you know, we're back at the beginning way down in the corner with like the elementary CA's We have just a couple of bits of state total in the neighborhood including yourself And it's so small that you could make a table of all possible values of the input and the corresponding output as We move up from there to having more and more total state in a neighborhood that table quickly becomes impossible So there's all these alternate approaches to Figuring out ways to implement the transition state-to-state transition. So the game of life uses this totalistic idea You count up states Linya, I have it listed as a PDE model now We learned this morning that it's not exactly a PDE but it could be one and certainly looking at it from a distance It has that same feel the neural CA's That you know folks at this conference are talking about right now in one of the other rooms Also, these things, you know, they're both Oriented around real numbers or float But if we interpret them in terms of floating point numbers we get thousands of bits of state in the neighborhood depending on How many bits we think are How big the floats that we use but the point for this is that all of this variety is all on this front plane of synchronous deterministic delivery of events now I mean there have been async asynchronous attempts at Linya and various things But the vast majority of it is synchronous and deterministic. There is the probabilistic cellular automata that Breaks beyond synchronous and determinism. I Made it kind of fuzzy because it doesn't get used very much and I think it's because it's really hard It's hard to make stuff do interesting things when you don't know what order things are going to happen and Things may fail and yet the movable feast machine the model that we're using for the demo that we just saw is Even worse than that. It's it's not merely Probabilistic because there's no probability distribution of where the events are going to go the machine is best effort It tries to deliver reliable events and it tries to not starve any sight But it actually can't even guarantee that anything might happen like for example The whole South 40 might lose power and the rest of the system is meant to keep going So, you know, this is the movable feast machine It's got a radius of Manhattan distance of four from the center That's the size of the neighborhood But each of those sites is able to hold a 96-bit atom of which there are 71 user Rightable bits, so it's really big overall if you take multiply it all out There's over 4,000 bits of modifiable state and unlike synchronous cellular automata When an event happens on the movable feast machine the thing in the center That's running a sequential code to perform the transition can read and write the entire neighborhood as it wishes We got a programming language Oolong which is kind of like this is the object-oriented program mentioned a couple slides ago It's basically like a 1990s object-oriented Programming language except it allocates down to the by the bit all the way down to zero so that we can Pack as many classes into a single atom as possible. It's got multiple inheritance Here's a sample element just to give a little bit of the flavor LX release diamond cutter. It's superclass is something called LX It also inherits from something called q-label mark and so on Why would anybody want to do this? Why would you want when you could have a CPU and RAM that guarantees deterministic execution guarantees with a little asterisk We'll use something that's merely best effort a language where the every line the objects that you create can have no more than 71 bits and The hope is you we if we take this tough steps front up front if we if we accept the fact that software is gonna have to help with the robustness and reliability and if we accept The fact that we need to have small fundamental unit so that we can copy it and copy it The hope is we can get systems that we can scale Indefinitely and that's the goal All right. No Okay, you know I always had this fantasy and I've presented oolong results over several conferences in the last decade here And I always was hoping that I was going to be able to come up with like libraries oolong libraries for red black Trees or link lists or something like that and the fact is I haven't been able to and I think the reason is because You know when you're doing stuff in the movable piece machine You have to come up with a functional description a functional implementation. That is also a spatial Implementation and the details at least you know at this point I don't understand the way that we ought to implement things spatially well enough to be able to commit to a single spatialization of say a link list and have it work all Magically that is for the future that is that we need additional engineering We need programming language skills and design skills to understand how to make this stuff more reusable Nonetheless at the moment there are design patterns There are these more general things that I have to implement them over and over again But it gets a lot easier to implement them after having done it a bit And I want to talk about a couple of them quickly So self-stabilization that's a like in the in the original Dijkstra sense of distributed control with failures, but it if you know if you just let the system go It's continually falling towards correct And if the environment settles down and stops churning things up eventually it will become correct and stay correct now None of this is going to end up being provable Because the underlying model doesn't give us an error model. We don't know what may go wrong But it is an engineering principle that I use all the time And so there is this intention API that you implement these methods and they occur in order But for every single event the first thing you do is you have an event You observe the event window around you you observe the neighborhood generally without changing anything and then you Stabilize and that means you apply all the knowledge that you have about things that you expect that this thing should be one Minus that thing this thing should be equal to that thing and so on and you recheck are all those things true And if they're not you have to make them correct and you can do that any way you like You can change internal state to match what you're seeing out in the world. That's learning You can change the external state to match what your internal. It's looking you can erase yourself It's up to you But the goal is when you come back from stabilize you now have your invariance set and you can go ahead and consider doing a Assertive act to move forward. This has made a tremendous amount of progress possible Similarly signals and gradients, you know when you do anything was with cellular automata You end up having to deal with routing signals from here to there and you know the original von Neumann universal Constructor has wires running all over the place and so on but here when we've got 71 bits for each site what ends up happening is we have multiple signals and Gradients so signal is you know a constant signal that get the same value gets sent along the wire a gradient You know six seven eight nine ten whatever it happens to be so hard cell G is the atom that makes up the Protoplasm of the diamond cell, you know the main field and it's got several different gradients and signals moving in different directions Simultaneously and all of that happens at while the thing can be moving from place to place Carrying the signals and gradients with him and this is where the Ulamability to allocate down to individual bits and to do multiple inheritance really shines So you can have something so like the do line API that is how the edges of the cell send contact warnings toward the center where they can be integrated with warnings from the other Three edges so that a decision can be made which direction Should the diamond move it has to come up with a consistent direction or else it'll tear itself apart Okay, let's do a really quick demo and then I want to save time for questions All right, so this is the the simulator the MFMS simulator where all the code is developed before it runs on the t2 matrix and this is I've frozen the Diamond right about where it's going to about to split and this is a you know in addition for you know miracle of birth and all that it Really is a fundamental step because all of these things have been happening Coordinated to the mother the center of the mother is the root of this thing all of these hard cell G's for example They're all counting number of hops away from the mother's center. That's why it's a diamond of that size But in order for this Diamond cutting to succeed the two daughters left and right they have to establish their own roots And the mother has to relinquish the root at which point There is this huge chaos where all of the hard cell G's are changing which direction They're pointing in the gradients are completely messed up, but then that they will self stabilize And let's take a look at it and see what happens. All right, so, you know, it's non-determined All right, there we go the signal from the mother went out saying begin to cut The daughters have established their roots The mother just erased herself So now the top and bottom sections are no longer supported by anything and they wither Meanwhile, the the protoplasm has reoriented around the new route and the code is off to the races If the things are running Okay, so that's it. That's what I wanted to say, you know The call to action is especially for for this group, especially for artificial life people. This kind of programming is hard It's not like you are the master of the universe like you are in CPU and RAM, but it's Really really interesting and it has this potential that you know If you take the bitter pill up front that you're using this really weak architecture On it's really narrow thing and then wham off you go With stuff that can grow and grow and grow and so for example everything that we've seen so far is all from the time That I submitted the paper, which was what March or April, you know, we've done a bunch more work since then so for example What's this it? Yeah, this is it This is what the latest cells look like and Now we're focusing on Multicellularity things splits that they orchestrate themselves into a two-cell thing and they move in a coordinated fashion It's pretty cool And they actually die together as well. They have shared fate So part of the whole point of this is that taking the trouble to have a full programming language But only with the persistent state that you have, you know within the cell itself Is what makes this all possible and I will stop there. Thanks so much for listening All right. Thank you, Dave