Apps

HopeWaves

A local surf forecasting service and app for Rhode Island

Running on Google App Engine, this automated surf forecast pulls in data from NOAA's Wave Watch III wave model and generates a custom surf forecast for the Rhode Island coastline. It also packages local beach cameras, buoy data, tide forecasts, and weather information into a easily digestible and modern interface.

Python
Google Cloud
Firebase
React
React Native
JavaScript
TypeScript
Objective-C
Swift
Java
iOS
Android
Web
Scientific

GoValet - Valet on the Go

A cloud based mobile Valet service and app

Running in Google Cloud with Firebase, GoValet is a modern Valet solution enabling digital payments, customer notifications, digital ticket management, and more. Written in Flutter, the cross platform mobile app serves as a control conter for Valet companies and an easy to use payment solution for valet customers. Customers without the app can request their vehicles and pay online without needing to download the app. It is currently used in production for various companies throughout Rhode Island.

Python
Google Cloud
Firebase
Stripe
Twilio
Flutter
Dart
JavaScript
TypeScript
Objective-C
Swift
Java
iOS
Android
Web

Open Source

SurfPy

A Python library containing math and utilities for generating surf forecasts and monitoring surf conditions

The backbone of HopeWaves, this python library is a suite of tools for creating surf forecasting applications. There are tools for downloading buoy data, tide data, wave model data, and more.

Gnome Shell Extended Gestures

A Gnome Shell extension enabling the binding of touchpad gestures to custom actions

Download on the Gnome Extensions Store

By default, GNOME uses libinput to detect touchpad gestures as they are performed by the user. However, it is still fresh and the only gesture detected and acted on out of the box is four finger vertical swipes. When it sees this gesture, it switches workspaces for the user, much like macOS is famous for doing by default. I recently found libinput-gestures which allows you configure other gestures seen by libinput. There are some quirks though and I thought I could make something that works more integrated with GNOME. So I made this extension which lets you enable and configure other gestures such as three finger swipes.

GripPy

A pure Python GRIB 2 parsing library

When the HopeWaves app launched, Google App Engine did not allow for the use of python modules containing C and FORTRAN code. In order to download wave model data from NOAA, I created this library to read GRIB 2 data without needing C or FORTRAN code. While slower than existing libraries, it is extremely conveinent to use in restricted and smaller python applications.

Mini Maestro

A Python library for controlling a Polulu Mini Maestro servo controller

This python library operates over usb serial interface and sends the commands supported by the documentation. This library was used by the University of Rhode Island Department of Ocean Engineering in autonomous vehicle operations.