 Hi, I'm Kale from the Technology Exploration Team. So I guess if you have paid attention to the banner on the meetup page and the Facebook group, one of our key topics today is this Barauder Snap on iOS. So basically, if you're a fan of Harry Potter, if you've watched the movies or read the books before, you will know that Harry Potter uses this map to kind of track the movement of people around the Hogwarts School. So he uses it, he can see people, he can avoid people, he can track where they're going, et cetera. So basically, we tried to do the same thing, and Apple recently introduced something to do with indoor positioning. There's no straight-to-call location that can make you soft today. So in Harry Potter, she would say this line, I suddenly swear I'm up to no good to kind of activate the map. But for us, I would probably want to say that we are not up to no good, but occasionally we would use the tracker for maybe not so good reasons. So one of the key, we basically released this app called Level 8. So if you don't know yet, this flaw is basically we kind of name it Level 8. It's kind of home to the technology transformation group, which is headed by our CTO, who's hiding at the back. So we built a feature into the app that was kind of like a number one request. Can we track the boss and see where he's going around the flaw? So yeah, we built it, and then it was supposed to buzz us, but hey, he's in the left wing, he's in the right wing. And then of course, maybe you can make it easier for you to find him. If you want, maybe if this guy over here, Thongs, who is basically one of the main holders of this project, he kind of uses it to avoid the boss, maybe. Like if you see him coming around the corner and you just run away. So of course, with all that IT projects, there is kind of like a methodology that we try to follow. Maybe if you want to call that lean startup or whatever, we start with a very simple MVP. So does anyone recognize what beacons these are? Yeah, basically just Estimola. We bought a bunch of Estimola to play around with. And our MVP was quite simple. Basically, this is the kind of like the floor plan of level eight that you're currently on. We basically just throw in three beacons, one left wing, one right wing, and one for this center entrance area that you guys are at. This is like, yeah, you can see the beacon over there. It's still there, we never took it down. So yeah, this is like a simple version, right? When you come out and live, your phone will hit region monitoring, you take this beacon and it'll tell everyone else the report to coordinates back to the server. I'll just say, oh, he's on entrance area, something like that. This is like a very simple version. But of course, this is the first level MVP, right? Then if you want to go one step higher, still using beacons, this is something that I would reference to K-Meng stock in November, which he mentions this thing called beacon trilateration, where he uses multiple beacons to calculate the position of the user based on the distance he is away from from each different beacon. But using this method, right, we can still get the position of the user, but it's not without issues, which K-Meng also experienced during his talk, like interferences from external signals, et cetera. So one of the major issues with beacons, I would say is the interferences, like Wi-Fi or clash, even the lights could be anything, the frequency that's similar to clash. Human bodies, like in a room like this, we're probably blocking that beacon from being detected very well already, because each human body is really made out of a lot of water content, which is a blocker for the signal. And of course, like microwaves and such. And also, the other thing we can take note of is, for this flaw, I'll use three beacons, but if I'm doing the trilateration, I'll need a lot more beacons. And this is just one of this flaw, right? If I was doing something larger, like an airport or a shopping mall, I could potentially be using beacons in the number of thousands, which is also harder for us to manage on a code level. So I guess the logical assumption is, why not just use the Wi-Fi infrastructure that's already existing, right? Which is exactly what some of the big guys have been working on. So in WWDC 2014, so that's like three years ago already, they released this session called, taking call location indoors. So essentially, what their technology uses is that, the iPhone can detect the Wi-Fi signal strengths of the area around you, and also using it in conjunction with the motion sensor, it can detect your location within an indoor space. So yeah, that's basically our Marauder's Mac version of this app that we were building. So if you wanna see like a live version, there are already certain sites that have been mapped and enabled with indoor positioning. So one example is like the Los Angeles Airport. If you are ever dropping by the airport and you're at one of the terminals, if you open your Apple Maps app, you will see that your position now is hyper-accurate, it'll be in the indoor positioning. Accuracy's up to about two to five meters depending on like, differences and such, but you will actually be able to navigate through the map. So what we wanna do is we're trying to achieve that for our own positions, right? So to walk you through the process, it really starts with us having to collaborate with the Maps team at Apple, because the first thing we need to do is actually to create a map of this area, such that now every iOS device will be able to detect it over here. So how this starts off, right, is basically you need to own the location first on the Maps Connect portal. Once you own the location, as a verified owner, you'll be able to start sharing a floor plan with Apple. The Maps team will be the one that can guide you through the requirements of what this floor plan would require, but they will also tell you to pay attention to certain things like the geometries of the space. So like, even the angles of like, you see this, our floor, right, the angles, the corners, everything, all of it is reflected in our floor plan. Other things that you'll pay attention to are things like lift lobbies, staircases, et cetera, because those are what transitions you from floor to floor. And you'll be providing floor plans for every floor that you're mapping into this system. Landmark pictures as well, like if there's an object that's permanently there that people cannot walk through, then you should also add it to the floor plan. So once you actually have everything added in and you submit to them, they will actually do some form of cleaner, et cetera, and they'll return you a geo-json-based file that you can make use of when you're building your app. So this is one of the examples of what we got. And yeah, it kind of details out the area. Then the next step is actually, right, you need to do this thing called an indoor survey. So it doesn't actually work automatically on its own. So you still need the venue owner to actually map the Wi-Fi signals across the entire floor plan using one of Apple's own apps. This app is not available on the App Store. So the Maps team will actually send you a link to download it once you are enrolled in the programmer. And they do give some small best practices that we try to follow. So for example, we are supposed to use the same device for the surveys, try not to switch between multiple devices, because each device could have a slightly different Wi-Fi strand, et cetera. So they try to maintain the same device for the full survey, but it would still work for different devices. Also, when you're doing the actual survey, we don't stay connected to the Wi-Fi network. We leave it disconnected, but on, so it can still detect the Wi-Fi signals around you. This is kind of how the indoor survey app looked. So yeah, basically, if you own many, many venues, I guess if you are one of the property builders, you'll probably own multiple venues with an account. And of course, for each venue, you can also see the number of levels that are available to you from there. There have been submitted floor plans. Then on the right is when we actually run the actual survey. And of course, what you're supposed to do is just select floor by floor, and then when you're doing the survey, we tend to do it in segment by segment to do a full coverage of the entire area. So this is an example of the indoor survey in action. Yeah, it's really running. But basically the indoor survey app, you're supposed to walk the distance. And as you're walking, you're dragging this marker to mark the distance that you're covering. And this will kind of demarket the Wi-Fi signals for this portion of the floor. And now you're supposed to color the entire floor, all the areas that people will usually walk. So it can be quite a painful process to survey an entire floor, especially if you're talking about, I don't know, places that could be as big as like Digital City, for example. There's a lot of walking that you have to do to cover the entire area. Then each time one is done, right, then you can really start the next main segment. So they recommend not doing too many surveys per area, like try to walk as far as you can per survey, but also don't walk too much such that you end up having to redo the entire area if you make a mistake, for example. But yeah, this is basically the gist of the indoor survey app. And then once it's done, the surveys are submitted to Apple for approval. It takes a couple of days for them to check and verify that everything's accurate and usable. Then once all of that is done, right, technically indoor positioning would already be enabled. So within that same indoor survey app, they have a third tab that would show you the floor plans that are submitted, already embedded onto MapKit. And then with MapKit there, right, your user location pin is already there and you can already start walking around and see the movements within this floor plan space. So for us, the next step is, of course, to integrate it into our own app. I guess one thing to note is that the map will not automatically be released on the Apple Maps app, such that it will be public and everybody will access the floor plan. So this is usually up to them and their own agreements with the different parties that are collaborating with them on this. So for example, if you were like LAX, then you could be on the system. Then for other people, it will be subject to their own discrepancies. So if you're building in your own app, right, it doesn't take a lot of coding for us to enable it. It's already built straight into call location. You don't have to do anything special to enable it. You just need to leave the Wi-Fi on and call location already automatically start tracking in an end-op if it is available. But the only thing that you do need to do is you have to change the accuracy to a best setting. So for like, I guess for most of us, if you're not doing like a navigation app, we usually try to be a bit more careful with this setting. Like we set it to maybe like 100 meters, 1 km, depending on how you say it. But for in-node positioning, you need it to be at a best setting. Then it will be enabled. Then things like the floor that you're on and which level you're on, there's already included straight into the CR location object that you will get back from the delegate method. I can't get the answer to that on HomePod. I wasn't talking to Siri, but never mind. Yeah, and if you wanted to do background tracking, it also works. So if you have your normal allow background updates turned off for call location, in-node positioning will work as well. We've actually tested it out. So I guess the first iteration is actually to overlay it onto MapKit. This would be one of the easiest methods because MapKit already controls the user location, the pin. So we don't actually have to manage it. If you actually open your Maps app now, you would already see your pin is roughly accurate just that you wouldn't have a floor plan on the map that you can use as a point of reference to see where you are. But your pin itself should be accurate because it's already taking into account from through your own device, the Wi-Fi settings and everything around here. Yeah, so what we want to do is, we want to overlay the floor plan into MapKit such that we can see where we exactly are. So to do that, right, it's not that simple because of the coordinate, the different coordinate systems. Latitude and longitude are based on this spherical model that's basically Earth, right? And our floor plans are generally flat 2D surfaces. So we have to kind of map them together. And it doesn't apply to the map. Like if you try to stick a piece of paper on the curved surface, there's some kind of distortion, right? It doesn't actually stick flat. So that's where the extra work for us comes in which half of their work has already been made easier by Apple through their own helper functions. Yeah, so the short version is, they do like some form of mapping where you get two anchor points on basically two latitude-longitude points that map to two points on the floor plan. So if your floor plan was like this number of pixels, Y versus the actual latitude-longitude, of course level, our current one is not that high. That's just for example. But yeah, you need a two anchor points and you also need a scale, like the distance between these points. And we make use of this app called QGIS. So QGIS is I think a popular app that will be used for editing and viewing geo-json files. So this has actually helped us to get the coordinates we need, they're already embedded into the geo-json file that Apple would send us. It also gives us other information like the rotation, the orientation of the map on the actual surface as well as the like a scale that we can use. So for overlaying, rather than dives into the details, I would suggest you to watch the WWDC video as well as check out the sample app footprint provided by Apple. Most of it is detailed there and it's actually quite easy to understand. But in short, they make use of some of the key helper functions in MapKit to calculate the map point for each coordinate, the distance between points and the distances at each latitude because some of the distances do vary like as you get closer to the north or south pole, et cetera. And of course, we need to apply some form of transformation of the orientation before we actually add that onto MapKit because basically your fault then when it comes to you, it's kind of straight, but on map it could be orientated in any direction. Yeah, so if you do all that, you can get to this, I would call it our second iteration, which is basically using MapKit without MapKit. Now overlay onto it. So, okay, now it comes to our third version where we actually try to do it within our app because basically we're not using MapKit, right? Our app is a little bit special. It tries to mimic the exact flotem that we currently have and each of our desks are an interactive object by itself. They have a state, they can have tappable, et cetera. So in our scenario, right, we're using a UI scroll view so we can't exactly make use of the MapKit version. We don't really want to overlay this entire chunk of UI scroll view with all these individual views of like maybe over 100 desks onto MapKit. It wouldn't make sense. So what we want to do instead is reverse the process. We want to take that user location data and then convert that data and put it into our view instead. So yeah, basically I will tell you that the entire broader map is based on just this one function that takes in a latitude longitude coordinate which is the user location and turns it into something usable within our UI view for our app. Yeah, this is really long and probably can't see anything but I can, most of the code is actually based off Apple sample app and I can walk you through the basic five steps that we did. Basically the two anchor points are set. We map them to the two anchor points on our floor plan. We get the user location in reference to these two anchor points and then we transform everything, basically rotating everything, such that the x-axis of our display of the UI view and the y-axis map the north and east of the actual map. But we are doing all this just to convert this user location into a CG point that we can actually make use of within our own app, which here you will have it you can kind of see it in action. So this was taken just earlier today actually where you can actually just walk by and then you see the pin moving very clearly. If you want to see a closer demo of this you can look for either tongs of myself, we both have the apps on our phones then you can actually show it to you like how it actually looks like in person. But yeah, you'll notice the seating arrangement is not the same as current one but yeah. So I guess there's some qubits to this. It's not so straightforward. So the first one I guess, if you are someone who has used call location quite often you will already figure out that battery usage is super intensive at the moment. So I would say this has been designed at the start for more short term way of finding kind of scenarios like if you're at the airport and just getting to the gate and looking for directions to get to the gate it will make sense, you'll leave it on for like five or 10 minutes that you're walking and then that's it. But if you want to leave it on for long term tracking like what we were trying to do, it could get quite bad. Like we used basically 82% of our battery life and we didn't really have it on for a good two hours even. It was a lot less than that. So for now this is still mostly only feasible as a short term thing, short term usage thing. So I guess our next step is could we actually combine this with the weekends that we already have existing. So we have been like contemplating but maybe we can use the weekends to trigger it on or off, et cetera. Or use some combination of both. Like weekends could be telling you the radius is like 15 meters. And then if you switch down your act objective it can drop down to the accuracy of five meters. So maybe some logical combination of both. And with that actually we got our mischief managed and yeah, this is our Morales map. Very short introduction to indoor positioning. If you have any questions. Wow. Because of the need for us to collaborate the max team there will be some waiting time for us like say okay I would say I think the first issue is a lot of buildings or rather some buildings may not even have up to date floor plans. So that could be your first hurdle that could take a while for you to update your floor plan before you can actually submit it. At most end doesn't take very long. Usually it's just a couple working days each time. Then for us once you get that updated floor plan the Joe Jason file. You can actually do the rest of the development quite quickly because most of the sample code is already there. There wasn't a lot of details that we needed to work through for that portion. The part of the work is from the getting the floor plan and doing the actual survey. So doing the actual survey I would say anywhere between one to one day up to a week or more for even just a floor like this mostly just to iron out any problems or to redo surveys if you find that it's not as accurate. The advertised accuracy is up to five meters. So you'll still see that slightly off sometimes but most of the time it's okay. Generally acceptable. If your location doesn't require as much details as ours, right? The recommendation is to zoom up further so that it looks more accurate. That's actually the recommendation. If you don't need to have up to one, two meters you zoom up to about five, 10 meters no one will notice. It'll look very accurate already. And if you think about larger scenario like maybe Apple or more shopping mall most units would be more than a distance apart anyway. Would you request this access from Apple if there like a skillet function on Apple's website we would submit a request? You would have to contact them. Currently. Yeah. The next team. We mentioned in this survey is too often, right? If I say the Wi-Fi situation change people install more or less. It's just one access point changing, right? The advertised scenario is you don't have to redo the survey but yeah there are massive changes in the Wi-Fi infrastructure of the location. You do have to do a complete different survey to remand the entire place. You just submit one level? We submitted more than one but we only mapped one level for our app because we wouldn't really do anything else for the other levels here. Then did you try multi-level tracking? Yeah, it worked. It actually worked. The question here is that have you actually talked about mapping all these APs' MAC address to mitigate the battery issues? 80% is quite understandable. That portion is invisible to us at the moment. His question was whether we can do our own mapping of the MAC addresses of the APs and such but the entire portion is invisible to us because this is built directly into call location. So your map is submitted to Apple, your indoor surveys that you complete are also submitted to Apple and now any iOS device that comes here will have access to that indoor positioning. So it's actually not from our app and we can't really do that. I guess you could if you were hacking into the point where you're building your own version. I mean, the only thing is that once you've connected to the AP you will get the home beacon. Exactly, yeah, thank you. There's a way to get it. Your pin technically should be accurate because it still uses call location but I don't think the map is submitted to Apple in Google's database. But on different Apple's? Yeah, so I was mentioning earlier, right? It's already built into the call location of the CL location. It has another object called CL floor. So I think it uses altitude but it saves the altitude as part of your surveying during the surveys as well. So now when you come in from our app we just need to receive it in update locations and we can really detect which floor you're on. So for our case we can really just switch the floor that we are displaying accordingly. So when you switch the floor there's your current location, is it? That's up to our app coding. If it's our own app, it's up to us but for a map kit it will just be there. It will always be there. It just depends on what overlay you're showing. For our app, we will just maintain the paint and just switch the floor. Open space, during the mapping process do you just go to key points like each corner or do you have to do a zig-zag? We try to cover the entire area so that when you actually walk you can see everything. But there are certain best practices that they will try to tell you. So if you walk very messy, they'll probably tell you to redo the survey. Like if you do not walk, they try to basically just walk in a very systematic fashion to cover the areas. But if it's the first part that nobody walks then it doesn't really matter too much. Like there's some corner that no one comes to at all. In a very open space like Airports for example, is it possible just to go to key points and come to the map itself as an open space or do you actually have to go a zig-zag all the way through so that it's... I think for us what we would do is we covered the border, the perimeter first. Then we worked on the inside portions. Yeah, there's a rule to not cut across totally, right? So actually we do avoid the zig-zagging. Any other questions? We have tested it out on non-issue because basically we just pinged it back to our server and saved the coordinate and then now we can display on another device now. So non-issue, we can track. Did that work? Right now I think in our staging room it's just me and this phone though. Did you try like infinity and something? Hmm? Like secretly? No. I don't think we shall do that. Do you need your first prototype and your stage version 2 with basically the power of your studio because of it? Not so much power but... Okay, I would say the first difference is right. The beacons that we use work in the background very seamlessly because it's just region monitoring. You can leave it running in the background. It doesn't take a lot of power and then most of the time it will ping you successfully once you enter the area. But for this one, right, it eats a lot of power and right now we've been testing it. Yeah, like you saw the 82%. So... But the accuracy is also a different question. Because this one, it just tells you that you're in this general area. It cannot tell you exactly which part of the area and if you're only just using one beacon. Versus the Wi-Fi-based one, it tells you right within 2 to 5 metres that you're actually walking, maybe you're walking to the end of the wing, you're walking back. It tracks you all the way. Let's say in a construction site where you don't have a protest before a gap but you're trying to map certain features of large empty space that you want to build. Do you have any more number of inputs into features? Hmm... The alternative I guess is something you can try with Estimol. Estimol has another solution which uses beacons but they basically put one on every wall. Every change in wall, like the wall tilt again, go one wall, wall changes again. Every side of, every surface they put one beacon. And then somehow they try to do that. Positioning, but I think it's subject to the same amount of interferences so still a bit, you know. If you're going to install that many beacons, actually you may as well just install the Wi-Fi. It's probably easier because you don't need that many APs. It's just, if you have only one AP, then it's just one AP. It doesn't really matter. Hey, so can you just repeat again what's your use case for these? Our current use case is called CTO. Is that traffic on board? What's the real-world use case? I think the real-world use case right now, of course the main use case is wayfinding. For visitors who are going to appos, et cetera, it's easier for them to find their location, find out how to go. Appos mostly because if you have problems finding where to go for your gate, et cetera, it's easy. Find retail shops in a huge mall, et cetera. But on the other side, if you can actually corner the track, I would say tracking the background because maybe that might not be so open to public users all the time. But if we can do some form of that, it will be very nice for analytics purposes as a heat map of users within our floor space of a mall or an airport, et cetera. Yeah, that's what we're trying to ask, whether it's any plans for the stakeholder instead of the user. Because let's say in some tech cities that IT show is coming up next week, how does the organizer track the manpower to whether there's a clean air in the room and clean air in the room? Because there's a lot of people there. I guess that's a good question, but also that's the next thing that we can start working on, to see how we can do that. How actually they already used RFID because this is a patch, right? They stick the hand, there's a sticker. That one's not RFID, tracking. That's if you're a visitor by this, we're looking at a scenario where there are none of these things, then all you have is the devices that belong to the visitors themselves. Because in any one time, there's about 10,000 people at some time. They're going to be sure to treat them well too. So the human is that, we can't even call. Is this the next step also? Cool, any other questions? So just about the interpositioning thing, we're just wondering, what places in Singapore actually have it? We don't really know. I mean, okay, on the other side of the coin, is the tourism world working? I'll say we are working with some. We're working with some. But officially, Apple has not released us publicly yet. To my knowledge, no. If you go there and you see on your Maps app, and the pin looks very, very accurate for some reason, it's probably been surveyed. But there wouldn't be a problem like slot them on the app yet. Any other questions? That you can try Apple store. That's heavy like me. He mentioned try Apple store, if you want to try it out. I want to help you. If you need help, not really. But do you want to work with a sports app because they have been talking about this since quite some time? I think they will. If nothing else, I'll hand over to the next speaker.