Software and research

Hi, I’m Ahmad Asfour.

I graduated from Georgia Tech and am now pursuing an MSCS at Columbia. My projects range from 3D tree modeling to tools for exploring code and working with data.

I like getting into the details: how the data was collected, where a method breaks down, and what would make the result useful.

A few interests

Reading

3D reconstruction papers

Working with

Point clouds and tree structure

Following

Fantasy football

Outdoors

Hiking

In the works

CUB (Columbia AI Club)

I’m joining CUB as Director of Research and Projects.

4D Gaussian Splatting

I’m building a 4D Gaussian Splatting model and surveying different techniques to compare their performance.

Projects

A few things I’ve worked on

Research, class projects, and tools I’ve built, with notes on how they work and what I learned.

Learning How to Prune Peach Trees

We scanned peach trees before and after an expert pruned them, then used the differences to train a model to suggest where to cut.

Point Transformer v3PyTorchTreeQSMOpen3D+7
  • →Paper submitted for review to ICRA 2027.
  • →Matched 92.5% of expert cut locations, with about 1.6 extra cuts per tree on average.
  • →Reached a 0.86 F1 score and a 2.5% mean absolute error in pruned volume on held-out trees.

Fixing Branch Connections in TreeQSM

TreeQSM sometimes gets branch connections wrong on orchard trees. I built a tool to repair those connections so the models could be used to measure tree structure.

PythonTreeQSMNetworkXNumPy+2
  • →Reached about 90% agreement with the expected branch structure in internal checks on open-vase trees.
  • →Exported corrected CSV files and interactive 3D views for use in other tree research projects.

SpendWise: Instagram Analytics

A dashboard for keeping track of Instagram posts, hashtags, and audience reactions without collecting the numbers by hand.

Next.jsTypeScriptTailwindshadcn/ui+6
  • →Brought post performance, hashtag activity, and comment sentiment into one dashboard.
  • →Scheduled data collection with n8n and Apify, including retries and duplicate checks.
  • →Used Supabase authentication and row-level security to keep each user’s analytics separate.

GenoCLIP: Predicting Tree Shape from Genetics

A research project using 3D tree scans during training to help predict branch counts and angles from genetic data alone.

PythonPyTorchscikit-learnXGBoost+8
  • →Paired genetic data with LiDAR scans for 122 peach trees, with about 131,000 genetic markers per tree.
  • →Reduced mean branch-angle error from 7.4 to 6.8 compared with the genetics-only DPCFormer model; random forest reached 6.7.
  • →Reduced branch-count error from 48.0 to 43.9 compared with DPCFormer; random forest had the lowest error at 40.2.

Gitours: Guided Tours of a Codebase

A tool that takes a GitHub repository and creates a walkthrough you can follow in VS Code. I worked on mapping how the code connects so the tour has a useful order.

PythonFlaskReactOpenAI API+3
  • →Generates CodeTour files in about three minutes for small and medium repositories, depending on size.
  • →Maps definitions and their uses across files to help organize the walkthrough.
  • →Works from the command line or through a React and Flask web interface.

Get in touch

Say hello.

Have a question about a project, an idea to work on together, or a role you think would be a good fit? I’d be happy to hear from you.