Rév O'Conner

Blogs

Notes from work, life, and the road in between.

007 First Light: Competent, Forgettable, and Not Quite BondIO Interactive can build the best stealth sandbox in the business, so the strangest thing about First Light is how rarely it lets them.UX Doesn't Need a UIUI is the surface you touch; UX is what happens to the person touching it, and most of what ruins software has nothing to do with how it looks.Unlisted Repo: Sharing a Private GitHub Repo Without Making It PublicWhy I built a GitHub App that turns a private repository into a read-only, account-free link with no credential in the URL, so I could show personal repos on this site without making them public.Designing Radiator Splash Guard for a Ducati SuperSport and Surprising PatentsWhat started as a fix for radiator grime ended up rewriting itself as an exercise in wheel wake aerodynamics. This is the long story of how reading patents changes what you think you're solving.Moving Particle Collision and Culling Off the CPU in UnityUnity's particle Collision module is a per-frame, per-particle CPU tax. On Quest 3 that tax is unaffordable. Here's the alternative I built. Limitations: The cull geometry and smoke spawn must be static.Stopping Alpha Based Fences from Dissolving at Distance in UnityFences and cage prefabs in general disintegrate into noise and then vanish entirely as the camera pulls back, this is however, drastically noticeable in VR, specially one being used as trainer for armed operators. The fix is a single Shader Graph custom node built around distance-based cutoff reduction via mip estimation, with fwidth sharpening and 4-tap RGSS alpha supersampling there to feed it clean input. The close-range shimmer going quiet is a side effect.Automated Conversion to Primitive Colliders from Imported Meshes in UnityPrimitive colliders are cheap and precise, but hand-authoring them in Unity is slow: the editor has none of a DCC's modelling tools. Modelling them in Maya and converting on import is the fix, until Freeze Transformations bakes the transform into the vertices and position, scale, and rotation have to be recovered from the mesh itself.Previewing Bakery's Runtime Decals in the Unity EditorBridging a plugin's runtime decal system into edit mode so artists can debug projections without entering Play.Modifying Meta SDK's Depth Mask on Quest 3 to Prevent Tracking GlitchesHow I patched Meta SDK environment depth occlusion with a dual-channel portal system, letting virtual objects render through real-world surfaces like glass without breaking depth tests elsewhere. (Not Automatic)Texture compression algorithm for Unreal, BCn and texture packingBits per pixel, block compression, and what to actually reach for when. BCn formats deconstructed, plus the texture-packing decisions Unreal hides behind its named presets.Introducing Blender UVshapekeys: Shape Key Magic Based on UV LayoutA Blender add-on that reconstructs shape keys using UV coordinates instead of vertex IDs, so they survive retopology and topology changes.Normal Map Z Reconstruction: Effortless Blue Channel RecoveryA Windows app that reconstructs the blue (Z) channel of a normal map from its red and green channels, with batch processing and a linear/sRGB-aware path for textures like Texturing.xyz vFace maps.Introducing a Blender Add-On: Custom Script ShelfA Blender add-on that brings Maya/Max-style custom script shelves to Blender, with copy-paste script management and panel-based organisation.Niti Village: No Permission Required for Indian CitizensIndian citizens no longer need an Inner Line Permit to visit Niti Village in Uttarakhand. The rule changed in 2022, but most online sources still get it wrong.