Mirobody
인간 건강의 표준 레지스트리, 약 2천 개 임상·생활 지표를 하나의 언어로 정리
캘리포니아 현장 작업자를 위한 연기·열 교대 계획, 장소와 교대 입력 시 N95 착용 시간·그늘·물 공급 정보를 제공합니다
Smoke and heat shift plan for farm, contractor and utility line crews in California: enter a place and a shift, get the hour Cal/OSHA requires N95s (§5141.1, AQI 151) or shade and water (§3395, 80°F),
건강Jupyter Notebook · SwiftGitHub @fortunto2온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Crew Air: smoke and heat forecasts turned into a Cal/OSHA shift plan. Stanford Cleantech Hackathon 2026
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Smoke and heat forecasts turned into a shift plan, so the job site keeps working and stays within the law.
Stanford Cleantech Hackathon 2026 · submitted to Track 3 Resilient Systems (line crews after a fire; the same hours for a home and a building, airsignal.app/crew/grid) · Live: airsignal.app/crew · Devpost · Deck (PDF) · PPTX · Explainer video · pitch/ · Write-up on rustman.org
California already writes down what an outdoor employer must do: at PM2.5 AQI 151 provide N95s and tell the crew (Cal/OSHA §5141.1), at 80°F shade and water, at 95°F high-heat procedures (§3395). Almost nobody does it.
Inspection waits for complaints, and workers are afraid to complain.
work/sky_eval.py, work/sky_eval.md); its visibility estimate was unreliable, so the verdict
rests on the smoke question and visibility shows only when confident. Visible smoke under a forecast
below AQI 101 is flagged as "looks worse than the forecast" and pre-fills a report.curl 'https://airsignal.app/api/crew?place=Fresno&shift=07-17' # plan + checks + BMS, home, alerts, wind, fires_near, dispatch (JSON)
# every endpoint: https://airsignal.app/api · a utility's 13 cities: https://airsignal.app/crew/grid
curl 'https://airsignal.app/api/crew/reports?place=Fresno' # today's reports
curl -H 'content-type: image/jpeg' --data-binary @sky.jpg \
'https://airsignal.app/api/sky-check?place=Fresno' # Jev on a sky photo
make plan P="Fresno" S=07-17 # the same engine idea in Python
make test # Python rules + NowCast tests
make evidence # the 4.5M worker-days table
| Piece | Where | Built during the hackathon |
|---|---|---|
| Engine: NowCast, rulebook, plan, BMS, fire and monitor checks | airq airq-core/src/crew.rs (Rust → WASM) | yes, all of it |
| Page, API, reports, escalation mock, sky check | air-signal-web src/pages/crew.astro, src/lib/crew.ts, src/pages/api/crew/, src/pages/api/sky-check.ts | yes, all of it |
| Python CLI + rulebook YAML + tests, evidence script | this repo: crewair/, rulebooks/, tests/, work/ | yes |
| iOS app: Plan, Sky (AR horizon + Jev check), Report, crew lead | this repo: ios/ (make -C ios gen test build install) | yes |
| Evidence and the Jev eval | this repo: work/evidence_*.py, work/sky_eval.py | yes |
| Pitch | pitch/ | yes |
Every commit for the above is dated 23–24 Oct 2026 inside hacking hours (Fri 17:00 – Sat 17:00 PT).
After the event the iOS code continues in air-signal-ios (private, Crew Air plus a consumer app on a shared core); ios/ here stays as built in the 24 hours.
Earlier open-source work it stands on, disclosed: the Air Signal site's hosting and layout
(airsignal.app, air-signal-web), and from the
airq-core library the EPA AQI breakpoints, the sensor/model merge
(merge.rs) and haversine. The iOS AR overlay adapts camera-geometry code from our app
Starlapse. The app's usage counter is our shared package
superduperai-analytics-swift (three events, an
install UUID, August 2026). All four are public repositories by the same author, older than the event. The
rest is new.
The engine knows no law. A rulebook names a metric (us_aqi_pm25, pm25_nowcast_ugm3, pm25_ugm3,
temp_f, temp_c), a threshold, the action and the citation. Smoke rules use the NowCast concentration as
§5141.1 Appendix A does (55.5 and 500.5 µg/m³): an AQI threshold of 501 can never trip, the scale stops at
500. A new state or country is a new file, not new code: Oregon and Washington have smoke rules, Canadian
provinces use AQHI, Spain and Italy restrict outdoor work in heatwaves. Only California ships.
| Source | Key | Use |
|---|---|---|
| Open-Meteo (CAMS air quality + weather) | none | hourly PM2.5 and temperature; free only non-commercially |
| NASA FIRMS VIIRS, public 24 h CSV (NOAA-20, Suomi-NPP) | none | fires within 50 km |
| AirNow hourly files (files.airnowtech.org) | none | regulatory monitors within 25 km |
| EPA AirData, BLS QCEW | none | the evidence table |
| DOL OSHA enforcement API | free key | §5141.1 / §3395 / §3396 citations (work/evidence_citations.py) |
| TypeSafe Jev | key (Worker secret) | sky photo → smoke / visibility probabilities |
| Earth Engine, Sentinel-2 | gcloud login | burn scar and fire front for the pitch (work/) |
| NOAA HRRR-Smoke | none | next: 3 km smoke over the US instead of CAMS ~40 km |
Free for crews, paid by employers, public data. The engine, rulebooks and worker app are open source (AGPL for airq-core and the site, MIT here). Employers pay per site for alerts in Spanish and English, many sites, the archive an inspector or insurer asks for, and the BMS feed. Raw reports stay private; exposure and report counts by county are published anonymized.
work/ holds the GEE 101 workshop run locally plus two scripts on the largest fire in California on 20 Oct
2026 (NASA FIRMS, near Sequoia): fire_s2.py pulls a Sentinel-2 scene, burn_scar.py computes dNBR.
Auth: ee_init.py uses your gcloud login (EE_ACCOUNT, EE_PROJECT).
Plan and status: docs/next.md. Event notes: docs/event.md, tracks and decision: docs/tracks.md.
A planning aid, not legal advice.
MIT