守护网格

GitHub 仓库LinkedIn 帖子
演示视频黑客马拉松详情

关于

Guardian Grid(SF)是一款智慧城市紧急疏散工具,帮助社区在重大灾害期间快速且安全地响应。该系统允许城市管理员或应急官员在交互式地图上标记危险区域,例如受自然灾害影响的地区,并直接定义安全区域。随后使用先进的路径寻找算法,为居民生成并传达最安全的疏散路线,考虑当前的危害。

当紧急情况发生时,官员可以更新危险和安全区域,并立即通过短信向居民的手机发送警报。每个人会收到一个指向网页门户的链接,该门户使用其当前位置显示避险路线,并通过Google Maps提供即时导航。随着情况变化,路线会实时重新计算,并发送新警报以保持所有人更新和安全。在此查看演示:

在当前演示代码中,警报通过短信发送到单个电话号码,用于演示和测试目的。然而,在真实部署中,Guardian Grid SF 将与无线紧急警报(WEA)系统集成,以向受影响城市或地区的所有人广播疏散警报。

虽然目前的重点是旧金山湾区,但我们的愿景是将 Guardian Grid 扩展到全球其他主要城市。我们的目标是提供一个强大的系统,用于协调和数据驱动的疏散,使每个城市都能保护其居民,减少拥堵,并在紧急情况展开时快速响应。

阿斯本团队

Guardian Grid 由国家安全黑客马拉松的阿斯本团队开发。我们的团队成员包括:

我们感谢导师和组织者的指导与支持,包括 Elliott Wolf、Adam Papa 和 Ray Del Vecchio。

我们的黑客马拉松之旅

2025年4月26-27日的黑客马拉松周末汇聚了一次意想不到但强大的合作。我的密友Dylan Eck和我分别从科罗拉多州和密苏里州前往旧金山,参加 Cerebral Valley 的第二届国家安全黑客马拉松。在活动启动时,我们遇到了Christina HuangIoana Munteanu,阿斯本团队由此诞生。

LinkedIn 帖子

Ioana 的 LinkedIn 帖子,突出我们的黑客马拉松经历

黑客马拉松提出了两个不同的挑战。主要赛道是基于项目的竞争,设有传统的名次奖项,而特别挑战邀请参与者对Code Metal’s的冷却系统进行道德黑客。鉴于我们团队的多元专长,尤其是 Dylan 在软件和机械工程方面的背景,我们决定在24小时内同时攻克这两个挑战。

这种雄心勃勃的做法带来了两个重要成果:

  1. Guardian Grid (SF) - 我们的主要黑客马拉松项目,聚焦紧急疏散:

  2. Code Metal 挑战 - 我们对其冷却系统完成了最成功的渗透测试,赢得了5,000美元的特别奖。虽然该解决方案仍属机密,但它展示了我们团队在软件和热力系统方面的技术深度。

虽然 Guardian Grid 在主赛事中未能进入前三名,但评委们认可了其潜在影响和创新方法。项目范围雄心勃勃,且将注意力分散在两个挑战上,使我们无法在时间限制内实现所有设想的功能。然而,评委的反馈验证了我们的解决方案在城市应急管理中的重要性。这次黑客马拉松被证明是一次变革性的经历。除了技术成就和奖金外,它还促进了新友谊,展示了多元技能在压力下协同的力量。在经历了2024年末和2025年初的个人挑战后,这次成功尤为有意义并重新激励了我们。

黑客马拉松详情

Guardian Grid (SF) 于第二届年度国家安全黑客马拉松(2025年4月26-27日)期间构建,由 Cerebral Valley 与 Shield Capital 联合斯坦福 DEFCON 主办。该活动汇聚了技术人员和工程师,针对美国军方利益相关者策划的国家安全问题陈述构建解决方案,并得到政府、军方和创业导师的指导。

  • 周末包括在斯坦福大学的国防技术招聘会和团队建设,随后在旧金山进行24小时黑客马拉松。
  • 赞助商和支持者包括 Shield Capital、In-Q-Tel、北约创新基金、Vannevar Labs、Scale AI、Groq、Windsurf、Anthropic、Microsoft、Maxar、Dedrone、Distributed Spectrum 和 Code Metal。
  • 黑客马拉松类别包括智慧城市、战争游戏、海事模式分析、AI 部署的网络安全、射频导航、通用国家安全以及黑客冷却系统。

黑客马拉松的主要部分设有奖项,包括一等奖 $3,000 加 Starlink 设备,二等奖 $2,000,三等奖 $1,000。但还有一个针对冷却挑战的特殊隐藏奖,奖金为 $5,000。我们的团队同时参加了智慧城市黑客冷却系统挑战。Guardian Grid (SF) 是我们的智慧城市参赛作品。我们在冷却挑战中获得了 $5,000 的特别奖和荣誉提名,而我们的智慧城市方案也获得了评委和同行的强烈反馈。评委和同行认可 Guardian Grid (SF) 是对紧急管理中重大问题的有影响力的响应,赞扬其创造性、实用方法,以及避免仅使用 LLM 技术作为万能解决方案的做法。尽管由于在两个挑战之间分配资源导致时间受限,我们的智慧城市项目未能获得前三名奖项,但评委对其潜力和相关性印象深刻。我们的团队荣幸地获得此认可,并赢得了黑客冷却系统挑战。

在我们的LinkedIn 帖子中了解更多细节和感想,并在此处查看黑客马拉松的照片库。

GPS 数据来源

为了在旧金山湾区进行路径寻找和制图,我们需要精确且全面的道路数据。我们最初尝试使用 Google Maps API 和 Mapbox API 来获取这些数据。然而,它们的许可限制和功能局限阻止了我们以符合黑客马拉松目标的方式获取或使用底层路由图。由于这些限制,我们使用了开放的原始地理数据集。我们通过以下两个开源来源获取了这些原始地理数据:

Linear features represent roadways for the San Francisco Bay Region. The feature set was assembled using all county-based 2021 TIGER/Line shapefiles by the Metropolitan Transportation Commission (MTC/ABAG). The dataset includes all primary, secondary, local neighborhood, and rural roads, city streets, vehicular trails, ramps, service drives, alleys, private roads, bike paths, bridle/horse paths, walkways, pedestrian trails, and stairways for the entire region.

  • The feature set contains unique road segments for each county and includes cases where a single stretch of road has multiple designations (e.g., an interstate being called by its number and local name).
  • Primary roads are major divided highways, while secondary roads are main arteries in the region.
  • The dataset includes attribute columns for identifying road type, jurisdiction, and more, supporting flexible routing and data analysis.

You can read more about the licensing and data details at the MTC dataset source.

How To Run

  1. Clone this repository and navigate into it.

  2. Set up your .env.local file. Refer to the env.local.example file to learn what environment variables you need. Note that you will need a MapBox API key for the map UI and geocoding, a TextBelt API key for SMS alerts (demo only), as well as a phone number for texting during the demo.

  3. After you create your .env.local file, you can start setting up all of GuardianGrid’s services, which include:

    • frontend: The app’s frontend interface.
    • backend: The app’s backend, including map pathfinding logic.
  4. To set up the frontend service, ensure you have Yarn installed and run:

    yarn install
    
  5. To set up the backend service, do the following:

    # go into this directory
    cd ./src/backend
    
    # set up a python environment
    python3 -m venv env
    
    # activate the python environment
    source env/bin/activate
    
    # install dependencies
    pip3 install -r requirements.txt
    
    # deactivate python environment
    deactivate
    
    # return to the project's root directory
    cd -
    
  6. With everything set up, the final step is to run the app. You’ll need two separate terminal windows or tabs, referred to as Terminal #1 and Terminal #2.

  7. In Terminal #1, start the backend service:

    # go into the backend service directory
    cd ./src/backend
    
    # activate the python environment
    source env/bin/activate
    
    # run the backend
    bash ./run.sh
    
  8. In Terminal #2, start the frontend service:

    yarn dev
    
  9. With everything running, open your browser and go to: http://localhost:3000/

  10. When finished, close Terminal #1 and Terminal #2.