گاردینر گرید اس‌اف

درباره

گاردینر گرید (SF) یک ابزار تخلیه اضطراری شهر هوشمند است که به جوامع کمک می‌کند در طول بلایای بزرگ به‌سرعت و با ایمنی پاسخ دهند. این سیستم به مدیران شهری یا مسئولان اضطراری اجازه می‌دهد نواحی خطر، مانند مناطق تحت‌تأثیر بلایای طبیعی، را علامت‌گذاری کنند و نواحی امن را مستقیماً روی یک نقشه تعاملی تعریف کنند. سپس از الگوریتم‌های پیشرفتهٔ یافتن مسیر برای تولید و انتقال امن‌ترین مسیرهای تخلیه برای ساکنان استفاده می‌شود، با در نظر گرفتن خطرات فعلی.

وقتی یک وضعیت اضطراری رخ می‌دهد، مسئولان می‌توانند مناطق خطر و امن را به‌روزرسانی کنند و بلافاصله از طریق پیامک هشدارهایی به تلفن‌های ساکنان ارسال کنند. هر نفر یک لینک به یک پرتال وب دریافت می‌کند که از موقعیت فعلی او برای نمایش یک مسیر آگاه از خطر به‌سوی ایمنی استفاده می‌کند و راهنمایی‌های فوری با گوگل مپس ارائه می‌دهد. با تغییر شرایط، مسیرها به‌صورت بلادرنگ دوباره محاسبه می‌شوند و هشدارهای جدید ارسال می‌گردند تا همه به‌روز و ایمن بمانند. دمو را اینجا ببینید:

در کد نمایشی فعلی، هشدارها از طریق پیامک به یک شماره تلفن واحد برای اهداف دمو و آزمایش ارسال می‌شوند. با این حال، در یک استقرار واقعی، گاردینر گرید اس‌اف با سیستم هشدار اضطراری بی‌سیم (WEA) یکپارچه می‌شد تا هشدارهای تخلیه را برای همه افراد در شهر یا منطقهٔ آسیب‌دیده پخش کند.

در حالی که تمرکز فعلی بر منطقهٔ خلیج سان‌فرانسیسکو است، چشم‌انداز ما گسترش گاردینر گرید به دیگر شهرهای بزرگ جهان است. هدف ما ارائهٔ یک سیستم قدرتمند برای تخلیه‌های هماهنگ و داده‌محور است تا هر شهر بتواند از مردم خود محافظت کند، ازدحام را به حداقل برساند و با آشکار شدن وضعیت‌های اضطراری، سریع پاسخ دهد.

تیم آسپن

گاردینر گرید توسط تیم آسپن در هکاتون ملی امنیت توسعه داده شد. تیم ما از افراد زیر تشکیل شده بود:

ما از راهنمایی و پشتیبانی مربیان و برگزارکنندگان خود، از جمله Elliott Wolf، Adam Papa، و Ray Del Vecchio، سپاسگزاریم.

سفر ما در هکاتون

آخر هفتهٔ هکاتون ۲۶ تا ۲۷ آوریل ۲۰۲۵ یک همکاری غیرمنتظره اما قدرتمند را گرد هم آورد. دوست نزدیک من Dylan Eck و من به‌ترتیب از کلرادو و میزوری سفر کردیم تا در دومین هکاتون ملی امنیت Cerebral Valley در سان‌فرانسیسکو شرکت کنیم. در آغاز رویداد، با Christina Huang و Ioana Munteanu آشنا شدیم و تیم آسپن متولد شد.

پست لینکدین

پست لینکدین Ioana که تجربهٔ هکاتون ما را برجسته می‌کند

هکاتون دو چالش متمایز ارائه کرد. مسیر اصلی یک رقابت مبتنی بر پروژه با جوایز رتبه‌بندی سنتی بود، در حالی که یک چالش ویژه از شرکت‌کنندگان دعوت می‌کرد تا سیستم‌های خنک‌کنندهٔ Code Metal را به‌صورت اخلاقی هک کنند. با توجه به تخصص متنوع تیم ما، به‌ویژه پیشینهٔ Dylan در هر دو حوزهٔ مهندسی نرم‌افزار و مکانیک، تصمیم استراتژیک گرفتیم که هر دو چالش را در بازهٔ ۲۴ ساعته دنبال کنیم.

این رویکرد بلندپروازانه به دو نتیجهٔ مهم منجر شد:

  1. گاردینر گرید (SF) - پروژهٔ اصلی هکاتون ما بر تخلیهٔ اضطراری متمرکز بود:

  2. چالش Code Metal - ما موفق‌ترین آزمون نفوذ را روی سیستم‌های خنک‌کنندهٔ آن‌ها انجام دادیم که به پیروزی ما در جایزهٔ ویژهٔ ۵٬۰۰۰ دلاری منجر شد. با اینکه این راه‌حل محرمانه باقی می‌ماند، عمق فنی تیم ما را هم در سیستم‌های نرم‌افزاری و هم در سیستم‌های ترمودینامیکی نشان داد.

در حالی که گاردینر گرید در رقابت اصلی به جایگاه سه‌تای برتر نرسید، داوران تأثیر بالقوه و رویکرد نوآورانهٔ آن را به رسمیت شناختند. دامنهٔ پروژه بلندپروازانه بود و تقسیم تمرکز ما بین دو چالش به این معنا بود که نتوانستیم همهٔ قابلیت‌هایی را که در ذهن داشتیم در محدودیت زمانی پیاده‌سازی کنیم. با این حال، بازخورد داوران اهمیت راه‌حل ما را در پرداختن به مدیریت اضطراری شهری تأیید کرد.

هکاتون تجربه‌ای دگرگون‌کننده ثابت شد. فراتر از دستاوردهای فنی و جایزهٔ نقدی، دوستی‌های جدیدی شکل داد و قدرت گرد هم آمدن مهارت‌های متنوع زیر فشار را نشان داد. پس از مواجهه با چالش‌های شخصی در اواخر ۲۰۲۴ و اوایل ۲۰۲۵، این موفقیت به‌ویژه معنادار و نیرو‌بخش بود.

جزئیات هکاتون

گاردینر گرید (SF) در دومین هکاتون سالانهٔ ملی امنیت (۲۶ تا ۲۷ آوریل ۲۰۲۵)، که توسط Cerebral Valley و Shield Capital با همکاری Stanford DEFCON میزبانی شد، ساخته شد. این رویداد تکنولوژیست‌ها و مهندسان را گرد هم آورد تا برای بیانیه‌های مسئلهٔ امنیت ملی که توسط ذی‌نفعان نظامی ایالات متحده تنظیم شده بود، با راهنمایی مربیان دولتی، نظامی و استارتاپی، راه‌حل‌هایی بسازند.

  • این آخر هفته شامل یک نمایشگاه شغلی فناوری دفاعی و تیم‌سازی در دانشگاه استنفورد بود و سپس ۲۴ ساعت هک‌کردن در سان‌فرانسیسکو دنبال شد.
  • حامیان و پشتیبانان شامل Shield Capital، In-Q-Tel، NATO Innovation Fund، Vannevar Labs، Scale AI، Groq، Windsurf، Anthropic، Microsoft، Maxar، Dedrone، Distributed Spectrum و Code Metal بودند.
  • دسته‌های هکاتون شامل شهرهای هوشمند، بازی‌های جنگی، تحلیل الگوی دریایی، امنیت سایبری برای استقرارهای هوش مصنوعی، ناوبری فرکانس رادیویی، امنیت ملی عمومی و هک یک سامانهٔ تبرید بودند.

بخش اصلی هکاتون جوایزی شامل ۳٬۰۰۰ دلار و واحدهای Starlink برای مقام اول، ۲٬۰۰۰ دلار برای مقام دوم و ۱٬۰۰۰ دلار برای مقام سوم داشت. اما یک جایزهٔ ویژه و پنهان برای چالش تبرید با جایزهٔ ۵٬۰۰۰ دلاری وجود داشت.

تیم ما در هر دو چالش شهرهای هوشمند و هک یک سامانهٔ تبرید شرکت کرد. گاردینر گرید (SF) ورودی ما در بخش شهرهای هوشمند بود. ما برای کار فنی‌مان در چالش تبرید، جایزهٔ ویژهٔ ۵٬۰۰۰ دلاری و تقدیرنامهٔ شایستگی دریافت کردیم و راه‌حل شهرهای هوشمند ما نیز بازخورد بسیار مثبتی از داوران و همتایان دریافت کرد.

داوران و همتایان گاردینر گرید (SF) را به‌عنوان پاسخی اثرگذار به یک مشکل مهم در مدیریت اضطراری شناختند و خلاقیت، رویکرد عملی و این واقعیت را که صرفاً از فناوری LLM به‌عنوان راه‌حل همه‌کاره استفاده نمی‌کرد، ستودند. اگرچه پروژهٔ شهرهای هوشمند ما به‌دلیل محدودیت زمانی ناشی از تقسیم منابع بین دو چالش، جایزهٔ سه‌تای برتر را نبرد، داوران از پتانسیل و ارتباط آن شگفت‌زده شدند. تیم ما مفتخر بود که این تقدیر را همراه با پیروزی در چالش هک یک سامانهٔ تبرید دریافت کند.

جزئیات و تأملات بیشتر را در پست لینکدین ما پیدا کنید و گالری عکس‌های هکاتون را از اینجا ببینید.

منابع دادهٔ GPS

برای یافتن مسیر و نقشه‌برداری ما در منطقهٔ خلیج سان‌فرانسیسکو، به داده‌های دقیق و جامع راه‌ها نیاز داشتیم. در ابتدا هم Google Maps API و هم API Mapbox را برای بازیابی این داده‌ها آزمایش کردیم. با این حال، محدودیت‌های مجوزدهی و محدودیت‌های عملکردی آن‌ها مانع از آن شد که بتوانیم گراف مسیریابی زیربنایی را به روشی که با اهداف هکاتون ما هم‌خوان باشد به‌دست آوریم یا استفاده کنیم. به‌دلیل این محدودیت‌ها، از مجموعه‌داده‌های جغرافیایی خام و باز استفاده کردیم. این داده‌های جغرافیایی خام را از طریق این دو منبع متن‌باز به‌دست آوردیم:

ویژگی‌های خطی نمایانگر راه‌های ارتباطی برای منطقه خلیج سان‌فرانسیسکو هستند. مجموعه ویژگی‌ها با استفاده از همه فایل‌های شکل‌دهی TIGER/Line مبتنی بر شهرستانِ 2021 توسط کمیسیون حمل‌ونقل متروپولیتن (MTC/ABAG) گردآوری شد. این مجموعه‌داده شامل همه جاده‌های اصلی، فرعی، محلیِ محله‌ای و روستایی، خیابان‌های شهری، مسیرهای وسایل نقلیه، رمپ‌ها، راه‌های خدماتی، کوچه‌ها، جاده‌های خصوصی، مسیرهای دوچرخه، مسیرهای اسب‌سواری، پیاده‌راه‌ها، مسیرهای عابر پیاده، و راه‌پله‌ها برای کل منطقه است.

  • مجموعه ویژگی شامل قطعه‌های یکتای جاده برای هر شهرستان است و مواردی را نیز شامل می‌شود که در آن یک بخش واحد از جاده چندین نام‌گذاری دارد (برای مثال، یک بزرگراه بین‌ایالتی که هم با شماره و هم با نام محلی خود نامیده می‌شود).
  • جاده‌های اصلی بزرگراه‌های اصلیِ تقسیم‌شده هستند، در حالی که جاده‌های فرعی شریان‌های اصلی در منطقه‌اند.
  • این مجموعه‌داده شامل ستون‌های ویژگی برای شناسایی نوع جاده، حوزه قضایی، و موارد بیشتر است و از مسیریابی انعطاف‌پذیر و تحلیل داده پشتیبانی می‌کند.

می‌توانید درباره مجوزدهی و جزئیات داده بیشتر در منبع مجموعه‌داده MTC بخوانید.

نحوه اجرا

  1. این مخزن را کلون کنید و وارد آن شوید.

  2. فایل .env.local خود را تنظیم کنید. برای آگاهی از متغیرهای محیطی موردنیاز، به فایل env.local.example مراجعه کنید. توجه داشته باشید که برای رابط نقشه و ژئوکدینگ به یک کلید API مپ‌باکس و برای هشدارهای پیامکی (فقط نسخه نمایشی) به یک کلید API تکست‌بلت و همچنین یک شماره تلفن برای پیام‌دادن در طول نسخه نمایشی نیاز خواهید داشت.

  3. پس از ایجاد فایل .env.local، می‌توانید راه‌اندازی همه سرویس‌های GuardianGrid را آغاز کنید، که شامل موارد زیر است:

    • frontend: رابط کاربری جلویی برنامه.
    • backend: بخش پشتیبان برنامه، از جمله منطق مسیر‌یابی نقشه.
  4. برای راه‌اندازی سرویس frontend، مطمئن شوید که Yarn را نصب کرده‌اید و اجرا کنید:

    yarn install
    
  5. برای راه‌اندازی سرویس backend، کارهای زیر را انجام دهید:

    # 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. با راه‌اندازی همه‌چیز، مرحله نهایی اجرای برنامه است. به دو پنجره یا زبانهٔ جداگانهٔ ترمینال نیاز خواهید داشت که با عنوان Terminal #1 و Terminal #2 از آن‌ها یاد می‌شود.

  7. در Terminal #1، سرویس backend را شروع کنید:

    # go into the backend service directory
    cd ./src/backend
    
    # activate the python environment
    source env/bin/activate
    
    # run the backend
    bash ./run.sh
    
  8. در Terminal #2، سرویس frontend را شروع کنید:

    yarn dev
    
  9. با اجرای همه‌چیز، مرورگر خود را باز کنید و به این آدرس بروید: http://localhost:3000/

  10. وقتی کارتان تمام شد، Terminal #1 و Terminal #2 را ببندید.