Repository navigation
Releases
Releases · rsasaki0109/visloc-rs
visloc-rs 0.3.0
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 onegsplat_photoscommand 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
EQUIRECTANGULARcamera);gsplat_traintrains on equirectangular
COLMAP models. - New ways in.
visloc_webruns the photo pipeline from a browser;
Python bindings (bindings/python, packagevisloc); 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
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
- The front page now keeps a compact set of figures and tables, with full SfM
and VI-SLAM detail indocs/sfm_benchmarks.md
anddocs/vi_slam_benchmarks.md. - Full change list:
CHANGELOG.md.
Notes
- This GitHub release does not include crates.io publishing.
visloc-basalt
andvisloc-dpvo-cuda-runtimeare newer workspace members that would also
need publish/order entries beforevisloc-rscan 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
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, andLocalizationResult. 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