Releases: PhotonVision/photonvision
Latest Development Version
This release contains the latest version of Photon Vision based on the code on the main branch. This code is not as well-tested as the latest stable release! Use at your own risk.
v2026.0.0-alpha-2
What's Changed
- Update LimeLight installation documentation by @spacey-sooty in #2133
- Fix most gradle deprecation warnings by @spacey-sooty in #2093
- Made steam overlay buttons primary color by @ElectricTurtle32 in #2139
- Use the tool plugin to include photon-targeting into photon-core by @Gold856 in #2137
- Version rubik pi image by @samfreund in #2129
- Fix versioning helper by @samfreund in #2141
- Revert "Make HardwareConfig a record" by @Gold856 in #2142
- Add Luma P1 support by @mjansen4857 in #2135
- Add documentation for forcing OD UI by @samfreund in #2018
- Fix typo: s/Specifc/Specific by @Krylez in #2143
- Add camera mismatch banner to dashboard by @alaninnovates in #1921
- Add downgrade fix for ONNX error during RKNN conversion by @boomermath in #2136
- Update notebook links in docs to point to docs version by @boomermath in #2155
- Merge rknn conversion scripts into notebook by @boomermath in #2157
- Fix calibration resolution default bug by @samfreund in #2156
New Contributors
- @ElectricTurtle32 made their first contribution in #2139
- @mjansen4857 made their first contribution in #2135
- @Krylez made their first contribution in #2143
Full Changelog: v2026.0.0-alpha-1...v2026.0.0-alpha-2
v2026.0.0-alpha-1
See https://www.chiefdelphi.com/t/photonvision-2026-alpha-release/507133 for the overview!
What's Changed
- chore[docs]: add arducam ESD problem to troubleshooting by @samfreund in #1848
- Remove tag cutting workflow by @Gold856 in #1854
- Recommend Raspberry Pi Imager over Balena Etcher by @Gold856 in #1858
- Update docs dependencies and do some house cleaning by @Gold856 in #1863
- feat: link methods in javadocs to source code by @samfreund in #1866
- chore: bump wpiformat by @samfreund in #1869
- feat: release and development docs versions by @samfreund in #1872
- feat!: monorepo landing page by @samfreund in #1868
- Fix CI for website by @samfreund in #1877
- chore[docs]: Recommend ethernet tether over port forwarding for VH-109 by @samfreund in #1847
- Rename Workflows by @samfreund in #1881
- fixed a spelling mistake by @AstrinLakotaRobotics in #1883
- Add data exchange update to merge checklist by @Gold856 in #1888
- Fix calibration array length by @Gold856 in #1879
- [docs] Update "About Pipelines" list by @alaninnovates in #1889
- [docs] Document driver mode by @alaninnovates in #1890
- Bump Wpiformat by @samfreund in #1892
- [docs] Update best practices by @alaninnovates in #1896
- Clean up .gitignore by @Gold856 in #1897
- Make Vision pose estimation examples use all vision measurements by @spacey-sooty in #1706
- [docs] Update PhotonPoseEstimator examples by @alaninnovates in #1903
- Add documentation issue template by @samfreund in #1907
- remove core and server from javadocs by @samfreund in #1911
- [docs] Update PhotonLib vendor dependency guide by @alaninnovates in #1915
- Log message on robot mode changes by @mcm001 in #1923
- [docs] Reorganize camera configuration pages and add camera matching documentation by @alaninnovates in #1917
- Make various refactors to clean up codebase by @Gold856 in #1830
- Add docs about robot modes by @mcm001 in #1924
- [docs] Minor documentation changes by @alaninnovates in #1922
- Clean up build by @Gold856 in #1926
- Revert "Use Timer object to calculate FPS" by @Gold856 in #1928
- Add leading zero to log file date/time by @mcm001 in #1925
- Updates to object detection documentation by @10tothe6 in #1930
- [photon-lib] Add PhotonPoseEstimator.resetHeadingData() by @bryceroethel in #1933
- [photon-lib] Fix incorrect tag visualization transforms by @amquake in #1899
- Standardize API by @samfreund in #1942
- Remove MacOS builds from releases by @samfreund in #1948
- Add question about method of powering to bug issue template by @samfreund in #1947
- Vue 3 Upgrade by @GrahamSH-LLK in #1900
- Clean up client dependencies by @GrahamSH-LLK in #1954
- Add basic linux troubleshooting tips by @samfreund in #1885
- [docs] upgrade dependencies by @samfreund in #1958
- Remove manual links from README by @samfreund in #1959
- Remove unused template from docs by @samfreund in #1960
- Disable Alerts test in PhotonCameraTest by @Gold856 in #1969
- Fix Broken Docs by @samfreund in #1971
- Disable linkcheck for gnu.org by @Gold856 in #1973
- [ci] Run on push or PR by @spacey-sooty in #1974
- Fix logic for no cameras detected modal by @samfreund in #1978
- Fix camera setup modal not closing and navigation not working by @Gold856 in #1979
- Migrate NNM Settings to SQLITE by @samfreund in #1894
- Fix usage reporting. by @spacey-sooty in #1964
- Update server index wording by @samfreund in #1984
- Scream test removing a folder from server by @samfreund in #1985
- De-conflict camera names and hostnames by use of a banner by @samfreund in #1982
- Initial hardware support for Rubik pi by @samfreund in #1989
- Set a more sane timeout for WS connections and log WS errors by @Gold856 in #1992
- Reenable and fix flaky tests by @Gold856 in #1837
- Clean up spacing and other things in various parts of the UI by @Gold856 in #1972
- feat: add metrics publisher for NT by @samfreund in #1791
- Clarify and fix OpenCV/WPILib version checking error by @spacey-sooty in #1963
- Refactor MAC address detection by @Gold856 in #1991
- Restore original video mode index order by @Gold856 in #1999
- Make testHeadless output the same stuff as test from photon-lib by @Gold856 in #2000
- Dynamically import dependencies that are not critical to viewing the UI by @Gold856 in #2001
- Fix camera calibration card contents completely vanishing during calibration by @Gold856 in #1998
- Add Gradle wrapper validation by @samfreund in #2004
- Move metrics subtable to root PV table by @samfreund in #2007
- Update metrics publisher hostname when hostname is changed by @samfreund in #2008
- Update logic for metric publisher topic name by @samfreund in #2011
- Add an overload of resetHeadingData() which takes in a Rotation3d by @kcooney in #2013
- [photon-lib] Python support for PNP_DISTANCE_TRIG_SOLVE by @kcooney in #2015
- Add model benchmark data by @boomermath in #2025
- Disable linkcheck for www.gnu.org by @Gold856 in #2030
- Dark mode and minor interface tweaks by @DevonRD in #2016
- RKNN conversion tool by @boomermath in #2024
- Add COCO model for RKNN by @samfreund in #2026
- Revert "Add COCO model for RKNN (#2026)" by @Gold856 in #2033
- Add PR labeler by @Gold856 in #2031
- Switch to pnpm (and update some dependencies) by @Gold856 in #2032
- Fix buildAndCopyUI and update build instructions by @Gold856 in #2036
- Fix labeler labelling everything as backend by @Gold856 in #2041
- Update notebook links by @boomermath in #2037
- Update RKNN Conversion notebook permalinks by @boomermath in #2042
- Add notebook for Rubik Model conversion by @samfreund in #2006
- Add yes pipe for rubik conversion cmd by @boomermath in #2043
- [photon-lib] Invalidate pose cache when setting referencePose by @kc...
v2025.3.2
Caution
2025.3.2 has a bug where the video format order switched as a result of refactoring. This is unintentional and will be fixed in the next release. Use 2025.3.1 until the next version is released.
- Lots of refactoring and dead-code removal
- Dependency cleanup
v2025.3.1
Notable Changes
- By popular demand, a toggle has been added to disable the drawn crosshair in driver mode. If you wanted to use your coprocessor instead of your RIO to display the raw camera stream, this is the release for you. Added by @samfreund in #1822
- Fix
CONSTRAINED_SOLVEPNPcausing a crash due to OpenCV not being loaded by @Gold872 in #1808 - Add alerts for timesync and disconnection by @Gold872 in #1799
- Changes to the problem formulation for
CONSTRAINED_SOLVEPNPto increase performance by @mcm001 in #1816 - Fix snapshot taking only working when connected to FMS by @Gold856 in #1815
Remaining Changes
- Fix rknn detection for non opi platforms by @TheTripleV in #1797
- Make macOS arm wording generic by @spacey-sooty in #1796
- Cleanup Docs for PhotonPoseEstimator by @JuliusZhou124 in #1795
- fix: docs for YOLOv11 naming by @samfreund in #1806
- Check MSVC Runtime before loading natives by @person4268 in #1809
- [docs] Add a warning about streams on different ports by @spacey-sooty in #1810
- chore: bump wpilib to 2025.3.2 and fix mypy errors by @samfreund in #1819
- fix: remove debugging printout for snapshot methods by @samfreund in #1823
- [Docs] Fix broken hyperlink (Fixes #1802) by @JA-01 in #1821
- Increase precision on displayed target distance by @Gold856 in #1833
- Document UI hot reload option in dev docs by @Gold856 in #1834
- Fix dead link on Networking page in Quick Start by @Gold856 in #1843
- Add tests for TSP by @mcm001 in #1844
- Dont sanitize unique name in calibration JSON HTTP URL by @mcm001 in #1846
New Contributors
Full Changelog: v2025.2.1...v2025.3.1
v2025.3.1-rc3
What's Changed
- fix: remove debugging printout for snapshot methods by @samfreund in #1823
- [Docs] Fix broken hyperlink (Fixes #1802) by @JA-01 in #1821
- feat: crosshair toggle for driver mode by @samfreund in #1822
New Contributors
Full Changelog: v2025.3.1-rc2...v2025.3.1-rc3
v2025.3.1-rc2
What's Changed
- Use normalized pixels in cPNP problem formulation by @mcm001 in #1816
- chore: bump wpilib to 2025.3.2 and fix mypy errors by @samfreund in #1819
- Fix snapshot methods not working by @Gold856 in #1815
Full Changelog: v2025.3.1-rc1...v2025.3.1-rc2
v2025.3.1-rc1
What's Changed
- Fix rknn detection for non opi platforms by @TheTripleV in #1797
- Make macOS arm wording generic by @spacey-sooty in #1796
- Cleanup Docs for PhotonPoseEstimator by @JuliusZhou124 in #1795
- fix: docs for YOLOv11 naming by @samfreund in #1806
- Check MSVC Runtime before loading natives by @person4268 in #1809
- [docs] Add a warning about streams on different ports by @spacey-sooty in #1810
- Force load opencv before using OpenCV functions by @Gold872 in #1808
- Add alerts for timesync and disconnection by @Gold872 in #1799
New Contributors
Full Changelog: v2025.2.1...v2025.3.1-rc1
v2025.2.1
What's Changed
- photonlibpy: Explicitly re-export by @auscompgeek in #1737
- Fix typos and incorrect param order in Javadoc by @Gold856 in #1740
- Add FontAwesome assets by @Gold856 in #1734
- Change SimCameraProperties to enable chaining of setters by @ancientstraits in #1731
- Yolo docs minimalist by @samfreund in #1723
- Fix fallback for the multitag on rio pose strategy by @KangarooKoala in #1755
- Add 3D tracking of the 2025 Algae in Colored Shape pipelines by @samdev-7 in #1756
- Upload new algae RKNN model by @samfreund in #1758
- Add YOLO11 Support by @samfreund in #1736
- Update Allowed Naming Conventions For Object Detection Models by @samfreund in #1749
- Update install command for Romi by @crschardt in #1746
- Verify WPILib/OpenCV versions at runtime by @mcm001 in #1772
- fix: remove unnecessary readme badges by @samfreund in #1768
- Add version checking to C++ by @spacey-sooty in #1774
- Add 6328's implementation of PNP distance for Trig Solving to PhotonPoseEstimator by @JuliusZhou124 in #1767
- Add back pr template by @KangarooKoala in #1782
- Clean up pnp distance trig solve by @KangarooKoala in #1781
- [build] Bump WPILib to 2025.3.1 by @samfreund in #1785
- Stop unknown coprocessor stats / no output from shell commands. by @Juniormunk in #1786
- Add constrained solvePNP strategy by @mcm001 in #1682
- Update camera calibration docs to add calib.io targets note by @owen1050 in #1732
- fix: docs updates for the different apriltag field layouts by @samfreund in #1787
New Contributors
- @ancientstraits made their first contribution in #1731
- @samdev-7 made their first contribution in #1756
- @owen1050 made their first contribution in #1732
Full Changelog: v2025.1.1...v2025.2.1
v2025.2.1-rc2
What's Changed
- photonlibpy: Explicitly re-export by @auscompgeek in #1737
- Fix typos and incorrect param order in Javadoc by @Gold856 in #1740
- Add FontAwesome assets by @Gold856 in #1734
- Change SimCameraProperties to enable chaining of setters by @ancientstraits in #1731
- Yolo docs minimalist by @Sam948-byte in #1723
- Fix fallback for the multitag on rio pose strategy by @KangarooKoala in #1755
- Add 3D tracking of the 2025 Algae in Colored Shape pipelines by @samdev-7 in #1756
- Upload new algae RKNN model by @Sam948-byte in #1758
- Add YOLO11 Support by @Sam948-byte in #1736
- Update Allowed Naming Conventions For Object Detection Models by @Sam948-byte in #1749
- Update install command for Romi by @crschardt in #1746
- Verify WPILib/OpenCV versions at runtime by @mcm001 in #1772
- fix: remove unnecessary readme badges by @Sam948-byte in #1768
- Add version checking to C++ by @spacey-sooty in #1774
- Add 6328's implementation of PNP distance for Trig Solving to PhotonPoseEstimator by @JuliusZhou124 in #1767
- Add back pr template by @KangarooKoala in #1782
- Clean up pnp distance trig solve by @KangarooKoala in #1781
- [build] Bump WPILib to 2025.3.1 by @Sam948-byte in #1785
- Stop unknown coprocessor stats / no output from shell commands. by @Juniormunk in #1786
- Add constrained solvePNP strategy by @mcm001 in #1682
New Contributors
- @ancientstraits made their first contribution in #1731
- @samdev-7 made their first contribution in #1756
Full Changelog: v2025.1.1...v2025.2.1-rc2