Skip to content

AI-1118: Update Falkor Dependencies to Latest Versions - Rebase to GTSAM 4.3a1 with OpenSpace Compatibility Patches#6

Merged
ali-younis-openspace merged 4004 commits into
os-updatesfrom
codex/rebase-4.3a1-os-compat
Feb 24, 2026
Merged

AI-1118: Update Falkor Dependencies to Latest Versions - Rebase to GTSAM 4.3a1 with OpenSpace Compatibility Patches#6
ali-younis-openspace merged 4004 commits into
os-updatesfrom
codex/rebase-4.3a1-os-compat

Conversation

@ali-younis-openspace

@ali-younis-openspace ali-younis-openspace commented Feb 11, 2026

Copy link
Copy Markdown

What this PR does

  • Rebases Falkor’s GTSAM dependency to the latest upstream 4.3a1 line.
  • Carries forward OpenSpace/Falkor compatibility patches that were previously maintained in os-updates.
  • Integrates os-updates into codex/rebase-4.3a1-os-compat to resolve prior merge conflicts and provide a clean merge path.

Why this change

  • Aligns Falkor with a current upstream GTSAM baseline.
  • Preserves existing Falkor/OpenSpace compatibility behavior while reducing long-term divergence debt.
  • Needed for numpy 2.x compatibility

Scope of compatibility carry-forward (high-level)

  • Similarity2/Similarity3 compatibility and related wrapper surfaces.
  • Essential-matrix / SLAM compatibility adjustments.
  • Nonlinear/slam wrapper and serialization compatibility touchpoints.
  • Public interfaces align with the rebased codex/rebase-4.3a1-os-compat API shape (not legacy os-updates signatures).

Validation

  • Verified conflict-free integration path from os-updates into the rebased branch.
  • Built and ran targeted checks:
    • testSimilarity2
    • testEssentialMatrixConstraint
    • testReferenceFrameFactorSim
  • All targeted checks passed.

Note

Medium Risk
Broad changes to build configuration, dependency discovery, and CI/packaging across all platforms could cause build or release regressions despite limited impact on core library runtime behavior.

Overview
Updates the project baseline to 4.3a1 and modernizes CMake: raises minimum CMake/C++ standard, introduces new build options (e.g. Boost features vs. serialization toggles, GeographicLib enablement, shared/static forcing, sanitizer flags), adds bundled cephes handling, and adjusts exported config to only find_dependency(Boost)/TBB when enabled.

Overhauls CI and build scripts to prefer Ninja + cmake --build, adds new workflows for cibuildwheel wheel builds (develop + release), cache cleanup, GitHub Pages deploy, and a cross-platform vcpkg build, while updating Linux/macOS/Windows matrices, concurrency, and conditional Boost/GeographicLib coverage.

Reduces Boost reliance in CppUnitLite (drops boost::lexical_cast usage) and refreshes developer/docs guidance (INSTALL.md, DEVELOP.md, README badges/requirements) to match the new build and wrapper conventions.

Written by Cursor Bugbot for commit 8ff5ca7. Configure here.

dellaert and others added 30 commits August 30, 2025 19:33
Remove outdated brew tap (was required for boost versions)
Update README.md: fix minimum cmake version
…aphiclib

Remove metis and geographiclib ports from vcpkg ci
# Conflicts:
#	.github/workflows/build-python.yml
# Conflicts:
#	examples/NavStateImuExample.cpp
rohan-bansal and others added 18 commits October 19, 2025 14:28
Include /permissive- notice and fix up a few other things
…ated_python_examples

6 More Python Examples + Standardized Notebook Format
…ompliance

Enable and propagate /permissive- on MSVC
This reverts commit 0c00fc0.
Fix timing with TBB and a minor GCC bug
This commit reapplies only the OpenSpace-specific behavior and wrapper compatibility changes on top of upstream 4.3a1, while keeping upstream implementations where functionality already exists.

Essential matrix behavior:

- Port custom EssentialMatrixConstraint::evaluateError residual and Jacobian logic (rotation local-coordinates + translation basis projection).

- Add non-zero-error derivative regression test for EssentialMatrixConstraint.

Similarity2 compatibility:

- Add Jacobian-capable Similarity2::transformFrom(Point2, Hpose, Hpoint).

- Add Similarity2::transformFrom(Matrix) for 2xN batch point transforms.

- Expose Similarity2.transformFrom(Matrix) and Similarity2.AdjointMap() in geometry.i for Python wrapping.

ReferenceFrameFactor wrapper/API compatibility:

- Update slam.i bindings to expose generic ReferenceFrameFactor template.

- Preserve OpenSpace symbol aliases: PointReferenceFrameFactorPose2 and PointReferenceFrameFactorSim2.

- Preserve upstream symbol alias: ReferenceFrameFactorPoint3Pose3.

- Add Sim2 reference-frame regression test (testReferenceFrameFactorSim).

Serialization compatibility:

- Add Similarity2/Similarity3 PriorFactor exports in gtsam_unstable serialization.cpp while retaining 4.3 additions (e.g., SL4).

Wrapper build fix:

- Make ReferenceFrameFactor default constructor public for serialization/__setstate__ paths generated by pybind wrappers.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 5 potential issues.

Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.

Comment @cursor review or bugbot run to trigger another review on this PR

Comment thread .github/workflows/build-cibw.yml
Comment thread .github/scripts/python.sh
Comment thread cmake/GtsamBuildTypes.cmake
Comment thread CMakeLists.txt
Comment thread .github/workflows/build-cibw.yml

@RachitB11 RachitB11 left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! I just had questions regarding the LegacyBiasInitCovand the assertNoCombinedImuLegacyBiasInitPriorConflicts. The rest look good to me. Excellent job getting this to work. It built fine on my machine.

@ali-younis-openspace ali-younis-openspace merged commit 673c185 into os-updates Feb 24, 2026
24 of 34 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.