 All right, so this is the plan for this clinic. Any questions so far? All right, I really encourage you guys to ask me questions. I love discussing things and talking about things. Feel free to raise your hand and tell me I'm wrong, things like that. I love arguing in a good way, though. All right, so first of all, the grand vision. All right, so, oh, wait, my notes. I had some carefully chosen words for this, so I wanna make sure that I get justice. All right, so the idea behind WMT and CMT before it is that we want to develop a framework for modeling that lets you assemble components to model and predict transport and deposition of water, sediment, and other nutrients over atrocious surfaces, and as well as how these surfaces evolve for a range of spatial and temporal scales. This framework should empower users to answer science questions. I think this is what Ireena will be showing. The framework should streamline the process from idea to implementation. It should also be inclusive, modular, and user-friendly. All right, so this is the big idea behind this tool. So what was our goal in trying to rewrite CMT? What was the purpose behind WMT? The idea is that we wanted to make a web-based tool to do component modeling. Why? All right, I've got four reasons here, and these are broad things I'm trying to flesh them out. So first of all, accessibility. So WMTLC runs on a web browser, all you need. You don't need to worry about what Java version you have. Does that Java version run on the Mac or does it run on Windows? What's a JRE? All right, all you need is a web browser. Next, integration. James made a point this morning about being able to link to the documentation and the help for a model so that we don't have models that are black boxes. Well, WMT is a webpage. I can make links to other webpages like those on the system's website. Third, portability. So because WMT is basically a web application, it works on a web browser, not on an operating system. So I don't care if you're using Linux or macOS 10 or Windows. All you need is a web browser. It doesn't matter if you're on your desktop, if you're in a laptop, if you're on a tablet, if you're on a phablet, if you're on a phone, you can use WMT. And last, maintenance. So the nice thing about this, because web standards exist and they are standards, we only need to develop one version of WMT. We don't have to worry about these operating system dependencies. There are a few browser dependencies. I just found one in Firefox yesterday. But there's a lot less than having operating system dependencies. So this is our objective in creating WMT. All right, next, implementation. And again, I know this isn't terribly exciting for many of you, but I wanna show this because it can lend insight into how we built it. So WMT is a RESTful web application. What does that mean? REST is a representational state. What's the last T? I can't remember the last T. Can anybody help me with that? We can Wikipedia it. Representational state transfer. I'm trying to get you guys to help me out a little bit here. So REST is a software architecture paradigm. The idea behind REST is that there are features, some key features of it. And I put these in my standard separation, stateless, simple, and secure. I was very happy with that. I could illiterate that so nicely. So with REST, you get a separation between the client and the application programming interface. So I've got a diagram here. I'm gonna dive into the diagram a little bit in just a little bit. But let me, first of all, talk a little bit more about these properties of REST that we are using in WMT. So separation between the client and the programming interface. The separation of concerns. REST is stateless. So information about the model you're developing, for example, in WMT is held in the client. All right, so if the client goes away, then your model goes away. But the nice thing is you save stuff and it goes to the server. The communication between the client and the server goes through standard HTTP get and post method calls. Information is communicated with JSON. So it's kind of neat because it's a very lightweight way of transferring information. It's just text. It's a couple of bytes at a time. When we make communication with the client and the server. It's also here. We use HTTP, so your passwords won't be compromised. All right, so let me delve a little bit further into the diagram because I want to talk a little bit more about our application of this RESTful interface and how it works currently at systems. I should mention one example of a RESTful web application is the internet, is the web, the WWW. That's a RESTful application, actually. All right, that's an aside. Okay, so what we have with WMT is we have a client. The client is just gonna be your browser. So again, a browser on any sort of platform. All right, the browser communicates through the internet again with these HTTP calls with a server. Okay, now the server I've broken up and actually using Eric's explanation to me, I've broken this up into three components. The database server, the execution server, and the data server. So the database server, the idea, what it does is it contains information about the components that you would use to assemble a model in WMT. It contains the metadata about the models that you would develop as well as simulations that you'd run. The database server is sort of the controller as well. This is what you talk to between the client and the server. The database server will then, if you want to execute a simulation, it'll path that metadata over to the execution server. So the execution server is where the model is actually run. This could be, well, for example, right now that is Beech, our HPCC. In the future, this could be maybe a really sweet new Mac Pro, for example, those are pretty fast. All right, but this is the execution server. This is where the simulation is actually run. So it needs to have the computational ability to run a model. It needs to hold the system software stack. So the CCA tool chain, the systems framework tools as well as the compiled shared libraries for the components. So again, this right now currently is Beech, but it could be a personal computer. It could be Janice. It could be, as James mentioned this morning, it could be Yellowstone, for example. So, and then lastly, the data server. So when the execution server completes the simulation run, it will post information. It'll post the output to the data server where the user can then pick it up. So right now, the execution servers I mentioned is Beech. The database server and the data server are River. Is that right, Eric? Okay, good. So the database server and data server are both River right now. So it's our main computer systems back at CU. But again, this WMT could be deployed elsewhere as well. So we have an instance of WMT, if you will. Our source code is up on GitHub as well. So you can browse the code, you can download it, you can make fun of the bad code that I wrote. Oh, it was really good code, don't worry. All right, so it's shareable. All right, any questions, any comments on that? All right, well, let's take a look at the client. So this is the URL right now for our instance of WMT. Know that it uses secure HTTP, all right? So if you'd like, please enter this in your browser. What kind of browsers are you guys using? Who's using Chrome? Who's using Firefox? Who's using Internet Explorer? Awesome, Safari? Okay, we tend to do a lot of stuff on Chrome. So, and I've tested it on other browsers as well. I've tested it on my wife's iPad. I can run it on my phone, my iPhone. You know, so we've been testing it in various places, but I'm very curious. This is gonna be a great test for WMT to see how well what happens when all 40 of us hit that. All right, so the URL, this will be, again, systems.cario.edu slash WMT. And so, hopefully I have it up on Irene's computer. All right, so what I'd like to do now is I wanna go through the buttons and do a little bit of buttonology and talk about kind of what things do and why they are there in WMT. All right, you can see that there are three panels. There's a header panel that runs along the top. And you can see the only thing it really does is, you know, process a log in. There's also the model panel on the side, on the left side, and the parameters panel on the right side. All right, so let's walk through, and I wanna show you some things that you can do with WMT. So, right now, you can see I am not logged in as a user in WMT. If I try to do anything, it's not gonna work. So I can click buttons. You can see they don't do anything. I can click the driver, I can choose a Vulgen, but it doesn't do anything. So you have to be logged in in order to do anything in WMT. So, that's our first step. Let's do a login. All right, so I invite you guys to create new accounts on WMT. You can provide an email address and a password of your choice. And if you don't wanna use your real email, underneath the hood, I do some checking to make sure it's a valid email, but I don't like email you or anything, so it could be a bogus email. Yes, that's a good point. So it's different from the login on the system's website. It's also different from the login, for example, on beach. Now, we thought about this a little bit. We wanted to keep it separate from beach because with beach you need to have an identity, for example. We thought about using the same login as we had for the system's website, but that login system is set up through MediaWiki and it was just kind of a pain for right now. So that is something we were gonna look into to see if we can implement it later on because it would be really nice to have the same login and have it automatically recognized. Okay, so when you log in, if this is your first time logging in, you'll be presented with a dialogue that asks you to repeat your password. Yeah, I'm gonna take a look. Go ahead, that's the time I came. Okay, click okay, please. How about try refreshing the window. So just do a refresh, right, and then view this page, right? Okay, click okay. I'm gonna put this over here. Yeah, let's do this shot. I'm not sure. I'm gonna look over here. Hey, Eric, you have a moment to help with this, possibly? Thanks, all right. All right, and this is cool. People let me know if things aren't working. It's good. And if anything goes wrong, you blame me. Right, so you don't have to have an account. You can just use any email address and password combination. Yes, any email and password will work. Go ahead. Right, so there will be two separate logins. There's a login for WMT and a separate login for Beach. Okay, so we'll come to that. All right, so I'm gonna log in. After you've logged in the first time, you'll see that WMT remembers your email. It doesn't remember your password. Does that work out okay for people? Any other questions or comments on that? Okay, so now that we're logged in, we can do things. All right, I'm gonna take a few minutes to just go through the different buttons that we see and show examples of how they work. All right, I'm starting on the model panel. You can see there's an open, a save, and a run button. If you hover over the buttons, you can see that a tool tip appears. In general, I tried to put tool tips on every possible widget that I could find in WMT. So this is maybe a first place to look for help, okay? There's also a more button. So this is where we grouped other actions that maybe won't occur as often. So I could do save model as, I could duplicate a model if I had an existing model that was to be saved. I can delete models that I've created. I can manage labels. Hang on to this. I'm gonna come back and talk about labels a little bit later. This is kind of a bigger topic, but just to prepare you, think Gmail, all right? I can get information on the components that are currently available inside of WMT. I can view the run status of a simulation. We'll come back and see this later. And at the bottom, help and about WMT. I'm actually gonna click on this because I have links to two documents, which I would like to show early on here. So one of the documents is help. So I made a help document for WMT, and it's kind of loosely what I'm following here in this clinic. So if you click this, you'll get the WMT help at the systems web page, or the systems website. There's also a tutorial, and I'll be following this a little bit later in my talk as well. So there's a help and a tutorial. All right, so those four, those are the four action buttons in the model panel. Let's start, let's create a model. Okay, so to do this, I need to have a driver for the model. Let's see what's available. If I click on this big fat driver button, you do not have to click just in the plus. You can click anywhere on the button. You can see, you get a list of components that are available on WMT. I'm gonna choose CEM, the Cosine Evolution Model. Okay, now when I selected that, you see that CEM has been loaded into the driver slot of my model. You can see that CEM exposes its two users ports, River and Waze. You can also see that the parameters for CEM have been listed. Let's, I'm gonna leave aside the parameters for a moment. Let's take a look at the model panel. Let's take a look at that driver component, CEM. You can see that the icon changed on the button. I should make a side note that Eric and I had a lot of fun with the buttons and icons, so we tried to map meaningful icons to the buttons. If I click CEM, which is now a component that fills the driver slot, you can see that a new menu exists. So in the new menu, I can show the parameters of this component, which actually is already being done. I can get information on this component, right? And again, this is, you know, as James mentioned in his talks, his talk this morning, you know, this is the way to bridge the black box. All right, so I can immediately get information on this component, the name, the version, the DOI, a summary, a link to the model help page. I use these links when I was developing the tutorial. It was pretty fun. So I can go to the help page for CEM, as well as the developer of the model. All right, so I can show the parameters and get information, I can also delete. So if I wanted to, I could delete that component. I'm gonna bring it back, actually, if I wanna use it. All right, so this is the component menu. All right, let's go a little further. Let's fill these users' ports. Let's find some components that'll provide river. So we have one component available that provides river, it's Evulsion. All right, again, if I click on Evulsion, you can see I could show its parameters, for example. All right, so now I'm showing Evulsion's parameters. Now, it's a little bit off of screen, but that's okay because you can pan over in this panel. Oops, no. I'm using Arena's laptop, so the key mappings are a little bit different than mine. There we go, all right. So you can see you can pan around in that panel. You can also drag the divider as well. So if I wanted to get something bigger, I can go like that. The numbers in the box, yes, they are default values. They are default values chosen. Now, I want to be careful with this. I think they're chosen by the model developers. Is that correct, Arena? Cool, thank you for explaining that, Arena. Yeah, that's a very good question, and that's actually my next thing, so yeah. So for example, you can see here. So I just had, I added Evulsion to fill the users' port for CEM, and Evulsion has an elevation port that CEM fills. So this would be an example of model coupling. There's gonna be feedback here. Does that answer your question? Can you give me a shout out and see if you can show our industry with it? Cool, thank you, Arena. Other questions? Okay, let me go a little bit further on this, because for CEM, note that the second little CEM box, I put a little icon there. I tried, I'm trying to show that this is in fact the same instance of this component in each case. So the second box for CEM is actually an alias to the instance of the driver. So for example, let's say that I, so I have Evulsion, I'm showing Evulsion. Let's show CEM, and if I change the parameter, for example, just I want to demonstrate that these are the same instance. So let's say it's a 150 instead of 50. All right, so now if I show Evulsion, if I show CEM now, you can see that that change is mapped as well. So what we're trying to show is that these are the same instance of the component. Okay, questions? Yep, go ahead. That's a good question. Let me demonstrate what happens right now. So the direct answer to your question is, yeah, you could. But probably the last thing that I need to do, this is so, WEP is at 0.99 right now in my opinion. So I need to make some movies because James would like them, and I also need to make it so that you could put a separate instance so that you could, for example, have two instances of CEM in the same model. As it stands right now, you just get an alias again. So that's like the last thing I need to do for WMP. Go ahead. How about this? One I see, this is an example that James has used before, I think. And let me see if I get this right. I think it was using child. And now you can see, for example, there are two base levels. So for example, so I could, I perhaps would like separate instances of base level, for example, here. Okay, all right. Right, yeah. So again, this is the, so again, this is the, both of these boxes for child refer to the same component instance. They'll be the same. I mean, these are the exact same instances. Oh, good, good. Here, I could help with that. Hover your cursor over it and you'll see that it fills the subarial delta port. We could put that there, but it's just, yeah. It is given as a tool tip. And I think this is also, I can't think of a way to say this. I automatically populated that user's port with the same instance of child. This is something that I did on purpose because I have not yet fixed, I've not yet completed that one last task of allowing separate components. So I do this for you as a convenience. All right, so this is something Eric and I talked about a little bit, so I understand what you're saying. Maybe it would be nice if I didn't do that, so that you could fill it in yourself and you could see that that's the subarial delta user's port. So I went maybe once, I went a little further trying to be convenient, trying to be helpful. Okay, other questions? Okay, let's go a little further. Let's take a look now at, all right, so again, this is more buttonology. So you can see underneath in the parameters panel, we have three action buttons. The first one resets all component parameters to their default values. So if I started changing parameters willy-nilly, I could then click this button with the lightning bolt appropriately and zap all of those parameters back to their default values. Next is the view input files button. So the idea is that you could click this and take a look at what the input files for this model component would look like if you were running or basically trying to execute the model from a shell prompt. So for example, let's take a look at the default. So you can use it for, if you save a model, you can actually see what the input files would look like for that saved model. Now, because I've not yet saved the model that I've created here, I can look at the defaults. I can choose, but different formats look at, let's say HTML. All right, so you can see the different input files what they would look like. All right, and then the last button is again, information on the component. So again, bridging that black box, making it easier to find information. Okay, questions or comments so far? Okay, just a few more things then, and then I'd like to let you guys try to experiment a bit. All right, so let's take a look at the parameters. So how about this? Let's take a look at the first one here, simulation on time. You can see that I put my cursor over the box where the value is, and you can see that it gives a valid range. So it shows what range of values that that parameter can take. And as Irene has explained, the default values are a useful, simple default. So I can put in other numbers. So my runtime in days is 100 years. Let's say I only wanted to do, say I only wanted to do one year. All right, so I've modified the text in that box. If I hit the enter key or the tab key, that this text will be parsed. All right, so you can see it got parsed and it got the .0 put after it. All right, so the boxes are somewhat intelligent. Note I could also use scientific notation. So set of 365 say I want to do 3.65 E2. Now if I hit tab, it'll go to the next box, or if I hit enter, it'll stay in this box, but process the information. So I converted that scientific notation to standard notation. Note that you have to use a capital E, not a small E. This is disturbing as I always use small E's. But if I use a small E, I get a message, an error. So note that if you put text that does not belong there, so that's okay. But if I did this, for example, and hit enter, I would get a box colored in a red color. This is my warning color. Now note that there's nothing wrong with doing this. I won't stop you from saving a model or running a model with something like this with one of these warning boxes, but your results may not be good. Just before I leave this one quick example, so if I hover again, I guess I need something in the box in order to hover. I just wanted to put a quick example of showing something out of range. I would put 66 just as I hit a couple of keys. If I did negative 66, that would be out of the range of acceptable simulation runtimes. And again, I get the red box. Okay, so two things that I want to show, and then we'll try some of this ourselves. So I want to save this model, even though I know this is incomplete, I want to demonstrate the act of saving. I also want to go back and talk about labels. Recall, I mentioned that earlier, but I put it aside. So let me tackle labels first because they have an impact on how we would save and open models. All right, so those of you who have used CMT, who has used CMT by the way? I should have asked that a long time ago. Wow, okay, awesome, okay. This is new stuff then. So CMT had the notion of a project. It's a way to group a set of simulations that you created. For example, Irina has created a set of simulations that she will show after this. And in CMT, they would have been grouped into a project. Here, in WMT, we are trying a different tactic, taking a hint from Gmail. And in order to organize and categorize models that you create, I've implemented a labeling system. So when you save a model, you can attach labels to it. Some labels are predefined, which will help you. Label, you can also make your own labels. And the idea is that when you save a model and attach labels to it, at a later point, when you come back and open models, you can then select labels to filter the results. So you can filter what you can see. All right, so let's look at the labeling system. So this again, underneath the More menu, I can manage my labels. Okay, so you can see that there are labels that have been predefined for the different components that exist in WMT. Note also that they are public. All right, so these are available to everyone. Also, Child, the driver of this model that I'm about to save, has been selected as a label for this model. So this is automatic. WMT will automatically select the driver of your model as a label. So you can go back later on. Oh, what was the model that I made with CMT? Or with CEM, for example, I could filter on CEM. There's also a tag or a label. Use those interchangeably. There's also a label that uses your login email. And then there are other labels that we can create. So how about this for, for this example, I like to add a new label to it. So I'm gonna add a new label. How would I call this systems meeting? So now I can know, actually how would I go, I can add two labels, add systems meeting and maybe I'll add 2014. So I've added two labels. Now I can go check those. So there's 2014. And there's systems meeting. And so now when I save this, these labels will be attached. And so at a later point, I can come back and think about, well, what was that model that I made at the systems meeting in 2014? I can filter my search results to find this one. Okay. So I've added some labels to this model. Now let me save it. So I can go to the save button. I get a dialogue box that will prompt me. I should probably call it something better. I should probably call it something like, there's a labels button where you can interrogate the labels that you set. So I can see what labels have been set on this model. I can save it. This isn't saved locally. This machine, this is saved at, on the server. So basically on river. No, actually. So the labels that you create are private. So they belong to you. So those labels that I just created were private. They were private just to me right now. Now if you guys create the same label, that's okay. You just save public right for, so for example, child is a public label. This is available to everyone. Whereas like 2014 and systems meeting, you can see that they don't have that public text next to them. So they're private just for me. Okay, let's prove that this works. If I delete this model, I should be able to open the model. Let's not save. I want to open. All right. And I want to filter on the labels that are available. So let's say I look at systems meeting. Aha, there's my model. All right. This is an example of using the labeling system. All right, questions or comments? Well, so I'm a little torn. So I have a, this was basically kind of the buttonology. I wanted to go through an example as well. So I have the tutorial example and I'm a little torn. I was thinking, do I want to go through it? We could all go through it together. Or do you guys want to try it yourselves? You guys have any opinions on that? Go for it. The data, oh, the good, good, good, yeah, yeah. The data are going to reside on the execution server. So this is stuff that, I don't know if I have the right words to explain it. Arenaq, can I ask for help with that? Hydren, got it, yep, we'll do. Yeah, so those are the ones that are available and you also upload your own. Hope to like to save it, okay. Thank you, Arena. On data? Yeah. Any research is one in the future on data at some point, right? Or do you want to upload your own data files? On the server? On the beach, right. The data files? No, no, those are your files. Yeah, they reside in your space. What's that? We have a system set up for that, Arenaq? Okay. Thank you, Arenaq. Okay. So Mark didn't show that there were labels and they had to deal with that public, they're a child, arenaq, et cetera. That means if you're able to leave, you're always available, but if you're also available, that's public. And if you're ready, Mark, you already have a file that's normally in your description, is that label, that might be out of control, you see? That's, so that's how you share your files, right? You have to set it up and like, I'm not a computer, I'm not a computer, I'm a computer, I'm a computer, I'm a computer, I'm a computer, I'm a computer, I'm a computer, and I'm a,ages, and I'm collaborating on this. So that's just a separate question. Do you commission data that then, is available to everyone? And is that in particular? I, Arenaq and I have talked about that. It has not yet been implemented. So we only have private for the user and public for everyone. We don't have like a protected right now. Or it should be my job to make it right and do the right thing. I should do the right thing and make protected as well. So that's one thing we have to do. No, because you still have to provide your own logging credentials to a beach. So the model's there, but the data's not there. Yep, this is our evolution of the idea of a project that existed in CMT. And the idea I take from Gmail, pretty well there. So I want to make the same idea here. Other questions? I talk a lot. I know, darn. So Irene, we've got about 10 minutes left. I can do a summary, and we take a slight break before we start yours. OK, so how about this? Just make a run. Yeah, OK, do that. So how about this? Let me just start over. The refreshing is really nice. So if you guys would like to try this with me, it'd be totally cool. We can try to hit our server all 40 with the same time and see what happens. I'll do hydrotrend. So what I'm going to do is I'm going to do the example that's in the tutorial. So this is, again, recall I showed the tutorial earlier. So we're going to do a hydrotrend example. And I'm choosing hydrotrend because we tested this. We're pretty sure it works. So I'm going to load hydrotrend as my driver. How about I change one parameter? Hydrotrend likes to work in years. So for the simulation runtime, instead of 100 days, I'll make it 365 days. I hit Tab, so it verified by 365. Let's save this. I'm going to save this as my name. So you can see the labels. It looks like the hydrotrend and my login. Maybe I should do a, I should do, yeah, let me do them. I love my labels. So make sure I got my labels checked as well. There, oops. All right, so I'll save this. All right, let's run it. All right, so the Run button, click that. The idea is that eventually we would have a post as well. But for right now, Beach is our host. So this is where you need to login with your credentials for Beach. So my username is different, for example. Omnitruth, so hit Run. Okay, so I get back a dialog. It says that I've submitted my run. I can choose to view the status of this run now. So I can see some other people have done this as well. I put my initials after mine so I can see it. All right, so the model ran. See, it's complete, available for pickup. I can download it. So it's a tar GZ file. Let me know if I need to pause at any point along here. Or if you want to break with a question. Oh, this isn't my computer. I can do, do you have iterm? Does it go to downloads? So there's my tar GZ file that I've downloaded. I'm changing your defaults just so you know. Okay, so I could unzip this. All right, so you can see the information inside. There's a readme, the hydrotrend output. So the input files, the output files. There's a time vector for us. If I go to the output. So what are all these files? You can get information on this from the model help page from WMT, you can go to the systems website to find out about this. Which is what I did when I made the tutorial. So for example, I know that hydroaski.q is the discharge at the river mouth. So there's the output from the model. Now, I'm not gonna go through and do a plot that took a little bit more time. But if you took a look at the tutorial, you can see that at the end, when I download, I made a quick example of reading the data from a few of these files and making a simple plot. Python, oh, lots of questions. Go, no, not to rerun the same thing. Oh, I don't know, yeah. It wouldn't know about that. One thing you can do, you notice that there are helpful icons, so I click the download button. You can also click the trash icon. So if you want your simulation results to go away, you can delete them. Does that answer your question? Keep going. Right. So like for now, there's like our unique characteristics and unique parts. And like, when we come back to this stage and like rather again, we need to get there. So if it's somebody and they can get there, that's like, you know, it's not gonna be like that forever, right? So like if there's a new feature, it's just a green icon, and that will be on the way. And we'd email you. We wouldn't throw it away without letting you know. Go ahead. The steps that you can do to make it easier to do it. Mm-hmm. Right. Oh, totally cool. We should do that. We just haven't done that. So that was actually part of the feature of CMT and that it had to visit a software visualization suite along with it. And so, yeah, that is an option. It is not implemented, but that is an option. Who for, of course. And the example that Mark is showing is a fairly simple time series, right, where you can pull that up and do it easily, like a grid where you get to do it. That is not the grid you want to get back to the web to create a time series like that. So there's actually, you know, you can just separate that and say like, oh wait, you know what, we have to put an app for the grid and not like a online grid to do the best. And so, I guess that's how it works. Thank you, Irina. So, you can use that app, they can use it. Sure. So, they can use their own data to get it back to this, I mean, that's kind of what we were at right now. The feature is so-called a software. And we are responsible for the software, we are responsible for making it more important for it. But then, like, what the user does with it and how they use it like the others. For now, that's something that I like to do. I actually make very much the use, especially for me, because it's so much easier if that would be a very easy to use for the staff and I feel it in both. So, I just don't use them for each and I don't think the only thing that needs to be applied to is that it's sort of like, oh, there's no one for that, there's no one for that. So, I don't have to try to keep guests in a lot of positions with three digital things. But the core of the software is there. You can find the standard format there, and then see yes, and then it's a little bit easier to use. All right, that's good. So, I think it's not interesting for the staff here. I don't, yeah, that's great out here. Or, I'm seeing the reason, and even today, and I really want to be in a space, it's gonna be like, I assume you should be able to do it, so like you're having geo-references like you're geolocation of these things, it can be out of the way, so it can be more of a thing. The timer thing? Did you get that? You? Okay. Anything else? Other questions? The question's been great, thank you. Go ahead. Yep. So, the job that seems to fit it for the center and it's really easy to do it, and so does every person. Mm-hmm. So, I went to the view run status page. You can get to that as well from this menu item as well. Yeah, that's the same page. Let me close it just to demonstrate. Refresh your browser, maybe, because when everyone's submitting jobs, this continues, this queues. This page queues. Okay, I have a brief summary. Then we'll take a tiny break, just let Irina set up and we'll come back and see some labs. All right, so with WMT, you can see that we have allowed users to select a component model from a list. You can build coupled models. You can view and edit the parameters of the model components. You can save the models that you design to a server where they can be accessed anywhere. You know, you could set up, you could design a model at your office. You could go home, tweak it and run it, for example. You can share saved models within the broad community using that public label. And you can run a model by connecting to a remote HPCC where the system software stack is installed. Questions or comments? All right, let's take a very brief break and I can switch it on with Irina. Yeah, probably. Yeah, okay. It'd be all right. Can you guys hear me? Is this on? Yeah? Okay. What I wanted to pitch for in this like sort of like next 45 minutes is that we think this is ready to be used by faculty or by TAs who like to teach with. And I've been teaching with CMT the last three years or so and there would be like, there'd be plenty of like little things that would frustrate people and I'm sure there'll be like little things that would frustrate people with this too, again. But I think this is much more robust and we try to make it a bit more accessible than the previous two walls. And so we're moving to this age-grant system between the CMT and the WNT and I provide a number of labs so that people can like use. And I'm hoping if people buy into this we can like make that sort of the topical labs bigger and bigger over time and sort of like target it towards just specific topical in there. So the ones that I'll share with you today are basically their examples and their work-out examples. And they said maybe to see how this is gonna go but hopefully not more people are able to do this. You can do different classes and we can like expand it to different models and different components. So I'm gonna spend like maybe five minutes or so to motivate why would we even wanna teach modeling in the earth sciences. I realize I'm preaching to the crowd to all of my own people who are all moblers and like we think this is an important thing but it's actually pretty embedded in sort of like how people view earth sciences, how they view predictions and like it's on a much lower level and great in our educational system and we can like sort of use that opportunity and use these tools to make it more accessible for maybe undergraduates or like even at some point in the K-12 system. I'm gonna show you like the possibilities that the WMT offers for that and sort of how we set up to do that. So even from the beginning, like see not all of you are aware of how long history of the CSDMES initiative has been but even from the beginning of CSDMES there was always this idea of like once we've got like this toolbox of the middle components together and I've made the bigger components that's like uniform, practical, mutual independence. It would be easier for people to use, it would be easier for people to teach with and so there's very much all of this education mission to CSDMES and to the tools that were developing. And so we're trying to hold up that promise and make things easier to use and like make them as robust as possible. And when you dig down in sort of what the National Science Foundation brought out in documents about what they think is so important to our graduates, undergraduates and even into the K-12 curriculum, then like there's very basic skills that they want people to have. There's very basic concepts that they want people to grasp that have to do with like modeling and what models are to our society and what they are closely making right now. And it's things like asking questions and defining problems. Can you then like work that into a theoretical model in your head? Can you then work your theoretical model into something that's a computer model or a equation? Can you then like say like, okay, I'm gonna do 10 runs but I'm varying these parameters and why would you even do that? So those are questions that you can like actually tackle at a fairly low level. And it's also something that's like, if you only need a computer, it's even accessible to like almost every map. You know, you don't have to go like to a part of a spiritual location or like in a certain sense, modeling is an accessible tool but we need to make the tool easy to use and make it accessible to do that. And then of course in all our research, we now have to use models. All right. You can do a microphone. Okay, turn it off. Okay. Let's see what we can do. What did you guys do? I didn't hear any echoing. So like, how's that? Better. I can hear it now too. And I think that in society, like modeling is becoming imperative to like forecasting and making predictions. And I put up the example of Hurricane Sandy. It's like one of the examples of like, okay, we have a model, the models run and like this is a prediction that people are using. And of course, weather modeling. There's like countless of examples where surface process modeling is important and like people are trying to make predictions based on surface process modeling. But if we want like our students to like, maybe even if they don't become modelers, we want them to be aware of like the role models play and what's behind them. So with that in mind, I have like sort of these objectives and this comes from like countless EKT group meetings too. It's not just me making this up. But at CSDMess, I am the EKT person. So that's why I'm like presenting. So what are learning outcomes of these labs and what is it sort of that I envision is important to these labs? Well, there's sort of like two overarching philosophical objectives that I have. I want people to be aware of what's a model versus what is data. That's a very vague boundary already. But people need to be aware that if they look at the forecast of Hurricane Sandy that I was just showing that that's a model forecast. Whereas if they look at like sort of like afterwards what has been measured at tidal gauges then like they're looking at data. But you needed the model to like forecast for New York what, when the search was gonna arrive or like how high the search that was gonna arrive was gonna be. And that is where the models have their role. And I want people to be aware of like this is the role that models have in our society right now. I also want students or learners to be aware that like any model that you make is it gonna be a simplification? Any model that you make has assumptions. Any model comes with uncertainty. And so those are like secretly I try to like address these philosophical issues in the model labs. And it's not that every lab has like a whole philosophical discussion but I try to make people aware of that. This is part of what you're looking at is a model and there's assumptions that are made. Other things are skills. Like we want that people are able to visualize data or ask questions, interrogate the model results that they get. We want people to be familiar with the fact that you could submit a job to an HPCC system. This is maybe a graduate student type of skill. But like one of the things when I was teaching class with the CMT, I would like ask questions afterwards and then try to evaluate what people had experienced from this. And one of the things is that I think they came away with like, oh, is that the big deal? We just submit a job to a supercomputer and it runs our model. And yes, there's like a whole added level of complexity if you wanna like submit it parallel, et cetera, et cetera. But if you just wanna submit jobs to a supercomputer, that's not such a big deal anymore. We can do that through an interface like this. And so this is one of the things that CSDMS after that like people are comfortable working on these machines, comfortable like with queuing jobs up and using that. There's also topical and conceptual understanding that we wanna take, people take away. And these are like from the list of sort of the big ticket issues that I got from the EKT working group. Like to identify feedbacks, which CSDMS coupled models are perfect for that. You're like searching for the feedbacks between the different components. And that's where the new science often lies. We wanna like make people aware that like not all processes are linear. There's complexity in processes. There's randomness in processes. So all those kinds of concepts are like hidden in the labs possibly. So we've been using CMT before for this and we're moving to the WMT right now. We've been teaching these clinics. So like every year there will still be this clinic and like once you've taken it like you probably don't wanna repeat it every year. But hopefully if our community keeps expanding then more and more people are aware of what can be done with this tool. I use it every year in the NSAT summer institute for two days and like people really get to run models for two days. And so it's a bit more scientific than what we're doing here with the botanology as Mark was saying today. So there's about 100 grad students that have like gone through this little training of two days and like playing around once over there. Oh yeah, and I'm very proud to say that they still come back to the CSDMess meeting after they've taken those two days. And so to make this an effective teaching tool you need the models to be like exposed to the public. And that's one of the core tasks that CSDMess has. And when we really first started probing people for models we like designed this metadata concept where like people, developers themselves submitted this metadata to us about what language the model is in, like what time steps it runs with, like what's literature references, et cetera, et cetera. And so there's a sort of a core little database of each model that's in the metadata. And then in addition to that the WMT is integrating these model help pages that have a bit more on the theory of the models. So I think I put up some examples. So you can go to like a model help page and actually find like the equations that go with the processes that you're modeling. And there's a nomenclature that tells you like, okay, if I'm filling in later today we're looking at Brad and Andrew's example of like wave-highness factor. And like then you can like look up and sort of see what the little explanation is. In this case I was good enough that I talked to Andrew once I like put it up and like he made a couple corrections and like clarified it a bit. But so I did, this is a Wiki. I know you guys are like overbooked. Everyone is, but it's information on your model and your conceptualizations that's on this Wiki at some point. And that's what's gonna be used by the community if people propagate and use this model. So we will try to probe you once we got like informational models up to like make sure that it's correct and that you like it. And sometimes there's things that we still misinterpret because these are not our models necessarily. And so on the educational repository. So under the CSDMS webpage there's a section with labs and they used to be CMT labs. So like not all of them have been transferred but there's a couple that we transferred for the to like make this ready for this meeting. And so there's like, I think there's hydrotrend and plume and set flux and CEM. Those are like the ones that have been transferred to this system. And then there's others that are gonna follow pretty soon. So the level these labs are written for is like for advanced undergraduates in earth sciences or oceanography or like sort of the core fields that CSDMS is all about, earth surface processes in its widest sense. Each lab in my experience, each lab takes like three to four hours maybe. And then possibly you can ask people to like do a report or like thought a little extra output or something and like make it into some homework, but that's about it. If you have very fast students, they'll like complete it in two hours. And if you have like people who aren't as familiar with like grabbing things or like maybe manipulating data or visualizing, then it will take them a little longer. Each of the labs will have the link to that tutorial. So like you basically can go in, like if nobody has ever used WMT, like maybe first do that little tutorial that will take maybe 20 minutes or so I think. So like arbitrary which one you like will start with, you can still do that tutorial right away. There'll be like a PowerPoint that has a bit on the processes and the relevance of that specific model or the specific coupling that you're looking at. So what I usually do is I use that PowerPoint to set people up the first 20 minutes and say like this is what we're talking about. We're like talking about coastal stratigraphy, blah, blah, blah, blah, blah, and then like you have like a little bit of background on the model already. It's harvested from the model help pages and like sometimes it is from talks that people gave here. Then I have instructions for runs and all the runs that like are proposed there to do have been tested. So once you go like wide out of that domain or not even that wide out of domain, I don't know for sure like hopefully the model is robust and we don't know what all developers did with their models necessarily. So like once you get like really creative you could like still crash models but the runs that are proposed in the labs are tested and like pretty fast in most cases. There's a bunch of questions to like meet topical learning objectives and there's like key references. So as you saw from Mark's demonstration you do need a supercomputer account. A lot of you have been set up with these and so it's sort of like digging around in your email or like reminding yourself what your password was but yes you do need that. It's a big deal to run or to have like access to this resource and it takes us a little while to like process that. So once you're like you know you're gonna teach a class or you know you have like a couple grad students and you want them to use this tool like just have them email us or like use the instructions on our site to like set up an account on beach. It takes three working days was what I put in and then like somebody out of our teams said like no I'll make that like five working days to be like entirely sure that you make it before your labs start or what I like to do if I have like a full semester I like just do this all like sort of logistics in the first class and then take it onwards from there. So they did a quick tutorial and then yes they do need to like get familiar with net CDF as a format or use the ASCII. If models provide ASCII files they can like still stick to the ASCII for some of the simpler models that's possible. But the standard in our framework is gonna be net CDF. You can like use MATLAB, you can use Python like your own favorite tool to like deal with net CDF files. We recommend visit for visualization. MATLAB is better for calculations so like it's kind of up to you. So as I said there'll be like sort of instructions on like how to set up a parameter or sort of like a couple of screenshots to like sort of guide you around like where to go. And then questions like I mean I put this one up because yes you like have this model and it has a removal rate and you can like sort of intuitively guess that like a removal rate probably has something to do with how fast things settle. Well as soon as you ask the question is like is this removal rate the same as Stokes velocity settling velocity? You need to invoke like a whole like theory and like go back to like either Wikipedia or like a textbook and sort of figure out like oh yeah what was the settling velocity again? Like let's calculate Stokes velocity settling velocity. So like it's sort of like the questions expand quite a bit on like what if a person just wants to change parameters then like they're not gonna be able to answer these questions yet. There's like theory there that can like motivate people to like dig a little deeper into what is behind these models. I'd like like how many people have their beach account and like know their password. Okay cool. So keep your hands up for a second. If there's one on each table then maybe people can gather around and like sort of like do these run or like do a couple runs and like sort of like do try to run this and like other people can sort of like gather around those laptops that there are maybe teams of two or three I think is gonna work out. So suppose that we go to this lab that's the CEM lab and just toy I think we have 15 minutes or so and then I expect that you guys will have like a bunch of questions after playing and then hopefully that will like help people to understand like how this works and what's up with it. Are there questions right now? When we wrote the renewal for CSDMS we proposed to do it in a sort of a tiered approach where the simplest is like animations from models that still teach some but some or like still are a visualization of like something that's a relevant process and you can document those and CSDMS actually has an archive of like animations and movies. Then sort of you can step up and say, hey I have a model that's fairly complex but like let's bring it down to just the parameters that have like a lot of impact. Like if I use HydroTrend as an example it's like all these bells and whistles to do river sediment low to the ocean. Well what if you have just three whistles or three buttons and you say like I can change those and it's just I added them or I increased the temperature and I still look at the effects of that and so we call those like sort of slider models or like sort of very easy models and that's like our second tier. It's very easy to build those in WMT but we haven't built them. But it's basically you instead of presenting a student with all the options of a full model you present them with just a few buttons but sort of the flavor of it would be the same and then these are like for advanced undergrads and like graduate students and like they're pretty serious I think. So that's the vision a tiered approach. We welcome ideas and like the EKG group is sort of the group that tries to set the scene for that. Other questions? Sorry? Oh yeah. Setflix 3D. This looks something on the web browser side. This is not but the run is not running. I think there's this is like a web. Yeah. It's probably. Did you guys find the lab that I was trying to point to? It's under education and then labs. I think let's look under like save runs and then see what it is a child to setflix there. I know for sure child runs like these are like yeah. And I'm pretty sure I know the like the combination runs too but I'm not sure like it runs through here. One time I ran the hydrogen it also gave me the same. Yeah, it looks as if it's like something on the browser side. So the message comes back from the API. Okay. I don't think it's our fault but I don't know what it is. So I'll try to figure it out. Oh I have a question. I don't know for a while. Yeah, I don't know what the those are. Like hydrogen like pretty much should run. I mean I've tested that pretty extensively. So I mean one of the things that I would do is just rerun what you were trying to run. Okay, I'll give it one more. And so I know like if it's something simple as your user word, your user login wasn't right. It will give you a different message here. Yes, it will say like. Yeah. Authorization. Yeah, so this is the native output of child which is what how Greg wrote it up originally. Yeah, well that means you could say the option. Right, so here you can like say the net CDF file. So the VTK files. Yeah. Only gives native. No, no, no, you have to switch them on then. Oh. So like erosion rate or surface elevation. But then it may. And then it will make a net CDF file. Set rate output for VTK. Yeah, you have an insect. Sorry. So now you have surface. Oh I'll try that. Yeah, yeah. And then like look at what your interval is. Like because make it, if it's a long run you want it to be not. Yeah. Is it working for you guys? Yeah. Oh, are you trying hydrogen? I think I got a crash. Okay, yeah. No, this one there's no communication with set flux in this one. No, but already that works. So like where it says. Yeah, okay. When you use the river bubble in the different module. Yeah, and so like you can switch it to 200 there. Yeah, you asked a really difficult question about the combination with set flux 2D between child and 2D. Because then you, it can be done. And because they can pass information between each other. And that was one of the options you can drop down. Right. And so it can be done. But like it's more logical to put 3D and 2D together. But it can be done. Set flux 3D, yeah. That combination is like pretty finicky because basically what you have to start saying is like when do you call something a river? Because at the boundary, at the coastal boundary, child will have fluxes at every cell. But if you have to run set flux for every cell, it becomes like totally unmanageable. So like we use cut-offs to say like, okay, I only want the 10 biggest or the five biggest or so. And so there's a bit of like administration that isn't I think quite done very robustly in this system. But it's very close. And I mean, they've run together, but not through this. Yeah, and so if you like refresh your browser, you'll like see the clock ticking. I hope. This is the one that I. Is that the one that you spin it? Okay. Which one? Are you running child? Or the CEM? CEM, yeah, I was just going for this example. Okay. Did you hook it up to a hydrotrend? No, to a river. Okay, good. Yeah, that should be working. It takes about three to four minutes. I think. Oh, okay. Yeah, but in mine it shows like how many days it is. So I'm not 100% sure that. When I did the test one earlier to it, I got the same. Okay, I'll bring this other one. So there's a lab that I know 100% sure is gonna run. So let's test that one. So it's one of these public ones. It's called CEM Waves Evulsion and we're for that one. So now it will populate everything with those default values. Let's say like I might get a little shorter just to see it after a couple of minutes. The 12,000, I think it took seven minutes last time I ran it. Save. Save as. Something. Okay. And then run. And then if you don't see a time thing there, then. Oh, yeah, that's a password there. Yeah, yeah, yeah. I think this, I mean, that one, and then you can like play it from there. I'm fine to set up this one. Okay. Yeah. Six. Yup. It takes three, maybe four or five minutes. This one? Yup. What values do you think you need? Is the code so high that it will get loaded into 200 kilograms per second? Yeah. Are you guys familiar with visualizing that CDF files? So there's this package visit. I'll put up a, I mean, you might have like a link in the lab even and it's a fairly quick download and like any net CDF file you can like visualize in that pretty fast. It's also not a huge deal in that lab. There's like a library for net CDF files. And so both of those are like good options. So visit this open source and like. The battle is under the river. If you like have the WMT open and you click on it here, show the parameters, then there's the backwards. Yeah, we'll like make a bigger delta. Oh, like is the output on? And like click on the C, show parameters and then if you scroll down, so output for seawater to sediment depth ratio is a good one. And so and you want it every hundred times steps, I think. Well, yeah, I mean, CEM is not quite, it's like 6,000 times steps. And like you do once. Is it day also this one? Yeah. Yes. The thing is that CEM draws from a distribution. So one event maybe like represent 20 days or a hundred days or like depending on what magnitude event you grab. So like it draws waves from a distribution. So times it goes 6,000 times through this like drawing an event, but it doesn't necessarily have to be days. Okay, good. Oh, so if you're that CDF file, like if you like don't change it to like a sort of a reasonable number of slices, like if you want 6,000 slices, it will take a while to run. Because I was trying to ask people like do it every 250 times steps or every hundred times steps. But I think the, yeah, that's good. Yeah, a hundred should be good. That one, yeah. No, but we want it very badly. And basically for uncertainty and sensitivity analysis. So one of the ideas is this was what James brought up this morning was like to like wrap Dakota, which does that stuff into this framework so that you could set up like it more easily to say like, okay, I always want to very, you know, like the wave hide from one to seven and then like this and these many steps or like, yeah, that would be great. And so when people do that, they still like code up that part themselves. And then they just call their script that they generate because in the end you generate a run script. And so like you can hard code, like a loop around that again. But that's a bit more advanced. Yeah, Kristen, you were at class at, were you at class at the seized? Yeah, yeah, yeah, yeah. Because I was like, people look familiar, but like I'm kind of like lost track sometimes where I met them. Cool. Yes, that's good. Is it working here? Yeah. I try time, I'm in the hard time saving things and we're gonna work. Oh, that's smart. Oh, maybe it was refreshing. Now at my, I think we're gonna have a nice work here. Okay. Mark, is there a word try? Yeah, that's right, yep. Or you'll try. Anyway, I moved to Google Chrome. He's got, he's got this. All right. We should work on this. No, maybe. I don't know. It was not too difficult. Don't fix it. Okay. Okay. I can't get that to work. HTTPS. That's right. Yeah. Oh, is it the WMT with capitals? Yeah, try it up to this bit as well actually. I don't know. Yeah, I think this might be capitals. Oh, that bit might be cap. Yeah. I'm not 100% sure about it. It shouldn't be that. No. Well, let's wiki, or like, just Google, use the mess. No, I don't like it. Do you have? I've got Google. Are you connected to the web? Yeah. Yeah, no, just checking. I've logged on to Google. You got a guest. Yeah, that looks good. Yeah. Okay, so like maybe cut away this main page wiki and then like fill in WMT. And for me, that works already. I don't see. Yup. Yeah, okay. Okay, good. So how do I actually, so I get this. I'm doing the same thing now. Hmm. I wonder if this is, like, An internet explorer thing? Yeah. It's a, I don't know, I think on here. It's just why I tried, That's why you tried Chrome? Yeah, so I just don't know the code. I want to do this login. I don't know what that, I could see it. Yeah. I use Chrome, so like that, I'm pretty sure that that will work for me. This is a cool laptop. It's not quite a laptop. So if I go into... Yup. And then like put in, I just have my Gmail. Yeah. So I go back and put in my password. Yeah, the first time, yeah. Yeah. Sign in. Okay. Can I use your password? Yeah, I'll just, I don't know. Okay. There you go. Okay. So. Oh, oh, oh. So I also have my pinch. Cool. Like so, maybe open up the example from that I'm trying to check. This is what people do, yeah. And then like if you click under here, there's like this one, C, M, Waves, Emulsion, and Revert. Yup. So like now it's populated already, but you can like change whatever you want. You mean I need to log on to the page? Yeah, once you save this and you submit this, then like it will come to you for you. Yeah, I think you still need to save because it's your run now as opposed to a little public run. And then try to run. Okay. I don't know why. I have to close the machine down and start it again. Maybe that was, there was something like a. I think there was a quick. Well, there's things where like the browser settings don't like. Yeah. To run things or whatever. Is there a recording or are you doing anything else? Oh yeah, I'm sorry. I should have told you, like you can cut it. Yeah, yeah. Yeah, I'll bring it back like in a second or two. Yeah. Great feedback too. Yeah. Yeah, it seems like Explorer is still having. I know, I just learned that. Yeah. And that's like. Because Chris had to download Chrome 2. So yeah.