Releases: webarkit/WebARKitLib-rs
Releases · webarkit/WebARKitLib-rs
v0.6.1
v0.6.0
Milestone 8 — FREAK descriptor & DoG detector
⚙️ Miscellaneous Tasks
🐛 Bug Fixes
- (kpm) Relax dual-mode Gaussian-pyramid test to <= 1 ULP tolerance
- (kpm) Disable FP contraction in C++ build to restore cross-platform parity
- (kpm) Use full 15-digit C++ literals for orientation smoothing kernel
- (kpm) Silence clippy::excessive_precision on SMOOTH_KERNEL
📚 Documentation
- Add §3.5 documenting bilinear interpolation formula equivalence
- Add §3.4 documenting the NONMAX_CHECK macro replacement
- Update README and ARCHITECTURE with M8 milestone details
🚀 Features
- (kpm) Port BoxFilterPyramid8u to Rust (M8 step 1)
- (kpm) Port interpolate.h + BinomialPyramid32f to Rust (M8 step 2)
- (kpm) Port DoG detector + OrientationAssignment to Rust (M8 step 3)
- (kpm) Port FREAK descriptor + Keyframe to Rust (M8 step 4)
🧪 Testing
- (kpm) Add dual-mode test for DoG detector with find_orientation=true
v0.5.1
v0.5.0
Milestone 7 — Hough voting & feature matching in pure Rust
🚀 Features
- (kpm) Implement Hough similarity voting algorithm (M7)
- (kpm) Implement binary hierarchical clustering and k-medoids for FREAK descriptors
- (kpm) Port FeatureStore and FeatureMatcher with three match variants
- (kpm) Port ArrayShuffle for BHC parity with C++ baseline
🐛 Bug Fixes
- (kpm) Fix arlog macro imports and unused variable warnings (#109)
- (kpm) Apply clippy and fmt fixes to hough.rs for M7
- (kpm) Resolve clippy warnings in clustering module
- (kpm) Resolve remaining clippy warnings in clustering
- (kpm) Include in kpm_c_api.cpp for GCC build
- (kpm) Move include before matcher headers for GCC build
- (build) Use platform-appropriate C++ stdlib (libc++ on macOS, libstdc++ on Linux)
- (kpm) Use combined absolute+relative tolerance in M6-2 dual-mode tests
- (kpm) Widen relative tolerance to 1e-5 for M6-2 dual-mode tests
🧪 Testing
- (kpm) Add dual-mode FFI tests for FeatureMatcher (M7-3)
- (kpm) Strengthen dual-mode FeatureMatcher tests with pair equality and global-best invariants
📚 Documentation
- Add pre-commit verification workflow and arlog import pattern to CLAUDE.md
🎨 Styling
- Fix formatting from cargo fmt
⚙️ Miscellaneous Tasks
- Run dual-mode tests in CI to enforce C++ parity
- Scope dual-mode tests to --lib to avoid pre-existing integration test failures
v0.4.1
Patch release — Matrix code GlobalID, paramGL ports, and quality fixes
🚀 Features
- (matrix) Add ARMatrixCodeType::GlobalID variant and MatchOk.global_id field
- (bch) Implement BCH(127,64,22) decoder for AR_MATRIX_CODE_GLOBAL_ID
- (matrix) Add 14x14 GlobalID bit extraction with 4-direction traversal
- (matrix) Wire AR_MATRIX_CODE_GLOBAL_ID into ar_matrix_code_get_id and ar_get_marker_info
- (matrix) Add GlobalID support to matrix code type and update parsing logic
- (core) Implement ar_param_change_size and argl_camera_frustum_rh
- (param_gl) Port remaining three paramGL.c functions to param_gl.rs
🐛 Bug Fixes
- (param_gl) Fix clippy::doc_overindented_list_items on line 249
- (arlog) Scope test log capture to the thread running the arlog test
🚜 Refactor
- (param) Change ar_param_change_size to mutate ARParam in-place
📚 Documentation
- (param_gl) Fix C source reference from argl.c to paramGL.c
⚙️ Miscellaneous Tasks
- Finish converting load_nft.rs to arlog_*! macros
v0.4.0
Milestone 6 — Math & homography in pure Rust
🐛 Bug Fixes
- (kpm) Satisfy clippy on freak::math constants and helpers
- (bench) Resolve SIMD benchmark compilation errors
📚 Documentation
- (kpm) Clarify SolveLinearSystem2x2 is dead in OUR build context
🚀 Features
- (kpm) Port FREAK math utilities from C++ (Milestone 6 Phase 1-3)
- (kpm) Port linear algebra and linear solvers (M6-2)
- (kpm) Port homography pipeline + Padé matrix exp (M6-3)
🧪 Testing
- (kpm) Add dual-mode validation for FREAK math fast-paths
- (kpm) Add dual-mode validation for M6-2 linear solvers
- (kpm) Add dual-mode validation for M6-3 homography pipeline
v0.3.8
Last action before Milestone 6 — Math & homography in pure Rust
⚙️ Miscellaneous Tasks
- Pass --features log-helpers when running simple example
- Remove accidental .DS_Store from repo changes
- Convert println!/eprintln! to arlog_*! in examples and bench
🎨 Styling
- Apply cargo fmt --all (fixes CI fmt check)
- (core) Fix formatting issues
- (marker) Apply cargo fmt
- (diagnostic) Apply stable rustfmt wrapping (#104 CI)
🐛 Bug Fixes
- (clippy) Clear all warnings and add clippy -D warnings to CI
- (clippy) Fix 5 CI-only clippy warnings (explicit_counter_loop, manual_checked_ops)
- (marker) Populate cf_patt/id_patt and copy to final id/cf per mode
- (core) Port confidence_cutoff from C and add regression tests (issue #92)
- (marker) Wire cutoff_phase from MatchOk/MatchError result codes (#88)
- (marker) Resolve merge conflict in cutoff_phase tests
- (simple,marker) Honour the buff/pixel_format contract (#103)
📚 Documentation
- (issue-86) Add implementation plan
- Update CLAUDE.md with documentation and style guidelines
- (issue-103) Correct findings — Rust/C cf close but not byte-equal
🚀 Features
- (marker) Add finalize_marker_id_cf_dir helper
- (types) Add MatchOk, MatchError, From for ARMarkerInfoCutoffPhase
- (core) Add ar_detect_marker orchestrator for full marker detection pipeline
- (types) Add AR tracking history mode constants (#101)
- (marker) Port arDetectMarker tracking history pipeline (#96)
- (diagnostic) Add dump_patt + diff_patt for issue #103
🚜 Refactor
- (core) Move AR modules into ar/ subfolder (closes #82)
- (types) Defer MatchOk.global_id field to issue #89
- (pattern) Pattern_match returns Result<MatchOk, MatchError>
- (matrix) Ar_matrix_code_get_id returns Result<MatchOk, MatchError>
🧪 Testing
v0.3.7
🐛 Bug Fixes
- Replace PNG banner with JPG version in README and assets
v0.3.6
🐛 Bug Fixes
- (ci) Harden publish-crates checkout against submodule HTTP 500s
v0.3.5
🐛 Bug Fixes
- (ci) Add submodules: recursive to release.yml checkout steps