VRsimilitude

VRsimilitude

My take on tech.

02/05/2024

For anyone who was wondering how my AR/VR tracking code is going:

www.linkedin.com

21/12/2023

Still working on that VR/AR headset product! I decided to remake the visual odometry tracking software and now it uses inertial data as well. The following is a map of my room, although keep in mind that there is still some level of error which will be corrected through loop closure. That's why it doesn't look perfectly rectangular yet. These are points in a 3D scene, measured from real life. This is really cool and I am so glad that I finally got this far! The final code is only 86 lines.

GitHub - hkarrson/LOFI: The LOFI kernel 11/12/2022

That's right! I'm still working on building that new AR headset! Just like I've been doing when I was in high school! Check out my last post for more info.

It's been a while working on this thing.
I decided to order a 3D print of a new 3D model I made of the headset. Remember when 3D printing was new and shiny? I do too. Unfortunately my 3D printer broke.
I also was making good progress with the 3D tracking.
It's more challenging than you might think.
So, I found something called the Intel Realsense T265.
It does the work for me. Or it did, until they abandoned that product... Ugh... If you want something done right you gotta do it yourself, I guess... So I went on Coursera and learned how S.L.A.M works. (Simultaneous Localization And Mapping), although technically, it should be called S.M.A.L, but that doesn't sound right... Actually though, it would probably make more sense, because the algorithm is way simpler than these scientists make it out to be. (Perhaps they mainly want to sell us their implementation... idk...)

If you want something done right, do it yourself... "Hmm, I'm not that much of a fan of Linux... Maybe I should just make my own OS..."... Wow... I actually decided to work on that... Check out the code for the kernel here: https://github.com/hkarrson/LOFI
Wow this is complicated... "Wait, I need a libc? How did I forget that!!!??? I don't want to do that!" If you don't know what libc is... it's a list of a whole lot of things the C language needs to be functional with existing programs. It's all the standard stuff... And no one who has implemented libc seems to have thought about writing it as plain C source code, without a complex build system. (Seriously... why doesn't that exist?) "I think I'll just go back to square one... Perhaps linux is fine... If it ain't broke don't fix it, right?" Seriously... why was I so focused on the little things? Note to self: Stop branching out of current projects. Think linear, rather than recursive... (To be honest, I was kind of just doing this for the fun of it anyway. Haha...)

Okay... I just tried the latest Raspberry Pi OS... Because the type of board I'm using now is named after a pie. Anyway... the boot is a lot quicker (actually reasonable) and removing the boot graphics is a piece of pie! Great... Let's just try to get this working... Maybe one day we will... Thank you for reading this far! :)

GitHub - hkarrson/LOFI: The LOFI kernel The LOFI kernel. Contribute to hkarrson/LOFI development by creating an account on GitHub.

11/12/2022

In my last post, I briefly mentioned how VR went from "hey you! come try out this cool new thing!", to "we want to walk in an open world, but we don't have the space to enjoy doing that", to "some of us are actually more interested in AR at this point, because we can turn our city into an open world game and walk around it as we please". Clearly AR was looking like the winner and so I decided to start working on my own AR headset. Well, at this point some people already beat me to it... But I don't care! I'm gonna do it anyway! Why? Because when I challenge myself, I usually prefer to follow through with it. It's just the way I am.

Me and my dad (mainly my dad) built a headset out of metal and I was tasked with writing the software for it... Which to be honest, is really challenging...

We started with the jetson nano processor. It runs linux, and linux (especially on arm) has very little support for games... Ugh, why... Seriously, why? Here we had a mobile processor with an insanely powerful GPU and... no games. Wow... What a waste of money... and time trying to make it work... Luckily, I was studying how to write a game engine through a series by a YouTuber named TheCherno, so I know how to write a game engine that actually supports linux on arm... Yeah, because if you have the power to do something you can do it. So why don't people do it!!!??? (insert grumpy programmer swearing and becoming concerned about how tech companies spend their time)... So... anyway........ First I have to make the game engine, which I never got around to writing neat code for...

There's also another problem... At this point, linux was taking it's sweet old time to boot, because it was designed for desktop and when I tried to get rid of nvidia's non-stereo (non-vr friendly) splash screen (which really didn't need to be there in the first place), the board would get in a bad state. Basically, I'd end up accidentally breaking the board using software... ugh...

Let's talk about what I decided to do in the next post.
Let's just say I was sort of going insane at this point.

Discover Pokémon in the Real World with Pokémon GO! 11/12/2022

I have a story to unpack about augmented reality, so stay tuned!

It all started when I saw the movie Avatar (https://www.youtube.com/watch?v=5PSNL1qE6VY). For whatever reason, I misinterpreted the machine in that movie to be a simulator. I decided me and my dad should build a simulator, that felt like what it was like to go into that world. This was also after seeing The Matrix (https://www.youtube.com/watch?v=m8e-FF8MsqU) We ended up building a wooden box with a screen, and we felt like that was enough. And it was. The darkness inside the box made the focus on the screen. Plus, you could pretend the box was a cockpit for example. This was our version of homemade VR, because at the time, no one set any real standards for what VR should be: a headset.

Soon enough, things got real. I saw Markiplier (the YouTuber) play VR, which led me to get my first VR headset. At the time, VR was still a bleeding edge technology. (https://www.youtube.com/watch?v=VR8mj_wlkNU) Next, the React channel had the elderly react to VR. Oh my gosh... Everyone said it was a fad... (https://www.youtube.com/watch?v=hZ8Xj_I3aNU)

Everything seemed fine and dandy. Just a fun new type of device! But eventually, room scale VR became a thing. (https://www.youtube.com/watch?v=QHei7r6sMao) People started to remember the fact that they couldn't walk in VR! People tried so many different solutions including omnidirectional treadmills (https://www.youtube.com/watch?v=0E6O_OUW8Xg) (Apparently, you get to walk, but you get no actual feeling of walking...) redirected walking (https://www.youtube.com/watch?v=XOxmMurUv3Q) (Okay, this demo was a little deceptive... Sure you can get it to do something in a small space, but for redirected walking that's actually useful you need a massive play area...) and other more crazy solutions. Anyway, you get the point. Everyone acted like they had the solution, but low and behold they didn't.

Umm... Pokemon go was also released at some point... https://www.youtube.com/watch?v=2sj2iQyBTQs
Stay tuned! (If it wasn't obvious the direction we should probably head in, hopefully my next posts will make that obvious... but come on... You see what I'm seeing, right!?)

Discover Pokémon in the Real World with Pokémon GO! http://bit.ly/1Q2BLJLGet ready for an all-new Pokémon experience! Pokémon GO opens a universe of Pokémon to find, catch, trade, and battle on your iPhone or ...

Website