VIRTUAL PACKET TRACER
About VPT
Virtual Packet Tracer is a network simulation tool I began as an
open ended semester project for a cyber security class. Inspired
by
Cisco Packet Tracer , VPT is a lightweight, cross-platform network simulation tool
that allows users to create, configure, and troubleshoot network
topologies.
VPT is written in Rust and uses Raylib (a OpenGL wrapper) for
rendering and RayGUI (an immediate mode GUI for Raylib) for the
user interface.
This project was created with the idea of simulating networks as
closely as possible, and implements IEEE standards for all
protocols, and accurately simulates the behavior of network
devices, from the physical layer (byte serialization) to the
network layer (ipv4).
Features
- Ethernet Connections
- Mac Addresses
- Ethernet II protocol
- Ethernet 802.3 protocol
- Address Resolution Protocol
- Layer 2 Switches
- Rapid Spanning Tree Protocol
- Internet Protocol Version 4
- Internet Control Message Protocol
- Subnetting
- ARP Tables
- Layer 3 Desktops
- Layer 3 Routers
- RIP protocol
Rendered with Raylib
Created in Rust
THE PUSHAPP
About PushApp
PushApp is a mobile application I developed for friends to play
with. The concept is that you may group yourself on the app via
invitations, and every server determined interval (3 hours) a
random person in the group would receive a push notification to
do N pushups (where N increments every time someone completes
the task), and take a photo of where they were when they had to
do the pushups. The app is a social challenge that I launched on
the App store in 2024.
PushApp was developed with a Flutter frontend utilizing Riverpod
and GoRouter, coupled with a Supabase backend and Firebase Cloud
Messaging for push notifications. It was developed in about two
weeks.
Features
- Create accounts with Supabase OTP authentication
- Join or create groups
- Deeplinked invitation codes to groups
- Get notified when you are the holder of the "pushup token"
- Incrementing pushup count
- Take a photo of your pushup location
- View a "pushup story" consisting of each users most recent pushup photo
Firebase Cloud Messaging
Supabase Backend
Flutter Frontend w/ Riverpod
PostgreSQL Database
GRAPH THEORIST SKETCHPAD
About Graph Theorist Sketchpad
Graph Theorist Sketchpad is an application I developed for a
graph theory class. The goal of the app was simply to sketch
graphs, being any type (weighted, directed, self looping,
complete, bipartite, etc). It was also a requirement to be able
to view information about the graph, in the adjacency table and
incidence matrix.
This application was made entirely in C using Raylib (an opengl
wrapper) and Raygui (an immediate mode GUI for Raylib). Since
the project required some advanced algorithms, I wanted to
demonstrate the Bounding Volume Hierarchy algorithm for this
project, and used that for collision detection.

Features
- Create vertices
- Create edges
- Create parallel edges
- Move graphs
- Directed graphs
- Weighted graphs
- Label vertices
- Color vertices
- View adjacency and incidence matrix
- View the degree of a vertex
- View the BVH tree of a graph
- Run Kruskals MST on the graph