You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
doc: update README and ARCHITECTURE with M8 milestone details
Document completion of M8 (KPM image pyramid and feature extraction in pure Rust):
- BoxFilterPyramid8u for efficient grayscale pyramid construction
- BinomialPyramid32f with scale-space interpolation
- DoG detector and orientation assignment
- Native Rust FREAK descriptor computation
Update short-term goals to clarify M9 integration milestone.
This is the final documentation update before the v0.6.0 release.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: ARCHITECTURE.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -40,6 +40,8 @@ The unified core library containing all AR functionality:
40
40
-`freak::hough` — Hough similarity voting (4D bin discretization over translation × angle × scale) for filtering matches by transformation consistency.
41
41
-`freak::clustering` — K-Medoids partitioning + Binary Hierarchical Clustering (BHC) vocabulary tree for fast approximate-NN search on 96-byte FREAK descriptors. Hamming distance via 24×32-bit bit-magic. Includes a byte-identical port of C++ `vision::FastRandom` / `vision::ArrayShuffle` so the BHC tree topology matches the C++ baseline given the same seed.
42
42
-`freak::matcher` — `FeatureStore` (points + flat descriptor buffer) and `FeatureMatcher` with three match variants: brute force, BHC-indexed (fast path), and homography-guided (spatial filter via 3×3 inverse + `tr` radius). All three apply the C++ ratio test (default 0.7) and filter by `FeaturePoint::maxima`.
43
+
-`freak::image_pyramid` — image pyramid construction via `BoxFilterPyramid8u` (box filtering for 8-bit grayscale) and `BinomialPyramid32f` (32-bit floating-point binomial pyramid with scale-space interpolation).
44
+
-`freak::feature_extraction` — keypoint detection via Difference-of-Gaussians (DoG), dominant orientation assignment via circular gradient voting, and FREAK descriptor computation with native Rust implementation of the FREAK binary pattern and bit-pair comparison.
43
45
-**Types** (`types`): core data structures (`ARHandle`, `ARParam`, etc.).
Copy file name to clipboardExpand all lines: README.md
+10-3Lines changed: 10 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -38,14 +38,14 @@ Add `webarkitlib-rs` to your `Cargo.toml`:
38
38
39
39
```toml
40
40
[dependencies]
41
-
webarkitlib-rs = "0.5"
41
+
webarkitlib-rs = "0.6"
42
42
```
43
43
44
44
To enable the C++ FFI backend for KPM (Natural Feature Tracking):
45
45
46
46
```toml
47
47
[dependencies]
48
-
webarkitlib-rs = { version = "0.5", features = ["ffi-backend"] }
48
+
webarkitlib-rs = { version = "0.6", features = ["ffi-backend"] }
49
49
```
50
50
51
51
> When installing from crates.io, no extra setup is required — the C++
@@ -204,7 +204,7 @@ Enable the `log-helpers` feature and call the bundled initializer once in your b
204
204
205
205
```toml
206
206
[dependencies]
207
-
webarkitlib-rs = { version = "0.5", features = ["log-helpers"] }
207
+
webarkitlib-rs = { version = "0.6", features = ["log-helpers"] }
208
208
```
209
209
210
210
```rust
@@ -338,8 +338,15 @@ The workspace contains two crates:
338
338
- K-Medoids clustering + Binary Hierarchical Clustering vocabulary tree, including a byte-identical `FastRandom` / `ArrayShuffle` PRNG port — 889 LOC
339
339
- `FeatureStore` + `FeatureMatcher` with three match variants (brute, BHC-indexed, homography-guided), C++-faithful ratio test (default 0.7), and `maxima` filtering — 1167 LOC
340
340
- **Dual-mode FFI tests run in CI on Linux / macOS / Windows** with sorted-pair equality vs the C++ baseline for brute/indexed/guided matchers (the M7 milestone validation gate). Surfaced and fixed three latent cross-platform issues: macOS `libc++` linking, GCC `<limits>` include order, and ARM64 FMA tolerance in M6-2 solvers.
341
+
- **M8 -- KPM image pyramid & feature extraction in pure Rust** (4 steps):
342
+
- **Step 1**: `BoxFilterPyramid8u` — box filtering for efficient 8-bit grayscale pyramid construction
343
+
- **Step 2**: `interpolate.h` + `BinomialPyramid32f` — binomial pyramid and interpolation utilities for scale-space analysis
- Completes the KPM feature extraction and image pyramid components in pure Rust
341
347
342
348
### 🎯 Short-term Goals (toward v1.0.0)
349
+
- **M9 -- Integrate pure-Rust KPM pipeline**: Wire M8 image pyramid and feature extraction components with M7 matching for end-to-end native Rust NFT support.
343
350
- **Complete KPM in idiomatic Rust**: Port the remaining KPM feature extraction and matching logic to pure Rust, removing the C++ FFI dependency, and ship a working end-to-end NFT example.
344
351
- **Enhanced Documentation**: Expand API reference with complete module-level docs, integration walkthroughs for JS/TS, and detailed usage examples.
345
352
- **WASM Memory Management**: Improve resource cleanup when switching engines or markers in long-running browser sessions.
Copy file name to clipboardExpand all lines: crates/wasm/pkg/README.md
+7Lines changed: 7 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -338,8 +338,15 @@ The workspace contains two crates:
338
338
- K-Medoids clustering + Binary Hierarchical Clustering vocabulary tree, including a byte-identical `FastRandom` / `ArrayShuffle` PRNG port — 889 LOC
339
339
- `FeatureStore` + `FeatureMatcher` with three match variants (brute, BHC-indexed, homography-guided), C++-faithful ratio test (default 0.7), and `maxima` filtering — 1167 LOC
340
340
- **Dual-mode FFI tests run in CI on Linux / macOS / Windows** with sorted-pair equality vs the C++ baseline for brute/indexed/guided matchers (the M7 milestone validation gate). Surfaced and fixed three latent cross-platform issues: macOS `libc++` linking, GCC `<limits>` include order, and ARM64 FMA tolerance in M6-2 solvers.
341
+
- **M8 -- KPM image pyramid & feature extraction in pure Rust** (4 steps):
342
+
- **Step 1**: `BoxFilterPyramid8u` — box filtering for efficient 8-bit grayscale pyramid construction
343
+
- **Step 2**: `interpolate.h` + `BinomialPyramid32f` — binomial pyramid and interpolation utilities for scale-space analysis
- Completes the KPM feature extraction and image pyramid components in pure Rust
341
347
342
348
### 🎯 Short-term Goals (toward v1.0.0)
349
+
- **M9 -- Integrate pure-Rust KPM pipeline**: Wire M8 image pyramid and feature extraction components with M7 matching for end-to-end native Rust NFT support.
343
350
- **Complete KPM in idiomatic Rust**: Port the remaining KPM feature extraction and matching logic to pure Rust, removing the C++ FFI dependency, and ship a working end-to-end NFT example.
344
351
- **Enhanced Documentation**: Expand API reference with complete module-level docs, integration walkthroughs for JS/TS, and detailed usage examples.
345
352
- **WASM Memory Management**: Improve resource cleanup when switching engines or markers in long-running browser sessions.
0 commit comments