Thank you for your interest in the SpikeCV project! Every contribution you make will help advance spike-based vision.
"Together, Let's spark a butterfly effect."
SpikeCV Team
Create your feature branch from the main branch.
Naming example: feature/algorithm-name.
Configure the environment and install dependencies following the README.md.
Under SpikeCV/spkProc/ choose an appropriate submodule (e.g., filters, reconstruction, etc.) and create your algorithm file your_algorithm.py.
YourAlgorithm, typically including methods such as __init__ (parameter initialization) and process (core logic).tqdm library to show processing progress.Add test_your_algorithm.py in SpikeCV/examples/ to demonstrate the complete workflow from data loading to result output, helping users understand how to use the algorithm.
A complete contribution involves more than just code; we use RST files for documentation management:
docs/source/核心操作.rst to include your algorithm's principles and parameter descriptions.docs/source/使用例子.rst to describe your usage example and expected results.docs/source/media/ directory and reference them in the documentation.We provide a documentation template reference in CONTRIBUTING.md.
Your documentation will then be integrated into the SpikeCV official documentation.
If you need to add new dependencies, configure them as optional dependencies in pyproject.toml:
[project.optional-dependencies]
your_deps_name = [
"package>=1.0.0",
"package2>=2.0.0",
]
# Install specific dependencies: pip install -e ".[your_deps_name]"
# After adding dependencies, check for conflicts pip check
If dependency version conflicts are hard to resolve, please refer to the Dependency Management Guide.
SpikeCV strictly divides dependencies into two categories:
torch, numpy): affect all algorithms; modifications require extreme caution.tracking) or functional modules; using this approach is recommended.When adding dependencies, follow the principle of minimal dependencies:
import); do not add transitive dependencies.
After completing development and committing locally, follow the guidelines in CONTRIBUTING.md to check and record your environment dependencies,
then open a PR targeting the main branch of Zyj061/SpikeCV, using the provided PR description template to describe your changes.
The code will first pass all CI/CD pipeline checks. Then maintainers will review code quality, documentation completeness, and compatibility. Maintainers may leave comments on the PR with specific suggestions for improvements.
Once the PR passes all checks and reviews, maintainers will merge your code into the main branch. Thank you for your contribution!
You can refer to an example of a merged PR: SNNTracker
For detailed contribution workflows, environment setup, template code, and advanced development advice, please be sure to read
CONTRIBUTING.md