Project Info
💭 Why we built this. / The problem at hand. Many home security camera devices are built solely off motion detection, resulting in repetitive spam alerts to owners’ devices when the slightest motion crosses their feed. If we aren’t quick to detect a potential harmful risk, then oftentimes it may be too late to take action. An example of these occurrences are home fires, if a homeowner can quickly detect the risk such as a spark, then they may be able to stop the risk before their home burns down or spreads into a bigger fire. Warmer states such as California are especially prone to this type of disaster. This functionality extends further than home systems, as government agencies such as the fire department could use surveillance to automatically detect remote fires while they are small. Traditional cameras do not offer ways to detect unique threats such as floods and machine malfunctions. With Lookout, we are introducing a new way for cameras to define their own detection features for analyzing live footage. With each notification tailored to your needs, we are reducing the amount of threat-less alerts. 💪
What it does
Integrate Fetch AI Agents for a prompt builder to allow users to automatically add features Scan live footage to instantly analyze potential threats using Gemini for video analysis Add / delete custom events to detect Output a live log of events Allow multiple devices and video feeds in real time 💡How does it work? We use React Webcam to take live video feeds and send it to our Flask backend. Users can input custom features on top of the three default ones (theft, weapons, violence) by leveraging a custom Fetch AI uAgents for prompt building. A second agent using the built prompt and Gemini AI analyzes the video within seconds and generates a report in JSON format to pass to MongoDB. The frontend fetches this log and displays alerts with matching timestamps to alert the user. Fetch AI and Gemini AI work in combination to quickly and seamlessly notify the user of any potential danger. 🧱
How we built it
Sponsors Used: Fetch.ai , Google Gemini Frontend: React, Vite, Javascript, TailwindCSS, React-Webcam Backend: Flask, Python, OpenCV, MongoDB, Fetch.ai UAgents, Gemini AI 😰 Challenges we faced This was our first time working with Fetch AI Agents, so we had to read pages of documents to understand what we needed to implement for them to work with our software. Fetching from Flask for the on_query decorator was especially tough, as we didn’t know immediately how the agents request data from non-agents, especially with other AI such as Gemini. We opted for using custom REST endpoints to leverage the new technology of agent communication while sticking to our old knowledge of REST. Team members had different OS, it was extremely difficult to have some of the APIs working on macOS, which consumed a notable amount of time to debug alongside internet issues. 🏆 Accomplishments Cal Hacks 11.0 was half of our team’s first hackathon, so being able to complete our project was a big accomplishment in itself. We are extremely proud of our group’s collaborative efforts in completing both the frontend and backend in less than 48 hours! On top of all that, Lookout’s threat-seeking functionality has the ability to actually be incredibly useful in security systems ranging from home protection to private security. We were also proud of being able to successfully implement the AI Agents to be able to identify new types of threats as they analyzed the video data. They were challenging to understand, but in the end we were able to bring the whole project together. 🧠
What we learned
Through our trials with the AI Agents, we learned that they offer a wide range of possibilities, as they are capable of performing tasks without human intervention. These agents can be designed to learn, adapt, and execute tasks based on predefined goals and environmental inputs. They also provide robust communication to pass data and have a chain of events. ⏩
What's next
We want to improve the API response time significantly and storage space significantly so that it can be implemented in security devices and home cameras around the US without trouble. We also want to improve the AI Agent’s ability to handle the video analysis given by Gemini API, so responses are even faster.
Lookout
Project Overview
Lookout is a AI video camera monitoring tool with real-time threat detection. It is designed to analyze live footage of both home and security cameras using Google Gemini and FetchAI uAgents. By allowing users to add custom detections for any type of event (fires, floods, package deliveries, robberies, etc.), Lookout has become the best way to enhance your existing security systems.
Features
- FetchAI uAgents to create custom prompts based off of user-requested "features" (events to detect)
- Google Gemini for real-time analysis of video footage
- WebSockets for video data transfer
- Adding multiple camera sources
- Live updates with severity-based color-coded alerts
- Backend storage of previous logs.
Run the Project
1. Prerequisites:
- Node.js
- Python
- .env file
GEMINI_API_KEY=
MONGO_URI=
2. Install Dependencies:
Navigate to the project directory and run:
npm install
pip install -r requirements.txt
3. Running the Program
- One separate terminal is required for each
npm run dev
py backend/app.py
py backend/agents/agents.py
4. Visit the site!
Use Cases
- Detect any sort of danger such as crime or robbery
- Detect house fires, or floods and other natural disasters for quick government response
- Detect non-threats such as package deliveries
Analysis
View
Metric
- 41
- 14
- 12
- 8
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- CSSIn code
- HTMLIn code
- JavaScriptIn code
- PythonIn code
- ReactIn code
- Tailwind CSSIn code
- FlaskClaimed
- Google GeminiClaimed
- MongoDBClaimed
6 of 9 appear in the indexed code. 3 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
44 KB
Source files
23
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
kevintsoii/Lookout
32 files · 296 KB · @ 78b6950
Structure
Interface
12 files · 38%Screens, components and styles rendered to the user.
Application logic
8 files · 25%Domain rules, services and shared utilities.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- JavaScript63%
- Python30%
- Markdown3%
- CSS3%
- HTML1%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
package.json
npm · 27- @radix-ui/react-slot
- @shadcn/ui
- axios
- class-variance-authority
- clsx
- framer-motion
- lucide-react
- react
- react-dom
- react-router-dom
- react-webcam
- socket.io-client
- tailwind-merge
- tailwindcss-animate
- +13 more
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.