Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Empty file removed .azure/azure-piplines.yml
Empty file.
64 changes: 64 additions & 0 deletions .github/ISSUE_TEMPLATE/bug-report.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
name: Bug Report
description: Problems with SPARROW
labels: [bug]
body:
- type: markdown
attributes:
value: |
Thank you for submitting a Bug Report!

- type: checkboxes
attributes:
label: Search before asking
description: >
Please search the [issues](https://github.com/microsoft/SPARROW/issues) to see if a similar bug report already exists.
options:
- label: >
I have searched the SPARROW [issues](https://github.com/microsoft/SPARROW/issues) and found no similar bug report.
required: true

- type: textarea
attributes:
label: Bug
description: Provide console output with error messages and/or screenshots of the bug.
placeholder: |
💡 ProTip! Include as much information as possible (error messages, screenshots, logs, tracebacks, etc.) to receive the most helpful response.
validations:
required: true

- type: textarea
attributes:
label: Environment
description: Please specify the software and hardware you used to produce the bug.
placeholder: |
- SPARROW version / commit hash:
- Hardware: Jetson Orin Nano / other
- OS: Ubuntu 22.04
- Docker version:
validations:
required: false

- type: textarea
attributes:
label: Minimal Reproducible Example
description: >
This is referred to by community members as creating a [minimal reproducible example](https://stackoverflow.com/help/minimal-reproducible-example).
placeholder: |
```
# Steps or commands to reproduce the issue
```
validations:
required: false

- type: textarea
attributes:
label: Additional
description: Anything else you would like to share?

- type: checkboxes
attributes:
label: Are you willing to submit a PR?
description: >
(Optional) We encourage you to submit a [Pull Request](https://github.com/microsoft/SPARROW/pulls) (PR) to help contribute to SPARROW for everyone, especially if you have a good understanding of how to implement a fix or feature.
options:
- label: Yes I'd like to help by submitting a PR!
48 changes: 48 additions & 0 deletions .github/ISSUE_TEMPLATE/feature-request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: Feature Request
description: Suggest an enhancement for SPARROW
labels: [enhancement]
body:
- type: markdown
attributes:
value: |
Thank you for submitting a SPARROW Feature Request!

- type: checkboxes
attributes:
label: Search before asking
description: >
Please search the [issues](https://github.com/microsoft/SPARROW/issues) to see if a similar feature request already exists.
options:
- label: >
I have searched the SPARROW [issues](https://github.com/microsoft/SPARROW/issues) and found no similar feature request.
required: true

- type: textarea
attributes:
label: Description
description: A short description of your feature.
placeholder: |
What new feature would you like to see in SPARROW?
validations:
required: true

- type: textarea
attributes:
label: Use case
description: |
Describe the use case of your feature request. It will help us understand and prioritize the feature request.
placeholder: |
How would this feature be used, and who would use it?

- type: textarea
attributes:
label: Additional
description: Anything else you would like to share?

- type: checkboxes
attributes:
label: Are you willing to submit a PR?
description: >
(Optional) We encourage you to submit a [Pull Request](https://github.com/microsoft/SPARROW/pulls) (PR) to help contribute to SPARROW for everyone, especially if you have a good understanding of how to implement a fix or feature.
options:
- label: Yes I'd like to help by submitting a PR!
32 changes: 32 additions & 0 deletions .github/ISSUE_TEMPLATE/question.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
name: Question
description: Ask a SPARROW question
labels: [question]
body:
- type: markdown
attributes:
value: |
Thank you for asking a general question!

- type: checkboxes
attributes:
label: Search before asking
description: >
Please search the [issues](https://github.com/microsoft/SPARROW/issues) to see if a similar question already exists.
options:
- label: >
I have searched the SPARROW [issues](https://github.com/microsoft/SPARROW/issues) and found no similar question.
required: true

- type: textarea
attributes:
label: Question
description: What is your question?
placeholder: |
💡 ProTip! Include as much information as possible to receive the most helpful response.
validations:
required: true

- type: textarea
attributes:
label: Additional
description: Anything else you would like to share?
28 changes: 28 additions & 0 deletions .github/workflows/deploy-docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: Deploy MkDocs site

on:
push:
branches:
- main
paths:
- 'docs/**'
- 'mkdocs.yml'
- 'docs-requirements.txt'

jobs:
deploy:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4

- uses: actions/setup-python@v5
with:
python-version: '3.10'

- name: Install MkDocs dependencies
run: pip install -r docs-requirements.txt

- name: Deploy to GitHub Pages
run: mkdocs gh-deploy --force
9 changes: 9 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,15 @@
##
## Get latest from https://github.com/github/gitignore/blob/main/VisualStudio.gitignore

# Docs build output (served from gh-pages branch)
site/

# Local archive directories
archive/

# Workspace files
*.code-workspace

# User-specific files
*.rsuser
*.suo
Expand Down
18 changes: 16 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
![image](https://zenodo.org/records/17547596/files/SPARROW-banner.png)
![SPARROW — Solar-Powered Acoustic and Remote Recording Observation Watch, edge AI for wildlife monitoring](https://zenodo.org/records/17547596/files/SPARROW-banner.png)

</a>
</p>
Expand Down Expand Up @@ -28,6 +28,20 @@ The resulting critical information is then transmitted via low-Earth orbit satel
<!-- This section has the latex citation
To learn more about project SPARROW, please checkout our SPARROW paper here 👉 [aka.ms/sparrowpaper](https://aka.ms/sparrowpaper)-->

---

## Part of the Microsoft Biodiversity Ecosystem

| Repository | Description |
|---|---|
| [microsoft/Biodiversity](https://github.com/microsoft/Biodiversity) | Umbrella hub — PyTorch-Wildlife, MegaDetector, ecosystem overview |
| [microsoft/MegaDetector](https://github.com/microsoft/MegaDetector) | Animal/human/vehicle detector for camera traps |
| [microsoft/Pytorch-Wildlife](https://github.com/microsoft/Pytorch-Wildlife) | Unified AI framework: detection + species classification |
| [microsoft/SPARROW](https://github.com/microsoft/SPARROW) | This repo — solar-powered edge AI for wildlife monitoring |
| [microsoft/SPARROW-Studio](https://github.com/microsoft/SPARROW-Studio) | Dashboard for SPARROW data visualization |

---

# ✨ Key Features

1. **🔋 Autonomous operation**
Expand All @@ -37,7 +51,7 @@ To learn more about project SPARROW, please checkout our SPARROW paper here 👉
Camera traps, acoustic monitoring, and environmental sensors - SPARROW integrates multi-modal sensing to capture images, sounds, and enviromental metrics for comprehensive biodiversity monitoring.

3. **🧠 On-device AI**
Runs optimized PyTorch Wildlife models on power efficient edge GPUs (e.g., Jetson Orin Nano) for real-time image and acoustic detection, species classification, and event recognition.
Runs optimized PyTorch-Wildlife models on power efficient edge GPUs (e.g., Jetson Orin Nano) for real-time image and acoustic detection, species classification, and event recognition.

4. **🌐 Global connectivity**
Even in the most remote ecosystems, SPARROW maintains a link to the cloud or on-premise infrastructure through low-Earth-orbit satellites, ensuring that vital conservation data reaches researchers in near real time.
Expand Down
38 changes: 13 additions & 25 deletions SUPPORT.md
Original file line number Diff line number Diff line change
@@ -1,25 +1,13 @@
# TODO: The maintainer of this repo has not yet edited this file

**REPO OWNER**: Do you want Customer Service & Support (CSS) support for this product/project?

- **No CSS support:** Fill out this template with information about how to file issues and get help.
- **Yes CSS support:** Fill out an intake form at [aka.ms/onboardsupport](https://aka.ms/onboardsupport). CSS will work with/help you to determine next steps.
- **Not sure?** Fill out an intake as though the answer were "Yes". CSS will help you decide.

*Then remove this first heading from this SUPPORT.MD file before publishing your repo.*

# Support

## How to file issues and get help

This project uses GitHub Issues to track bugs and feature requests. Please search the existing
issues before filing new issues to avoid duplicates. For new issues, file your bug or
feature request as a new Issue.

For help and questions about using this project, please **REPO MAINTAINER: INSERT INSTRUCTIONS HERE
FOR HOW TO ENGAGE REPO OWNERS OR COMMUNITY FOR HELP. COULD BE A STACK OVERFLOW TAG OR OTHER
CHANNEL. WHERE WILL YOU HELP PEOPLE?**.

## Microsoft Support Policy

Support for this **PROJECT or PRODUCT** is limited to the resources listed above.
# Support

## How to file issues and get help

This project uses GitHub Issues to track bugs and feature requests. Please search the [existing issues](https://github.com/microsoft/SPARROW/issues) before filing new ones to avoid duplicates.

- **Bug reports:** Use the [Bug Report](https://github.com/microsoft/SPARROW/issues/new?template=bug-report.yml) template
- **Feature requests:** Use the [Feature Request](https://github.com/microsoft/SPARROW/issues/new?template=feature-request.yml) template
- **Questions:** Use the [Question](https://github.com/microsoft/SPARROW/issues/new?template=question.yml) template or start a [GitHub Discussion](https://github.com/microsoft/SPARROW/discussions)

## Microsoft Support Policy

Support for this project is limited to the resources listed above.
52 changes: 52 additions & 0 deletions citation.cff
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
cff-version: 1.2.0
message: "If you use SPARROW in your research, please cite it using this metadata."
type: software
title: "SPARROW: Solar-Powered Acoustic and Remote Recording Observation Watch"
version: "1.0.0"
date-released: "2026-05-14"
license: MIT
repository-code: "https://github.com/microsoft/SPARROW"
url: "https://microsoft.github.io/SPARROW/"
keywords:
- edge-ai
- wildlife-monitoring
- camera-traps
- acoustic-monitoring
- conservation
- jetson
- solar-powered
- PyTorch-Wildlife
- ai-for-good
authors:
- family-names: Lavista Ferres
given-names: "Juan M."
- family-names: Chalmers
given-names: Carl
- family-names: Demuro Segundo
given-names: Bruno
- family-names: Miao
given-names: Zhongqi
- family-names: Hernandez Celis
given-names: Andres
- family-names: Chacon Silva
given-names: Isai Daniel
- family-names: Kim
given-names: Allen
- family-names: Marotti
given-names: Luana
- family-names: Michaels
given-names: Amy
- family-names: Ruiz Lopez
given-names: Daniela
- family-names: Dodhia
given-names: Rahul
- family-names: Becker-Reshef
given-names: Inbal
- family-names: "Arbelaez Escalante"
given-names: "Pablo Andrés"
- family-names: Alves Torres
given-names: Federico
- family-names: Machado
given-names: Meygha
- family-names: Cintron Roman
given-names: Anthony
6 changes: 6 additions & 0 deletions docs-requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
mkdocs>=1.6
mkdocs-material>=9.7
mkdocs-material-extensions>=1.3
pymdown-extensions>=10.0
mkdocstrings>=0.27
mkdocstrings-python>=1.0
65 changes: 65 additions & 0 deletions docs/build_mkdocs.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
---
description: "How to build and deploy the SPARROW MkDocs documentation site locally and to GitHub Pages."
tags:
- SPARROW
- documentation
- MkDocs
- developer-guide
---

# Developer Guide — Building the Docs

This page explains how to build and preview the SPARROW documentation site locally.

## Prerequisites

Install the documentation dependencies (separate from the ML/hardware requirements):

```bash
pip install -r docs-requirements.txt
```

## Local Preview

Start the live-reload dev server:

```bash
mkdocs serve
```

Open [http://127.0.0.1:8000](http://127.0.0.1:8000) in your browser. The site rebuilds automatically when you save any file under `docs/` or `mkdocs.yml`.

## Build (Static)

To build the static site without serving it:

```bash
mkdocs build
```

Output goes to `site/` (gitignored — never commit this directory).

## Deploy to GitHub Pages

Deployment happens automatically via GitHub Actions on every push to `main` that touches `docs/**`, `mkdocs.yml`, or `docs-requirements.txt`. The workflow in `.github/workflows/deploy-docs.yml` builds the site and force-pushes to the `gh-pages` branch.

To deploy manually:

```bash
mkdocs gh-deploy --force
```

## Adding a New Page

1. Create `docs/<page-name>.md` with the required SEO front matter:

```yaml
---
description: "One-sentence description for search engines and the site description meta tag."
tags:
- SPARROW
- relevant-tag
---
```

2. Add the page to the `nav:` section of `mkdocs.yml`.
Loading
Loading