Image

Reviving Google Cardboard, Without Google Or Cardboard

Remember Google Cardboard? The late, unlamented practice of strapping a phone to your face so you could get motion sickness in a virtual environment? [brenpoly] wants you to reconsider, because in the years since Google pulled the plug on mobile VR, phones have gotten really, really good and he’s got a project called CardboardXR on GitHub that the project video enbedded below bills as “A 5$ Apple Vision Pro”

Well, it’s 5$ if you already happen to have a flagship phone like the Pixel 9 Pro or iPhone 15 Pro he’s using for testing– otherwise you’d be out a rather larger chunk of change in order to pick up such a pocket supercomputer. In any case, he’s able to get 6 Degree of Freedom (DOF) tracking from these units, along with using the cameras for passthrough and object detection, hand tracking, and gesture control– everything the big boys net you, in other words. That’s pretty impressive compared to the 3DOF, and zero tracking or pass-through mobile VR used to get you.

He’s also built adjustable optics into his 3D-printed replacement for Google’s old face-hugging cardboard, which you can get on Makerworld.  On the other hand, presumably you could just cut a hole for the camera bumps in one of those if you’re the kind of person who throws nothing out. Either way you’d be using the same lenses; it turns out they’re still available online, so that’s what [brenpoly] spec’d.

All these fancy features aren’t entirely [brenpoly]’s own work: his software is based on Unity which has some slick VR/AR tools and the ability to build in all the relevant machine learning models for things like hand tracking. He’s also taking some major inspiration from the Google Cardboard SDK, which Google open-sourced back around the time they gave up on it. It’s still a very impressive project regardless of the toolchain involved, though there’s a certain irony that [brenpoly] is now strapping a phone to his face after his last project we featured  was all about getting him to put it down.

Continue reading “Reviving Google Cardboard, Without Google Or Cardboard” →

Image

Decompiling Sonic Runners

Usually, when you hear about games being decompiled and rebuilt, the games are often decades-old relics, loving and saved from the ravages of time. [MattKC] recently set out to decompile the 2015 game Sonic Runners.

The game was a 2D endless runner released on mobile platforms. Despite getting praise for the gameplay, it received mixed reviews for the pop-up ads and pay-to-play elements. A little over a year later, the game was discontinued. However, the game required a constant online connection, so once the servers were offline, it rendered the over five million downloads unplayable.

A team of developers worked to reverse engineer the server, and with a little bit of binary hacking, the client could be patched to connect to a community-hosted server instead. However, as phones with notched displays came out and suggestions for improvements stacked up, the community realized a new client would bring immense benefits. Compared to many decompilation projects, Sonic Runners was pretty easy as it uses Unity, which means most of the code is in C#. Unfortunately, the build of Unity used by the game is from 2012, meaning many of the tools designed for much later versions of Unity were inoperable.

However, one native code library called UnmanagedProcess was designed to confuse reverse engineering efforts. The library handled AES encryption and communication with the server. Luckily, the library was a later addition, and earlier versions of its functions still lingered in the C# code. Since an open source server already existed, it was trivial to validate the changes. Additionally, all the shaders were in OpenGL Shading Language (GLSL), which meant rewriting them in High-Level Shading Language (HLSL) and checking that they matched the original GLSL when building for Android.

Now the client has new game modes, no ads, and a proper offline mode. The community continues adding new features and refining the game, which is very satisfying. If you’re curious about reverse engineering, [Matthew Alt] can help you get started.

Continue reading “Decompiling Sonic Runners“ →

Image

AI Learns To Walk In 3D Training Grounds

AI agents are learning to do all kinds of interesting jobs, even the creative ones that we quite prefer handling ourselves. Nevertheless, technology marches on. Working in this area is YouTuber [AI Warehouse], who has been teaching an AI to walk in a simulated environment.

Image
Albert needed some specific guidance to learn how to walk upright, something that humans tend to figure out innately.

The AI controls a vaguely humanoid-like creature, albeit with a heavily-simplified body and limbs. It “lives” in a 3D environment created in the Unity engine, which provides the necessary physics engine for the work. Meanwhile, the ML-Agents package is used to provide the brain for Albert, the AI charged with learning to walk.

The video steps through a variety of “deep reinforcement learning” tasks. In these, the AI is rewarded for completing goals which are designed to teach it how to walk. Albert is given control of his limbs, and simply charged with reaching a button some distance away on the floor. After many trials, he learns to do the worm, and achieves his goal.

Getting Albert to walk upright took altogether more training. Lumpy ground and walls in between him and his goal were used to up the challenge, as well as encouragements to alternate his use of each foot and to maintain an upright attitude. Over time, he was able to progress through skipping and to something approximating a proper walk cycle.

One may argue that the teaching method required a lot of specific guidance, but it’s still a neat feat to achieve nonetheless. It’s altogether more complex than learning to play Trackmania, we’d say, and that was impressive enough in itself. Video after the break.

Continue reading “AI Learns To Walk In 3D Training Grounds” →