Sheryl Hsu is a highly driven young professional with a strong passion for computer science, electrical engineering, and mathematics. She enjoys taking on challenges and excels at jumping into projects and quickly learning on the fly. She has developed strong programming, design, and leadership skills through conducting novel research developing a Physarum-inspired Steiner Tree algorithm at the prestigious MIT PRIMES program, leading her underwater robotics team to 3rd place at the 2021 World Championships, and an internship developing the next generation Quest Institute International Space Station education platform. She has been recognized as a Regeneron STS Scholar (top 300 young scientists and engineer), Coca-Cola Scholar Regional Finalist, and won many awards in mathematics, computer science, and entrepreneurship.
Explore-and-Fuse: A Physarum-Inspired Approach to the Steiner Tree Problem
In this project, I developed a novel Explore-and-Fuse approach to solving difficult, NP-hard problems. This approach was inspired by Physarum Polycephalum which is a unicellular green slime mold with the intriguing ability to solve mazes, form networks, and share information with other Physarum organisms through fusion.
In the beginning of the project, I spent a lot of time reading research papers and learning about both the biological aspects of Physarum Polycephalum as well as the different mathematical models of Physarum. From my research, I came up with the idea of exploring interactions between multiple Physarum using cellular model.
Following this idea, I developed the Model of Multiple Cells.
The Model of Multiple Cells consists of diamond-shaped Physarum organisms reshaping themselves and moving around until they come into contact and fuse.
Using this model, I developed the explore-and-fuse approach where many individual Physarum organisms are initially spawned. The organisms independently gather information and form partial solutions as they fuse. Eventually, they fuse into one large organism that can optimally solve the global problem taking into account information gathered by the individual organisms. This approach presents a balance between speed and optimality.
I then demonstrated the explore-and-fuse approach on the Euclidean Steiner Tree problem, creating the Physarum Steiner Algorithm. The Euclidean Steiner Tree problem basically asks for the shortest length tree connecting a set of points.
Finally, to demonstrate the capabilities of the Physarum Steiner Algorithm, I applied it to a variety of problems.
Physarum Steiner Algorithm creating road network among large cities in the United States
Physarum Steiner Algorithm routing fiber optic cable to connect households while avoiding obstacles such as a lake and park.
VLSI (very large scale integration) chips design is one of the largest real-world applications for the Steiner Tree. Here, the Physarum Steiner Algorithm routes connections between 131 pads on an electronic board.
The Physarum Steiner Algorithm is able to find Steiner trees on other topological surfaces such as the torus and sphere.
There were additional experiments done to validate the Model of Multiple Cells and test parameters of the Physarum Steiner Algorithm such as cell size, number of cells, time complexity, and cell shape. These experiments were often large scale with over 1,000 trials, so I chose to run them on Amazon Web Service’s Batch platform. I created container images uses Docker and learned to configure AWS security groups and platforms.
The actual Physarum Steiner Algorithm was written in Java and is available on GitHub. The data analysis was primarily done in Python using matplotlib. I wrote a script to download csv files from AWS and an additional java program to compile data from individual trials. Python was used to do additional computations and create graphs such as the one shown below.
This project has resulted in 2 papers, one detailing the Model of Multiple CELLs and another detailing the Physarum Steiner Algorithm. The first paper has been accepted to the Journal of the Royal Society Interface and the second paper has been submitted to Nature Scientific Reports. This project has been presented at the MIT PRIMES Conference, the UMS Poster Session, and has been accepted to the Joint Mathematics Meeting 2022.
As a result of this project, I was named a Regeneron Science Talent Search Scholar, or a top 300 future scientist or engineer. This project was also selected as a Grand Prize Winner at the Silicon Valley Synopsys Science and Engineering Fair. A poster is available for download here. My advisor for this project was Prof. Laura Schaposnik, with contributions from Fidel Schaposnik.
Date:
January - October 2021
Skills:
Algorithms, Java, Python, Data Analysis
Ethernet Camera Streaming and Communication System
Reflecting on the 2020-2021 MATE ROV (underwater robotics) season, we agreed that one area that needed a major upgrade was our camera and communication system. Our communication system was based on a board that was no longer being sold and easily broke while our camera system utilized analog cameras resulting in very low resolution images that were impossible to use for computer vision algorithms.
We decided to use an Ethernet communication system. From the beginning of the year, I worked on many different prototypes using a single Raspberry Pi to splice together multiple video streams, using Jetson Nanos, and finally using multiple Raspberry Pi’s connected with an Ethernet switch. In the end, we chose to use a system in which a camera unit consisted of a Raspberry Pi Camera and a Pi Zero. The Raspberry Pi’s were connected to the topside via a Ethernet switch. I also chose to use an Arduino Ethernet shield so the Arduino could directly communicate with the topside.
Setup with 3 Raspberry Pis & cameras, Ethernet switch, and Arduino
With three cameras, the system can handle 30 fps at 1920x1080 with approximately 0.2 seconds of latency, which is a major improvement from previous years. Excited to be able to properly tackle image recognition tasks!
Testing latency with 3 camera streams and Arduino communication.
Date:
August - January 2021
Skills:
Python, Raspberry Pi, Arduino
Payload Test Arduino Shield PCB
For the past three years, as part of the ISS Research program, I worked a lot with these payload boards (pictured below). Normally, this board plugs into another custom PCB connected to a basic stamp, a microcontroller, but it was very hard to debug using this system. As a result, a lot of us resorted to counting header pins and connecting the payload board to Arduino pins, and miscounting has resulted in quite a few shorted boards.
As a result, I decided to create an Arduino shield that this payload board could easily plug into. This way, teams could easily test their electronics circuits. The shield is compatible with both the Arduino UNO and MEGA and was designed so that the payload board stands up vertically, providing easy access to the circuit so teams could probe with multimeters. The board maps every single pin on the payload board, from analog to digital output to data lines, to one on the Arduino. The board also includes indicator LEDs on all lines and test points.
The schematic and board design were done in Eagle.
The board is a 2 layer board. Not all Arduino pins were needed, so the board was made shorter to save space and manufacturing costs. This also required creating a custom part and footprint to get rid of the additional pins.
The board was ordered after design reviews by mentors. I assembled the board including surface mounted LEDs and diodes. It is pictured below.
Date:
January 2022
Skills:
PCB design, schematic design
Vaccinations for All
For my Synopsys Science Fair project, I decided to create a system which would autonomously administer vaccinations, decreasing the rate of needle stick injuries to healthcare workers and the spread of bloodborne diseases due to reuse of needles. The system eliminates the need for a human to administer the vaccine and also automatically disposes of used needles in SHARP containers. This project won a Honorable Mention in the Biological Science and Engineering category at the Synopsys Silicon Valley Science and Technology Championship.
I began this project by researching the necessary components such as linear actuators and solenoids. I then created an overall CAD model using Autodesk Fusion.
Overall model with spiral area for loading vaccines, solenoid to control release of vaccine into injector device, injector device containing 5 actuators, and finally a SHARP container.
A more detailed CAD was created for individual parts that needed to be 3D printed. Laser cutting was also used to create a frame that the entire contraption could be mounted to. In addition, an Arduino and motor controller was used to control the system.
Testing linear actuator.
Date:
November 2019 - March 2020
Skills:
CAD, 3D printing, Arduino
Photo of the Day
As a Christmas gift to my family, I decided to create a program that sends a email every day with a family photo and inspirational quote. This is definitely a family favorite and one of the few gifts that hasn’t been put away in a closet and forget about.
To do this, I created a Python script that was run on a Raspberry Pi. I loaded a folder full of images onto the Pi. I then used smtplib to send emails and used BeautifulSoup to scrape Brainy Quote’s quote of the day. An email with a randomly selected family photo and quote was then promptly delivered to each family member’s inbox.
I used crontab on the Raspberry Pi to automate running the script at noon every day.
Date:
December 2019
Skills:
Python, Raspberry Pi
On Board Electronics Enclosure
As CEO of my school’s MATE ROV team, when key members of the electrical team graduated, I jumped in to lead the assembly of our custom onboard electronics PCB. This 4-layer PCB served as the interface for our communication board, tether, thrusters, sensors, cameras, Arduino, and motor controllers.
Left: soldering board, Right: testing
I first had to familiarize myself with the board which was a challenge as the designer had already graduated. Throughout the rest of the year, I assembled the board as well as other components such as thrusters, sensors, and cameras. One major challenge was a finicky communication board that was no longer being sold. As the year progressed, I learned to test things individually and logically eliminate sources of error when systems broke. Beyond electrical work, I potted penetrators and found and fixed leaks. I also made additions to the PCB such as an Arduino-controlled infrared LED that mimicked the remote control we had for our video system.
Completed board
In the end, this electrical system played a crucial role in the team winning 2nd place in the Monterey Regional, qualifying for the world championship for the first time in school history, and winning 3rd place in the telepresence MATE ROV World Championships.