Inspiration

During global disasters, it is imperative to have an efficient and reliable system in place for providing emergency support to first responders. We wanted to address this challenge by ensuring the availability of satellites to collect and transmit data in and out of regions in crisis.

What it does

During a disaster, Disaster Relief Infrastructure For Tracking and Safety (Drifts) looks at 10,000+ satellites currently orbiting above the disaster region. It then builds the optimal constellation from these by considering the current needs, as well as the motion/position of the satellites. Specifically, we look at the capabilities of each potential satellite and ensure that the constructed constellation has, at a minimum, capabilities for weather monitoring, GPS/navigation, high-resolution imaging, and ground communication. We then select a configuration of these satellites that will be overhead the longest based on their current position/velocity in order to maximize the reliability of the constellation. Additionally, as satellites pass out of range of the disaster region, the constellation will be automatically reconfigured with new satellites.

How we built it

Drifts.space’s frontend was built using Next.js, Tailwind CSS, and Globe.GL to visualize the constellations on an interactive globe. The backend and constellation construction algorithm were built in Node.js, where we query the N2YO Satellite API. Finally, we hosted our webapp using Vercel.

Challenges we ran into

Over the duration of the hackathon we ended up pivoting our idea several times as we struggled to find data sources that were reliable, easy to use, and expansive enough to build an impactful project with the data. Once we settled on satellite constellations, we faced some challenges in designing an efficient algorithm to build the optimal constellations without exceeding the quite restrictive API rate limit on N2YO. One improvement we made for this was caching static satellite information instead of sending API requests each time. We also faced a lot of challenges with the globe visualizations. We had to extend Globe.GL with custom functionality in order to allow users to input the disaster region(s) and add our constructed constellations. Finally, we had a lot of challenges with sending API requests to N2YO. We had to setup a secondary Heroku proxy server in order to get the requests to go through.

Accomplishments that we're proud of

We were exceptionally proud of the UI we built to visualize the disasters and satellite constellations. This functionality was not built-in to Globe.GL, and took a lot of hard work to get working smoothly. We were also proud of the real-time updates of satellite positions/constellations.

What we learned

While building the frontend, we learned a lot about 3D design and visualizations in Javascript. We also learned a lot about satellite systems and the various challenges of satellite communication when designing our constellation construction algorithm.

What's next for Drifts.space

Some future directions for Drifts.space could be automatically determining and predicting future disasters based on real-time data such as satellite weather data or seismic activity and preconfiguring constellations in advance of disasters occurring. We would like to clean up some of the front-end functionality in order to provide a smoother experience.

Built With

Share this project:

Updates