Skip to content

Releases

visloc-rs 0.3.0

Choose a tag to compare

@github-actions github-actions released this 24 Oct 23:20
d047cfb

Highlights

  • Multi-view stereo: visloc-mvs (new crate). Dense point clouds and
    meshes from a COLMAP model, on the CPU or on the GPU through wgpu. On
    the ETH3D high-res training set (13 scenes at 3,200 px, one NVIDIA L4)
    F1 at 2 cm is 83.7%, against the 83.42% ACMMP reports; against
    ACMMP's released code on the same L4, 83.4% against 83.2% over six
    scenes, in 27.5 minutes against 110. From the photos end to end,
    76.3% against 57.4% for COLMAP 4.2.1 CUDA over the 10 scenes both
    finished, in 58 minutes against 372.
  • City-scale photos to splats. The README hero is Hierarchical 3DGS
    SmallCity: 5,822 photos, 5,583 registered, 4.7M gaussians and a
    5.9M-triangle mesh from one gsplat_photos command in 2.5 h on a Colab
    A100. Along the way: VLFeat-compatible SIFT on the GPU (SmallCity's
    photos in 43.8 s on an RTX 3090), optional GPU bundle adjustment, a
    converged final BA, completion of the largest model, and a COLMAP-port
    mapper more than twice as fast with about half the memory (SmallCity
    peak 9.0 GiB instead of 18.9 GiB).
  • SfM ahead of COLMAP 4.2.1 on ETH3D. On COLMAP's matches of the 13
    DSLR training scenes the mapper scores a mean AUC@1°/3°/5° of
    53.69 / 79.94 / 86.90 (452 of 454 images), against 51.34 / 76.25 /
    82.88 for COLMAP's incremental mapper and 48.65 / 70.41 / 76.36 for
    its global mapper.
  • 360° panoramas. gsplat_photos --equirect (the six cube faces of a
    panorama as one rig) and --equirect-native (COLMAP 4.1's
    EQUIRECTANGULAR camera); gsplat_train trains on equirectangular
    COLMAP models.
  • New ways in. visloc_web runs the photo pipeline from a browser;
    Python bindings (bindings/python, package visloc); ROS 2 nodes
    (ros2/visloc-ros2) for the VIO and localization.
  • Sensors and fusion. Multi-camera Basalt VIO for divergent rigs
    (opt-in), monocular-inertial VIO (experimental), and a joint GNSS +
    visual-odometry pose graph.
  • Lens models in bundle adjustment. Pose/structure BA and rig BA use
    each camera's full distortion model; tangential distortion can be
    self-calibrated (opt-in).

Full change log

The itemized 0.3.0 change log (every Added / Changed / Fixed entry from
2026-10-08 to 2026-10-24, about 1,400 lines) is archived in
docs/archive/changelog_0.3.0_full.md.

visloc-rs v0.2.0

Choose a tag to compare

@rsasaki0109 rsasaki0109 released this 15 Sep 04:37
c7fbb16

visloc-rs v0.2.0

First tagged release since v0.1.0 (2026-05-07). Pre-1.0: APIs may still change.

Highlights

  • Real-data SfM at scale. All ten ETH3D low-resolution many-view scenes:
    9,996/10,008 cameras registered (99.88%), with no mapper run above
    3.32 GiB. Same-input ETH3D Electro 1,200 runs 3.46× faster than COLMAP
    with 25.2% lower camera-centre RMSE, and the 38-image courtyard control
    reaches 0.5379 cm vs COLMAP's 1.6166 cm.
  • Visual-Inertial SLAM (faithful Basalt Rust port). A tightly-coupled
    stereo-inertial VIO estimator plus an offline SfM mapper that matches native
    Basalt's ATE within 0.1% on all 11 EuRoC sequences and, with EuRoC's
    official calibration, beats measured ORB-SLAM3 on 8 of 11 sequences.
  • COLMAP-compatible unordered SfM with VLAD retrieval, essential-matrix
    verification, incremental mapping, connected-component models, and COLMAP
    text export for downstream 3DGS / MVS.
  • Online stereo SLAM with loop closure, SE(3)/Sim(3) pose-graph
    optimization, GNC outlier rejection, and bundle adjustment, benchmarked on
    KITTI, EuRoC, and TUM RGB-D.
  • Opt-in deep frontend (SuperPoint / LightGlue via in-Rust ONNX Runtime,
    CUDA-accelerated), plus public-data map-reuse localization and GNSS-prior
    tracking demos.

Documentation

Notes

  • This GitHub release does not include crates.io publishing. visloc-basalt
    and visloc-dpvo-cuda-runtime are newer workspace members that would also
    need publish/order entries before visloc-rs can be published.
  • Measurements are local public-data development results, scoped by dataset,
    sensor mode, and protocol; they are not official leaderboard submissions.

visloc-rs v0.1.0

Choose a tag to compare

@rsasaki0109 rsasaki0109 released this 07 May 08:26

Initial public release of visloc-rs: a Rust visual-localization foundation focused on map-based localization with existing SfM / visual maps.

Highlights:

  • Core geometry and map types: Camera, Pose, Frame, Keyframe, Landmark, Observation, VisualMap, and LocalizationResult.
  • SE3 / SO3, reprojection helpers, descriptor matching, DLT PnP, PnP RANSAC, and optional Gauss-Newton pose refinement.
  • COLMAP text/binary sparse model loading plus COLMAP text writer.
  • Query-feature and landmark-descriptor text IO.
  • Stateless localization pipeline with map providers, candidate selectors, quality gates, and diagnostics.
  • Tracking scaffold with motion priors, lost/relocalized states, and GNSS/pose-prior hooks.
  • Local mapping skeleton, online SLAM MVP composition, and loose-coupling fusion foundation for future robotics workflows.
  • Public South Building visual-localization demo assets and release/publishing documentation.

Non-goals for this release remain explicit: no full SLAM, loop closure, dense mapping, full SfM, production bundle adjustment, or tightly-coupled GNSS/INS/VIO backend yet.

Validation before tagging:

  • scripts/check.sh
  • package metadata and crate-content checks