Inspiration
In the January 2025 Eaton fire, 19 people died. Eighteen of them were in west Altadena, the side of town that received its evacuation order hours after the other side. Many of those people were older or disabled and needed more time to leave. The failure was the warning, not the existence of a camera.
FireCouncil is a copilot for that gap. It does not issue an evacuation order, but it makes sure you get it at the right time. A duty officer approves every warning.
What it does
Public HPWREN cameras (hpwren.ucsd.edu) play three views of one fire. OpenCV marks smoke on any of them. (Currently it is working on prerecorded videos, but will act in real-time ) The warning card stays blank until all the checks are done:
- Department specific AI agents: Three AI agent reviewers then answer: fire department, evacuation and traffic, and public health. Fixed checks have the last word.
- NASA satellites hotspots,
- Calculates the Fire speed and road blocks near it. (OpenCV compares a short stack of road frames: if a bright patch stays put and the picture barely changes, the road is marked blocked; if that patch moves, the road is marked clear.)
A zone is warned only when its ETA is 120 minutes or less and officials have not already ordered it out. The warning is urgent at 60 minutes or less. A road counts only if it is clear or slow and the report is from the last 10 minutes. Care sites in those zones are named first. Smoke with no arrival time produces a health note only.
The duty officer approves or rejects on the page, which pops up whenever the fire is detected. Approve writes the warning on the machine. It is not emailed. The same click publishes WarningApproved on Amazon EventBridge. A CloudWatch log records the route and the zone, and assigns/alerts the caregiver in case of vulnerability.
How we built it
The public page runs on an Amazon EC2 t4g.small in us-east-2. That box uses OpenCV 5 from pip (opencv-python-headless==5.0.0.93) for the smoke check. Plume speed comes from the camera frames. On the Santa Margarita view, it is 6.561 km/h, moving east. The NASA FIRMS provides the hotspot zone data.
When smoke is marked and GRAVITON_LAUNCH=1, one c8g.2xlarge starts from the Cloud Optimized OpenCV (COOL) image for Graviton, measures the speed, and stops. That image is OpenCV 4.14.0-pre under /opt/cool. The switch is off on the public page, so a visit does not start the Graviton machine.
The three reviewers call Amazon Bedrock for analysing the situation. Approve publishes to the default event bus when APPROVAL_EVENTS=1. The rule firecouncil-approved writes each event to CloudWatch, which can later be subscribed by Alexa or other household devices.
Challenges
COOL does not see the smoke on an earlier frame. The first mark is identical on every machine: Boucher Hill at 60 seconds, Santa Margarita at 121, Toro Peak at 122. On the same c8g.2xlarge, ordinary OpenCV 5 took 0.512 seconds for the three cameras and COOL took 0.482 seconds. Across 1,000 cameras done one after another, that is about 10 seconds of computer time. The small demo box took 1.069 seconds, and most of that gap is the larger machine, not COOL. The first COOL call was slower than later calls.
The COOL build is OpenCV 4.14, not OpenCV 5. The public page stays on OpenCV 5. Starting both Graviton machines at once hit the vCPU limit, so they were started one at a time and then stopped.
What we learned
The smoke mark sits on the same frame no matter which OpenCV build runs the check. What changes is how fast the math finishes, and how the machines are split. A small box can stay on and watch. A larger Graviton box starts only after smoke is marked, does the heavy check, and then stops. The three agents are there to propose. The ETA and road checks decide, and a person still has to approve anything that goes out.
What's next
The next step is the reply. A vulnerable resident who does not answer within 60 seconds should name their caregiver, and that warning should be spoken in the home on Alexa. Approve already publishes the event. The voice and the caregiver reply are the piece to connect to that event.
Built With
- 5
- amazon
- amazon-cloudwatch
- amazon-web-services
- bedrock
- boto3
- ec2
- eventbridge
- fastapi
- graviton
- numpy
- opencv
- pydantic
- python
- uvicorn
Log in or sign up for Devpost to join the conversation.