Simulates a LiDAR-style scan straight from Gaussian splat centres using spherical binning instead of ray casting, with Velodyne and Ouster sensor presets, a dual-viewport Open3D desktop app and export to PCD, PLY or NPY. GitHub ↗
PYTHONGAUSSIAN SPLATTINGPOINT CLOUDSOPEN3D
02/ 04
QuickMapLink
Jump from QGIS to any web map
Right-click the QGIS map canvas to instantly open that location in Google Maps, Bing Maps, Apple Maps, OpenStreetMap, OpenTopoMap or Wikimedia. Published on the official QGIS Plugin Repository.
13.5KDOWNLOADS IN 3 MONTHS
PYTHONQGISPYQTGEOSPATIAL
A · CONTOURSB · HILLSHADE
0 ——— 400 M
FIG. 03 — TERRESTRIAL SCAN
03/ 04
LiDAR & 3D Documentation
Capturing and understanding physical spaces
Terrestrial laser scanning and imaging used to record architectural heritage as measurable, navigable 3D point clouds.
M.Tech thesis, IIRS Dehradun (2020). A framework combining LiDAR with camera and drone imagery, using fractal analysis to reconstruct damaged areas. Related paper ↗
LIDARPHOTOGRAMMETRYPOINT CLOUDS3D
04/ 04
LiDAR Simulation
Exploring how physical environments become spatial data
A new version of Limulator, IIT Kanpur's synthetic LiDAR simulator: a configurable multi-channel sensor ray-casts through an octree-indexed 3D scene to produce the returns a real scanner would record. Later rebuilt as a Blender plugin, and used to generate training data for point-cloud classification.
PYTHONLIDARSIMULATION3D
FIG. 04 — SYNTHETIC SCAN, 16 CHANNELS
Lab
Experiments, ideas and things I'm currently exploring.
ENTRIES 01—15
ENTRY 01QGIS PLUGIN
QUICKMAPLINK
Right-click the map canvas to open that spot in Google Maps, Bing Maps, Apple Maps, OpenStreetMap, OpenTopoMap or Wikimedia. 13,440 DOWNLOADS · QGIS ↗ · GITHUB ↗
ENTRY 02QGIS PLUGIN
QUICKMAPCOMPARE
Builds a grid of side-by-side viewports in a dockable panel to compare QGIS layers, tile basemaps and web maps, live-synced to the main canvas. 5,123 DOWNLOADS · QGIS ↗ · GITHUB ↗
ENTRY 03QGIS PLUGIN
QUICKMAPGIF
Captures a sequence of map canvas frames and exports them as an animated GIF, with no external dependencies. 2,096 DOWNLOADS · QGIS ↗ · GITHUB ↗
ENTRY 04QGIS PLUGIN
QUICKMAPCINE
Animates the QGIS 3D map view camera along parametric paths (helix, Lissajous, torus knot, trefoil knot) and exports the flythrough as a video. 1,376 DOWNLOADS · QGIS ↗ · GITHUB ↗
ENTRY 05WEB GAME
UNSPLAT IT
A browser puzzle game: a Gaussian splat scene is cut into angular chunks, and you rebuild it by placing each chunk on a top-view sphere and rotating it until the 3D view looks right. Six scenes, from a room to a LEGO Vespa, with a timer. Python chunking pipeline; TypeScript, Three.js and a Gaussian splat renderer in the browser.
ENTRY 06RESEARCH
PHONE COVERAGE GUIDE
Does view coverage predict 3D reconstruction quality? A metric scores how much of the sphere around an object a capture has seen, from COLMAP camera poses: on real captures a guided sweep scored 75% against 14% for a casual lap. A live mode streams video from an Android phone, tracks the camera with monocular visual odometry and tells you which side still needs shots.
ENTRY 07AI · MULTI-AGENT
COURSEFORGE
AI course-production platform: a LangGraph pipeline of 14 agents researches a topic, plans the curriculum, writes and technically reviews scripts, then generates slides, diagrams, quizzes, runnable demo code and narration, with human-in-the-loop checkpoints, QA and export. FastAPI, Celery, Qdrant and a Next.js studio, with Claude, Gemini, OpenRouter or Ollama as the model backend. GITHUB ↗
ENTRY 08WEB
PIXLY WEBSITE
Website and web app for Pixly, an event photo platform: guests join with a 6-character code and upload from their phones, hosts approve what goes live, and AI organizes the gallery by face. GOPIXLY.COM ↗
ENTRY 09ANDROID
PIXLY ANDROID APP
Native Android app for Pixly guests and hosts, with a persistent upload queue that survives spotty venue Wi-Fi and full-resolution photo and video uploads. GOPIXLY.COM ↗
ENTRY 10DESKTOP
PIXLY DESKTOP
Host and photographer app for Windows and macOS: AI face recognition runs locally across the whole event library so guests can find every photo they appear in, plus shortlist and export workflows. GOPIXLY.COM ↗
ENTRY 11ANDROID
ATELIER BOUTIQUE MANAGER
Android app for running a boutique. COM.ATELIER.BOUTIQUEMANAGER
ENTRY 12WEB
HUNARWORLD
Website for The Hunar Hub, a skill-based learning platform that connects kids with verified teachers for languages, music, arts and more, with career counselling, articles and a teacher onboarding flow. Built with Next.js. HUNARWORLD.COM ↗
ENTRY 13AUTOMATION
INVOICE AUTOMATION BOT
Python app that pulls hours from a timesheet system, generates PDF invoices from HTML templates, sends them over Slack, logs them in Google Sheets, and marks them paid by scanning email for payment confirmations. CLI and web UI. GITHUB ↗
ENTRY 14WEB APP
DAILYREPORTER
Laravel web app for logging daily work across clients: import tasks by URL from Asana, Trello or Linear, track time entries and to-dos, generate daily, weekly, monthly and custom reports grouped by client (exported as Markdown or CSV), sync hours to Cronolog and post reports to Slack. GITHUB ↗
ENTRY 15DESKTOP
TOTP
Desktop authenticator in Python that generates two-factor codes for multiple accounts, with a live countdown, one-click copy and auto-refresh every second. GITHUB ↗
I work at the intersection of geospatial data, 3D representations and software. My work has taken me from GIS and remote sensing to terrestrial LiDAR, point-cloud processing, simulation and tools for working with spatial data.