Live CEOing Ep 644: Language Design Review of System Modeling, Control Systems & More

Stephen Wolfram and Roger Germundsson review system modeling and control systems design, discussing how to improve user interface consistency and engineering workflows in Wolfram's tools.
Chapters
Sam.
Hello, everyone. We are here for another design Review for version 13.2. This is about control systems. And what's that?
System modeling. It's more system modeling and mostly system modeling.
Can I make a procedural point? Could we simply combine these next few meetings rather than having to switch. Switch streams? Here we have three design reviews, all next to each other. Could we simply. Okay. Arrange for the people who are relevant to come in when we get to the next design review? Yes, we can make that happen and just tag this as a general version 13.2 design review, because it's just a whole lot of different stuff here. All right.
So as a. As a preamble. Oh, wait a minute. We haven't started yet, right?
No, no, we're rolling. We're talking about system modeling. Yep, go ahead.
You know, as a preamble, we're improving the integration between system modeling and other parts of the system and workflows.
Great.
Okay, so maybe we should start at the bottom of the first part here. So we've changed the. That's not so much to say there, but if you look at the icon there, this thing. So that's a Com. Yeah, so that's a component that has, you know, represents a. It's a component, but it's a slightly complicated component. So when you press the plus, you go from icon to the diagram view. And now you can also get information which was very hard to get before.
Okay, question that. That icon doesn't look consistent with our other icons of the same type. It's similar, but not the same. And also what it's doing is not the same as what normally happens with an I. Can we make sure that that's consistent?
What? You know, it's supposed to go to the website because we don't have this documentation.
Then what the hell is it doing here?
So if you have System Monitor installed, it goes to documentation. System Monitor.
But it's actually going to a website.
Okay, it's actually going to a website.
Okay, but. But. So there were many practical problems here. Okay. That took way too long. It's really going to take. Why did it take so long if it's just going to a website? It should be a trivial lookup. Right. Because that. The mapping to this is trivial. So why did it take so long? It took like 15 seconds there.
It was probably loading the system only functionality.
So functionality that needs to load to just go to documentation. I don't understand that.
Well, you need to look up what this page is, which the system model of functionality knows.
Yeah, but that page I can. I don't need anything fancy. Look at it. I'm just reading off the, the. The. You know, I don't need to spend 15 seconds to. To load the functionality to tell me how to put a prefix in front of that URL, because that's all it did. Am I making sense? Do you understand what I'm saying?
Yes.
It's just a. It's just something wrong. Okay. It should be fixed. Right. If you have a user interface element like this, it should work immediately.
Now we'll see if that's possible.
Okay.
I mean, it's obviously possible with infinite amounts of work.
I understand that, but I'm just saying it looks to me like this thing should just be opening a URL where it determines the URL from this. Now, maybe it's trying to look around to see whether you've got system modeler installed, but there may be a faster way to do that. It just. The engineering is. No.
I can't answer for all possible cases. In this case, what you saw is that. But it could be that it's a component that you or someone else has developed and there is still documentation that it should find.
Fine. And is it a packlet system or is it doing something completely different?
Completely different. That's nothing to do with a packlet system.
Shouldn't it use the packlet system?
No.
Why not? Because that's a really good way to do this, to make sure that there are components loaded, that it's cached, all that kind of stuff. I mean, there's obviously a new system.
So the performance side and caching has not happened. It's happened a little bit this time, but it requires much deeper integration within the system modeler team and several other projects.
I would like to make the suggestion that system model consider using packlets, since packlets are now a fairly mature technology and they solve these problems of, you know, loading stuff in and so on, rather than having a separate custom mechanism, which is clearly much harder to maintain. So just a point, I don't understand.
How packets play a role because the library that we use here, it comes in the layout. So why do I need a packet? What's the packet going to have?
What were you loading? If you spent 15 seconds loading something, you're loading something. So otherwise, you know, there's a mystery. 15 seconds that I was waiting to get to that documentation. You said it was loading something. If it's loading something, packlets irrelevant. If it wasn't loading anything.
Yeah, I mean, it already has the library. The packlet would Add additional time to download.
It did something in those 15 seconds. We don't know what it was.
No, it loads the system modeler kernel.
It loads it from disk into memory. Is that right?
Yeah. Yeah.
Okay, well, then why don't. Why didn't I see the standard blue box? That's a progress box saying, I'm starting the system modeler kernel.
It probably should.
Okay, fine. If it showed that I'm a happy person.
Right.
Okay. And that box, by the way, needs to be standardized with our other.
It is standard. We. We have. We've already transitioned that. That. We did that 18 months.
Terrific. Okay, so I'm just saying this isn't quite right. Please make sure that it's consistent with our other information boxes. Okay. I mean, I can.
I mean, do you have an example of that?
Well, here you have an instance of it. Yeah, here's one. There's one.
I thought it is the same.
Well, it doesn't look. I don't know, it doesn't seem quite.
It is the same. I think we.
It doesn't have a mouse. Okay. I don't know. It doesn't look quite right to me, but. And I'm surprised. This one doesn't have a mouse over. But doesn't. Okay.
I mean, I wanted question mark, but we changed it to an I because that's what we used elsewhere.
Fine. Okay. All right. Anyway. So what were you showing here? You were showing.
I'm just showing that. That just the fit and finish of using these have gone up. Right. You know, you could find information, but you needed to know to go to a website and things like that.
No, that's great. That's definitely an improvement. I. I would just like to suggest that. Designed to crack at this. I think this could be a little bit better. I, you know, I know what it is, but, you know, whatever. I see these, you know, giant PLM like, you know, systems and even the fanciest places. There's a certain, I don't know what, you know, rough humanness to the design. You know, whether it's our stuff or whether it's. Whether it's other, you know, kinds of engineering presentations. And maybe I'm just. Maybe my aesthetic is just wrong, but it feels like it could be a bit more elegant. Just. Just the chrome here.
Yeah. I mean, sure. And when you say graphics design, you mean Jeremy?
Yes, I do. What is this saying? Out 98 in a previous session. The heck? What is that? Well, I saw a mouse. Over. I saw a mouse. It said out 98 in a previous Session in a weird font. Anybody else see it? That was at local. Look at that.
Oh, there it is.
What is that? Kristen, I think that's for you to go figure out. What on earth. What is that? That might be something to do with percent modernization. Okay, I have a screenshot of it and send it to John Faulks and ask him. On Earth, it is. I mean, it's cool. It just isn't a very nice font. All right, let's keep going here. So do I move upwards back up here?
Yeah, let's move upwards. That was the thing we just went through. System model plot. It's not worth going into unless I can show you a big notebook of it. So, system model.
You want to show it?
I mean, I don't have any. I need sort of a big set of benchmarks, and I don't have them to show you.
But if I did. System model plot of this puppy here.
It.
That is not a splafaroo.
Yeah. It's a component. You can't simulate it. Okay.
But if I might say so, that is not an elegant set of error messages for that case. We should improve that. But if you know it's a component you can't simulate, just say it. And an exit don't produce all this crud.
Yeah. Okay. Yep.
But I mean, I absolutely hate the system model examples thing, but I guess I have. I know. I really hate it. I mean, I really hate the inconsistency with everything. I really hate this. Really hate it.
Let's have that discussion somewhere else.
The. All right, so I just want to take this. What am I doing here? I wanted. How do I get this thing? Paste it. And now I can say system model plot. Of that creature. Now, is that really. What did that do the right thing as it went to the smaller size? Should it really have.
It should have used the icon. But I don't understand the spacing around it. Sergio.
Yeah, that's what I see.
Right?
Yeah.
Right.
I can look into that because it.
Seems completely wrong, but it is the icon. It's the thing that presents the whole.
Which is nice.
Or is there an icon? No, this is the diagram. Is there an icon?
No, this is the system model icon.
Let me comment that this still isn't right. You still have a new thing. Well, it doesn't look the same.
That is the new progress bar.
Okay. Okay. So is this your new system model plot?
Yeah, this one has no change. But what we found is that the plots in System Modeler, many of them have legends that are sentence long. They go off screen and they had tried to simulate caption. We don't have a thing called caption. And it. It just.
Maybe we should just general.
Well, maybe we should, but we don't right now.
Why don't we put that into the queue with Brett? Because I think that's an interesting thing to talk about.
Yeah, we could. Yes, that's fine. But remember, we talked about elision of things, so here's one thing that we needed to deal with. Elisions. So, Sergio, do you have. I really wish you had had examples ready made here to have this discussion.
Give me a.
And often for these variables, the ending of them is significant. That's what's unique, the prefix.
Yeah, I remember this. I remember the issue. Right. Okay, let's just. Before we run out of time, system model measurements. What is that?
That is a new function.
Okay, so if I. If I take this for example, and I say system model measurements, actually you could do that.
Yeah.
Well, it doesn't have the inputs.
Come on, guys.
Yep. It's a close.
Yeah.
Yeah. So what do I do? I say system model simulate first.
Well, okay. No, no. So, Stephen, do you need to understand what measurements does.
It's a particular instance. Right. So I could take this object.
Are you going to listen or not listen?
Not really. I'm just going to try it first. After I tried it, I was going to listen. Okay. Did I do the right thing? I mean, in other words, it was a particular instance of this model. Is that correct or is that not correct?
Right.
So here you use like a way around. So it's like the third use case of system or measurements, where you pass simulation data and then you measured all the simulation data.
Okay. So is this what you expected it to do?
Roughly, yes.
That's an awful lot of digits here. Seems kind of crazy. I don't understand what any of this.
Is.
But maybe I should.
Are you willing to listen?
Yes, I'll now listen.
Okay. Maybe we can bring the page up.
Yes, that's what I was thinking of doing.
It's in the source.
Okay.
So what this is for is for systems that take input.
Yep.
And generate output. Yep. And so one way to understand a system is to send a standard signal in and see what it responds with. And a typical thing is to send a step and see how quickly the system responds.
Yep.
And then you can measure various qualitative things around that. So that will measure qualitative and quantitative performance properties of the system. So if you go down, there is a. Basically a standard set about 10, 10 of these.
So let me just understand something here. I mean, so like classifier measurements, for example, takes a classifier that has been trained, but it doesn't look at specific inputs, a specific input to that classifier. That's yet another function. This is again looking at some kind of impulse response or something. Step response.
Step response.
Yeah. And again, it does it in a disembodied way. It's not saying given a particular. I mean, this case here, I did a particular simulation. But. But what you're saying is this.
I mean, what you're saying doesn't make a lot of sense. You know, actually it does take simulation data, but the things that it measures doesn't make a lot of sense applied to that simulation data.
I get it, I get it. Because what it's doing is it's the raw system and asking how does it respond? You know, what is its response to a step, as opposed to saying the specifics of the system was. Was kicked in this way and what happened when it was kicked in that particular way? Yeah. So why is this not called something like step response? I mean, to me, this just seems like a very general.
I mean, we already have that. We have a system response. But what you want is the actual numbers. The response to look at the plot is fine, but then you have to kind of measure in the plot. You know, you have to bring out your.
Okay, fine, fine. But so is this analogous to classifier measurements in terms of what it's doing?
I mean, it's just a bunch of measurements. Classifier measurements are trying to give you qualitative, Somewhat along.
Yeah, somewhat analog. Well, look, classifier measurements is taking a function, which is the classifier function, and it's telling you sort of meta information about the classifier function.
Well, it's trying to tell you how good or bad it is, basically.
Right.
And this is trying to tell you how good or bad it is.
Right, but I'm just trying to understand the system thing that you put into this. What is that system thing? Generally? Is that a system that you put in or what do you put in here?
A system, which is what I thought.
I had here, but apparently I didn't have enough of a system to put it in.
Well, it needs to have an input, because you can't send an input to it if it doesn't take an input.
Oh, I see. This system has no input. That's your point. Right, okay, yes, I get it. I understand. So the system with an input, just like a classifier, is a thing with an input, namely the Thing supposed to be classifying. And this is now going to feed a test a test input in and see what happens and tell you the results that basically. Correct?
Yes. So for instance, you sometimes you have this in everyday life, like. So, for instance, if you go buy a car, it might have a zero to 60 time.
Yep.
Right. That's basically rise time.
Okay.
Here. Okay. But you can have the same thing for any dynamic system. There's a performance characterization for any dynamic system. Often a controller will give you kind of better performance. That's its goal.
So you say controller, observer. What that's. Is that. That's not specific to this system or can I look inside this system and find out a.
If you looked inside the system, you would see that someone came up with those names that are there.
Okay, fine. All right. Okay.
Yeah.
Okay. And these are derivatives of that, is that right?
Yes.
I mean, this looks like a deep engineering kind of. I mean, this is. This is way.
Yeah, I, I mean, I wouldn't say that it's in a. First in a basic control class. You need to know what the performance is. How fast is your disk drive moving? That's. That's part of how you measure measure systems.
I know this lingo and so on. And the way this is set up is sort of analogous to. In statistics. It might be, you know, an ANOVA table or something. You know what I'm saying? It's. It's one of these things where somebody defined this particular joke by its numbers. And now people are using that.
You know, it's a little bit more fundamental. ANOVA is kind of a very special method, if you like, for categorical data. Yeah, but this is kind of. Kind of more like saying a predictor and.
Okay, but. But this type of thing, like a rise time, for example, I mean, could we decide that we have a Bessel function and say, what is the rise time of the Bessel function? Is that well defined? Why not? What is the rise time? How is it the rise time?
If you go there, you can read it in this page that we have written for you.
Okay. Where is it rise time? I think that's well defined for a Bessel function. It's like a quantile or something. I mean, the time, does it have.
A fine bessel function? Doesn't have a final value. I think it's unbounded.
Right. Well, that's just zero. It wheels around zero. But. I see. So this is. But I mean, this type of thing is a. You know, in a sense, you could take any function, any interpolating function or whatever else. And these are not statistical, but they are sort of. They're features of the function that you could extract. Right.
And that's exactly what Sergio does. When you fed it functions, when you fed it the simulation data, it has literally functions. And that's what he computes from. But I'm saying it, sure, you can compute it, but doesn't have super much meaning because it's not, by the way.
Just as a practical matter, those functions that you have that compute rise time, given this, you know, interpolating function or whatever it is, you should put those in the function repository as separate factored functions. See what I'm saying? Does that make sense, Sergio?
Okay, but.
Right, yes. I mean, it's just taking. Taking given an interpolating function or taken out a function, we could probably run. Just run interpolation and compute it from there.
Yeah. I'm just saying that this is a function interpolation that we're now trying to do is these specialized pseudo internal things that occasionally one will need. Just put them in the function repository. They don't have to be, you know, they don't have to have the same design standards as. But it's just useful.
Here. So you complained, Stephen, last time. It's like, how am I designing a controller when I have to give these weights and polls? And it's like, I don't know how to do it.
Yep.
Okay. Wouldn't it be nice if you can get these specifications instead? This is the actual performance I want.
Yes.
Right. Isn't that. Wouldn't that be nice to actually say what it is you want?
Well, I mean, look, I'm saying what I want in a very specific engineering clipboard kind of way. I mean, it's hardly as if I'm saying, you know, one could imagine some sort of arbitrary function that says, I want it to be within this and I want to take the integral of that and blah, blah, blah, blah, blah. But you're saying 90 of the final value is this, and so on. I mean, so it's very. It's a very specific engineering criteria, which is fine. And no doubt the. The right thing. I mean, that's the stack that's been built in that area of engineering. You know, somebody could have picked 5% to 95%, but they.
In fact, you can modify it if you want. At the very bottom, there are method settings, so you can modify all these.
Okay, fine. Okay. Wow. So I could pay 5% to 95%. That's cool.
You could, yeah.
Yes. But I mean, I I think that, I mean, the challenge here is a challenge that we often face, which is, you know, this is a specialized area with a huge stack of, you know, 50 years more than that, 70 years probably of sort of. Maybe a little. Yeah, about 70 to 80 years of sort of built up sort of convention. And, you know, it makes no sense for us to buck that trend because 95% of the people are going to use this, are going to know those conventions. On the other hand, it is tricky because, you know, it's a specialized area. It's not going to fit in very well. You know, it's not going to fit in smoothly. You know, I have no idea whether people in econometrics, for example, they may be using stuff directly from control systems. I don't know. You know, they do when somebody. Yeah. I mean, let's, let's wonder whether somebody was, was thinking to themselves when they decided to change the interest rate, oh, I wonder what the, you know, settling time will be. They probably have a different meaning for settling time in that field. But, but, you know, you know what I'm saying? I mean, I don't know whether this is.
No, that is actually happening. Things like that are studied and used.
In fact, with the same lingo as control systems, is what you're saying.
Yeah.
Because we know perfectly well if we went between. Oh, I don't know what. To me.
So for instance, you see that with the bump where you see the icon on the left column here, it's the same curve all along. Right. We just point out different features. Now, do you see that first bump when it shoots over? That's called an overshoot.
So I sort of guessed. Yes. Okay.
Okay. And the first one when it bumps below, it's called an undershoot.
Okay. Okay.
And so us just as an aside, when you run, when you drive, when you. Do you know how to bicycle?
Of course I do ride an ordinary bicycle.
Yes.
That part I, I've known for, for a, a very long time.
You never know. Okay. I've never seen you on one. So, so, so, you know, you knew bicycle, bicycle has this behavior where it creates an undershoot first. So if you want to steer right, you start by steering left.
I have noticed that. Yeah.
Yeah.
I don't know.
It's called a non minimum face system. Okay. That makes it, that's part of what makes it hard to ride a bike. Now why was it, sorry, is it.
More stable if you do that?
No, it's just the way that that system, it has, it has a zero in the right half plane. And so that's just the way the dynamics of that system behaves.
Okay. Yeah.
And you know, the overshoot. So, so for instance, now with interest rate, it could be that we're hiking interest rates now so much that he overshoots because he wants a fast reaction. Right. And that's tip. That always happens for these dynamic system when you want it to behave really rapidly. You typically end up getting an overshoot like that. And sometimes that's bad. I mean, it could be bad for the economy if the overshoot is too big.
Yeah, it's like riots and things, you know and.
Right, right. But, but in, in technical systems like let's say that those are two steel rollers and you push them together to, you know, let's say roll steel, cold rolled steel. If you push them together with too much of an overshoot, they will destroy each other.
Yes.
I'm saying. And you'll have steel pieces flying all over.
Yeah, that's bad. Right?
Yeah. So so many of these are safety critical systems. Like for an airline, like a Boeing 737 Max jet, for instance, or something, you know. Okay, you want.
No, I mean, this is all interesting, but I, I guess my. Yeah, I mean, look, this is just, you know, it's an area I'm gonna.
I'm gonna, I'm not done with the illustration. I think it's too detail. This is, I'm gonna iterate on that.
It's like too much bad. It's not too bad. I mean, I think I understand what's going on here. I mean, of course, I don't know, you know, if the thing had an essential singularity here. I don't know how to classify its overshoot. But I think you're, you know, you're making a stack of assumptions that mean there is no essential singularity there.
Actually, I said early on, and that's another concept we're going to have to introduce in our system that this concept only makes sense for stable systems. And stable here means bounded input generates bounded output.
I see.
So that's called Bible stability. There are many kinds of stability.
Well, it's interesting. I mean, you know, I don't have a sense here of, you know, one thing I'm curious about. And then we should, should wrap up this segment. You know, if I'm out and about and I'm trying to design actual control systems for what will be an example. I don't know, there seem to be a moment, you know, the moment of the segue and things like that. Seemed to be a moment where people were, you know, very big on exotic control systems. But I suppose with the drones and things like that, they're plenty of interesting. Slightly exhausting.
There's always new areas for control. Autonomous cars is a popular one now.
Right, Fair enough. Okay, so. So let's.
Yeah. Optimized energy juice in a data center was one that came in from Facebook group yesterday. It's perfect for us.
The. So I mean. Okay, but. So what I'm asking is the. The apparatus that we have now, how, you know, is it usable in practice for the typical problem? Is it. How far have we got?
No, it is usable for the typical problem. I think our modeling, our modeling capabilities is second to none. This is the best in the world with system modeler. Our control systems, I would say is okay, could do with some more kind of tlc. We have some capabilities to automatically generate implementations with microcontroller kits.
Right.
So we have kind of a full stack from modeling to deployment in a way.
And just a general knowledge question, I mean, you know, traditional control systems with all of their sort of polynomial oriented stuff, how do they stack up? I mean, is. Is. And I know that, you know, reinforcement learning is fairly similar to a bunch of this control system stuff, but I'm just curious whether whether, you know, inject a neural net and all be better or is it irrelevant or what?
Well, okay, so in reinforcement learning, what you have is an environment. In control system, what you have is a plant. Okay. Plant and environment is the same thing. They're just two different groups naming things.
Yep.
The standard example that people proudly show for reinforcement learning, that is more classical control, which is an inverted pendulum. It's not very good. It's like outright lousy. But reinforcement learning is very impressive for things, you know, things the control system doesn't really apply to. There is no. Like, you don't do control systems for chess playing or go play.
Yeah.
I'm saying those are domains that it doesn't really deal with.
It wasn't.
No, I understand mathematical object rather than a computational.
You mean it needs differential equations.
Yeah.
As opposed to a discrete program of some kind. Program in the sense of. But.
Exactly. Yes.
But the methods that are being used in reinforcement learning for sort of discrete stuff, I mean, because the neural nets are not that discrete, you know, they've got continuous weights and all kinds of things in them.
Yes. And it's possible, but I haven't seen it yet. And maybe someone here knows of an instance. In principle, like most of the standard control design procedures use Linear controllers, and they look at the linearization of the system. There's some things that go beyond that for sure, but that's mostly what they do. A nonlinear controller, of course, includes a linear controller.
Yep.
So if the way that you compute them was effective and efficient, it should always be able to do better.
Yeah. It might also just go. I mean, it's like. It's like, you know, doing linear programming versus doing arbitrary optimization. I mean.
Yeah, yeah.
Some of them you can really do systematically and others are just flapping around.
Exactly.
But so, but the thing I'm just trying to understand is, you know, like. Like a modern, you know, random modern drone or something like this.
Yeah.
Is its controller. You're saying the controllers there are essentially classical controllers. Maybe they're using something.
Oh, absolutely. Oh, yeah, yeah. Like the motor controllers and so on are absolutely standard classical controllers, no question.
Okay. But the basis functions, so to speak, that you're saying if, you know, like I remember I happened to see the very first demo of the, you know, oh, we can play video games with a reinforcement learning type thing.
Yeah.
You're saying that in that the apparatus that it is not the case that there is a plugin module that fits into the workflow that you've defined for controller design. Is it the case that there's a plugin module that is different that happens to work for eight bit discrete video games, but the workflow is the same or is the workflow different for that?
It's some. I mean, the control systems that we have is basically linear. I mean, we have a little bit beyond that. And so it assumes that you have these mathematical models. But the stuff that I worked on, for instance, before doesn't assume that at all. It has a way more general kind of framework in which case you can actually define. I didn't call them reinforcement learning, but that's what they were. And they did play games and things.
Like your Boolean function stuff. Is that what you're talking about?
Yeah, well, that was kind of very discreet stuff, but I did something like a Tetris controller that plays Tetris games optimally. Plays Tetris games and beats everyone. And you can formulate that. I formulated that as optimal control.
But what was the sort of basis thing that, I mean, you know, you got differential equations for most of the stuff that's going on here. What was the sort of basic function that was inside the Tetris controller?
It was a computational framework. So there's basically. There is a. The dynamics of the Tetris game. Is that There is a new piece of coming in.
Yep.
You make an action. You, you, the player, you know you're going to move it, the, the piece left and right, rotate it and drop it. And that means that you update the state of the game.
I understand, but your internal representation for what you're showing here on the screen, the internal representation of everything is going to be differential equations in the.
Yes, yeah. Here. Yes. But in the Tetris controller, it's just a dynamic system. It's a fine, it's basically a state. It's a dynamic system where you update the state. The state of a Tetris game is the Tetris board.
When you say state, you mean like a finite automata, that kind of state?
Well, it happens in Tetris that it is a finite automaton with a big number of states. But, but it is a finite automaton.
Okay, but, but I mean what you're saying. We should move to a different topic. But I mean what you're saying is there's a. Oh, I'm representing it as a system of, of, you know, differential equations. Now you know, I would assume when you have differential equations and you have daes and things and you have events and so on and the differential equations that that is sliding towards a finite automata because presumably you could represent a finite automaton by a collection of sort of event type. You know, you'd be wasting your differential equations because most of the, you know, it would just be constants and then the events. Or am I wrong?
Yeah, well, you can't. It's a longer discussion, but. So let's take your drone case. I mean the motors, the electric electromagnetics, electromechanical systems to run the motors and stuff, that's actually well modeled with differential equations and well controlled at that level. But think of the drone. There's a higher level, the macro level control of the drone where you basically, basically build a computer interface where you move from waypoints and you have higher level commands. That's typically done in a discrete fashion.
Yeah.
Do you understand? So the lower level controllers are these, you know, closer to the physics. The higher level controllers are sort of more, you know, cyber, more information theory. And that's done for many things. You know, think of a, you know, cars.
I'm just trying to understand the mechanics inside here because I mean, we've got something here which is a differential equation based, you know, undershoots and overshoots and so on. Clearly, undershoots and overshoots aren't terribly relevant if you've got a finite automaton that you're trying to deal with here.
Obviously not.
Right. So I'm trying to understand is, is there, what is the level of unification or not of the kind of, you know, of what, you know, what is the analogous thing that you would deal with in a finite automaton? And is this workflow that you are defining here with.
It's not quite the same. It's the same if you, if you back off a little bit. They're both dynamic system. Like you have state equations for differential equations or difference equations. And you have the same thing when you have finite automata.
But so in particular system model measurements. Is it relevant for the finite automotive.
It's not relevant. No, it's not relevant. And it's the same thing as we gonna have to.
Not relevant.
Sorry.
Does its name tell us that it's not relevant? That's what I'm kind of complaining about here.
Oh, oh. I think that this is the general understanding of what system modeler and system modeling does for us.
General understanding excludes the finite automaton.
Yes.
Okay. Okay. I mean, you know, I think it's a, on a multi decade time scale. It's probably a different story, but, but.
Probably us, but okay. All right.
Anyway, we should move on. All right, well, this is, this is cool. It's interesting. I learn a little bit. Every time we talk about this, I learn a tiny bit more. All right, I think we should move to our next topic if that's okay.
Okay. All right, thank you, Sergio Suba.
Thank you. Good stuff. Thank you.
Bye.
Okay, and our next topic. Let's see, the material for it is where this is Charles on graphs and geometry and our material is in the calendar, I hope, I mean, I sent.
It to the calendar people.
Yes, it is in the calendar. Okay, we are changing topic altogether. All right. Faster graph blasts. Well, okay, is that a library that exists for sort of. Is that library that goes across intel and ARM and everything or is that, what is that Charles?
Yep.
Sorry.
Yep. I was on mute. Yeah. So Graph BLAST is pretty much a framework similar to, you know, BLAST library on linear algebra.
No, I know, but I mean MKL or something is a, is a fancy implementation of blast. And I'm just asking, is this something where there have been fancy implementations across multiple hard architectures?
Yes, people are still working on it. Like you say, like intel have, you know, they're adding actually some of those modules in NKL right now, but they're still.
So we've, we, intel have started in on it. We started working with intel several years ago where they got interested in graph primitives to basically extend MKL with graph primitives because it's to a large extent a linear algebra problem. Graph theory is basically linear algebra.
Cool. What about graph layout? Is that something that's going to be supported by functions in there?
No, no, that's a separate thing.
That's a shame. That seems like a very gpuable kind of microcodable type of thing.
Yeah. The difference is that graph layout is basically an optimization problem. These are lower level kinds of things where they try to make it, you know, really these are like linear algebra direct, you know, kind of direct problems. Basically. Basically dot products.
Yeah, I don't care much about those two. But these are useful because these I've noticed are quite slow. Like we could connect to components. So that's about to get a lot faster. Is that correct?
Well, per se, when you say slow. They are not per se, slow. Even if you look at the benchmark, we are.
No, I, I know. I'm not saying, Charles, that we are doing it slowly. I'm just saying that when I have a very big graph, it takes a while. So what, we're slow relative to anything else.
Yeah, so we were worried. So, you know, we've been monitoring this for a while. Part of what we found was that, you know, we are pretty good already. We get some improvement, but not as dramatic as we feared or hoped.
This 13.2 here, is this inverse speeds, because this is slower here.
Well, so when we say 30.3 sharp, actually mark it, that means the lagraph and la graph framework.
I'm sorry, which.
So this one is using the new framework, the Graph blast framework. The 13.2, it will not be in the system. I think it's just a label which we should fix. Right. So right now in the system, for example, we'll have page rank where, you know, if you look at the first bar chart, it kind of show the. A good improvement when you get to the range of, you know, 30 million edges on such.
Okay, great.
But in term of connected component, we, you know, there won't be any change in the system. I think we.
Because it's in fact slower. Because the Graph Blast is slower than what we already have.
Right.
Sad.
Because it's sad. Yeah. But the fact is that this is happening and we are, we're kind of on it and so we're, you know, we run in competitive benchmarks. If it turns out to be faster, we'll switch and turn those things.
Well, but anything you should also give that feedback to the folks like at intel and so on who are developing this because.
Right.
Because hopefully they can make it faster. Okay. Breadth first scan is a mess, as we all know.
This doesn't deal with the design of it.
I'm well aware. I'm just saying. You're saying it's faster or is it. Is it also not faster?
No. So that was also one which we. We won't plug it in. Is not faster.
Okay. This is a bit of an anti climax here because the functions that are faster ones I don't really care about. Okay. Sad.
Well, I mean we were hoping.
Yeah, I understand. It's a reasonable hope. Okay, fine, go ahead.
But I say it's a continuous work. Right. We keep, you know, monitoring ourselves, kind of improve that and do benchmark and see what we can.
It was a reasonable. It just didn't work out. Okay, fine. Shortest tour. That's. That's the additional. That's these arrow elements, these things here. Right. Which we discussed the design of.
Well, you should probably look at the fine. Shortest part.
New.
But that's.
Yeah, look, look. Find shortest path.
New.
New.
Oh, well, fine.
Shortest two are new. Yeah.
Like that.
Yeah. Yes, that, that will be. You know, but it's. When you do too many changes, it's just. It's like scaffolding everywhere. It's better to. Okay, those are the ones that you. I think they came from you, Stephen.
Yep. Look good to me. What else do you want to show here?
Yeah, that's.
That's it.
Great. Okay. Geometry.
So there have been some improvement in import and export. And one of the example is we added, you know, support of vertex normal and vertex color. So there's still that process of the preserving fidelity when we import or export elements.
That's good. That's been an issue with. That was an issue with 3D scanners. Right. Would scan and then the thing would be white when it came in for us.
That's what triggered it actually. In fact.
Okay, that was like several years ago that happened to me.
If you open examples, you can probably see it much. No, yeah, there.
Where.
There. Where your mouse was up, up, up, up.
This one here, there's. Okay. Spidey is now fully available.
Right.
Okay. Okay.
We had a huge Dragon deficit that we needed to cure.
Yeah. Okay, well, good. Why is this so unbelievably slow? Is it huge?
Yes, the number of polygon is huge. But it's decent when it loads. I mean the front end is responsive.
So.
It'S a standard. I'm Kind of making a joke. Right, but these are standard examples.
No, I understand that. And I'm. I'm just wondering about the why. I see. That's the rotation controller, and then it jumps to that configuration. Okay, so you've scanned a bunch of objects yourselves.
Yeah, we ran into a bunch of problems and I wanted us to scan insects, for instance. And so that's part of what we want to show the conference. You know, we have this new handheld scanner.
Oh, you know, Brad Clee, I believe, has a big collection of beetles.
Oh, really?
And insects. He's got.
Did you hear that, Charles?
Yes, go ahead.
Let's get his beetles.
But they have all kinds of iridescent whatever that won't be well scanned with ordinary colors.
Right.
That's amusing. I mean, I assume you'll do game pieces and things like chess pieces and so on.
Yes, we could if we should. I mean, part of what we wanted to kind of simplify workflows here. And so this is part of what improvements that you see up there with supporting color and vertex.
I don't know why this font is so terrible there. But so. Okay, so these things were scanned. Why is Ms. Mulan not. Oh, it's just an image.
If you put the mesh, it gets too big in the notebook. We just put images faster.
I see, I see. Okay, fine. But so what are we scanning and why. I mean, are we trying to get some canonical collection of things or are these just examples?
Actually wanted to get kind of a canonical examples to indicate sort of what people can and should do in terms of create geometric models from everyday life. We wanted to make the workflow from everyday natural. Natural and everyday objects to geometric models and compute.
Yeah, I guess. Yeah.
Okay. I mean, because we've been working on geometric reconstruction. Right. And so we want to make sure that the full workflow is there and go from objects in the wild, whether it's natural, man made or man made to. It's a way of modeling. Basically.
Yes. I mean, these are rather whimsical kinds of things.
I know.
I mean, to me, you know, if I think about, you know, if I'm going to describe to people 3D objects, you know, I don't know. A. There are things that I might use as a. As a language for saying it's shaped like a. Such and such. It's shaped like a coffee mug. It's shaped like a, you know, a. I don't know, a. An air pod. It's shaped like. You know what I'm saying? There's a certain there's certain sort of set of, of kind of. And yet I would never say it's shaped like a wood frog because I have no idea what that is. Like I'm saying, I mean, in. I mean, some of these don't movies like it doesn't like Toy Story. I, I don't. Didn't they have, you know, 3D objects like this? They probably have kind of a canonical set that, you know, back from sort of the world of computer graphics were things that were kind of, you know, shaped things or something. Anyway, just, just some thoughts. I'm not quite sure what you're trying to achieve here.
No, no, I was just. I mean, so. But we want variety of ways of creating geometry. So one is that for instance, you search web geometry search. We didn't have it ready for now, but we, you know, intend to have it where you look at repositories of ready made things that you can start from. You look at a world around you. Can you scan it? If the scanners are cheap enough, maybe that's a way to get the geometric model.
So let me ask this question.
We have construction modeling language, right, where.
You random iPhone will scan stuff. I mean, I've done it like twice.
I know.
And I mean, what is the format that that comes out in? And can we read it?
Yes, we can read it. So this is where I think we need to kind of rather than us writing another app for the iPhone, we want to use the app that we have, you know, Wolfram for iPhone, you know, Wolfram language for iPhone, Mathematica for iPhone, our mobile. And that would be a super good thing for us to get there. So we should use that app. We should trigger it from our app there, get the data.
Hold on, hold on, hold on, hold on, hold on. Let's remind you how this works, okay? Normally just reminding you how this works. I mean, right now, for example, we have a form function mechanism. And our form function mechanism, right? If, if you want a, a photograph from a, from a phone, right, you can do that by deploying a form. Getting the photograph, you know, taking the picture goes to the cloud, you load it in. That's the work.
But nobody should have to write a form to get the fucking picture. Or a 3D model. That seems ridiculous.
Well, no, but Roger, Roger, you don't have to. Okay, so let's go through the workflow for one second. Okay. Problem is you've got your. I mean, if, if you have a URL that you click on right on your phone, where you're clicking on it through the browser on your phone. That's one thing. We've also got a cloud app. Right, that's.
But we also have a mobile app. We are on the phone.
No, we don't.
We have a mobile. Yes, we do.
Well, we have.
We have player app.
We have the player app. Player app doesn't have input. The player app is a reader only. It's good, but it's a reader only. It takes a notebook. Look, the workflow you're describing. Okay, I had a design for the workflow you're describing. It was this thing called client value. Okay. We've never quite implemented that, and I think it's a fine thing to talk about, but we should go through it.
Well, I think we wanted to go both ways, actually. So for the scanning thing that we talk about now, I want to be able to use the iPhone scanner, the lighter that's built into that. Get the point. Cloud.
Yes.
And. Or get the reconstructed surface.
Yes, exactly. Okay, so listen. And we shouldn't go through this in detail. Now. This client value design was all about that. Okay? So my typical example was a magnetometer. There are different things you want to do. You want the instantaneous value. You want to record some, you know, trace, and then read it in. There are a variety of different things you want to do with it.
It.
So client value was a mechanism where you could say, from a desktop product or whatever else, you're communicating through the cloud because you have to have some way to communicate to the phone.
Right.
The phone isn't naturally. You know. You know, you. You mean that. That's a. That's a way to communicate to it. And then the client value thing is pulling back something from the client, namely the phone, in some modality. And it seems like.
But you can do it the other way, too. Our app. You can. One of the. We could give it a better mission, you know, like if you want to scan something, you could do it from our app. It's one of those things you could.
I know, I know.
And then it can post it. I'm not triggering it from a desktop.
Roger, Roger. Yes, you're right. Okay, let me give an example of another case where that's been done. You know, the Wolfram Alpha app just recently started doing math, ocr. Okay, Right. So that's a case where you are using. You know, we can't do that. We don't do that on the. On a desktop web browser at this time. We only do it in the. The client app on the phone.
Yeah, perfect.
Okay, Quite A bit of thought has gone into this particular type of issue. You've got an interesting use case, let's talk about it. I've worked on this extensively. Unfortunately we never got client value implemented which would have been the framework that would just immediately have worked for what you want.
Okay, I have another one for you which is that, wouldn't it be nice if you create, you know, 3D shapes, you can push it to your client app, you know, our mobile Mathematica. And now we can use the AR core. Ar.
I know, I understand.
You can walk around the object.
Great. I'm glad you're thinking about this stuff. Let's do a meeting about this topic. It's got quite different people in it. You know, let's get such a meeting. It'll be a good, It'll be a good discussion, you know, because again, we've got pieces of this. We never quite got to the point. I mean, you know, there are things like for example, our chemical drawing front end is another example where again, it's somewhat different stuff that you feed in. That's not so much for phones, et cetera, et cetera, et cetera. There's lots of cases of this. They were all attempted to be unified in this client value mechanism, but we never managed to get it built because the use cases didn't quite reach the point where, you know, we really felt.
We should do it.
All right, I think we have to move to a different topic here. Oh, you've got something else here. What is this?
Blurring. So if you go to the source, the reference page, it's another effect.
Along with what? Along with drop shadow?
Yeah.
Oh boy.
It was introduced in 2005, so we are only 17 years late.
Art, we drawn, typo. So this. So it's only friend is drop shadowing, is that correct?
Well, it's going to get hallowing too. But the Halloween we wanted for what is Halloween? Text. Text on maps.
What is Halloween?
Halloween is a kind of a highlight where you draw a halo around an object.
I see. Okay. Well, I mean, I don't think the name is that terrible. It's all right. Any, any further comments about this?
No, not really. No.
Okay. I don't think blurring effect would have been anything better. I don't think it helps.
No, it just gives you mental bucket in which it fits.
Yeah, a little bit. All right, I think we have to move to a different topic here. Thank you very much, guys. Okay, thank you. Bye bye. Okay, we are now turning to astronomy, etc. And the agenda is where it's in the calendar.
Invite.
Okay. Okay.
I think we. We passed units and dates and we passed trees.
So in the previous meeting you had a quick look at astroposition and you wanted to understand better the structure of arguments and the various freedoms it has, etc.
Are we realistically going to be able to cover this right now? I mean, we've only got a few minutes. This seems like a difficult one. Is there maybe other stuff we could look at here and then come back to Astro in a separate custom meeting? Or do you think we can cover it quickly?
I think we can have a quick look at astroposition. Astrographics would require certainly a separate meeting. So perhaps you can have a look at the definition box, the notes, and see how you think. Astral position of astroposition.
Yes.
Okay.
This is an object with much freedom. So.
Are those in units, azimuth and altitude or are they just. If you just give them as plain integers, are they assumed to be in degrees or what?
So that's one of the things to discuss at the moment. I'm using radians, but I think I'm. I. We should change to degrees, I think.
I don't think anybody uses radians for this. Is that true? I mean, if you look at the. I mean, I think it'd be like saying we can specify, you know, the, the. The latitude on the earth with radians. Nobody would ever do it.
Are we talking on the input or on output? Because on input, the user might input several different possible numbers. And they might assume that it's either degrees or hours of right ascension or something else. But on output we could always standardize to something. So which one are we talking about here?
So in input, you can always use quantities to specify what you want. And that will. Understood. That will be understood. So what Stephen was asking is if you write a number, how is it interpreted? And as I said, I'm using. I was using radius because. To avoid the computation. Because I wanted to test the performance of this. But I think we have to. Yeah. It would be nicer if it's decreased by default.
I think it should be degrees.
Yeah. If it's just numbers, I think that's correct.
So then the third argument.
Yeah. What. And what units is R exactly.
So are there. I'm using astronomical units. And I think this is the most useful.
I agree. I can't imagine anything other than that. I mean, in. In, you know, and the solar system.
Definitely outside the solar system, of course. You know, it's going to be very large numbers for aus, but yes.
Well, then you should use quantity objects and use light years or parsecs or whatever.
Exactly. Input. Did you reduce quantities?
Yeah, yeah, it doesn't.
It.
Right. If you're just going to use numbers, then we have to pick one. It's not going to be right for everything. AUS is fine as anything else. I guess I just wanted to raise the issue.
Yep.
Yeah, exactly.
Now, there is a difficult thing here, which is what's the celestial sphere? Because in principle it should be infinity, but.
Hold on, hold on, hold on. Yeah, but aus, I mean, for satellites, are you using, You know, in the case of geoposition, we're using meters for the altitude. Are we sure that this isn't going to end up being used for satellite stuff where it's better to use meters than astronomical units? I don't know. I mean, astronomical units is pretty weird for a satellite.
It is, but we can choose only one. And I think it's the most appropriate for planets, which is one of the most interesting things here.
Yeah, it should either be meters or aus. You know, meters is going to be big all the time, but it's more, you know, si, unit E. Yeah, we're.
Going with degrees anyway, so which is in geoposition. We're going with degrees and meters. Okay. But anyway, let's talk about the celestial sphere.
So meters is fine. Yes. So the problem is that.
Wait, wait, wait, wait. Are we going to go with meters or are we going to go.
I was saying that meters would also be fine, but I do prefer astronomical units here.
Fine. That can be the default if it's just a pure number.
Yep.
Okay.
So the celestial sphere, the main point here is that these will take like astroposition, an array of triples or numbers of tuples. And so if we put infinity there, it will not be packable. So just because of that, what I'm using is a number which is huge, something like 10 to 16 to represent. It's larger than the, than the radius of the universe.
But I mean, this is a hack. I mean, it's a hack that you think is not going to blow up because the universe is only a finite size.
Yes. And because this is always hidden behind a summary box, you don't see those numbers. But this allows packing without packing.
Fine, fine, fine. But I mean, the fact is the fact, the inability of packing to deal with, you know, infinities and lot of numbers and things is a thing that should be fixed independent of this. Although it's not going to be fixed on a timescale that we need for this. So I don't disagree that, you know, it's a reasonable hack to use a number bigger than the size of the universe. What's with 10 to the 16 doing in 10 to the 16? Aus is bigger than the size of the universe. But yes, you need to go to, you know, 10 to the 30 meters or something to be bigger than the size of the universe. So that's another argument for aus, I suppose. Right. What a hack. I mean it's disgusting, but yes it is.
So the other possibility I consider is to store parallaxes which are one over reduce and then the celestial sphere becomes zero. But most people will be confused by parallaxes.
Well, they may or may not see them, but yeah, no, I think, look, I think the correct solution to this is to fix packing. But that's a longer term thing. But we should at least initiate the discussion of fixing packing. Okay. Anyway, I mean that's a hack. I, you know, hope we don't have to hear about it again type thing. I mean it's just horrifying, but it's okay. All right, so what else to know about this?
So then we have the second argument about frames. And the frames are the orientation stuff and they have a default. So if you specify equatorial frame or ecliptic frame, there are many, there is a list below.
What is the default?
The default is horizon, which means it's.
Your where you are. So it's what the sky will look like from where you are.
Azimuth and altitude from your location right now.
So like sun position. So to be clear, the return of sun position will be consistent with astral position of the sun, is that correct?
Yep.
So what does sun position actually return? Right now it returns in altitude azimuth, doesn't it?
Yes, yes it does by default.
Which way? Round.
Yes, it's azim at the altitude.
Yeah.
And I'm using the same convention here, which is the opposite to geo. So we are putting first longitudes and then latitudes.
Yes, the sun is setting in the east. Setting in the west. Rather sorry. And it's, it's fairly close to the horizon now. Okay, that's cool. So then, okay, so that's the default. So that's a frame, that's a horizon frame. Different from these frames, right?
Yep.
And these are frames that's frame fixed to the earth. That's a frame fixed to the solar system. That's a frame fix to the galaxy, correct?
Well, yes, but the origin is tricky. So the equatorial and ecliptic are centered at the earth center.
The Galactic will be disappointed. Sorry, Copernicus will be disappointed.
We can create more, but. And the galactic, for example, the standard thing is to fix the galactic frame at the center of the solar system.
I see, okay.
So that's explained in the list below.
So I mean, there must be a coordinate system in which it's centered at the center of the sun, things like that. Right.
You can always specify location goes to and choose your center, but they all have a default just in case you don't say anything.
Right. And since we are currently an Earth dwelling species, it's probably this is a good default. I mean, it's centered at the center of the Earth for equatorial, is that right?
Yes.
And ecliptic.
Right.
So we visualize ecliptic as the orbit of the sun around the Earth and not vice versa.
As I said, Copernicus would be disappointed.
Yes.
500 years later, it's still not changed, actually. Anyway.
Right.
And then the third argument is a coordinate system which says do you want spherical coordinates or cylindrical or cartesian or a projection.
Or projection, yeah, you can put that.
More wider and it would take the spherical coordinates and project them.
So in that case you are conflating geogrid position and geoposition in some sense, is that right?
Yes, actually the four of them, the ENDU and the xyz are also here.
But so what in the case of GEO is a pure spherical position and we've got a separate grid position thing which is the projected positions. In this case, astroposition is also representing the projected positions.
Right, because this gives more power. For example, we don't have a geo cylindrical, while here we can put cylindrical in the third argument or in geoposition. We have geoposition E and U, but astronomers sometimes use seu.
I see.
And so there are all these possibilities can be described here.
Okay, well, it's very cool.
That's a big super function.
And then the frame has parameters, so it works like a projection. So there are all these frames by default.
How do you get a list of all the frames?
Well, they are there in those three groups, the inertial frames, which mean they don't move, they don't rotate in time, the ICRs, the J2000, et cetera.
No, I understand, but I mean, I'm just asking if you want to get. I'm just saying one of the mechanisms that we need to be introducing is when there's a whole collection of possibilities in a function like this, we should have a data repository entry which simply lists all of these and we should reference it in the documentation Just because otherwise, you know, otherwise you're scraping the doc. Let's say I wanted to just sample all the frames. I don't know why exactly, but let's say I wanted to sample all of them. Say I was making some piece of documentation or some demo or something like that, and I want to get a list of the frames. It's like, oh my gosh, I'm going to have to scrape the documentation to get that.
Shouldn't we think of something more built in than a data, you know, because if they're separate, they likely to diverge anyway.
No, but I mean the question of how we.
Sounds like a discovery mechanism.
Yeah, it is a discovery mechanism, but I think it's messy and I think some of these pretty. You know, I think that's a good place to put it initially. I think that the. I've looked at this in thinking about, you know, we can use the entity system for this. I mean, maybe we should be using Wolfram language data somehow for this.
The geopresident is geoprojection data and geodesy data, for instance. And data.
I'm not thrilled about that. So by the time we've got, you know, voice styles and things as separate functions, I'm pretty unconvinced. I think we need a general mechanism, and possibly the general mechanism should be through the entity framework. Look, I think this. Again, it's a separate discussion.
I think it reminds me of other things like dollar IMPORT form as dollar export form.
I know, I know, I know. Yes, I know. We've got six different mechanisms for the same idea.
Yeah, but it would be useful to have a mechanism that lists the defaults.
Yeah. Okay, let's get a separate meeting to talk about this. I don't know what to be called exactly, but.
And then there are these parameters. So these parameters are where the physics is hidden. So we can, say, use this frame, but with aberration or without aberration, considering this mutation model or that other one.
Yeah, yeah, right. I'd love to talk about this, but I think I should go to a different meeting. Okay, so let's. Let's plan to have another iteration here.
Maybe we schedule an hour for the rest then.
I think we should. Yes.
Okay.
All right. Wonderful stuff. Okay, talk to you soon. Okay.
More from Guy

Cheryl Strauss Einhorn | The Human Edge: Smarter Decisions in the Age of AI | Talks at Google

Rachel Glennerster | Innovation and the Center for Global Development | Talks at Google

Rebecca Winthrop | Rethinking the Purpose of Education in the Age of AI | Talks at Google

Dr. Robert Wachter | A Giant Leap: How AI Is Transforming Healthcare... | Talks at Google






