Daniel: "Hey, welcome to Waiting for Review, a show about the majestic indie developer lifestyle. Join our scintillating hosts Dave and Daniel, that's me, and let's hear about a tiny slice of their thrilling lives. Join us while waiting for review. Hi Dave!" Dave: "Hi Daniel. I'm not sure I'm ever going to get used to that intro. It's great, but..." Daniel: "How many weird words can we push into that intro? Like maybe we can get even more in there. Like... If... Ha ha ha. Dave, I can hear you. That's fantastic. We wanted to record yesterday. And then first, first something was with my calendar. I forgot what it was. Then you overslept. And then we finally connected and I heard, oh, hang on. And then a loud beep." Dave: "Absolutely. Kaleidoscope. Yeah." Daniel: "And then a very naughty word, Dave, you said the F word. I did, yeah, but on Macedon, I kind of censored it, but then you wrote it. So that's like one Euro into the language cup." Dave: "Mm-hmm. You did you actually hear that? Did you hear that? Hehehehehehe Yeah, yeah, it's a good Anglo-Saxon four-letter word. Starts with F and ends in K. Yeah, fork." Daniel: "Hehe. So yeah, what happened on your side?" Dave: "On my side, well the reason for the outburst was because my ears were filled with that beep quite loudly. What I didn't realise was that was most likely the death throes of a capacitor on the microphone that I was using. So what we then ended up with afterwards was a protracted moment of me trying to figure out why on earth there was no audio coming through, which I initially blamed on upgrading to Sonoma. in the last couple of weeks seemed logical. Yeah, okay, maybe I've done something here software wise. But actually, yeah, eventually we figured out it was the microphone, and then it was too late to record because we're on a bit of a time limit when we record, right? This is the start of my day." Daniel: "Mm-hmm. Yeah. And like at some point I would probably fall asleep too." Dave: "Yeah exactly it's late in your day. So yeah but in the time in between I had just enough time afterwards to put clothes on very quickly like get dressed for leaving the house I mean, not that I'm sitting here naked talking to you Daniel but I am in my dressing gown. Because yeah I wish I wish no I'm rugged up against the cold here because it is still it's not winter but it's" Daniel: "You're in your home sauna." Dave: "certainly not feeling like it's fully spring either at times we're getting cold days yeah" Daniel: "No, it sucks. I mean, it's still pretty summery here. Like climate change really, really did a number of on our October. And on a personal level, I'm not complaining, but it's probably not good for the world." Dave: "Yeah. We're. No, no, but anyway, warmth and close one side, well not one side on me. I got very quickly out and into the car and over to the neighbouring town and picked up a microphone so that we could record today because I worked out I would have no time during my working day to do that and then if we wanted to record again this morning well we'd be back to square one with no microphone so." Daniel: "That's the commitment to podcasting that I want to see. So I hear it's absolutely commendable. Fantastic." Dave: "Yeah. Yeah, yeah, yeah. And maybe I might be sounding a bit clearer, a bit better. I've bought the microphone I wish I hadn't sold when we left the UK, which is an SM58 made by Shure, which is your industry standard kind of microphone all around the world, right? This is the one that perform on to record with to mess around with." Daniel: "Yeah. I used to have that one when I was, or I didn't own it, I think, but I was shortly part of a cover band for various rock songs. And that was the microphone I sang into. And I had lots of fun doing that." Dave: "Yeah, yeah, I've seen a clip, you sent me a clip last night of your band and singing." Daniel: "Hahahaha Yeah, the band kind of didn't survive the pandemic basically. It was a band made out of company employees. And so we could practice at the company and all the equipment was there and all the equipment was actually bought by the company. So that was pretty cool. So yeah, shout out to Clix. I think the company is still around, they downsized a lot though. And I left them." Dave: "Okay, yeah, that's kind of fun." Daniel: "because I wanted to like do like travel the world, which was kind of thwarted by the by the pandemic. And then like it just like kind of fell apart." Dave: "Yep. and then telemetry deck of course" Daniel: "Yeah, my tiny little company." Dave: "Yes, yes. Um, oh, anyway, I am very, very tempted Daniel, because I have that clip. Maybe this is the point in the show where I will cut and splice in a little bit of your audio right here." Daniel: "Hahaha And we're back after this word from our sponsors. We're sponsored today by Mediocre Singing, I'd say. Yeah. Dave, what have you been doing? What have you been working on?" Dave: "when I'm not rushing around trying to buy microphones and other things. Well, yeah, to be honest, my day job right now is pretty full on. So my, my ability for, for time for sort of my, my apps and everything else that I do on the side is it's kind of compressed, but since we last spoke, I have continued working on the app that is. sort of starting to come together now. This is this sec, and it's another app, yet another app. I don't, I can't remember exactly what I described last time when we spoke, but it's a image manipulation app. And what it lets you do is it lets you pull the subject from the background, which is easy now. Thank you, Apple. That's, that's an easy API. And" Daniel: "Mm-hmm." Dave: "With that in mind, you're then able to apply different effects to the background and the foreground sort of separately. And you can then export those images out. So you can get some really interesting effects, you know, for example, you can have the person in the foreground has been pulled out and they've got a comic book effect and the background looks normal or, you know, vice versa or some other combination of things." Daniel: "That's kind of cool. I didn't know that was possible actually." Dave: "Yeah, yeah, yeah. So do you remember the, um, oh, yeah, I'm going to get the name of the band wrong, but it's that the song is, um, take on me. It's a ha, wasn't it? Yeah. There we go. Um, and that" Daniel: "Uh huh. Yeah. I can't sing that one that's too high at the end, at the end of the chorus for me." Dave: "Yeah, true, true. And listeners don't want to hear me try and attempt that singing. But" Daniel: "But yeah, they have this music video that's kind of like in a style as if it was drawn." Dave: "Yeah, yeah, exactly. And they did that back then they did that with artists, I believe, tracing over the film and literally, you know, drawing the guy, tracing the guy on the film and then bringing it together and then doing vice versa for the background and all of that. But, you know, 30 odd 40 years on now we're old Daniel getting there. Because that was 80s right so" Daniel: "Speak for yourself, like, aha was always old people music for me." Dave: "Yeah, true, true. Same for me, actually. The video was old by the time I was watching it as a kid, but anyway, that's one side. I'm hoping I can kind of recreate some effects like that in the app. And yeah, I've got a bit of a, to use the corporate lingo, I've got a stretch goal for this app. So like version one is you can do this with photos. Great. Version 1.1." Daniel: "That would be amazing." Dave: "is gonna be, okay can I do this to video as well? I already know the answer, yes I can. Not to be arrogant about this but it's right there and I've been playing with video for quite a while. But I've got to figure out the UI and get that nailed down nicely because the experience here is not going to be as easy as just processing the photo that's loaded." Daniel: "Nice. And then, and then plug that into Govj, or is it like completely going to be separate?" Dave: "It's a separate app, although one of the things that it'll be able to do if I can get the video working is export videos where it's just the subject and the background's been removed to transparency. And then in Govj playing those back will be quite nice because you can use them as overlays and things like that. So, yeah, I can see a new feature coming through in Govj where I add like an extra layer. because at the moment Govj is a two layer mixer, I might add an extra layer where you can add a permanent overlay, and then if you think about what I'm describing here you've got your main video mix going on with the two channels, and an overlay would let you do something like putting the, putting a logo permanently over the output for example. Yeah." Daniel: "Yeah, yeah, totally." Dave: "So that's where it might connect with GoVJ, is it'll let people make overlays easily by just cutting the background and exporting the lifted image. So yeah, I'm sort of deep down the rabbit hole with that. I've got the engine of it working. I'm in the stage where I'm sort of deciding what effects I'm going to add and how they're gonna come together with it. And the UI is pretty prototypy right now." Daniel: "Mm-hmm." Dave: "like I could probably spend another day on it and it would be shippable, which is a nice place to be. But I yeah this is the thing right, my skills here are in the making of the pipeline that edits the thing and applies the effects, and perhaps less so with making a very elegant UI for it. So that's where I'm at though. and then this will be the first Lego app. Shout out to a previous episode where I laid out the idea. It will be the first app that uses all the little libraries that I've been building that let me spin things up relatively quickly. Like I've got a settings menu as a package, I just bring it in, the paywall as a package, I just bring it in, etc. So yeah." Daniel: "Nice. Yeah, cool. I would love to try this out actually. Like in my mind, I have already these kinds of images that you could do, like make things look like a comic book, make people look like comic book characters, try out various other filters. Like I'm just gonna do so many shenanigans with my cats." Dave: "Yep. It'll be fun. That's the idea anyway, I think it'll be quite fun to play with and use once it's up and running. And the other thing is I've been testing it on my Mac as well, just using it as a catalyst app. So I think this will be something I do when I launch it, I'm just going to let it go and tick the box. Well, not untick the box, right? Every new app is signed up for being a..." Daniel: "Mm-hmm." Dave: "an iOS app on Apple Silicon for the Mac. And that's fine, and I'll probably test it there so that I can be sure it's a reasonable experience, even if it's not the perfect experience, you know, that an app kit would be." Daniel: "Yeah. Yeah, but like as someone who so many times was like, oh yeah, I just would like to run that iPhone or iPad app on my Mac. And then like the developer took the time to uncheck that box. So just so I can't do it. Like it's so frustrating to see that because I mean, we all understand that of course, this is not going to be the perfect experience that it might be like, I don't know, a little bit janky, a little bit rough around the edges." Dave: "Yeah." Daniel: "but it's so much better than just not allowing the app to run at all. And I feel like it's actually the same slight excursion here. It's actually the same. You might disagree with me on this because people are now starting to uncheck the box that lets people run their iPhone or iPad apps or Mac apps on the Vision Pro. And" Dave: "Yeah. OK. Yep." Daniel: "And I'm like, no, don't uncheck that box. That platform when it launches will have so few apps because it is hugely expensive. And it is a very hard, it's very hard work to actually build and design software on the, in, in the, in a 3d world that makes sense. And it's easy, easily usable. Like, like just, just leave the checkbox checks, please." Dave: "Hehehehe Yeah." Daniel: "I mean, if you really want to just have a four-liner in there somewhere that first time we launch on a device that is slightly less supported, like on a Mac or on a Vision Pro, just throw up a dialogue that says, hey, this is not perfect, but here we go anyway. Please report bugs here. Whatever. Give people indication that this is not the preferred platform for this thing to run on, but let people run it, please." Dave: "Yeah. kind of laughing at myself here and this situation, because I'm aware, quite acutely aware, that I unchecked that box for Go VJ." Daniel: "I know that's why I'm expecting you to disagree with me." Dave: "Well, yeah, I kind of don't. Um, like the reason I've unchecked that is because for the video mixing app, um, I want to control this experience and make sure I get it right. Like there might be a future on, um, the vision pro that I've not really thought about where I want to have an app there and this space and actually the, the risk here for me with Govj is that. Yeah, people play with it and then I get some level of this doesn't work. And I'll be like, yeah, I know. And I just don't want to get stuck in that loop. It's kind of the same for Go VJ on the Mac as well. Actually that's been the bigger risk really. I think Vision Pro, I think I could probably leave that and like the amount of VJs who will also have a Vision Pro who will also then complain when it's not working perfectly is probably vanishingly small." Daniel: "Mm-hmm." Dave: "But for the Mac, I am aware that there's bits of the experience that just kind of fall off. So for example, it detects the screens you've got connected on iOS. And then if you've got an external screen connected, that is your full screen output. That falls over immediately on a Mac that's connected to a monitor and things." Daniel: "Ah, okay, I can see that." Dave: "So then I'm into like, okay, I've got to think about a screen management paradigm or at least a windowing thing for the Mac where the user can then move it to the screen they want and full screen it themselves or whatever that is. And I've just haven't got around to it. It's been one of those things of like, it's working on the platform. It's intended for I'm going to come back for the Mac later on for Govj." Daniel: "You know what? You do have a point, actually, for your application. I'm like, OK, yeah, I see that. Because." Dave: "But for the other couple of apps that I've got in store, Topiary for Mastodon and then the video to audio converter, there's no reason those can't just have those boxes checked. They don't suffer from that side effect, if you like. They may as well be there." Daniel: "Mm-hmm. Hmm. Yeah, that's cool. I kind of miss now, now I miss writing or working on iOS apps. I've been working a lot of on web stuff and, and server backend stuff. I wrote a little bit of a vision pro code. Um, but yeah, I kinda, I kinda didn't have the time to really work on the telemetry app and it shows I actually recently got an email that says, Hey, it was a really friendly email, but." Dave: "Yeah, you've been in the web for too long. Yeah." Daniel: "The person who wrote it was like, um, I don't know how to say this, but the, the mobile app is terrible for telemetry deck and they are absolutely right. It's just, yeah, I didn't find the time at all. Um, I actually, did I tell you this? No, I didn't. I, I made an account for Hacktoberfest and actually tagged the mobile app for Hacktoberfest and it kind of didn't work out for me. The problem is, I think." Dave: "Yup. Right. Okay." Daniel: "that while the app is technically open source, you kind of still need, are kind of tied to a commercial service, which is Telemetry Deck. And people don't really like that. So that's the philosophical aspect, but the practical aspect is just that the app right now, it doesn't really have a good onboarding experience for people who work on it. Like there's..." Dave: "right." Daniel: "There's various areas of the code that are littered with deprecation warnings that I wrote as a reminder for myself to work on this. But if you are just like someone who just comes into the project, it kind of feels very abandoned and broken. And also like there is new code that if, for example, like where I'm trying to port everything to Swift UI charts, no, Swift charts, but that's kind of like halfway done and they have therefore still in a, in a PR." Dave: "Yes." Daniel: "So I wish I had realized that I wanted to do this way earlier, like in the beginning of September, let's say. So I just didn't realize that I could, of course, take part in Hacktoberfest. So yeah, I got a few PRs for the Swift SDK for Telemetry Deck. That was really nice. So thank you for everyone who contributed there. But the mobile app is still a mess." Dave: "Right. Well, that's cool. Well, I mean, Daniel, you are the lead developer, CTO, founder, sometimes marketing guy, DevOps, cloud engineer, managing Kubernetes, cloud engineer. Yes. The nose that tipped me off." Daniel: "DevOps. Clown engineer." Dave: "No, the, uh, so what, you know, you're a team of, I don't want to say one, cause there's more than one in Tlemish Udeque, right? You've got your co-founder and you've got a couple of other people that you work with." Daniel: "Yeah. I got, yeah, I got the Lisa, my co-founder, and then we have Marina, who is working part-time on the documentation. And we have Charlotte and Ferran, who are both contributing to code every now and then. So I'm hugely grateful to all of these people because they are fantastic and amazing and it's an absolute pleasure to work with them. So if any of you are listening right now, you're amazing and I love you platonically." Dave: "Yeah. Oh, beautiful. And yeah, I must say every time I've spoken with anybody on your team, they're, they're all awesome. But the thing I was highlighting though, is you don't have somebody who's dedicated full-time role says Swift UI app engineer or version of that iOS person. Yeah." Daniel: "They are. Hmm. And it shows, of course, like that's a lot of the time I try very, that's one of the reasons why we're not officially supporting the mobile apps at all anymore. Like they're open source and there's a blog post and it says in the readme and everything like, Hey, this app is unsupported. Use it as you add your own risk because I just have don't have the time right now. I mean, I feel like I'm doing a lot of things right regarding how and where to put my work in a way that" Dave: "Yeah. Yeah." Daniel: "I get a lot of like component-based stuff that then is reusable and then that is then like in a way multiplying other works that I'm doing. And so like, I think that's very important if you are trying to be as lean. Oh God, that's one of those buzzwords, right? But I can't find a better way to describe it right now. But like, if you want to be that, if you want to..." Dave: "Yep. Yeah." Daniel: "try with a very small or one person team to reach your goal, you kind of have to do it like that, like decide which one where's the best reward for your work, like which lever is the longest, so that you have to do that, you have to, you can actually move something with the little amount of work that you can actually do. And yeah." Dave: "You too. That's it. And I mean, sorry, I'm looking at my screen here and in my doc on Sonoma, I have a telemetry deck icon. Okay. So" Daniel: "Mm-hmm. I wonder if it's finally updated because in my doc I have a very beautiful telemetry deck icon but most of the people who try to add the telemetry deck web application got just the fav icon. I still can't figure out why." Dave: "Okay. Yeah, I'm not sure. I'd need to double check with you after the show maybe, but it-" Daniel: "Like if you have the right icon, if the bottom half of the icon is red, as if the spacecraft would be landing on a red planet. See." Dave: "Right I've got the old icon. It's not a bad icon though. Your telemetry deck mascot there. Is it Sondrine? Yep." Daniel: "Sondreen because the German word for space probe is Sond. So Sondreen is that kind of flows from that." Dave: "Okay. So Sondrine is quite happily in my dock, albeit not on the new background that shows Sondrine landing, but Sondrine is smiling. And what I've done here, as you well know, is that I've been using the new web app feature on Sonoma in Safari to go..." Daniel: "Fantastic. That's the most important thing." Dave: "Okay. You want a website, you go up to the file menu and you go add to doc and telemetry deck does all the things to do that nicely. Right. So I get, I get an icon. Uh, we'll, we'll wait for the new ones to update, but that's fine. Um, and it, you know, it's, it I'm logged in. It is the web app, but contained in a window and I've got to be honest with you." Daniel: "It does." Dave: "like this is no different in experience to what it would be either in the browser or if you would spend some time wrapping it up as an Electron app for example. Yeah." Daniel: "Oh yeah, like basically the existence of this feature makes me completely destroyed any plans of making an electron based app or not. It doesn't even have to be electron based, but you know what I mean. Like this is good enough for now." Dave: "Yeah, yeah. Now I'm going somewhere with this side thread, if you like, is that you can do this today with web apps on iOS as well. Yep, so you can go add to home screen and then it will do pretty much the same thing on your iPhone in terms of giving it its own dedicated sort of window rather than in the browser." Daniel: "Uh-huh." Dave: "provided the web developer has given it a manifest and done all the things for it to register it in that way." Daniel: "and also made the web application in a way that it kind of works on smaller screen, which Cinemetry Deck does half of the time." Dave: "Yeah. Okay, so there's a route there maybe of like fixing that half with web dev. And then you've got, um, not quite an app, but an experience that can be added to, to the iPhone." Daniel: "Yeah, I'm pretty sure that's the way to go for now. I would love to resurrect the mobile app just as a viewer app or something, because it's really nice to have. And also because it's my one outlet where I can still program on my favorite platform." Dave: "Yeah. Yes, yes. And I think this does value for you doing that in terms of then dogfooding your iOS SDK, right, for telemetry deck and that sort of stuff. But I guess what I'm saying is you've got limited time making sure that the web version has an experience on mobile that is useful and functional. People can still add it as an application on their phone. So" Daniel: "Yes, exactly. Yeah. And that's one of the examples where I say, okay, this is like, I have to choose good enough as much as possible. Um, you know, that video that they had when they introduced iOS seven, I think, uh, where they was, where they were like, you have to say like each yes means also means a thousand no's. They, uh, they, Apple, they meant design decisions. Whereas I'm, for me, this is most, mostly about." Dave: "Yes. Uh, yeah. Yes." Daniel: "engineering decisions. Every time I say yes to something that is a lot of work, something that is really an actual thing that I'm developing over multiple months, let's say, I'm also saying no to a thousand other things that I could do in that time. So I have to be very careful to as much of that or as many times as possible say, or use a good enough solution that is already there or some sort of shortcut." Dave: "Yes." Daniel: "or some sort of like using something that's very efficient, even if it's just gives me 90% of what I want, and then use my full-time development time on like few significant things or parts of the application. That's mostly server stuff these days." Dave: "Yes. And that makes sense. That makes total sense until you can clone yourself, you know, and it'd be awesome. Yeah, it depends. Right. Yeah. This will completely derail the show. So maybe I go there anyway." Daniel: "be nice. That would be nice. Or horrible. Okay, then let's not talk about it. I do want to talk more about development though, but not about iOS development, but about development for the Vision Pro. So I have two facts that are completely unrelated that I just want to tell you about, which is the first one is" Dave: "Yes. Okay, tell me more. Yep." Daniel: "I reapplied for the vision pro lamps and I got in a second time. Like I am very fortunate that they are just an hour's train run away from me. Whereas other people who are there, they had to like arrive from all over Europe. Um, and so, um, I was like, it was, I was told that is, is completely fine to reapply and, um, get in a second time and like work on something different or on the same thing, but with more experience." Dave: "Yay! Yep. Oof." Daniel: "And so I reapplied. And again, I had a fantastic and wonderful experience. That's the one thing I want to tell you. And the other thing is, so the last week, which was after my Vision Pro visit, I worked a lot with reality kit and AR kits, SDKs that are in the Vision Pro developer kit. I'm using Xcode 15.1." Dave: "Okay. Yeah." Daniel: "So yeah, so if you look at the documentation and the example code and everything is all public, right? So I'm not telling you anything out of the session because that's... But this is all public information, but it's still like super, super exciting because I really didn't know like which one is the reality kit, which one is AR kit. Then there's also a third one, I think." Dave: "Yep, yep, we've been very careful to thread that needle. Yep." Daniel: "where I forgot the name right now. And all of those are also different from what is on the iPhone, because the iPhone has ARKit. And it turns out ARKit on the iPhone and ARKit on the Vision Pro are just two completely different things. Like ARKit on the iPhone is like, it will give you more or less a LiDAR scan of your surroundings, and then you can place stuff in there and like look at it from different things." Dave: "Yes." Daniel: "So it will give you just all the data. It will ask you once, like, hey, can this app access the camera? And then if you say, if the user says yes, then the app will get the camera data and can put stuff in the 3D room. The ARKit will give it various planes and stuff to put stuff on top. You can also tap the floor, for example, when your 3D model gets sped up. placed on the floor, all that kind of stuff, right? So ARCAD for the Vision Pro is super different. It feels like a completely different SDK. And I think this is, that is correct. That's correct." Dave: "This is ARKit, not RealityKit. Yeah, that feels very different SDK. Yeah, that feels very different to me, what you've described like that. Because ARKit on iOS is kind of the glue, right? That then communicates with whatever rendering." Daniel: "Mm-hmm." Dave: "that you've gone in for over the top. So I mean you have to have an ARKit session on the go and that sets the camera up and the type of tracking and stuff that you've got set up right. That will trigger the bit that comes up that tells you to move your phone around and all of that. And then you then usually display a scene that is from" Daniel: "Mm." Dave: "either scene kit or reality kit is kind of the next stage beyond that. Right, Aoket is sort of humming away in the background doing all of the stuff to drive those scenes after you've set it up. So that sounds a bit more beyond." Daniel: "Right. But what I'm saying is that using ARKit on the phone, you can get access to all the, like, you can, you could in theory, like, create a, like, take photos or take images of what the user is actually looking at and stuff like that. And with the Vision Pro, what you can do is, or what you do with ARKit is you initialize it and start an ARKit session. And then you can place stuff in there. But." Dave: "Yep." Daniel: "you don't really get to see this stuff that you place in there programmatically, because you would automatically, without asking for it, you would be able to film the user's surroundings. And so you also don't have SceneKit, I think, but you have RealityKit." Dave: "Okay. Yep. That's been headed that way for the last few years. Like reality kits been getting all the updates and kids kind of been just dying slowly." Daniel: "Yeah. Yeah. You also can do a thing that's called metal rendering, I think, where you can just supply your own 3D engine. But I haven't really looked at that. And everything, by the way, everything I tell you right now is just from my interpretation of the documentation. So I might be wrong about these things, right? Like don't take anything I say as gospel. And so scene kit is mostly for... Oh, hang on. Reality kit is what you use to..." Dave: "Yep." Daniel: "uh, anchor your entities into place. So entities are basically everything you place in the 3d scene. Um, and the anchoring means you can either, either say, Hey, this, this thing, this cube that I'm, for example, like I'm, I'm placing it as this location. And then if you like leave, then it's not, and then return that the, the thing will still be at that location. It's like, as if you would leave a physical thing somewhere. Um, yeah." Dave: "Yes. Yeah." Daniel: "Um..." Dave: "And RealityKit is great in my experience. Certainly on the phone, I found it was very, very good for literally that, right? For hooking up, running the scene and had some very good, I want to say, gestures that you can attach to objects. So it was very easy to move them around. Versus I found with SceneKit." Daniel: "Uh-huh. Right." Dave: "you needed to do a bunch of stuff yourself to sort of check where the user is pressed has actually hit the thing. And I know they made that less complicated over the years as a sort of hit testing function that uses the, I'm gonna sound awful to somebody who knows this in better depth, but it uses a ray tracing option, I think, or something like that. It's a ray, like a raycast, raycasting option. Yeah, there we go. To say, okay, where is this hit in the scene? And so on. Whereas reality kit, I found a lot easier to just go, hey, when the user does the thing, do this thing, and move on in life. Like the, the API is just nice to work with." Daniel: "You mean a ray casting? Yeah. So from just going through the APIs and trying various things out, I think what you do in the Vision Pro would be you use ARKit. And that gives you, and I think that's only on the Vision Pro. And that gives you not only planes, but you can basically ask it for, hey, give me all the horizontal planes or vertical planes. But like I said, horizontal. And then it will also tag those. And you can filter those." Dave: "Mm-hmm." Daniel: "for example, would automatically detect a table or the floor. Or so you could say like, hey, give me all the tables, but not the floor. And so that's kind of cool. Or you could say like, give me all the walls, but not the window panes. And so you will get these as entities, which is just them, just objects basically. And then you can place content on top of those. And of course you could also do the ray casting thing." Dave: "Okay, that's really quite cool. Mm-hmm." Daniel: "Or you could allow your user to just like move around your 3D stuff somewhere. Um, and so what I wanted to do was, um, I was like, Hey, I could, I could take a box and then just like put the box on a table, maybe. And then maybe, uh, you know, like just if the user clicks or taps on the side of the box, then just add a second box there and then kind of allow them to build a very pixelated or 3d, so voxelated sculpture of some sorts. And it could be cool to like visualize things or I don't know if I. want to buy a new table, then I can very coarsely build the table out of these pixels and I can see how it looks in my living room or whatever. I was like, okay. And so what I found was that I wanted to do raycasting to see which side of the cube my customer or my user is looking at. Turns out raycasting is... Well, you can do it. You can use a collision component. But because of the privacy angle and because you are very much not allowed to know where the user is looking, like that's one of the things that is like so locked down by the system. I think nothing can get there. What you use is like you..." Dave: "Okay. Well, do you mean where in real life or how do you mean? You mean like..." Daniel: "Like if you've seen the videos from Apple, then if you use the Vision Pro, then you kind of select things by looking at them. So it has the hardware to know exactly where you are looking, but that data never gets to any app because that would be bad to have detailed or very privacy invasive. To have a detailed heat map of where the user is looking at. So what you can do like in..." Dave: "Yes. Okay. Yeah, I understand. Yes." Daniel: "in normal Swift UI is you have like various interactive components and those gets a hover state. And so basically, if the user looks at those components, they will trigger their hover state and you don't even know when it's hovering or not. And so the same thing you can do in 3D basically with, it's called a collision component. And so you have like my cube, for example, if I mark that as a collision component, then if the customer" Dave: "Mm-hmm." Daniel: "then it will actually light up. That's pretty cool. But I can only register whole components as collisions. So no ray casting and seeing which side of the box is kind of being hit, right? So I think I'm gonna have to build my cube out of individual planes." Dave: "Okay, yep. Okay, I understand. And this is probably you butting up against some of that privacy control there because I guess somebody could use that mechanism to circumvent it to some degree." Daniel: "Yeah, and I think just building a lot of planes is just the way to go because then that's exactly what I want to do, like selecting a single plane. Yeah, I'm kind of like the wall that I'm really hitting is that you can't really run ARKit on the Vision Pro Simulator right now. So I've been playing around with the APIs as much as I can, but I think at this point, I'm just going to..." Dave: "Yeah. Right." Daniel: "like put it to the side and say, okay, this has been a really cool experimentation, but I can only do this once. I don't know. Apple sends me a dev kit or the thing is available and I'm very rich or whatever." Dave: "Yeah." Daniel: "But it's super fun, regardless." Dave: "Well, that's the thing with all of this, right? It's like the Division Pro on day one is financially not something I'm going to step to. Right? That's not happening. Not least of-" Daniel: "No. I mean, it is, it feels like it's a dev device for, like it will have a public release, but it is basically something that the people who want to write the apps are buying. And then the second or the third generation is the thing that normal people are gonna buy." Dave: "Yes. The same as the watch, to some degree. The same sort of story as the Apple Watch had overall. They launched it to everybody, don't get me wrong, and a lot of people outside of the developer community did buy the first generation Apple Watch. I tend to dub it the Apple Watch to zero, because then there was a... the next version was numbered. That's right, yeah." Daniel: "Mm-hmm. Yeah. There was a series one after that, right?" Dave: "I think that's probably a good way of looking at it actually, like this is version 0 and you know the one after it will be more tuned, more honed, probably potentially a slightly better financial niche because at the moment it is too expensive for most people to be honest to justify buying." Daniel: "I'm unsure if it can be much cheaper. I mean, like in five to 10 years maybe, but there's so much technology in there." Dave: "Yes. Yep. Yeah. And I get that. I get that. And it's, um, I guess what I'm saying though is what we've seen with the watch overall for users and developers is I kind of don't feel like the watch was really there until maybe series three, just in terms of the overall overall, um, dev experience, starting to get a little bit better." Daniel: "Mm-hmm." Dave: "I think it was still pretty clunky at that point in time." Daniel: "Speaking of the dev experience, the dev experience for the watch is now pretty good, but still there's no Apple Watch apps. And I had a discussion on Macedon about this the other day. And I feel like as a developer and as a user, for 99% of use cases, I can't use an Apple Watch app. Because" Dave: "Yes. Yeah. Mm-hmm." Daniel: "because they are too finicky to launch. So by the time I found, even with a new app selector on watchOS 10, by the time I found the app and actually launched it and then waited for it to launch, I could have pulled out my phone three times over. And then also it's just so little space and it's so hard to actually craft a user interface that is both... usable and still gives you all the things that you need to do. Because if it's just one button, then you don't need a watch app for that. You can just have a complication or a Siri command or an intent, I mean, or a widget or whatever. But if it's more, then it gets finicky to use. So yeah." Dave: "Mm-hmm. I hear you. I really do." Daniel: "And also like sometimes if there's an Apple Watch app, it actually takes away from the experience. Like I am a huge fan of this hiking app, Komoot. It's for like planning hiking routes and also like planning biking routes. And it will also, if you then go on your tour, it will then also optionally launch its Apple Watch app and then try to give you directions." Dave: "Okay." Daniel: "and track your workout. Thing is the directions are horrible. Not really their fault. It's just like they work with open street map and sometimes their algorithm gets very confused when the, um, the, um, the order of streets is different. Like the, there's no, there's a primary street and a secondary street. And it'll think that the, like it feels, it'll think that they are, they are both the same." Dave: "Mm-hmm. Yep." Daniel: "value, but in reality is one is like a huge like street with actual asphalt and the other thing is just like a little path that some people have walked and it will try to navigate as if you're coming to an intersection these kind of things so the navigation on the watch app is like just useless and And also like you don't have a compass on the watch right so it doesn't actually know in which direction you're facing so the little arrows are not very helpful and Also the workout that it captures is of less quality than the workout app in the watch would capture. So when I'm doing these bike rides, I'm very, very careful to make sure that the Komoot app on the watch is not launching because suddenly I wouldn't get speed information for how fast I'm riding my bike. I would get some heart rate information, but not VO2 max, for example." Dave: "Ha ha! Ah, okay. I'm, yep. Yep. Ow." Daniel: "Um, I don't know if that's an API thing or if they need to update their app or whatever, but I'm like, yeah, I like for navigation, it has voice prompts. So we'll tell you, I'll tell you like turn right at the next intersection or whatever. And, um, yeah, the activity app will get my, my actual health data way better. So yeah, I'm skeptical on watch apps." Dave: "Fair enough." Daniel: "And the watch, the Apple watch is a fantastic thing. And I love mine for what it is, which is mostly a notification reader and health tracker. Um, but I very, very rarely watch, want to actually tap on the screen. Like the less I have to tap on the screen, the better, like I want to Siri into it. Um, but that would require Siri to be more open, I think. So I, as a programmer, I would, would have to be." Dave: "Yes. Yep. For me that would require Siri to work more, I still... yeah." Daniel: "Yeah, like, Syracuse has these intents and for all intents and purposes, they are very limited. And so I can't really..." Dave: "Sorry, that was a rimshot drum." Daniel: "And also they kind of have to like, they always have to kind of open your app if I remember correctly. Like I haven't looked at them for a year or so that might have changed. But like most of the time I can't get like from, I think most of the time as a developer I can't really tell Siri, hey, if the user says this, then maybe like pass it on to me. Like most of the time that doesn't work. But even if that works." Dave: "Yep." Daniel: "Um, then I actually do need an app again. And I'm like, I just want to, I don't know if I could just say, Hey, start a commute workout or whatever, that would be so cool because that's literally what I'm doing when I'm starting to have a bike tour. Um, but yeah, I think, I think Siri needs to be more and I'm, I'm kind of like hoping that, um, people on inside of Apple are working on an LLM based replacement for Siri that." Dave: "Ha ha ha. Yeah." Daniel: "allows these kinds of plugins or intents better. But yeah." Dave: "Yeah, I feel similarly, regardless of my sort of misgivings about LLMs and the huge amount of energy that they use and all of that side of things, I feel like that type of approach for Ciri would be, as a user, much better in the end. I kind of see that they could probably do things in stages in the sense of having some sort of wrapper over Ciri and the existing stack." Daniel: "Mm-hmm." Dave: "that better interprets what you're trying to do. Like that would be, if they want a minimum viable then do that, please. Because there's nothing more frustrating than knowing Siri can do a thing and you've just not said it right. You know?" Daniel: "Yeah. Oh yeah, oh yeah. And especially like most of my devices are set to German Siri because I will get German text and I wanted to read the German text or I want to send German text or whatever. Or I get, yeah that's the most, like that's most of the things. Also use it a lot for home automation and I want to say the German name for the room instead of like suddenly switching to English because it feels weird. So German Siri is even worse because..." Dave: "Yep. Yes." Daniel: "you know exactly what to say to the English Siri to make it work, but then the German translation for that phrase will often be way clunky. So there would be like a colloquial German way to say it, but Siri won't recognize that. So you have to be the you have to use the very formal 17 word phrase that means please, please facilitate the moving of this audio recording or the audio playback to the living room." Dave: "Yeah." Daniel: "And then it will think for a while and be like, hey, okay, your music is now playing in the living room." Dave: "Oh god, no, no thank you." Daniel: "Ah, so it would be nice. So yeah, so Apple Watch is really, really cool, but I want to touch it as little as possible. And I think many people think the same. And that doesn't mean it's a failure as a product. It's an amazing thing. It's an amazing product. But yeah, it's probably not a full-fledged app platform." Dave: "Yeah. No, no, no. No, and that's where my analogy for the Vision Pro sort of falls over slightly right, is that I certainly don't think the Vision Pro's potential app experience will be as limited as the Watch, I think it's the opposite. But I think in terms of what we will see as users and developers and the progression of it, if I remember the first sort of two to three years of the Watch, I think the Vision Pro's got that, but probably over an even longer time scale." Daniel: "Oh yeah." Dave: "you know, given the constraints." Daniel: "Yeah, for the Vision Pro, I think, I think, like, I might be wrong, but like my feeling is that because if you look at those videos and look at what the Vision Pro can do, it has like, it suddenly has window management, something that hasn't been on iOS, like, except with very few exceptions. Like, you have a little bit of stage manager or whatever, but you suddenly have window management and a processor that is really, really powerful. There's an M2 in there, I think." Dave: "so they can do it. Yes." Daniel: "So I think that many people will be naturally inclined to have lots of apps open and to work. You also have large spaces because you have all the room. Your apps can be and grow as big as the room, basically. Or even if you use one of those, I don't know, what are they called? The virtual backgrounds or whatever. Even bigger, right? Because that's basically infinite." Dave: "Yes. Yeah." Daniel: "So I think that will make people very quickly realize the limitations of the iOS style sandboxing model and interaction model where you can't just like move stuff from one app to another very easily or make apps like interact with each other because especially on a phone but also on an iPad it feels very natural to have just one app in full screen because that's always the case right but" Dave: "Yeah. Yeah." Daniel: "If you have something that is very Mac like in a way that's big, like very Mac like in that it can display multiple windows easily and naturally next to each other. And he allows you to rearrange them however you want. Then I think that's going to expose some of these limitations. And I wonder how people are going to react. It might be that they're just like, Oh yeah, well, the vision process, not very good because I guess can't do shit. Now I said a bad word. Ah, I got to put a." Dave: "Mm-hmm. Yeah. Hehehe" Daniel: "something in the swear jar now. Or it might be that people are like, hey, Apple, like, come on, allow us to do this because we need more ways of apps to interact with each other, to break out of their sandbox, if the user allows that and stuff like that." Dave: "Yeah. Yeah, I could see that. I think, um, to me, it, it fascinates me where this could go overall with the vision pro. I think what concerns me in some ways as somebody that, that is what concerns. Yeah, I do. Um, my concern for the vision pro is it's going to be the right product too early and in kind of the wrong form. Like" Daniel: "Mm-hmm. Oh, you have concerns." Dave: "And what I mean by that is like the bits about the Vision Pro that are obviously clunky, like the external battery pack sort of thing seems, you know, to somebody who's not been to any labs, it seems clunky, that that's the thing. And don't feel obliged to reply, Daniel, you're under embargo. I know that under NDA, that's fine. But that seems clunky. And then I feel like the price of it and where some of these aspects of the experience are going to land as well as going to work against it being able to land in a niche and to establish itself. And that was kind of the worry about the watch on day one was because I had all those options for the watch that sort of led you all the way up to like $10,000 US to have the..." Daniel: "Mm-hmm." Dave: "the golden crusted diamond fronted whatever the hell it was version of it. Um, so the division pro, obviously it's a pro device and it has all the things and there's a lot of tech packed into that box and there is no sport version right now that people cluster around. So I, my concern if you like, is this, this is going to combine to sort of make the, uh, make the cake deflate in the middle." Daniel: "Yeah." Dave: "as it were right yeah it's cooked you've got a cake but it's kind of collapsed in the middle a bit and that i feel like that's my concern right now for the vision pro uh" Daniel: "Mm-hmm. Yeah, it's a valid concern because three and a half thousand bucks. U S is a lot of money. Like it's going to be more with tax or in Europe if they ever release it in Europe." Dave: "Yeah. And, you know, I mean, like, it's gonna" Daniel: "And like, who wants to put 4K into a device where they don't yet know if it's going to be good, if it's going to be useful, if it's going to be fun to use even, like, especially at the beginning, like it's a, it's a whole new category. Of course, there are other VR headsets and they work very similar, but all the other headsets are either Facebook only, or are mainly used for gaming. Whereas this thing is just not for gaming at all. Like it's." Dave: "Yep. Yeah. Mm-hmm." Daniel: "You can't even like, I mean, you could probably like force it into serving as a gaming role, but it's not built for that really." Dave: "Yeah. So, so I mean, all of that, that could combine to sort of, you know, mean that it doesn't really succeed. Uh, and then the other bit of it I can see as well as like, people aren't going to know what the cycle looks like. So you can't predict, you know, there's, there's an element of like, does that price look reasonable if I can expect to have, you know, five or six good years out of this thing, like." Daniel: "Mm-hmm. Oh yeah, that's a very good point." Dave: "So, you know, which I think is probably not going to be the case. The processors are getting updated each year for the, um, Apple Silicon in one way or another, or sort of on an 18 months to two year cycles. Again, that's still sort of bearing out at the moment. Do we get an M3 this year? Do we not? Um, like all of this combines that, um, Even for people who have the money, I can see there being a potential for sort of decision paralysis and kind of seeing how it goes. And then that also then leads to it sort of being declared a bit of a flop. So I guess what I'm thinking here overall is I hope Apple have got the backing for this internally the vision for this. There we go. Another one." Daniel: "Hmm." Dave: "to lost sleep with it. Um, as much as, as much as possible, put that money behind it and, um, let it get to where it needs to get to before sort of then go, right, it's got to be profitable now. And I think Apple's the company to, to do that, you know, versus say Google, the, who would probably kill it. Yes, they do." Daniel: "I mean, I mean, like, they have enough money. They have enough money, but when has ever Apple ever sold anything at a loss?" Dave: "Oh, I don't kind of mean like literally at a loss. I mean, to keep backing it as it's taking off. So they might not be seeing it as profitable as it will be, you know, or the margin on it is incredibly low, but that's okay because they're establishing this new platform. You know, I think that's the way Apple's got to behave. I think that's the way Apple's got to behave to make it succeed." Daniel: "Okay, I can see that I can see that I mean, I would totally love it if they... Oh, sorry. Right. Oh, yeah. I mean, it would be totally, totally rad if they would just sell it for sub 2000 bucks or whatever. I think that would be them. That's the magic number maybe. Or there's a magic number somewhere where people are, OK, I don't know yet, but I am a rich technologist and I will buy this." Dave: "Yeah. It's got to be the category of getting close to the studio display in price. I think that's the thing. You can look at that and you can go, okay, I was thinking about updating my monitor, but for another $500 I could have as many virtual monitors as I want. At that point, yeah, that could work for a lot of people." Daniel: "Mm-hmm. Yeah, I can see that." Dave: "Uh, yeah, we, I mean, we will see Daniel and I'm insanely jealous that you've been able to play with it and, um, start thinking about apps in that space. Uh, yeah, I eventually want to bring something to it. If things are looking good, you know, like the VJ app has got some potential. Yeah." Daniel: "Ha! Like especially go VJ. I think that would totally work because not only, um, do you have a lot of space, so you suddenly can, can work on your VJing and you have a preview area or whatever, like that, that totally works. But the other thing is how, like, you know, on raves, like people always love to look weird and futuristic and cool. Like the Vision Pro does look weird and futuristic and cool." Dave: "Mm-hmm. Yeah. That's true. And I can see that being the, this situation where you've got the, the artists performing the video. I'm possibly even with audio as well. Right. Those, those at the moment go VJs literally for mixing, uh, video to live audio. So somebody else is doing the audio that a DJ is playing and the VJs mixing the visual sets on all the screens or projectors around you, um," Daniel: "Mm-hmm." Dave: "Yeah, and sometimes some VJs do dress up, you know, and are part of the sort of stage acts inside of all of this. Not that often, but occasionally. Um, like, you know, having one of these strep to your head to perform isn't gonna seem that out there compared to anything else. Um, yeah, maybe. And then there's also another side of this potentially in the far-flung future where enough people have these." Daniel: "Mm-hmm." Dave: "Um, having an artist controlling a shared 3d experience for everybody in the space that you're in, um, becomes a thing, you know, like as the DJ drops the beats, the VJ is then making the AR dragon fly over the crowd, that sort of stuff, right? Like, who knows? Who knows? Um, never say never. And maybe I'll be justifying buying one for, for building an app that brings this sort of stuff to people." Daniel: "Cool. Hehehehehehehehehehe Damn yeah." Dave: "Um, maybe. I think we're a few years away yet from me being able to say that with any certainty." Daniel: "Yeah, it just needs it just needs to be integrated into regular people's glasses. Like, oh my god, that would be so cool." Dave: "It does. Yeah, that's the killer. That's the killer approach. Daniel, I need to start the rest of my day as we touched on at the beginning of the show. My day starts after we record. And so yeah, I need to wrap up talking with you, I'm afraid." Daniel: "Yes. That's fine. It has been fantastic talking to you and I hope we can find back to our regular like intervals again, which we have like, we've let it slide a little bit over the summer and I really want to go, go back into a regular recording stress because I really like talking to you about these things and then we have more time because we meet more often. All right. Before I go, Dave, where can people find you on the internet?" Dave: "Yeah. Yeah. Likewise. 100%. You can find me at davidgarywood at social. No! That's my old address. Damn it. I knew I was going to do that sooner or later. Right, no. Rewind. You can find me at dave, d-a-v-e at social.lightbeamapps.com. That's on the Fedi, the Mastodons. And you can find my apps over at lightbeamapps.com. I'll get these things right one day. Daniel: "Ha ha ha! Kaboom!" Dave: Daniel there you go. Where can we find you?" Daniel: "Fantastic. Awesome. Oh yeah. You can find me at daniel at social dot telemetry deck dot com or just go to telemetry deck dot com. All right. That's the show. Thank you so much. Please. If you listen to this, write us on iTunes because it helps people discover the show. And if people discover this show, then it's cool because then they listen to us and then we are happy because people are listening to us." Dave: "100%. I feel validated. Daniel: "Write us write us on Mastodon and yes, you soon have a great day." Dave: "You too, Daniel. Take care." Daniel: "Byeeeee."