Bird's-eye view of a KITTI LiDAR frame coloured by intensity

Voxelize — CUDA pillar-voxelization kernel for LiDAR point clouds

CUDA C++ PyTorch Python LiDAR / Point Clouds

A CUDA kernel that turns a raw LiDAR point cloud into the pillar-voxel tensors a PointPillars-style detector uses. This implementation uses one thread per point, an open-addressing hash table for pillar assignment, and a Thrust compaction pass, so latency is consistently 1 ms regardless of density. Benchmarked against OpenPCDet's reference voxel_generator on an RTX 5060 Ti it runs 4× faster at 25k points and up to 29× faster on dense ~130k-point frames.

Hillshade of Foster Falls, TN rendered from a USGS DEM

Talus — Rockfall hazard scoring for climbing areas

Go CUDA PostGIS Docker

End-to-end pipeline that turns a raw USGS elevation model into concrete rockfall risk scores for a climbing wall. GPU terrain kernels identify source zones above a route and combine with freeze-thaw windows to flag hazardous days. The Sobel slope/aspect kernel runs 10.6× faster on a GTX 1060 than a single-threaded CPU baseline (569 ms vs 6,041 ms over 116.9M cells).

Interior of a Dell PowerEdge R510 running the Proxmox homelab

Proxmox Datacenter — Terraform-provisioned homelab on a Dell R510

Proxmox VE Terraform Cloud-Init k3s Tailscale

A decommissioned Dell PowerEdge R510 turned into a personal datacenter where every VM is declared in Terraform and configures itself on first boot via Cloud-Init. This hosts 5 nodes of my k3s cluster, with an always-on Raspberry Pi 4 handling Tailscale subnet routing so the machine stays reachable even when it is down. Roughly ten VMs share 16 Xeon threads and 64 GB ECC.

True-positive / false-negative / true-negative map over the (X1, X2) state space for the axis-aligned bounding-box abstraction

CEGAR Abstraction — Conservative discrete abstractions for cyber-physical system verification

Python Formal Verification CTL Model Checking NumPy PyTorch

A worklist-based CEGAR (counterexample-guided abstraction refinement) tool that turns a continuous state space into a finite abstraction for formal verification. It partitions the space into cells (axis-aligned boxes or polytopes), builds conservative transitions between them, checks a CTL-style specification, and repeatedly refines cells left "unknown" until the classification converges. Three case studies exercise the pipeline: a 2D synthetic system, the 2D mountain-car problem, and a 3D unicycle model. Companion code for the arXiv paper, written with UF's Trustworthy Engineered Autonomy Laboratory.

Nextcloud and Immich running on the Omen Ubuntu server

Ubuntu Server — Self-hosted cloud platform replacing paid subscriptions

Ubuntu Server Docker Compose LVM UFW Tailscale k3s Datadog Helm

An Ubuntu server running Immich, Nextcloud and a Minecraft server in Docker Compose across ~1.5 TB of LVM-backed storage, cutting ~$150/yr in cloud subscriptions. Hardened with SSH key-only auth, a default-deny UFW firewall and a Tailscale WireGuard mesh, so nothing is exposed to the public internet. It was also the first node of what is now a 7 node k3s cluster and still runs the control plane, with a Datadog agent stack deployed via Helm for cluster-wide log collection and fault alerting.