Sohaib
HomeProjectsAboutVirtual Photography

all projects · 03

Projects

Everything here is real, on GitHub, and written up by hand — the featured ones live on the front page, the rest live here.

ReShade LUT Converter

2026

Turn ReShade PNG LUTs into Photoshop .cube files, right in the browser.

ReShade color grades live in PNG LUTs, but Photoshop's Color Lookup layer wants .cube files — and there's no built-in way across. Most converters are a CLI you have to install first; this is the no-install version: open a page, drop the PNG, download the .cube.

It all runs in the browser with the Canvas API, so a LUT never leaves your machine and the tool works offline. It auto-detects the layout — strip, MultiLUT atlas, or HALD — and previews the look on a sample or your own screenshot before you export.

  • Auto-detects the input layout — ReShade strip, MultiLUT atlas, or HALD CLUT
  • Runs entirely client-side via the Canvas API — nothing is uploaded, works offline
  • Live before/after preview with a strength slider that never touches the exported file
  • Maps each LUT pixel straight to its 3D cube coordinate, normalizing 8-bit values to 0–1 floats — a direct transcription, no resampling or interpolation
  • Framework-free core, cross-checked byte-for-byte across formats in tests
The ReShade LUT Converter interface — a loaded MultiLUT atlas with a grid of LUT thumbnails, and a large before/after preview of an autumn lakeside scene
TypeScript · Canvas API · Vitest · PlaywrightVisit site ↗View source ↗

MeowProof

2026

A Windows tray app that locks your keyboard before the cat does.

Every cat owner who works from home knows the failure mode: you step away, the cat finds the warm keyboard, and you come back to forty browser tabs and half a Slack message. MeowProof exists because that kept happening.

One click — or a hotkey — and the keyboard is locked by a low-level Windows hook, with a soft acrylic blur drawn over every monitor so it's obvious the machine is paw-proofed. The fun part is smart paw detection: it watches typing patterns across four signals (keystroke timing, key randomness, simultaneous presses, hold duration) and locks automatically when the 'typist' is clearly not human.

  • System-wide low-level keyboard hook with a global unlock chord that works even while locked
  • Heuristic cat-vs-human detection over four typing-pattern metrics
  • Per-monitor glassmorphism overlay via Windows compositor acrylic effects
  • Auto-unlocks on sleep or session lock so you can never lock yourself out
  • Ships as a single self-contained .exe — no installer, no runtime to fetch
MeowProof's main window over a pastel clouds wallpaper — a sleeping cat icon, 'Keyboard Unlocked', and a big Lock Keyboard button
C# 12 · .NET 8 · WPF · Win32 hooksVisit site ↗View source ↗

Distributed File System

2026

Private, end-to-end encrypted file sharing across your own group's machines.

This started as my MCA major project and refused to stay an assignment. The pitch is 'WhatsApp groups, but for file storage': a small invite-only group pools the disks they already own instead of renting a cloud bucket from a stranger.

Files are encrypted client-side with AES-256-GCM before they leave the device, split into chunks, and replicated across group members' machines. One member hosts a zero-knowledge coordinator that only ever sees metadata — never file contents, never keys. The README has an 'honest caveats' section, because a security project that doesn't state its limits is lying to you.

  • Client-side AES-256-GCM via the Web Crypto API — the coordinator can't read anything
  • Chunked storage with configurable replication for fault tolerance across nodes
  • Invite codes with expiry presets and one-time-use options for group control
  • Background transfers with progress tracking, previews, and desktop notifications
  • 205 commits of iterating on consistency trade-offs the CAP theorem warned me about
Architecture sketch: a zero-knowledge coordinator linked to four member nodes, each holding replicated encrypted chunks
Electron · React · Node.js · Socket.io · SQLite · Web CryptoVisit site ↗View source ↗
Sohaib Irfan · Kolkata, India
GitHubLinkedInEmail