Code Portfolio


Most fluent
Java, Python, Javascript, C++, Arduino C
Web Languages and Libraries:
HTML, Javascript, CSS, PIXIJS, P5JS
Languages I dabble in:
Processing, Assembly (MIPS), Perl, Bash, Quartz Composer, AutoHotKey, Batch Scripting (.BAT?, DOS?)
Graphical Languages:
Quartz Composer, Scratch


HackUMBC, 2020: bubblz.space
Picture of UI for Bubblz.space
bubblz.space is peer to peer zoom competitor, made in 24 hours on a team of three for the HackUMBC hackathon. It was built using web technologies including WebRTC, PeerJS Javascript, HTML, and CSS. The advantage bubblz.space has over other video sharing software is the concept of “the bubble.” Bubbles are like public breakout rooms. When you go into a bubble you can only hear people who are talking in your bubble. Going in and out of bubbles is as easy as dragging your video feed to whichever bubble you want! This is nice because a professor or TA can see everyone in the class, even when in breakout rooms to more easily gauge how well the class is doing on the discussion or assignment.

The site was/is (as of November 2020) live at bubblz.space Note that it may only work in Chrome and Edge
CSCI306 Software Engineering, 2020: Campus Themed Clue Game
Picture ClueGame UI
An accurate reconstruction of the board game Clue with a new campus themed map, bad sound effects, fun music, and pictures. The game was written in a team of two using OOP principles and test driven development in Java. The final product is over 4000 lines of code.
Random Quarantine Project, 2020: Procedural Interactive Pixel Art Kaleidoscope

See the Pen Procedural Interactive Pixel Art Kaleidoscope by Shane (@Thisisntme) on CodePen.

I made this in my spare time over the summer of 2020 while hiding from the rona with my family. The image is generated from a strange modified iterative XOR function. Each coordinate is passed through 3 instances of the XOR function, one for the hue, saturation, and lightness. Based on the current FPS, the program dynamically changes the number of pixels rendered. The Kaleidoscope effect looks cool, but also serves to increase the framerate by reducing the number of calls to the XOR function as my iterative XOR function is not particularly efficient.
Science Fair: Using neural networks to monitor parking lots, 2019
me presenting my sciencefair at PRSEF
This project was born out of the struggle of finding a parking spot at the airport (pre pandemic). I wondered if there was a simple solution to driving by endless rows full of parked cars. My first thought was to have a fleet of drones that fly above the lot every half hour or so and direct users to empty spots with laser pointers, or through a cellphone app. After thinking about it for a while I decided to ditch the moving parts and just mount the camera to light posts that are often found in parking lots as an easy way to get high elevation without needing to deal with drones. A Raspberry Pi was used as the camera to collect images and I used Tensorflow to identify parked cars. Market research on existing solutions revealed that most solutions cost over $100 per parking space. My solution is over 100 times cheaper for 50 or more parking spaces and has minimal installation costs. I took my project to the Regional Pennsylvania Junior Academy of Science, got first award, and then went on to win first award at the state wide competition as well. I also presented at PRSEF, the Pittsburgh Regional Science & Engineering Fair, and won a sponsor award. I really enjoyed teaching myself how to set up tensorflow for use in a real world scenario as well as learning how to set up and use a Raspberry Pi.
Here are the links to my poster board and my presentation.
CSCI101/CSCI261, 2019: 3D Space Flight Simulator / Procedural Planet Generator
Picture of Procedurally Generated Planets
Using the 3D engine I built in 2017, I built a space flight simulator demo in Python. For this project I also built a procedural planet generator that creates 3D planets with a specified level of detail. I use an algorithm that maps a 2D plane to points on a sphere and then I use random noise to plot points on the planet's surface and to generate peaks and valleys. I also created a simple file type to store the 3D data and you can import and export 3D planets very easily inside of my planet generator.
15-112 Fundamentals of Programming & Computer Science at Carnegie Mellon, Summer 2017: 3D Arcade Game
I built a 3D engine and implemented it in my own arcade game as the final project for 15-112, the intro to programing course at Carnegie Mellon University. The game is an infinite runner game where you play as a cube inside of a cubic snow globe. Your character can move left and right as well as jump to avoid obstacles. If you rotate the snow globe while dodging an obstacle you get points based on the speed that you are rotating. However, as you dodge more obstacles, the rate at which they move increases, making your odds of avoiding them significantly worse. My game won the award for the best term project in the class.


My CodePen: codepen.io/Thisisntme/
Various web based projects
My GitHub: github.com/shanecranor
Many assorted projects
My Scratch account: scratch.mit.edu/users/thisisntme/
Old projects from a long time ago