Projects
Publications
Below are some of the internal assessments that I submitted to IB as a part of the requirements to receive my diploma.
Computer Science Projects
Some projects from classes at Berkeley are listed below. To comply with university rules, my code is not linked below (links are to project specs).
PathLess

This web app displays a randomly generated route given a user's location and a distance to assist in keeping active. It features the Mapbox Distance and Geocoding APIs, Turf.js, Navigation module, trip instructions, and an about page with instructions, FAQ, and more.
Personal Project
React
Mapbox
Typescript
MDSpotify

As an instructor, this was the app I built live in weekly demos. It features a fully functioning music player, with a backend built with Node.js, Express, and SQLite3, and a frontend built with React Native and Expo.
MDB
React Native
Typescript
Express.js
Node.js
SQL
TouchBase

This web app is a peer to peer browser based video calling application. It allows users to connect to each other and share their video and audio. It also allows users to chat with each other.
Personal Project
React
Typescript
Predicting Quarter Mile Times (ML)

This machine learning project and paper uses a variety of techniques, such as Linear Regression, Lasso, Bayesian Ridge, Elastic Net CV, PCA, Feature Engineering, and more to predict a vehicle's quarter mile time using its horsepower and weight.
Personal Project
ML
Python
Triangulation Algorithm

Inspired by an episode of the TV show Arrow, this algorithm takes three points, the time it takes to get to each of those points from an unknown starting location, and then calculates that location by using Apollonian circles and iteration with ease and efficiency.
Personal Project
Python
Battleship Algorithm

This algorithm builds a battleship game using object-oriented programming while using a series of random and then strategic guessing in numerous layers to sink all of the ships given by the user on a board size custom to the user's preferences.
Personal Project
Python
Avoidance Ball

This program uses PyGame to create a game where the user controls a ball to avoid randomly generating (and continually regenerating) squares with the objective of hitting as many green ones as possible while avoiding the red ones.
Personal Project
Python
Gitlet

In this project you’ll be implementing a version-control system that mimics some of the basic features of the popular system Git. Ours is smaller and simpler, however, so we have named it Gitlet.
Berkeley
CS61B
Java
CS61CPU

In this project, you will be building a CPU that runs actual RISC-V instructions.
Berkeley
CS61C
Logisim
NumC

In this project, you will write your own simple version of numpy (a Python library for performing mathematical and logical operations on arrays and matrices, whose underlying code is written in C) and optimize your code for performance.
Berkeley
CS61C
C
CS 61A Autocorrected Typing Software

In this project, you will write a program that measures typing speed. Additionally, you will implement typing autocorrect, which is a feature that attempts to correct the spelling of a word after a user types it. This project is inspired by typeracer.
Berkeley
CS61A
Python
Scheme Interpreter

In this project, you will develop an interpreter for a subset of the Scheme language. As you proceed, think about the issues that arise in the design of a programming language; many quirks of languages are byproducts of implementation decisions in interpreters and compilers. The subset of the language used in this project is described in the functional programming section of Composing Programs. Since we only include a subset of the language, your interpreter will not exactly match the behavior of other interpreters.
Berkeley
CS61A
Python
2048

You’ve probably seen and perhaps played the game “2048,” a single-player computer game written by Gabriele Cirulli, and based on an earlier game “1024” by Veewo Studio (see his on-line version of 2048). In this project, you’ll be building the core logic of this game. That is, we’ve already put together all the GUI code, handle key-presses, and a ton of other scaffolding. Your job will be to do the most important and interesting part.
Berkeley
CS61B
Java
nat-ssa.org

I designed this for National Student Speakers Association, registered 501(c)(3) nonprofit, incorporating responsive design to the viewport, Google analytics, mobile-adaptive styling, animations using GSAP 3, interactivity, and more while learning about the basics of building a website - discovering how to fix 301 and 405 errors, issuing SSL certificates, and more.
Personal Project
aniruthn.com

I built this website as a personal website to centralize my information beyond my resume as well as establish a web presence. It utilizes javascript animations based on scroll, responsive design to the viewport, Google analytics, mobile-adaptive styling, interactivity, and more.
Personal Project
React
Typescript
All content and documents on this website are the property of Aniruth Narayanan. Usage, modification, or distribution in any form, even non-commercial, requires explicit prior written approval from Aniruth Narayanan. This is solely intended for viewing purposes only. Please contact me if you have any questions, comments, or concerns or if you need a document without the watermarks.