This project, Okeanos, was created for the Data Science Track as part of SMathHacks 2026, between 3/14/2026 and 3/15/2026. The video and subsequent images of our project process serve as an overview, and the full technical documentation can be found below.

Inspiration:

Pollution is one of the biggest problems facing our Oceans. 11 million metric tons of plastic enter the ocean every year, the equivalent of a garbage truck unloading into the ocean every single minute. This ocean trash has grave effects: ghost nets alone kill over 100,000 marine animals annually.

Already, efforts like The Ocean Cleanup are trying to tackle this problem. A key feature of ocean cleanup organizations is to rely on the small contributions of many people across the globe to make a larger impact. Applying this to data science, we realized one way both individuals and corporations could help save the ocean is by making a product to aggregate sensor data from millions already out in the ocean. With everyone from large cargo ships to small individual ships pitching in their data, we can create the world's most comprehensive database of ocean pollution and animals, enabling ocean cleanup organizations to get the maximum impact out of their efforts and monitor progress over time.

Product Impact:

Our product’s impact extends to many people, animals, and economies. Ocean activists, like those at The Ocean Cleanup, will finally have access to accurate, real-time data about the location of trash sites, and will thus be able to clean them up much more easily. Data scientists will benefit from the enormous amount of data that was previously collected purely through inaccurate satellite observations, and will now be able to draw insights from this data that were previously impossible to uncover. Once ocean cleanup groups manage to remove trash from sites (that would have never been found without Okeanos), the whole world benefits: animals get saved from the pollution that kills them and their homes, fishing and tourism economies are revived due to saved ecosystems, and people ingest less microplastics, leading to happier and healthier lives.

Implementation:

Okeanos consists of two parts: a client that runs directly on the boat and a server. The client uses the boat's existing camera and GPS data, and sends the server that information. The server collects these image + GPS pairs and stores them in a PostGIS database, which natively supports geospatial data, giving us excellent scalability to millions of boats.

The frontend is written in React with the Vite build tool to allow for easy, interactive, and effective data visualization, all while maintaining a robust ecosystem and allowing for asynchronous work on both the frontend and backend.

Analytics:
In addition to the data, which is publicly accessible, we provide various analytics directly on our website.

Drift demo Example of drift prediction

We implemented drift prediction through OpenDrift, an open-source Python library that uses ocean current data to make predictions about the movement of particles in the water. Given the date and location that a piece of trash was seen, we incorporate ocean current data from the Hybrid Coordinate Ocean Model with OpenDrift to generate predictions for where that trash will be up to a week in the future, allowing trash cleanup crews to prepare for trips in advance instead of rushing to the site immediately.

We also have various plots showing detections by label, detections by boat, by location, etc. Users can easily export views of our data as CSV for further processing.

Simulation and Verification:
Unreal Editor screenshot Level editor screenshot we used for simulation

To prove our idea works, we used the HoloOcean simulator, which is made with Unreal Engine. This gives us a photorealistic environment that is close to what real boats would record at sea. It also allows us to easily simulate sensors like cameras and GPS, complete with noise and various lighting effects.

We designed a custom environment using two boats and various objects such as trash bags, debris, ghost nets, turtles, and dolphins. The two boats move around the trash and allow us to test our system with multiple agents.

YOLO training screenshot YOLO Training Results

We then trained a model based on YOLO26n to detect these various objects. Our training data comes from our photorealistic simulator and was hand-labeled. The full simulation pipeline is then as follows.

  1. The boats in HoloOcean drive around the environment
  2. Live camera feed and GPS captured per boat and sent to the server
  3. The model processes the camera feed to determine whether there is trash or not
  4. Server processes data (including boat and trash location/pictures, if applicable) and sends it to the frontend through an API

As you can see in the video, our system works end-to-end, with each boat's camera detecting objects in our simulated environment.

Challenges:

This was a very ambitious project, and a major challenge we faced was not only finishing the code in time, but also how to distribute work. Given the scope, collaboration across our entire four-person team was critical. We ended up with the following rough splits: Evan built the frontend, Chris worked on the HoloOcean simulation, Alex did the object detection and drift prediction, and Nicholas created the backend API. As part of this, everyone made REST APIs to enable easy integration. This allowed us to all code in parallel, and only when the project was almost done did we work sequentially.

Training the object detection model was also somewhat challenging. We initially tried to use Roboflow, but later realized we could not export the trained PyTorch model for local inference. We then switched to CVAT and manually labeled the images, and although it took some time, the results were much better and much easier to train on.

Learnings:

We learned how to use PostGIS as an extension to PostgreSQL that adds support for geospatial objects. This ultimately aided our knowledge of backend development, as we were able to experiment with creating and editing databases we were previously unfamiliar with.

We learned about the OpenDrift library and other similar libraries available to predict the movement of objects based on ocean currents. Through this library, we also learned about the lack of easily available current data to access with an API since the libraries don’t provide their own data.

We also learned a lot about environment design, which is closely related to game development, through our work to simulate the system with HoloOcean. Working with Unreal Engine was often challenging, and creating textures for the water and assets was certainly a learning experience.

Demo:

UI screenshot UI with just two boats

When visiting our website, you will see a view of the world with some boat icons. In the bottom left corner, you can see the total number of boats that are in the system, as well as how many of each class (dolphins, nets, trash, and turtles). At the bottom, there is a slider that controls how far ahead in time the position of trash should be predicted, which goes up to 7 days. In the bottom right corner, you will see a scale, giving you a good estimate of the size and distance of boats and trash sites. In the top right corner, there is a button to add your own boat, which allows people to register themselves and improve the trash map, which is ultimately built on crowdsourcing.

Conclusion and Future Work:

Okeanos has the potential to change our oceans as we know them. Our project’s architecture enables us to scale to millions of ships, and this would be our first goal: working with actual ships to integrate their systems. Once we’re there, finding more clients is straightforward as we begin working with boat organizations that may require our product to support cleanup efforts.

We also see many more possible avenues for what we could do with this platform. Currently, our object detection model is limited in classes; adding detections for other ships, animals, and types of trash would give a more detailed picture of the ocean. Another expansion area would be in Gaussian Splatting, which would construct a 3D view of the ocean and allow people to see any part of the ocean, thereby spreading awareness about the problem while also reducing pollution caused by tourism.

Overall, our project hopes to accelerate a vital step in our world’s history: the cleaning of our oceans.

Built With

Share this project:

Updates