Blog

Notes from work,
life, and everywhere in between.

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

All Posts

2026·06·09Others007 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.2026·05·24OthersUX 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.2026·05·18DevUnlisted 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.2026·05·13OthersTwelve Patents and an Unexpected Detour: Designing Radiator Splash Protection for a Ducati SuperSportWhat 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.2026·05·02ShadersMoving Smoke Collision Off the CPU for VR 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.2026·04·25CGIStopping Fence Cages from Dissolving at Distance in VR: A Mip-Aware Alpha Function for Thin Geometry in UnityFences and cage prefabs on Quest 3 disintegrate into noise and then vanish entirely as the camera pulls back — no mip or coverage import setting saves them. 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.2026·04·25CGIAutomated 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.2026·04·18CGIPreviewing 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.2026·04·18CGIPatching Meta SDK's Depth Occlusion: A Dual-Channel Portal System for Meta Quest 3 in UnityHow I patched Meta SDK v77's environment depth occlusion with a dual-channel portal system, letting virtual objects render through real-world surfaces like glass without breaking depth tests elsewhere.2024·11·24CGITexture compression for Unreal Engine — 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.2024·11·05DevIntroducing 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.2024·10·20DevNormal 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.2024·09·10DevIntroducing 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.2024·08·15TravelNiti 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.