 Hi, everyone. I'm Keith and I'm here all the way from Melbourne, Australia. I'm the Systems Administrator for Digital Media Systems in Museum Victoria and our role is to maintain the install and maintain the digital interactive and audio visual displays you see in Museum Victoria's galleries and public spaces. My Twitter handle is listed here for those who'd like to follow me or stalk me. So today I will introduce you to Nodal. It is a project that was developed by the Digital Media Systems team and is quietly transforming the way we deliver digital media into galleries and exhibitions. Nodal started life several years ago, literally on the back of a napkin over lunch. And it is an example of the creative ideas and people that exist at Museum Victoria. Museum Victoria is Australia's largest public organisation, museum organisation and consists of three venues spread across Melbourne. Melbourne Museum, located opposite the World Heritage Royal Exhibition Building, explores natural history and cultural life in Victoria. Bunjalaka, the Aboriginal Cultural Centre as well as IMAX are also located here. The Immigration Museum is located in the old customs house and showcases stories of people around the world who have migrated to Victoria. And finally we have ScienceWorks, a most interactive museum primarily catered for kids both young and old that present science and technology as a fun experience. The recently upgraded Melbourne Planetarium is located at ScienceWorks. So Digital Media Systems is a team of just five staff and as you can see we have a lot of technology to look after. In fact today there are well over a thousand devices spread across 386 exhibits that need to switch on and off each day. To do this we have what is known as a gallery control system. This system does exactly what its name implies. It controls the various devices installed in the galleries like projectors, computers and even dinosaurs. The role of Digital Media in exhibitions has grown dramatically over time to the point where it forms an integral part of the visitor experience. It is no longer sufficient to stick a couple of DVD players in the space and hope the audience sit and watch. In fact since Melbourne Museum opened 14 years ago the number of exhibits we've had to look after has increased eightfold. So this slide gives you an idea of the scale of what that means. As you can see our workload has increased enormously since 2000 with each new gallery install. And they have gotten a whole lot more complex. Our exhibits range from simple looping videos to large scale installations consisting of multiple computers, displays and mechanical components. At Museum Victoria we have long been at the forefront of using digital media in exhibitions. 14 years ago we invested in a complex and bespoke system that helped us take our multimedia. Now as you are well aware 14 years is a long time in technology and we found that it no longer served our needs. It was complex, it wouldn't work with new technology. We still have Windows NT workstations and the company that developed it went bust so we had no avenue for supporter changes. When we scanned the market we knew exactly what we wanted but we couldn't find anything that would do the job just the way we liked. We were also very cautious of again being locked into a proprietary product that we had no control over. During the search we realized that museums have unique requirements for delivering their digital media. They often consist of a large array of devices that operate independently but need to be managed from a central location. Other solutions we looked at were more device specific and would often rely on proprietary and expensive hardware for control. As Nodal is pure software it can be written for more device for more general device control as required. Our idea of a control system was something that would be reliable, modular and adaptable to our present and future needs. It had to be developed using widely recognized programming languages and coding techniques that would be well documented so lots of programmers, maybe some of you in this audience could develop code for it. We found a partner in Lumicom, a Melbourne based software development company with extensive experience in AV integration. Two of their software engineers helped us design the system architecture and coded the platform. So we took this idea and a business plan to management and they took the bold step of supporting us and investing in this project. So after two years of planning and development it was actually about eight years of talking about something like this. We had a brand new control system that was launched as part of our first people's exhibition at Melbourne Museum in September last year. So what is Nodal? The name Nodal was chosen because it describes the system architecture which is simply a whole lot of nodes on a network that talk to each other. This system is made up of two parts, the platform and recipes. The platform or course system is the communications layer that enables interactions between different nodes and is written in Java. It uses common and open protocols like MDNS and Zeroconf to establish communication on the network. Messages between nodes are formatted in plain text using JSON which is highly efficient and minimizes network load. Because JSON is human readable communications can be easily examined during testing and troubleshooting. The recipes are scripted in Python and tell nodes how to function. They can be written to perform specific tasks like controlling devices or querying the status of nodes. Nodes have relationships and are non hierarchical and talk to each other using a series of actions and signals. Actions are one to one and tell other nodes or devices what to do. Signals are one to many and nodes can be scripted to listen out to other nodes and then perform actions. The way Nodal is implemented is a natural way of thinking about control and the developers tell me that Nodal has taken out a lot of complication of implementing the natural way of doing things. So thinking about actions and signals is kind of common sense but actually implementing the software is quite difficult, I've been told. Nodal has a simple and elegant design both in its visual interface as you can see here as well as the underlying system architecture that uses industry standard open protocols like Java, Python and JSON. So what does it do? Nodal is a framework that locates, establishes and maintains a connection between nodes. It ensures this communication is valid and error free. So users don't need to worry about network environment and how devices talk to each other but just what they need to do, sequencing. Nodal takes care of the communications and challenges often faced with different network environments. In the world of Nodal, scale doesn't matter. The protocol has been designed to handle hundreds of thousands of nodes reliably without putting any strain on the network. You can add, remove and relocate nodes live without affecting the rest of the system. Nodal will automatically re-establish communication using the bindings when they need to communicate. So how is it better? Because Nodal is written in Java and Python, it is platform independent and nodes can be hosted on any operating system that supports the Java runtime environment. Its system design makes it very resilient to network interruptions by using its underlying network discovery protocol to locate and then perform the tricky task of reconnecting mass amounts of nodes in an orderly manner. Nodal has a responsive web interface and can be accessed from any device with a browser and is made for mobile. And we have chosen to share it with the world. Anyone can use it and make changes to Nodal as long as these changes are contributed back into the project. Yes, Nodal is open source and free. The code and recipes are available on GitHub under the Mozilla and MIT licenses. And that's the URL that tells you everything about it. So far we have developed recipes to control a wide range of devices we use in our galleries such as computers, projectors, power devices, TCP and IO. So I'll just give you a short video that demonstrates how easy it is to create a node. So all you do is once the Nodal service is running, you create a new folder and you just type in the name of the node. That's me typing with two fingers. And as Nodal is running, the script automatically appears right there. So if we have a look at that example script, it gives you an example of how you can script nodes. It's quite simple if you know Python. So this is all in Python right now. And these are, this is the bindings file which connects all the nodes together. So right now it's just empty. You don't need to actually do anything right here. I just thought I'd show you what it does, or what it looks like. So here's one we prepared earlier, drag and drop. And it looks highly complex, but you can see it's pretty much just sequencing different actions that the node needs to take. And there's some events down below. And all this is just copy, paste, copy, paste, change the name. So if we go to the page, the URL of that node, you can see there's an inline script editor. So it's got the same script. So you could be on your tablet and start creating nodes. You don't need a text editor. So that's just the same thing that I showed you earlier. Okay, so the new node appears on the web page. And I'm just going to start creating some signals. And you can see it's all auto, what do you call it, auto fill. So it recognizes other nodes in the network. It knows what the node name is called and what the actions or the signals that that node is emitting. And for actions, it's the same thing. Once again, it recognizes nodes that are on the network. So you just select the node that you want, put in the action. And just in case you missed out, I did another one, I think. No, save. Boom. And that's it. Done. So you can see there's a console that tells you that the script is running. If there's any errors, it appears on there. And so it'll be in red. And then you can take, you can fix up the script if you need to. So this is the bindings file that I showed you earlier that was empty. It gets populated because I've gone ahead and filled all the actions that that node requires and the signals as well. And this is really handy when you've got different exhibits that do the same thing. All you do is copy paste and just rename the names. So this, you don't really need to use this file when creating nodes, but it's handy to replicate. And just to show you, all those bindings appear in on that node on the web page. So obviously for development purposes, it's easier to have a computer and start doing all your work. But if you're on, like we use a tablet when we go around galleries and if you find there's issues or we need to change anything, we can just do this on the fly. We can even do it using this with the new six plus. And that's it. So these are all the nodes in our first people's gallery. Simple as that. So a lot of them are, you know, all these exhibit nodes and all node it requires are those two files, the bindings and the script. That's it. And here is what happens when you send the on in the morning. So that is Nodal. So what are future plans? Well, we're currently working with Lumicom on a dashboard node that would provide us with a quick system status of all our galleries. Other ideas we have thrown around are extracting data from Nodal to automatically log help desk calls and generate reports. And another one is self-healing nodes that automatically take care of errors as they occur. And I've been told I'm putting myself out of a job. But, you know, this is the kind of what we go. And so this list goes on and on. We talk, you know, where is Nodal going to take us? So I hope today's presentation has given you an insight into how Nodal has made my job easier and my life easier by simplifying the way we deploy and control digital media in our galleries. We hope to generate a community of users that will further strengthen the system. Nodal has been a remarkable success for Museum Victoria since its launch last year. And this is just the beginning. I'm excited about how Nodal will transform the way the world thinks about digital media control in the future. Lastly, I'd like to thank everyone who made this project possible, especially Joe Coleman from Museum Victoria who couldn't be here to present, as well as Michael Cartmell and Justin Parker from Lumicom, our dev gurus. We joke that they should be in Silicon Valley earning big bucks, but they just love museums. Thank you for your time, and I'll take any questions you might have. So have you had much sort of uptake or interest from other institutions, galleries, particularly given the open source nature of Nodal? Yeah, so basically when we started talking about Nodal about eight years ago, before I didn't start talking about it because I wasn't there, but it was spoken about a long time ago, and in the last two or three years we've been talking to other museums. So I went to the WA Museum in Perth. We've gone and spoken to Powerhouse in Sydney, a couple of museums in the US, and everyone was really excited about this system and the possibilities, but no one was there to commit funds or resources or anything like that. So what we did is we, like, the museum invested in it altogether, and now, like, this year, because it's been so successful, we've, like, I've gone to MCN, which is kind of like NDF in the US, and lots of museums are really, really interested. There was one museum that a guy I spoke to at MCN, they take two hours every morning to switch on everything in their museum with remote control and buttons. So we take, like, in the morning, we switch on everything at nine o'clock, so we've got, like, three museums geographically in different places, and we, you know, like, I can be here and switch everything on and off, and so it's all scheduled at nine o'clock. Ten o'clock is when the museum opens for visitors, and so we take an hour to do our walkabout, which is just to make sure that things are working. And once we get this dashboard node, we can just sit back, relax, and... No, we'll still have to do a walkabout. It's for exercise. Yeah. Just a question on the nodes themselves. So is it any workable device? Like, how do you control the lighting and so forth? Okay, so there was a bit of smoke and mirrors there. We don't control the light. We're from digital media, so at the moment we don't control lighting, so the techs actually do that. But nodal can speak to any system. So does the device... All right, so for example, if it's a computer that we want to control, we've got a node, it's a computer node, and that at the moment just does... It can mute, unmute. It's just a service or a process on a Mac, you know, that sits on the computer and does things. We control things like, we use a lot of bright signs, and we've got bright sign nodes that can control bright signs. If for projectors we use PJ Link, the protocol, so we've got PJ Link nodes. Some projectors don't use PJ Link, and we've developed nodes for that. There's a company called Projection Designs. They've got their own proprietary protocol. So basically, the way nodal works is any device that has a programmable interface can be controlled. And all you need to do is script that recipe up in Python. So how are you actually turning things on in the first place when they're not running? So how can they be running the clients to be receiving the signal? Good one. So we've got a server that a lot of the nodes sit on there. So for example, the computer's got two nodes. One sitting on the computer, which is called the computer node, and that one is just listening out for, you know, if you send an unmute. Or we send a power off. There's another node called the Wake on Land node that sits on another server, which obviously we don't switch off. And so, yeah, once if, I mean, if the computer's off, then nodal doesn't work. But so we've got a virtual machine that lots of the nodes are sitting on there, which is what you saw up there. The way we've designed it is each gallery has a different node process, like a node service. We're currently running it on a Windows machine, but like I said, it runs on anything. And that's just from a management perspective, it's easy to keep everything onto one just for backup purposes and things. But there's no reason why if you have five computers around the room, you can have 10 nodes on one computer, 50 on another, 30 on another. And so if, for example, in your environment, you know, that computer is kind of always, if it's problematic, you might put mission-critical nodes on a machine that you know isn't going to fail. And the easy thing about nodal is if you can, you know, it's like, you saw that. It's a folder, you copy and paste, and you can have another machine sitting down there ready to go, and if your machine fails, plug it into the network, it just works. Done. It's, and it's not, this is not a kind of, you know, it just works, but conditions apply, it just works. It's like that Honda ad. Is there any more questions? Just join me in thanking Max again. Thanks guys.