Projects
šø Image Processing / CV
- Computer Vision Exercises Repository containing homework assignments for my Computer Vision course.
- Digital Image Processing Exercises Repository containing homework assignments for my Digital Image Processing course.
- Rubik's Cube Recognition Detecting faces of a Rubik's Cube using only 2 three-quarters view images.
- Football player Robot B. Sc. Computer Architecture final project. a football player robot made using Raspberry Pi and OpenCV.
- Grid Image Scanner Scanning a grid photo using OpenCV and Python.
- Bokeh Plus A sample-based bokeh simulator that uses inverse tone-mapping and weighted sample averaging to produce a bokeh effect.
- Kernel Convolution Bokeh Simulation A simple kernel convolution based bokeh simulator.
- Tilable Texture Vizualizer A helper tool to crop a tileable portion of a texture.
- OpenCV Face Filter A Snapchat-like face filter implementation using Python and OpenCV.
š Web Apps
- GHD Snippets website š A web app for managing my personal Python/ML code snippets.
- GHD Notebook to Py š A web-app for converting .ipynb files to .py files + a few other features e.g. only saving marked cells.
- Favourite Youtube Channels Extractor š A web app that analyzes your YouTube watch history file and produces a report of your favorites channels.
- Triomino Tiling š An Interactive divide and conquer implementation for tiling a plane using triominos (L shape tiles).
- What to pick for next semester! š A simple web app that recommends courses to pick for your next semester (CS only).
š§ ML/Deep Learning
- Face Keypoints detection Detecting 68 keypoints on the human face using various deep learning models. (Experiment)
- Triangle Keypoints detection A toy example for experimenting with keypoint regression using a very simple handmade dataset.
- Universal Function Approximation An experiment to understand how shallow neural networks can approximate any function. READ IT. it has nice pics.
- Chess Piece Classification (Notebook) Fine-tuning EfficientNet on a Chess Piece Dataset.
- MNIST Classification The most basic CV pytorch project. A good boilerplate for starting a simple pytorch project. (MLP and CNN)
- Name Nationality Classification The most basic NLP pytorch project. Classifying names using a character-level MLP and RNN.
- Interactive Segmentation Interactive segmentation script using SAM model.
š Computer Graphics
- GHDgl My OpenGL experimentation and learning sandbox.
- GHD Path Tracer A simple path tracer I built by following the "raytracing in a weekend" book.
- Circle Packing Packing circles without overlap in a plane!
- 3D Cube Raw SDL Rendering the wireframe of a rotating cube from scratch using SDL and math!
āš§ Dumb Ideas
- Most Profitable Actors Analysis Project How much have each actors movies sold overall?
- Keyboard Frequency Analysis QWERTY and Persian keyboard layout comparison.
- History Timeline Timeline of random events!
- Floating Point Experiment The next float number after 1,000,000,000 is 1,000,000,064!
š Sketches/Visualizations
- Dart Score Simulator What is the best point to aim for in darts? Based on your accuracy.
- Car Steering Simulator Simulate a steering vehicle and calculate the pivot of rotation.
- Pinhole Camera Simulator Simulation of a simple Pinhole Camera. try dragging the elements around to see what happens!
- Camera Lens 2 Object Visualizer What happens to the Image of two objects that are a fixed distance apart in a camera?
- Mandelbrot slow js Drawing the Mandelbrot set using javascript (very slow, see the shader version in the next section)
- Spirograph using epicycles Drawing Spirographs using a bunch of epicycles.
- Circles Glow Effect! A specific glowing effect R&D
- Phyllotaxis Visualization Phyllotaxis Wikipedia
- Shadow Visualization thing Simple visualization of a circle casting a 2D shadow.
- Voronoi Diagram Draw the Voronoi pattern using p5*js. Wikipedia
- Circle Inversion A failed attempt at drawing the Apollonian Gasket! but learned about Circle Inversion Wikipedia
- 010101010101010 A 01-filled background!
- White and yellow lines! Rasme dabirestan!
š Shaders
- Mandelbrot fast GLSL A GLSL shader that draws the Mandelbrot set (faster than the previous js method)
- Acid Shader?!!! Acid shader!
- Chromatic aberration lookin star! A simple shader that draws a circle with a chromatic aberration effect.
š§ Tools
- GHD Screenshot A GUI application for efficiently taking region screenshots. better than Snipping tool!
- GHD Timer Python module A Python library with minimal and easy API to debug the running time of pieces of code.
- Batch Resize Images A Python tool for batch resizing of Images in a directory (very useful for archiving images).
- GHD Tools and Scripts Some of my personal tools and scripts.
- .dotfiles Linux dotfiles.