{"adoption": {"forks": 2181, "observed_at": "2026-08-28T04:09:47.427831+00:00", "stars": 6656}, "canonical_url": "https://ross.abutalabs.com/products/14-lectures-on-visual-slam-slambook", "card": {"archived": false, "artifact_type": "learning-resource", "description": "edition 2 of the slambook", "domain": ["robotics", "computer-vision", "tutorials"], "enriched": true, "function": ["computer-vision", "simulation", "math", "developer-tools"], "health_score": 20, "homepage": null, "language": "C++", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["gaoxiang12/slambook2", "gaoxiang12/slambook", "gaoxiang12/slambook-en"], "name": "14 Lectures on Visual SLAM (slambook)", "platform": ["cpp", "cross-platform"], "pushed_at": "2024-12-27T07:33:49+00:00", "repo": "gaoxiang12/slambook2", "stars": 6656, "tags": ["slam", "visual-odometry", "eigen", "g2o", "ceres", "book-code", "education", "algorithms", "linux"], "topics": [], "urls": [], "use_cases": ["learn visual SLAM from theory to practice", "example code for visual odometry with OpenCV", "learn g2o and Ceres pose graph optimization", "understand Lie groups and Lie algebra for robotics", "implement loop closure with DBoW3", "build dense 3D reconstruction with Octomap"], "what_it_is": "Companion code repositories for the book '14 Lectures on Visual SLAM: From Theory to Practice', organized by chapter with C++ examples covering visual odometry, nonlinear optimization, loop closure, and dense reconstruction. Includes the original edition (slambook), the updated second edition (slambook2), and an English edition (slambook-en).", "when_to_avoid": ["you need a production-ready SLAM system to deploy on a robot", "you want a maintained library rather than educational code", "you are not working in C++ on Linux"], "when_to_choose": ["you are studying visual SLAM and want runnable chapter-by-chapter C++ examples", "you want a structured curriculum pairing a textbook with code", "you need reference implementations of VO, pose graph optimization, and bag-of-words loop closure"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/repos/gaoxiang12/slambook2", "repo": "gaoxiang12/slambook2", "role": "main", "score": 32}, {"path": "/repos/gaoxiang12/slambook", "repo": "gaoxiang12/slambook", "role": "mirror", "score": 32}, {"path": "/repos/gaoxiang12/slambook-en", "repo": "gaoxiang12/slambook-en", "role": "docs", "score": 36}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:47.427831+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:37:35.580843+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5c7bf9deed4b155d5559d3e024ff6487ad4c30cf048b580781310de9cdf2a013", "fetched_at": "2026-08-28T04:09:47.427831+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gaoxiang12/slambook2"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:47.427831+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:37:35.580843+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5c7bf9deed4b155d5559d3e024ff6487ad4c30cf048b580781310de9cdf2a013", "fetched_at": "2026-08-28T04:09:47.427831+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gaoxiang12/slambook2"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:37:35.580843+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5c7bf9deed4b155d5559d3e024ff6487ad4c30cf048b580781310de9cdf2a013", "fetched_at": "2026-08-28T04:09:47.427831+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gaoxiang12/slambook2"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:09:47.427831+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:47.427831+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:47.427831+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:37:35.580843+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5c7bf9deed4b155d5559d3e024ff6487ad4c30cf048b580781310de9cdf2a013", "fetched_at": "2026-08-28T04:09:47.427831+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gaoxiang12/slambook2"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:47.427831+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:47.427831+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:37:35.580843+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5c7bf9deed4b155d5559d3e024ff6487ad4c30cf048b580781310de9cdf2a013", "fetched_at": "2026-08-28T04:09:47.427831+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gaoxiang12/slambook2"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:47.427831+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:47.427831+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:47.427831+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:37:35.580843+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5c7bf9deed4b155d5559d3e024ff6487ad4c30cf048b580781310de9cdf2a013", "fetched_at": "2026-08-28T04:09:47.427831+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gaoxiang12/slambook2"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:47.427831+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:47.427831+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:37:35.580843+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5c7bf9deed4b155d5559d3e024ff6487ad4c30cf048b580781310de9cdf2a013", "fetched_at": "2026-08-28T04:09:47.427831+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gaoxiang12/slambook2"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:37:35.580843+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5c7bf9deed4b155d5559d3e024ff6487ad4c30cf048b580781310de9cdf2a013", "fetched_at": "2026-08-28T04:09:47.427831+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gaoxiang12/slambook2"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:37:35.580843+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5c7bf9deed4b155d5559d3e024ff6487ad4c30cf048b580781310de9cdf2a013", "fetched_at": "2026-08-28T04:09:47.427831+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gaoxiang12/slambook2"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:37:35.580843+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5c7bf9deed4b155d5559d3e024ff6487ad4c30cf048b580781310de9cdf2a013", "fetched_at": "2026-08-28T04:09:47.427831+00:00", "kind": "readme", "missing": false, "url": "https://github.com/gaoxiang12/slambook2"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2936, "days_push": 614, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}