Projects

Publications

Below are some of the internal assessments that I submitted to IB as a part of the requirements to receive my diploma.

Higher Level Math IA

Higher Level Physics IA

Standard Level Chemistry IA

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

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

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

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)

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

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

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

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

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

CS61CPU

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

Berkeley

CS61C

Logisim

NumC

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

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

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

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

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

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.