top of page
72704195383__8FA2D274-AD6F-4BFB-94BC-0B55AF5241B0.jpg

Projects

Here, you can see all the main projects I have worked on.

​

In the picture on the left, I was cutting wood to make decorations for my tent in K-Ville!

The Duty Box functions like a traditional jukebox would, allowing a user to choose a song to listen to out of a predetermined list. The most prominent feature of this project is that it is powered by a custom-made CPU core, implemented in an FPGA.

The project's name is a wordplay on the name of the jukebox, and the pulse-width modulation signals (defined by "duty cycles") that are sent out to this device's speaker.

Duty Box

Powered by a custom-made CPU implemented in an FPGA, this device plays high-quality audio from a preset list of songs.

The goal of this project was to standardize the required training for certain tools to be accessed in Duke University's many makerspaces. This system should not only set a high standard of safety for all tool users on Duke campus, but also encourage and empower them to learn and exercise new engineering skills.

The focus of the Pratt Passport was on the higher-risk tools available in easily accessible campus makerspaces, such as the laser cutter, the acrylic bender, the miter saw, and many others. The body of this project is comprised of extensive written documentation detailing appropriate setup and operation procedures, videos demonstrating the best practices for using each tool, and assessments to check users' proficiency.

This project was made available as a course on Canvas. Its usage is required for all undergraduate Engineering students at Duke (starting with the Class of 2028), but it is also available to all students, staff, and faculty at the University. It currently has over 1,200 active users.

Pratt Passport

System for providing safety-focused training for tools in Duke University's many makerspaces.

This project was developed for a zero-waste store in Cary, NC. Its goal was to reduce the manual labor required to measure the amount of product that a customer was purchasing by automatically keeping track of that quantity as it is dispensed.

The final design consists of a large container, and the volume of product inside is determined by calculations based on the readings of an ultrasonic sensor. The liquid is moved by a pump, out of a hose that can easily be placed into the customer's container. Everything is tied together by a touchscreen user interface, which allows users to select products and actively keep track of how much they have to pay.

Smart Liquid Dispenser

Liquid Dispensing system capable of moving viscous liquids, and automatically calculating amout of products dispensed by users.

With this product, users should be able to create and play custom games in a no-code environment. The language and structure of the engine is geared toward board games, but it can be extended to video games or card games, for example. 

It is based on the abstraction of pieces, spaces in which those pieces can go, and rules that determine how those pieces can move and change. The engine also supports several features, like customizable player profiles, networked gameplay, and translation to different languages.

Object-Oriented Game Authoring

Highly flexible engine for creating and playing games, including networked gameplay, customizable user profiles, and support for several languages.

The Atlas is a website made to unify all the information about spaces for physical prototyping at Duke University's campus. For each makerspace on campus, the Atlas explains how to get there, who should have access, and which tools and assistance are available.

Pratt Atlas

Centralized directory for the makerspaces on Duke University's campus, displaying locations, access requirements, helper hours, and available tools.

In partnership with Duke University's Office of Research & Innovation, this product focused on avoiding the allocation of funds to research proposals that are too similar to projects that have been previously performed at the institution. 

To achieve this, the product uses an ensemble of Natural Language Processing models to parse a database of thousands of lengthy documents, and rank them based on their similarity to the newly introduced proposal. Within the top ranked documents, it also shows specific pairs of sentences across documents that show the highest similarity in terms of content. With this shorter list of similar documents, staff at the OR&I now only need to look at the top few contenders to determine whether an incoming proposal has significant overlap with a preexisting research project.

Additionally, users have the option to give feedback on each entry in the top 5 results, which is then used to fine-tune the ensemble of machine learning models that comprise the search engine.

SciVerify

Software rooted in an ensemble of Natural Language Processing models, aimed toward avoiding the allocation of funds for research that has already been conducted in the past.

This toy was developed with the goal of teaching children about core concepts in Electrical, Mechanical, and Software Engineering. It is largely inspired on the design of Magna-Tiles, which are tiles of different shapes and sizes which snap together magnetically, easily allowing for custom structures to be built. 

In this product, certain tiles have electronic components embedded into them, some with "inputs" (like buttons, switches, and motion sensors), and others with outputs (like LEDs and seven-segment displays). These tiles are connected to the "brain block", which houses a microcontroller that determines their behavior based on user-inputted "code". Such "code" is written using block logic (similarly to Scratch) on a web browser, and is sent wirelessly to the brain.

Smart Tiles

Geared toward teaching children about different facets of Engineering, these tiles snap together magnetically to form custom structures.

This product consists of a network of two types of devices: a centralized touchscreen hub, and various peripheral alarm clocks. 

From the hub, a user can set an alarm (the time when it should go off, and what sound it should play) on each peripheral device. It can also record audio messages of up to 15 seconds, which then get sent out to the chosen devices.

Aside from playing the alarms at the specified time, the peripheral devices can also detect activity in the room, such that, when it receives a live audio message, it only gets played when it senses that someone is in the room; otherwise, the message is stored, and can be played at a later time.

The idea for this product came about when thinking of a family with many children, living in a big house. Picture this: you're a single parent, living with your 3 kids. They each have to wake up at different times to get ready, but they're all having breakfast together (which you're preparing!). Instead of having to wake each of them up on time, and then go around the house screaming when breakfast is ready, you can use the Wakey Talkie! Just set each of their alarm times, and, whenever you're done cooking, broadcast a message out to all the children that aren't there yet!

Wakey Talkie

Network of ESP32-based alarm clocks, all of which are wirelessly controlled by a touchscreen hub powered by a Raspberry Pi computer.

bottom of page