Bounties
New bounties are being worked on. There have been a lot of changes since the bounties were first written and it needs to be updated. An announcement will be made when this page is updated again. 2026-Jun-01
Code Requirements
Code submitted to a bounty needs to meet applicable requirements below for quality control purposes. Failure to meet a requirement will be pointed out in the code review. Minor issues are likely to be allowed but will affect your bonus.
- All submitted code must have good unit test coverage
- Unit tests should take at most 50ms to complete each
- Current unit tests take on average 10ms each, shoot for 2ms or less
- When applicable, provide a usage example with example data
- All code and comments must be in English
- All code must be in pure Java unless specified otherwise
- No merge conflict with latest SNAPSHOT
- All unit tests must pass
- Maximize use of existing internal functionality
- Not sure if a capability already exists? Ask!
- Adding new external libraries is discouraged and will need to be justified
- Code should minimize the creation of new memory and use a single thread
Rules
Effective as of January 3, 2017
Definitions
- Awardee, refers to the person receiving the bounty
- Award, refers to the amount of money award for completing a bounty.
- Internal Bounty, A bounty which involve submitting and donating new code for integration into BoofCV
- External Bounty, A bounty which does not involve adding code to BoofCV
- Maintainers, see list of people here.
Submission
Submission for Internal Bounties Internal bounties involve adding new code to BoofCV and related projects.
- To qualify for a bounty you must submit a pull request on GitHub against the latest SNAPSHOT of BoofCV with your code
- The pull request must specify which bounty it is for and who will receive the award
- Donating code without declaring intent for a bounty voids your claim for any bounties as a result of that code donation
- All of the code included with the pull request must be owned by you
- Code's copyright formust be reassigned
- The code will be released publicly under an Apache 2.0 license
- Copyright will be transferred over to Peter Abeles, see Donating to BoofCV for why
- Your name/organization will be listed as an author after donating
- The code is considered accepted once it has been merged into the master repository on GitHub
- Final acceptance of a submission is at the sole discretion of BoofCV's maintainer
Submission for External Bounties External submissions are for modifications external to the main code base.
- Please see the Google Doc description for how to complete the task as each one is different
- Examples:
- Fixing code in another project and getting the patch accepted
- Creating and hosting a website while making the code publicly available
- Creating your own project and releasing it as an independent open source project hosted publicly
Awarding
This section describes how the bounty will be awarded.
- After the code has been accepted the submitter qualifies to receive the award
- See submission above for what it means for a submision to be 'accepted'
- The amount of the award is specified on the wiki's Bounties page
- If the award amount on the page changes then the largest award after the earliest of the following events will be used:
- Announcement of intent to pursue the bounty by awardee on BoofCV message board
- Submission of the pull request with qualifying code
- Mistakes happen and type-os may or may not be honored. Please let us know if you see anything that looks suspicious!
- The final award amount will be the base award plus the bonus
- The amount of bonus will vary between $0 and the maximum specified on the bounties webpage
- If the award amount on the page changes then the largest award after the earliest of the following events will be used:
- Bounties will be awarded to an individual when it is legal to do so within the US and their home country
- Void where prohibited
- The awardee is responsible for all taxes and fees associated with the receipt of the award
- All bounties are specified in US dollars
- No bounty will be awarded more than once
- If multiple qualified submissions are received then the time stamp of the e-mail/pull request that announces completion will be used
- Only one individual can receive a bounty
- If multiple individuals contributed it is up to them to decide who will receive the payment and distribute it to the group
- If no agreement can be reached then the person who created the first repository will receive the award
- A bounty will be award using PayPal and/or bountysource
- If the bounty is cross posted to bountysource then a portion of the award will be collected from there.
- The awardee has 45 days from the date of pull request acceptance to fix any issues with receipt of award
- Falsifying time stamps or other attempts to mislead will result in the forfeiture of all bounties
- If a bounty cannot be sent to an individual the individual may select from the charities listed below for a donation to be made in their name or they may forfeit the award.