XR Daily: Meta's Glasses Heard What They Shouldn't
Meta’s Glasses Captured Speech With the Wake Word Off
A Reddit owner of Ray-Ban Meta glasses found conversations in the Meta AI app as saved audio and transcripts, from moments when nobody said “Hey Meta.” The “Respond without Hey Meta” setting was off, and the white capture light sometimes came on while the wearer was just talking. The same thing showed up on three different pairs, across second and third generation hardware, all after a firmware update.
Meta support’s first answer was to disable microphone and camera permissions, turn off Wear Detection, delete voice history and stop automatic updates, a list of ways to stop using the product. Other owners replied with the same story, and Meta told Android Authority the issue “has been resolved,” with no root cause and no word on whether anything was uploaded.
The architecture is the uncomfortable part. Wake word detection normally runs locally on a low power path, and the cloud pipeline opens only after a trigger, which is exactly what a capture LED exists to make visible. A regression there turns a companion device into a recorder, with nothing to audit but a light the user was told to trust. The Meta VR Glasses sensor puck inherits the same exposure next spring.
→ TechSpot
Splats From Phone Photos, Entirely Inside the Browser
Antoine MoPa’s splatting-rs is three Rust crates stacked into one pipeline, and the last stage runs in a tab. mapanything-rs turns photos into a coloured point cloud with Meta’s MapAnything network on candle’s Metal backend: one forward pass, no camera poses needed. depthanything3-rs runs ByteDance’s Depth Anything 3 Small for depth and cameras at 137 MB of weights instead of 4.9 GB, which is what makes it browser sized. instantsplat-rs then optimises Gaussians with the InstantSplat recipe on its own wgpu/WGSL rasterizer.
The demo keeps every step local: Depth Anything 3 Small on WASM, optimisation on WebGPU, photos never leaving the machine. Drop in 2 or more JPEGs (6 to 12 is the sweet spot), download the model once, export a .ply and the camera file. There is a “train more steps” button, which is the honest interface for a reconstruction problem.
The change that matters is at the front of the pipeline. The old path needed a pose solve before a single Gaussian existed, meaning a workstation and COLMAP; estimating cameras from unordered photos collapses that into seconds, and WebGPU makes the optimisation fit in a browser. Background sits in why Gaussian splatting took over 3D reconstruction, and WebGPU versus WebGL covers the compute gap underneath.
→ Browser demo and splatting-rs on GitHub
Steam’s Linux Client Goes 64-bit and Still Wants 32-bit Drivers
Valve’s beta note on October 15 said the Linux Steam client is now a 64-bit application inside a Steam Runtime container. Eighty two minutes later, an engineer added a requirements document to the client’s own repository saying 64-bit-only x86_64 systems are “not supported.” Andres Rodriguez explained why: 32-bit games need a 32-bit graphics driver stack, and even with Proton’s WOW64 a large native 32-bit Linux catalogue would break on a host without those libraries.
The new floor is specific: glibc 2.31, kernel 5.6, a D-Bus session bus, OpenGL and Vulkan drivers, unprivileged user and mount namespaces, a CPU with CMPXCHG16B and SSE3. Two items shut real setups out. Either pipewire-pulse or PulseAudio is required, with JACK and ALSA dmix unsupported, and an X11 server is required, so pure Wayland without Xwayland is out. Steam Frame runs Valve’s Linux stack standalone, which makes that library floor a headset question. For how the standalone and streamed paths compare, see Quest 3 versus Steam Frame.
→ MIXED
A Godot Sky Rebuilt With a Handwritten Ray Tracer
Thomas ten Cate’s Around The World devlog reached the sky. He had been baking cloud scattering with povray, suspected it skipped multiple scattering, then wrote a multithreaded recursive Monte Carlo ray tracer in a few hundred lines of Rust to settle it. It renders one spherical cloud of uniform density, which was enough: the corrected table spreads light far more evenly, cloud bottoms brighten, and the metallic look from the previous post disappears.
Two fixes are worth stealing. To tint cloud bottoms with indirect sky light without hardcoding blue, he flips the sampling normal to point up into Godot’s environment cube maps, so clouds take on whatever the sky is: blue at noon, pink at sunset. The yellow horizon at high sun came down to operation order in the ray march, attenuating by outscattering before adding inscattering rather than after.
Planet scale caused the last problem: the world is 75 times smaller than Earth, so an Earth parameterised atmosphere puts the sky horizon above the real one, and he nudges the vertical component of the view vector to hide the dark band. Tone mapping lands on Filmic at a white point of 2.0. In headset terms this is frame budget work by hand: table lookups instead of per pixel raymarching, environment maps instead of extra lights.
TexBridge Deletes the Dumbest Part of the Art Pipeline
Moss3D released TexBridge, which handles the loop between Substance 3D Painter and Unreal Engine 5: pick an export preset, texture sets and an Unreal destination folder, hit Export + Send. It imports the maps, builds a Material Instance per texture set, and can assign them to selected static meshes. The per map settings are the point: normal map compression for normals, sRGB disabled for packed ORM masks, and OpenGL to DirectX normal conversion.
Anyone who ships assets has debugged exactly those three things, usually while staring at a green normal map. Profiles are shareable, custom master materials work, and the connection rides Unreal’s built in Python Remote Execution, so no plugin is needed. Painter 8.3 or newer and UE5, Windows only, both apps on one machine.
→ 80 Level
Quick Bites
- Blender is hiring software and DevOps engineers: new roles spanning engine work and build infrastructure. → 80 Level
- A puzzle game painted by hand in watercolor: a language based puzzler built on traditional painting rather than stylised shaders. → 80 Level
- I Am Your Beast VR adds nine levels and an epilogue: a free content drop four weeks after launch. → MIXED
- Convrgence leaves early access: UploadVR calls the extraction shooter’s full release rough but fun, which is roughly the genre’s baseline. → UploadVR
Background reading
The explainers behind today's stories, if you want the fundamentals first.
The Puck Won: Why XR Compute Moved Off Your Face
Valve's Steam Frame queue runs into 2027, Pico's Space Pro leaks a tethered puck, and Meta's VR Glasses land at 100g. XR's compute has left the headset.
WebGPU vs WebGL: Which Web Graphics API Should You Use?
WebGPU and WebGL both run GPU code in the browser, but only WebGPU has compute shaders. Here is how they differ, and what it means for WebXR.
How VR Eye Tracking Works
VR eye tracking fires infrared light at your eyes, reads the pupil and the corneal reflection, and turns that into a gaze vector. Here is the full pipeline.
Related reading
XR Daily: Valve Leaves ALVR to Fend for Itself
Valve disowns ALVR's current SteamVR release, a Linux overlay bug freezes games, Samsung's glasses leak at 41 grams, and Meta tours a Milan gallery.
XR Daily: Pimax Takes On Steam Frame
Pimax's $1,400 Crystal Pro, Norway's smart glasses ban, a WebGPU summarizer, Ultimechs delisting, and a browser museum of PS1 and N64 assets.
XR Daily: OpenDLSS Rebuilds DLSS 5
A Vulkan rebuild of DLSS 5's neural rendering network matches it bit for bit, plus a full Titanfall 2 VR conversion and hand-tracked Evangelion combat.