Welcome to my GitHub portfolio! I am a software engineer and researcher passionate about building robust, high-performance systems at the intersection of machine learning, distributed computing, and computer graphics. This repository showcases a selection of my projects, reflecting my expertise in developing novel algorithms, designing scalable systems architecture, and applying cutting-edge AI to solve complex problems.
| Category | Technologies & Concepts |
|---|---|
| Languages | C++, Python, C, GLSL |
| Frameworks & Libraries | PyTorch, JAX, NumPy, Pandas, Scikit-learn, OpenGL, Qt, LangChain, Gradio, POSIX Threads (pthread) |
| Machine Learning | Deep Learning, Physics-Informed Neural Networks (PINNs), Diffusion Models, Transformers, Reinforcement Learning, Multi-Armed Bandits, Bayesian Inference, Gaussian Processes, MCMC, Computer Vision (CNNs), NLP, Time-Series (LSTMs) |
| Systems & Networking | Distributed Systems, Fault Tolerance, High Availability, Sequential Consistency, Concurrency (Multithreading/Multiprocessing), Socket Programming, TCP/IP, IPC (Pipes), Network Protocols (SMTP/POP3), Systems Design, Cloud Architecture |
| Computer Graphics | 3D Rendering, Procedural Generation, Geometric Data Structures (Half-Edge Mesh), Skeletal Animation (Skinning), Shading, Collision Detection, Ray-Marching |
| Developer Tools | Git, Docker, Makefiles, Bash Scripting, Linux |
Here is a curated selection of my projects, demonstrating my capabilities across various domains.
This area focuses on building applications with Large Language Models and autonomous AI agents.
- Description: An AI-powered study tool built for the WhartonAI-thon, processing lecture notes (PDFs) to generate concise summaries with citations, interactive quizzes, and personalized performance reviews.
- Key Features: PDF Text Extraction, AI-powered Summarization & Quiz Generation, Personalized Feedback, Interactive Web UI.
- Technologies: Python, Gradio, OpenAI API (GPT-3.5), PyPDF2.
This section contains projects in deep learning, scientific computing, and data analysis, including published research.
- Paper: "Predicting Flow Dynamics using Diffusion Models"
- Description: Implementation of a diffusion-based transformer model for simulating and predicting fluid dynamics. Successfully reproduced and extended results on Navier-Stokes and Lattice Boltzmann Method (LBM) simulations, highlighting the model's versatility. Identified and corrected a fundamental loss function error for improved prediction quality.
- Technologies: Python, PyTorch, Jupyter, NumPy, Matplotlib.
- Paper: "PDE-aware Optimizer for Physics-informed Neural Networks"
- Description: A novel optimizer that leverages the physical problem's structure to achieve more stable training for Physics-Informed Neural Networks (PINNs). Improves training stability by aligning gradients and scaling updates using variance of per-sample PDE gradients without expensive Hessian calculations. Benchmarked on Burgers', Allen-Cahn, and KdV equations.
- Technologies: JAX, NumPy, SciPy, Matplotlib.
- Description: Explored using Physics-Informed Neural Networks (PINNs) to simulate magnetization dynamics governed by the LLG equation, comparing Multi-Layer Feed-Forward Networks (MLFFNNs) and Long Short-Term Memory (LSTM) networks. LSTMs showed superior performance in capturing temporal dependencies for multi-spin systems.
- Technologies: Python, PyTorch, NumPy, Matplotlib.
- Description: A fully automated, four-stage pipeline for processing simulated particle accelerator data (HIJING model for Pb-Pb collisions). It handles large-scale data splitting, filtering, conversion to
TTreeformat, and performs physics analysis to extract kinematic variables like transverse momentum (pT). - Technologies: C++, ROOT, Bash Scripting, Linux.
These projects focus on distributed systems, network protocols, and high-performance computing in C++.
- Description: A highly available, distributed key-value store built from scratch in C++. Features a 3-tier architecture with a load balancer, stateless frontend, and replicated backend. Achieves Sequential Consistency through row-level locking and primary-based replication, with automatic primary failover and consistent checkpointing for robust fault tolerance. Provides file storage and a webmail client.
- Technologies: C++, Sockets, POSIX Threads (
pthread), Makefiles. - Watch the Fault Tolerance & Recovery Demo on Vimeo
This section showcases projects in 3D rendering, procedural generation, and interactive graphics.
- Description: A 3D mesh editor supporting loading, viewing, and manipulation of 3D models. Built around a robust half-edge data structure, enabling efficient mesh operations like face extrusion and vertex manipulation. Also supports skeletal animation (skinning).
- Key Features: Half-Edge Data Structure, Interactive Mesh Editing, Skeletal Animation.
- Technologies: C++, OpenGL, GLSL, Qt Framework.
- Watch the Demo on Vimeo
- Description: A 3D procedural world generation game inspired by Minecraft, built from scratch. Features an infinitely generating world with block-based terrain, multiple biomes, and a player with physics-based movement and collision detection.
- Key Features: Infinite Procedural World Generation (Perlin Noise), Multi-threaded Chunk Loading, Diverse Biomes, Player Physics & Collision Detection (Ray-Marching), 3D Rendering with Texturing and Lambertian Shading.
- Technologies: C++, OpenGL, GLSL, Qt Framework, C++ Threads.
- Watch the Full Demo on Vimeo
- GitHub: [https://github.com/vismaychuriwala]
- LinkedIn: [https://www.linkedin.com/in/vismay-churiwala-8b0073190/]
- Email: [[email protected]]
