 Hi, I'm Jonathan Géroux. I'm a digital major artist and software engineer. And I'm here today to present you my project, Living Orb, which in three words is a tangible game console. So, sorry, you'll be able to play it through the presentation. So, the project, where does it come from? Oh, by the way, this is a maze, so you have to find your way through the exit. So, the origins of the project is like, I'm into playful experiments. That means games in a broader sense. I'm working at Ubisoft currently. And I really want to try new things. There is a movement, I mean pretty recent for me, which is known as Alternative Controller, which basically means going back to the tangible interfaces. So, having custom-made controllers to control maybe a unique game. But, I mean, there is a lot of really funny controllers. So, I wanted to go towards this direction, because younger in the school, I met some electronics and maker and so on, and then I suddenly stopped. So, I wanted to go back to doing stuff with electronics. And as well, I'm also interested into the lights and colors, because I found that very inspiring. So, your character is a yellow dot. It is supposed to stay on top, but it's not very well calibrated. So, I bought a LED strip, but I didn't know what to do with it. And suddenly I discovered this game, which, by the way, is Alternative Controller, which is Line Wubber by Robin Baumgarten. And it's basically a one-dimensional RPG, but you only have colors to symbolize characters, enemies, obstacles, and so on. So, there is also a vocabulary of colors. But yeah, I thought, oh, it's possible to make games with simple stuff, as a LED strip and just colors. But I wanted it to be more close to the people, and that I really like the fact that you're holding it in the hands. And so, I had this ID, and I made a first prototype, which I have here. And as you see, it's a little bit more rough. I can show you, it's not as beautiful as this one. But at least I tested the concept, and I also dig into the process of electronic and mechanics. So, what I made, of course, is based on a polysurean sphere that you can buy almost anywhere, in the art supply stores and so on. And then, okay, I thought, okay, it's not very amateurish. I had a LED strip, but the dimension was not good, so I cut the LED strip, and sold wires, and I carved the bowl on the outside to put the LED strip and so on. Yeah, as you see, no, this one, all the electronics is inside, so you don't have any outside stuff, and it's much more better. So, yeah, at the end, you have something like that, and on the inside, everything was gaffer-taped, like the battery, which is most of the weight of the device is a USB battery, so it was just scotch-ed with tapes, and yeah. But I'm even more surprised of that, because the cable, the cord of the USB battery, you know, the angle, so I had to put a RAM, I don't know the name of it, but not to, yeah, how to say, well, you understood. But yeah, it was very amateurish, but at least it works, so, yeah. And a friend saw that, and he told me, oh, you're doing shit, like, okay, let's do something better. So he went through a process, so he's a little bit more into the 3D printing, so he made a 3D printed version of the orb. So it's dangerous to print it all at once, so you better do some blocks and then assemble them. So every triangle here was printed separately and then assembled, which means you have an inner structure to support each different block, and this will also be the case for also electronics as well. So as you can see, so I'm sorry I haven't bought it because it's not finished yet, but at least, yeah, I got into this ID. So as you see, the leds also had diffusers because this one doesn't have diffusers, and when you look at the leds, it's very intense and maybe painful, so yeah, so he added some diffusers. That was a very good idea, so I took the same idea for this one. So diffusers, and yeah, so here's the inside structure, so yeah, maybe on the gray blocks you see that there is a small edges inside the holes, so this is done to just support the leds with a little offset to the diffusers. And then you would screw them to the inner structure. So yeah, so I went back to the polystyrene ball, but taking the idea of the diffusers and also the inner structure as we see it, so that was a really long process as well because I had to drill the holes. For each holes, there is actually two holes, so two diff diodes from the diameters, so yeah, it was very long. Also soldering every led, yeah, it's also our waxy diodes, not waxy diodes. So the inner structure, so it looks like that, so I could open it, but I'm not yet. So you see the connections, and it's far more better than this one, it was actually a little bit dangerous. So that is leds as well. Well, because I bought this led strip, I didn't know what kind of led it was, but then I discovered you can buy actually the LEDs without the pads of the led strip, and it's far more efficient to put them inside. Also to mention, there is only this plate, this wrong plate, to support the computers, sensors and so on, so that it doesn't move. But its diameter is exactly the inner diameter of the bowl, so it's really stuck into the bowl and it doesn't move. And yeah, no more gaffer tape. Yeah, so I really want to thank by the way Elie, with whom I made this sort prototype, as well Henri, Fabien, Jesse and Pedro for soldering and gluing the LEDs. Both Antoine to help me into the direction, and also the festoon community for the residency for the first prototype. So that's the inside, so there is a Raspberry Pi. Eddie wanted to make it Arduino, so okay, I don't know. Well, as I will explain, there is a wiffy hotspot inside, so with Arduino it's a little bit more difficult, but why not. Sensors, so there is an accelerometer to catch up the up axis, then a digital compass to have the north axis, and then you do a cross-product to have actually your base. And then I have a matrix to pass from the bowl space to the wall space. So LEDs, so I use this one, and that's really cool. I love this one, because all of them worked directly out of the box, so even with soldering, none were bugged or something. Also it's digital, so you send the data in serial, so the 24 bits that you send is consumed by the first LED, and then it acts as a relay for the second LED, so you can send your data along the strip. And as well, battery. Of course, so there is wood as well, and the polystyrene, so everything that you use to construct the device. So the software from Raspberry Pi version, so there is Linux with a wiffy hotspot. I bought an Orange Pi which has a wiffy interface built-in, but I haven't tried it yet, but it should work. There is a program in C++, then to take the inputs from the sensors and to generate the data for the LED strips. And as well, I used Lua to make the programming of the games more easily available, so the games are actually in Lua. And as well, so there is a web server to control the op. So I'll actually show you right now. This is the interface, so I'm connected to the wiffy hotspot of the op. And so I'm sorry, but I will interrupt your play session. So just to show you how it was made, so there is an update function that is called every frame. And so you could say, OK, set color 1. So this is the first LED, and the color is, no, let's say white. So that would be the thing. And as you can see, there is an LED with the white thing. And this is the index, this is the LED number 1. So what you can do is coordinate system. So I won't go into detail into Lua, but it's a really simple language and I really love that. But just, yeah, so I'm trying to put the LEDs for visualizing the base like the transformation matrix. So you see here that there is three colors which should represent the three axes of the base. So yeah, and that's how you know that it's not really well calibrated. Yeah. Yeah. What I could show you. Yeah, I mean, so this was about my first game prototype. It was basically just the LED is trying to fall, so to say. And you just have to rotate the ball to keep it on the top. Yeah. And the problem is, so I still have this program here, but because of the density of gravity I think this one. So you can try this game actually. Yeah. Yeah. So you have much more possibilities. Because it was limited to the edges here. By the way, it's an eco-side one, which means it's a volume with 20 faces and then it's desalated. Oh, it took as well. So here I made a Pac-Man version. So you have to collect more of the same effect. You have to collect the pills and you have to avoid as well the ghosts. And as well, you can use it with no interaction at all. So this artist was willing to have the orb on the sand as he was playing. So, okay. Just as a decoration device, but it's nice as well. So what I plan to do next is a little website just to make it more visible. But more importantly is Wiki, because I didn't mention it, but it's fully open source. So both hardware and software are supposed to be open source. So in the Wiki, I want to make all the knowledge database, like the step-by-step instruction to make this version of the orb, everything like how do you install the Wi-Fi hotspot inside the Raspberry Pi. So I wanted to actually let the project turn around this Wiki. As well, I want to make a game repository like a store, but it would be of course free. So that people can share their games. Because one of the main interests of the project is that we can try to discover new gameplays because it's a unique interface. And as well, there would be a simulator so that if you don't have the device, you can still test the games. And as well as you develop the games, it could be simpler. So here's a basic version, but I mean, you just have the ball in a 3D space. Because it's lower, so it can be compiled to JavaScript with nScriptM. So I could run the lower games inside the browser. That's how I would make the simulation part. So to wrap things up, so you can build a device. I mean, you can do everything. I want to make a wood-based orb because I like the contrast between the colors and the wood, I think that could be beautiful. But anyway, any idea, you can even make a cube out of it. You could. This of course is a program for the games because as you have different topologies, so how can you ensure that your games are still playable with one topology or another? So that's something to think about. Also speakers because Raspberry Pi has a speaker jack, so we can do speakers. We can do audio things. It's a program game. So of course, what does API is unstable because I don't really know what would be useful as a programmer to access to. So as I will and maybe you as well do more games, so we will be able to consolidate the API as well. All the stuff like the accelerometer as a small interruption mod for when you tap on the accelerometer. So you could as well make an input of that. You are just tapping the ball to validate something. So things to discover. This is my word plan, but if you are interested in the project, so of course the documentation as I said, the wiki, I really want it to be easy to step in. Here is how you make one. Here is how you program it with tutorials, step-by-step instructions. So I really want to make a lot of effort in the documentation. For myself, I generally use the MIT license, but I don't know that much about licenses and the free open source stuff. So there will be something to do here as well. If you are interested, just leave me a message at the end of the talk, just come by. That's all. So we have time for questions. For the C++ part, did you use any framework or did you do it from scratch? No, I haven't used any framework. For the C++ part, did I use a framework? So there was a library for controlling the LED strip in Raspberry, which is called rp underscore ws2812, the name of the LED. And I made the drivers for the central card because it's connected in an I2C. I found no way to communicate from another library, so I made some libraries. But there is no driver, sorry, there is no framework. I used GLM for the math stuff, but that's all. Because of the way that the goal is rotating in all directions, do you have to have multiple compasses or how does that work? Yeah, so as I said earlier, I just need to have the accelerometer, to have the up axis, and then I take the digital compass to have the north axis, and then I do a cost product and you have the base. But one thing, when you program the game, LEDs have indexes, but you shouldn't rely on them to make some hardcore decisions. Like when you go to the LED number 21, it happens something. Because you could do the same device, but with another mapping for the LEDs. So for the mapping, I have also Lua script, which defines the mapping. And what's actually useful is that each LED has a list of its neighbors. So that's where you can just jump over the things. Do you plan to increase the number of LEDs to get the final feedback? Yeah, so the question is, do I plan to increase the density of the LEDs? Do I want to make your screen out of that? Yes, but not by hand. So I'm actually not against finding a kind of mini-production, like how to make that. So I'd say using injected molds instead of curved polystyrene, stuff like that. But yeah, there is always something to do with small productions. So with some power, can you put that in your pocket, the computer? Yes, as a remark, I could have a portable computer. I mean, it was always meant to be a game authority, actually. Another question? The question is, what about multiplayer? I'm actually a fan of multiplayer games, mostly local multiplayer games. And I'm a little bit sad that this device can be easily... So you can't give that easily to another player. Or maybe there will be games that involve that. But you can't throw it because most of the people, when they throw it for the first time, they say, oh, I want to throw the balls. No, it's fragile. But yeah, online multiplayer could be another way to solution. This would imply that many people have this device. For now, it's not the case. We're going to have to stop there. So you can ask us any questions afterwards. Thank you.