Online Experiments:

Academic Projects

USB Video Switch

Patent Pending: US20130307919A1 with Prof. Gabriel Taubin, Brown University (2013)
In this independent research project that lasted for two semesters I have built a low cost USB video switch device, which can combine the video from multiple UVC compliant USB cameras to emulate a real UVC webcam gadget (capturing live video from different video capture source), I have used BeagleBoard Xm and 4 Microsoft LifeCam 5000 USB cameras


Using Local Moment Invariants for Partial 3D Shape Matching and Retrieval

Course project with with Prof. Gabriel Taubin, Brown University. (2013)
Moment Invariants are normally used as Global shape descriptors, the goal of this project is to use them as a Local shape descriptor, and to build a 3D shape retrieval and matching system based on moment invariants.


Sketch Recognition Using Vector Graphics

Course project with Prof. James Hays, Brown University. (2015)
We explored three different ways to use vector graphics for sketch analysis and recognition, the first is to extract usual low level features like HOG but using vector graphics, then the use of global features, and at last the use of curve matching algorithms to match different sketches.



Enhancing Bezier Curves Rendering Performance of Bezier Curves Rendering in Web Browsers

with Prof. Mark Ainsworth, Brown University (2013)
I studied different algorithms of drawing Bezier curves, and I proposed a new algorithm for enhancing the rendering of Bezier curves by cashing the intermediate lines segments that approximate the curve; by cashing them between subsequent animation steps and measured the enhanced performance, and evaluated the result.


3D Carving machine from scratch!

Yarmouk University, BA graduation project 2008
I developed a 3-Axis 3D CNC carving machine, which can carve in flower foam (or other Materials like wood) some 3D Model Drawn by the user (with some limitations). I wrote software that will drive the machine. the software allows the user to load standard 3D Model File (.X Format) which contains the 3D Model; the software will then apply some algorithms (Computer Aided Manufacturing Algorithms CAM) to the 3D Model to find a complete 3D path for the carving head (called Toolpath), I implemented contour parallel and direction parallel CAM algorithms , the computer will send this complete path in a standard form (like GCode) to a Microcontroller connected to it (rabbit 3000), the microcontroller will send commands to 3 stepper motors (one for each axis) and to the head to follow the path and carve the wanted model.

  • I developed the machine from scratch (by combining old printers to form the structure, connecting the driving circuits on bread board (and trying different circuits), programming the microcontroller to drive the circuit and connect to computer, and writing the software on Visual C#. Watch a carving video here and here.

Hellium Balloons Vehicle

Yarmouk University, BA project 2008
I built a Computer-Controlled Helium Balloons system, where the user could control the movement of the Flying balloons wirelessly from the computer, the supporting software allows the user to draw a 3D map of the area where Helium balloons fly. It also allows the user to select a target point, and the system will autonomously move Helium balloons to that point, (My Project in its current state accepts only simple paths). A wireless camera was attached to Helium Balloons, and a live view of the camera is seen in the supporting software, The supporting software apply some Image Processing Techniques on this live video and it identifies any white line path on the ground. Watch the video here.

Body Parts Detection

Computer vision course project (2013)
I have implemented a special algorithm for body parts detection using linking SIFT features between body parts and training data, I have then evaluated the algorithm, and compared it with other body parts detection algorithms.


Image Inpainting

Image processing course project(2013)
I have implemented Image Inpainting algorithm where the user select the parts to remove from an Image and the program will cover them from the surrounding pixels.

Immersive Reality Control

with Prof. Rosidah Sam, UITM University, Malaysia.
Improving the Control Behavior of Unmanned Ground Vehicle (UGV) using Virtual Windows, with Prof. Rosidah Sam, UITM University, Malaysia. (2011)


Accelerated Voice Calculator

Course project. (Brown University, 2012)
I have accelerated a Command Recognition system using FPGA (Altera DE2 board), we have started with an open source C code for voice recognition (that recognizes isolated words) then we ran that code on NIOS II soft processor, then we accelerated that code by converting parts of it to hardware. In the final demo we presented a Voice Controlled Calculator that performs addition, subtraction, and multiplication on two numbers, all controlled by voice.

POV Cylindrical Display

Course project at Brown University, 2012
In this project which lasted for two semesters I was part of a team of students, we tried to build a cylindrical display using a rotating arm of LEDs and persistence of vision phenomenon to produce the display, and I was responsible for software part in this project team, (verilog-FPGA, C on the microprocessor, and C# on the PC).

Personal Projects


Personal Project, 2015
VisualLife is an initiative to visualize taxonomy and species using a network of interconnected visualizations, like Tree, Pie, Treemap, and Zoomable views.
VisualLife has data about a total of 1.8 million species, with about 40,000 images, the data is collected from several sources including ‘Catalogue of Life’.
VisualLife is a built using a collaborative framework for interactive visualizations, so everyone is invited to contribute their visualizations about life.
Try it at the following URLs: Zoomable Circles View, Treemap View, Pie View, and Tree View.

Watch the video here.