chore: bump WebARKitLib submodule for matcher STL determinism fix#586
Merged
kalwalt merged 7 commits intoJun 4, 2026
Merged
Conversation
5 tasks
Updates the WebARKitLib submodule from 656436e to 678535f, which includes the fix from WebARKitLib#39: three std::unordered_map typedefs in FreakMatcher converted to std::map for deterministic iteration order across platforms. Changed typedefs: - hash_t in hough_similarity_voting.h (vote tally) - keyframe_map_t in visual_database.h (keyframe collection) - cluster_map_t in binary_hierarchical_clustering.h (BHC clusters) This ensures the matcher produces consistent results across libstdc++, MSVC STL, and Emscripten/libc++ builds.
Copilot
AI
changed the title
[WIP] Investigate matcher determinism fix from WebARKitLib#39 against jsartoolkitNFT
chore: bump WebARKitLib submodule for matcher STL determinism fix
Jun 2, 2026
cf01dcf to
30e4b6e
Compare
5 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Three
std::unordered_maptypedefs in FreakMatcher produce implementation-defined iteration order, causing the matcher to resolve borderline ties differently across libstdc++, MSVC STL, and Emscripten/libc++. This was caught via cross-platform divergence in WebARKitLib-rs (WebARKitLib#39).Bumps the WebARKitLib submodule from
656436e→678535f(fix/matcher-stl-determinism), which converts:hash_tinhough_similarity_voting.h— vote tally consumed bygetMaximumNumberOfVotes; tied bins now resolve via ascending key orderkeyframe_map_tinvisual_database.h—query()first-wins tie-breaking is now platform-independentcluster_map_tinbinary_hierarchical_clustering.h— BHC tree topology no longer varies across STL implementationsAll three are
unordered_map→map. N is small for each, so the O(log N) vs O(1) tradeoff is negligible.Existing Karma tests (8/8) and Node.js NFT smoke test (pinball marker tracking) pass against the current pre-built WASM artifacts. A full Emscripten rebuild is required to produce WASM that includes the determinism fix at runtime.