Shahan
Nedadahandeh

A curious builder and learner

Hi

I'm a passionate computer science student who loves building and tinkering with new things!

Currently, I'm interested in computer graphics, neural rendering, such as NeRF's and Gaussian Splats, and machine learning more broadly.

In the past I've been involved in various initiatives at Waterloo:
- Leading a team as a tech lead at UW Blueprint, building tech for social good.
- Working on simulations at Watonomous.
- I was the former webmaster of University of Waterloo's CS Club. Led many projects such as the class profile and automatic membership verification.

In the past I've worked at:
- Faire (as a FE and BE engineer), I wrote an article about it on Faire's blog: article
- SideFX software (working on Houdini, a 3D graphics software used by Pixar, Disney, etc.)
- Stripe (working on critical services handling over 2000 requests a second!)

I love to play tennis, let me know if you're ever up for a match! When it comes to music, my taste involves a lot of different era's, especially classical music, Jazz, and Billy Joel. More than just listening, I love to play piano, and sometimes dabble in composing my own pieces as well!

Notable Projects

CUDA ML Training Framework

An ML training framework written from scratch using CUDA and C++.

GaussianEditor

A 3D Gaussian splatting editor that allows users to remove, move and recolor splats. The website features two custom made splats. Click the link to check it out, it's pretty cool!

NCraft

A 3D voxel game made with my own game-engine with pure C++ and OpenGl. For this project I did not use any external libraries or tools and I made it just using OpenGl and C++, as my goal was to learn more about the inner workings of a game engine. I learned much about all the complexities of computer graphics including rendering, optimising and more. This engine/game has features such as optimised batching, perlin noise world generation, block breaking and placing, lighting, trees, inventory and more.

Evolutionary Simulator

An implementation of an genetic learning algorithm and neural network along with a captivating GUI, completely from scratch in C++ and Webassembly, which has learned to play the game Snake.

Image Inpainting

Inpaint an image that is missing a section. An implementation of the classic paper "ContextEncoders" along with some of my own improvements.

NeRF From Scratch

Implementing the original NeRF (Neural Radiance Field) paper from scratch in Pytorch.

VideoGit

A command line tool, that makes beautiful, animated coding videos from a projects git commit history. You can install VideoGit with "pip install VideoGit". VideoGit simulates the process of your coding, and makes a video which you can share. This project uses git diff's and goes one by one through the commit history. It was made with python, and uses a rust tool called silicon for image creation, and ffmpeg for creating the videos.

GlMath

A math education platform, inspired by Khan Academy made with the MERN tech stack, where teachers can post math lessons for students from all around the world to access. While making this I made several important design choices which was guided by my goal for the math content to be as reliable as possible. The actual math content is hosted on GitHub Pages (which is highly reliable) in JSON, the teacher edits the content through an admin login page, which automatically saves their changes by committing to GitHub. This way, once a lesson is published, it will always be available forever, even if my backend server (hosted on Heroku) goes down. Some other interesting features are image uploading using amazon S3, and an interactive WYSIWYG latex editing for entering equations in the lessons.

Langtons Ant

A simulation of "Langtons Ant", a math cellular simulation similar to Conways Game of life. Made completely with java swing with my custom game rendering engine.

NedaChat

A fully functional, realtime chatting service, built with MongoDb, NodeJs, Express, SocketIO and React. Features groups chats, instant messaging using web sockets and many other features.

NedaType

A touch typing training tool, which has unique mechanics to help you improve your accuracy and speed. This project was made with the javascript library React. Click here to go to NedaType.

NAnim

A custom made animation library made in python. This project was inspired by 3b1b's animation library, and this was made from scratch without help from any other animation libraries. This project is on pip and you can even install it on any computer with "pip install nanim". I made this project to learn more about python and the details of animation and video rendering.

Sine Neural Network

A neural network that emulates the sine graph, made using Keras, Numpy and of course python. This network is practically useless, but I made it to learn more about Keras, and it was the first network I made without any outside help, just Keras Documentation.

PlanNow

A time management todo list tool made with the MERN tech stack (MongoDb, Express, React, NodeJs) and hosted on amazon AWS.

ShahansMandelbrot

An interactive simulation of the mandelbrot set, made with Java swing. This project like many of my other java projects uses a custom java swing game renderer I have made.