# FireSense
[](https://www.python.org/downloads/)
[](https://opensource.org/licenses/MIT)
FireSense is an AI-powered fire detection system that uses the Gemma 3N E4B vision model to analyze video content for fire and smoke detection. It provides real-time analysis, comprehensive fire characteristics assessment, and emergency response recommendations.
## Features
- 🚀 **Fast Development**: Leverages uv for 10-100x faster dependency installation
- 📦 **Modern Packaging**: PEP 621 compliant with pyproject.toml
- 🔍 **Type Safety**: Full mypy strict mode support
- ✅ **Testing**: Comprehensive pytest setup with coverage
- 🎨 **Code Quality**: Pre-configured with ruff, black, and pre-commit
- 📚 **Documentation**: Ready for MkDocs with Material theme
- 🔄 **CI/CD**: GitHub Actions workflow included
## Quick Start
### Prerequisites
- Python 3.11 or higher
- [uv](https://github.com/astral-sh/uv) package manager
### Installation
#### From PyPI (Recommended)
```bash
pip install firesense
```
#### From Source
1. Clone the repository:
```bash
git clone https://github.com/gregorymulla/firesense_ai.git
cd firesense_ai
```
2. Install with pip:
```bash
pip install -e ".[dev]"
```
#### Using uv (Fastest)
1. Install uv:
```bash
curl -LsSf https://astral.sh/uv/install.sh | sh
```
2. Install firesense:
```bash
uv pip install firesense
```
## Usage
### Running the Application
```bash
# Analyze a video file
firesense analyze video.mp4
# Analyze with custom settings
firesense analyze video.mp4 --interval 1.0 --confidence 0.8
# Preview frame extraction
firesense preview video.mp4 --frames 10
# Launch demo UI
firesense demo wildfire_example_01
# Process multiple videos
firesense batch /path/to/videos --pattern "*.mp4"
```
### Development Commands
```bash
# Run tests
make test
# Run linting
make lint
# Format code
make format
# Type check
make type-check
# Run all checks
make check
# Build documentation
make docs
# Clean build artifacts
make clean
```
## Project Structure
```
firesense/
├── src/gemma_3n/ # Source code
│ └── fire_detection/ # Fire detection system
│ ├── models/ # Data models and AI interface
│ ├── processing/ # Video and frame processing
│ └── vision/ # Computer vision utilities
├── tests/ # Test suite
│ ├── unit/ # Unit tests
│ └── integration/ # Integration tests
├── docs/ # Documentation
├── scripts/ # Utility scripts
└── .github/ # GitHub Actions
```
## Configuration
The application can be configured using environment variables with the `GEMMA_` prefix:
```bash
export GEMMA_DEBUG=true
export GEMMA_API_PORT=9000
export GEMMA_LOG_LEVEL=DEBUG
```
Or using a `.env` file:
```env
GEMMA_DEBUG=true
GEMMA_API_PORT=9000
GEMMA_LOG_LEVEL=DEBUG
```
## Contributing
1. Fork the repository
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
3. Make your changes
4. Run tests and checks (`make check`)
5. Commit your changes (`git commit -m 'Add amazing feature'`)
6. Push to the branch (`git push origin feature/amazing-feature`)
7. Open a Pull Request
## Releasing
To publish a new release to PyPI, simply push a commit to the main branch with a message starting with "new release" followed by the version number:
```bash
git commit -m "new release 0.3.0"
git push origin main
```
The GitHub Actions workflow will automatically:
1. Extract the version from the commit message
2. Update the version in `pyproject.toml` and `__init__.py`
3. Build and publish the package to PyPI
4. Create a git tag
5. Create a GitHub release
**Note**: Make sure you have set up the `PYPI_API_TOKEN` secret in your GitHub repository settings.
## License
This project is licensed under the MIT License - see the LICENSE file for details.
Raw data
{
"_id": null,
"home_page": null,
"name": "firesense",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.11",
"maintainer_email": "Gregory Mulla <gregory.cr.mulla@gmail.com>",
"keywords": "ai, computer-vision, fire-detection, gemma, safety, video-analysis, wildfire",
"author": null,
"author_email": "Gregory Mulla <gregory.cr.mulla@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/99/31/679c32edda4b48c0163636080025cfc1b8d45fc3360f0a222fc36df56b23/firesense-0.10.1.tar.gz",
"platform": null,
"description": "# FireSense\n\n[](https://www.python.org/downloads/)\n[](https://opensource.org/licenses/MIT)\n\nFireSense is an AI-powered fire detection system that uses the Gemma 3N E4B vision model to analyze video content for fire and smoke detection. It provides real-time analysis, comprehensive fire characteristics assessment, and emergency response recommendations.\n\n## Features\n\n- \ud83d\ude80 **Fast Development**: Leverages uv for 10-100x faster dependency installation\n- \ud83d\udce6 **Modern Packaging**: PEP 621 compliant with pyproject.toml\n- \ud83d\udd0d **Type Safety**: Full mypy strict mode support\n- \u2705 **Testing**: Comprehensive pytest setup with coverage\n- \ud83c\udfa8 **Code Quality**: Pre-configured with ruff, black, and pre-commit\n- \ud83d\udcda **Documentation**: Ready for MkDocs with Material theme\n- \ud83d\udd04 **CI/CD**: GitHub Actions workflow included\n\n## Quick Start\n\n### Prerequisites\n\n- Python 3.11 or higher\n- [uv](https://github.com/astral-sh/uv) package manager\n\n### Installation\n\n#### From PyPI (Recommended)\n\n```bash\npip install firesense\n```\n\n#### From Source\n\n1. Clone the repository:\n```bash\ngit clone https://github.com/gregorymulla/firesense_ai.git\ncd firesense_ai\n```\n\n2. Install with pip:\n```bash\npip install -e \".[dev]\"\n```\n\n#### Using uv (Fastest)\n\n1. Install uv:\n```bash\ncurl -LsSf https://astral.sh/uv/install.sh | sh\n```\n\n2. Install firesense:\n```bash\nuv pip install firesense\n```\n\n## Usage\n\n### Running the Application\n\n```bash\n# Analyze a video file\nfiresense analyze video.mp4\n\n# Analyze with custom settings\nfiresense analyze video.mp4 --interval 1.0 --confidence 0.8\n\n# Preview frame extraction\nfiresense preview video.mp4 --frames 10\n\n# Launch demo UI\nfiresense demo wildfire_example_01\n\n# Process multiple videos\nfiresense batch /path/to/videos --pattern \"*.mp4\"\n```\n\n### Development Commands\n\n```bash\n# Run tests\nmake test\n\n# Run linting\nmake lint\n\n# Format code\nmake format\n\n# Type check\nmake type-check\n\n# Run all checks\nmake check\n\n# Build documentation\nmake docs\n\n# Clean build artifacts\nmake clean\n```\n\n## Project Structure\n\n```\nfiresense/\n\u251c\u2500\u2500 src/gemma_3n/ # Source code\n\u2502 \u2514\u2500\u2500 fire_detection/ # Fire detection system\n\u2502 \u251c\u2500\u2500 models/ # Data models and AI interface\n\u2502 \u251c\u2500\u2500 processing/ # Video and frame processing\n\u2502 \u2514\u2500\u2500 vision/ # Computer vision utilities\n\u251c\u2500\u2500 tests/ # Test suite\n\u2502 \u251c\u2500\u2500 unit/ # Unit tests\n\u2502 \u2514\u2500\u2500 integration/ # Integration tests\n\u251c\u2500\u2500 docs/ # Documentation\n\u251c\u2500\u2500 scripts/ # Utility scripts\n\u2514\u2500\u2500 .github/ # GitHub Actions\n```\n\n## Configuration\n\nThe application can be configured using environment variables with the `GEMMA_` prefix:\n\n```bash\nexport GEMMA_DEBUG=true\nexport GEMMA_API_PORT=9000\nexport GEMMA_LOG_LEVEL=DEBUG\n```\n\nOr using a `.env` file:\n\n```env\nGEMMA_DEBUG=true\nGEMMA_API_PORT=9000\nGEMMA_LOG_LEVEL=DEBUG\n```\n\n## Contributing\n\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/amazing-feature`)\n3. Make your changes\n4. Run tests and checks (`make check`)\n5. Commit your changes (`git commit -m 'Add amazing feature'`)\n6. Push to the branch (`git push origin feature/amazing-feature`)\n7. Open a Pull Request\n\n## Releasing\n\nTo publish a new release to PyPI, simply push a commit to the main branch with a message starting with \"new release\" followed by the version number:\n\n```bash\ngit commit -m \"new release 0.3.0\"\ngit push origin main\n```\n\nThe GitHub Actions workflow will automatically:\n1. Extract the version from the commit message\n2. Update the version in `pyproject.toml` and `__init__.py`\n3. Build and publish the package to PyPI\n4. Create a git tag\n5. Create a GitHub release\n\n**Note**: Make sure you have set up the `PYPI_API_TOKEN` secret in your GitHub repository settings.\n\n## License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.",
"bugtrack_url": null,
"license": "MIT",
"summary": "AI-powered fire detection system using Gemma 3N E4B vision model",
"version": "0.10.1",
"project_urls": {
"Documentation": "https://github.com/gregorymulla/firesense_ai#readme",
"Homepage": "https://github.com/gregorymulla/firesense_ai",
"Issues": "https://github.com/gregorymulla/firesense_ai/issues",
"Repository": "https://github.com/gregorymulla/firesense_ai"
},
"split_keywords": [
"ai",
" computer-vision",
" fire-detection",
" gemma",
" safety",
" video-analysis",
" wildfire"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "d857ca4844384b83c28474f1b14bfd541cbbcf87a9ad36d887f43c2e021baba9",
"md5": "49fadf6f259a95966916c76486001f7c",
"sha256": "3b62f9b02e8044277002d84781c29cfef4a28441627552494eac6569bcf1de9c"
},
"downloads": -1,
"filename": "firesense-0.10.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "49fadf6f259a95966916c76486001f7c",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.11",
"size": 75772,
"upload_time": "2025-08-04T02:17:43",
"upload_time_iso_8601": "2025-08-04T02:17:43.361292Z",
"url": "https://files.pythonhosted.org/packages/d8/57/ca4844384b83c28474f1b14bfd541cbbcf87a9ad36d887f43c2e021baba9/firesense-0.10.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "9931679c32edda4b48c0163636080025cfc1b8d45fc3360f0a222fc36df56b23",
"md5": "e96d6f59402555667881b145cdc4e0e8",
"sha256": "d216101d508e6d39599badfeca9f6a3152caab78357dfd47e97d1efcda9ff330"
},
"downloads": -1,
"filename": "firesense-0.10.1.tar.gz",
"has_sig": false,
"md5_digest": "e96d6f59402555667881b145cdc4e0e8",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.11",
"size": 298519,
"upload_time": "2025-08-04T02:17:45",
"upload_time_iso_8601": "2025-08-04T02:17:45.219647Z",
"url": "https://files.pythonhosted.org/packages/99/31/679c32edda4b48c0163636080025cfc1b8d45fc3360f0a222fc36df56b23/firesense-0.10.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-04 02:17:45",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "gregorymulla",
"github_project": "firesense_ai#readme",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "firesense"
}