explaingit

mapillary/opensfm

3,766PythonAudience · researcherComplexity · 4/5LicenseSetup · hard

TLDR

A Python library that turns a set of overlapping photos into a 3D model of the scene, computing where each camera was and what the space looks like geometrically, created by the team behind the Mapillary street-level photo platform, now no longer actively maintained.

Mindmap

mindmap
  root((OpenSfM))
    What it does
      3D reconstruction
      Camera positioning
      Scene geometry
    Pipeline
      Feature detection
      Image matching
      Math solvers
    Tech stack
      Python
      Docker
      Conda
    Audience
      Researchers
      Photogrammetry devs
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Reconstruct a 3D model of a building or outdoor space from a set of drone or phone photos

USE CASE 2

Compute the position and orientation of each camera in a photo set to feed into a photogrammetry pipeline

USE CASE 3

Check reconstruction quality in a browser without extra tools using the built-in JavaScript 3D viewer

Tech stack

PythonC++DockerConda

Getting it running

Difficulty · hard Time to first run · 1h+

Build targets Ubuntu via Docker or Conda, the project is no longer actively maintained so build issues on newer systems may not be fixed.

Use, modify, and distribute freely for any purpose including commercial use, as long as you include the BSD license notice.

In plain English

OpenSfM is a Python library that takes a collection of ordinary photographs and reconstructs the 3D shape of a scene from them, along with figuring out exactly where each photo was taken and which direction the camera was pointing. This technique is called Structure from Motion, a method that works by finding matching visual features across multiple overlapping images and then computing the geometry that ties them all together. The README notes upfront that this repository is no longer under active development. The library handles the full processing pipeline, including feature detection, feature matching between image pairs, and the core math solvers that produce the final reconstruction. It can also incorporate data from GPS and accelerometers, which helps align the resulting 3D model to real-world geographic coordinates and makes the reconstruction more accurate when photos were taken across a large outdoor area. A built-in JavaScript viewer lets you inspect the 3D output directly in a browser window, which is useful for checking reconstruction quality or debugging a run that went wrong. The documentation covers building the library from source, running a reconstruction on your own images, and the full API reference. OpenSfM was created and maintained by Mapillary, a company that built one of the largest street-level photo platforms and was later acquired by Meta. The library served as the backbone for processing large-scale crowdsourced image collections into navigable 3D representations. Its focus on scalability and the ability to handle noisy real-world sensor data reflects that origin. The code is BSD-licensed, which permits broad reuse in other projects. Installation is supported via Conda and Docker, with build workflows targeting Ubuntu. Given that active development has stopped, users looking for a maintained alternative may want to check what the broader computer vision community has published more recently.

Copy-paste prompts

Prompt 1
Walk me through running an OpenSfM reconstruction on a folder of overlapping outdoor photos, including which config options to set for GPS-tagged images.
Prompt 2
Explain the pipeline OpenSfM uses to go from raw photos to a 3D point cloud, what happens at the feature detection, matching, and reconstruction stages?
Prompt 3
How do I use the OpenSfM Python API to load reconstruction results and extract the camera pose for each image?
Prompt 4
Set up OpenSfM with Docker and run the sample reconstruction included in the repo to verify the installation works.
Prompt 5
What actively maintained alternatives to OpenSfM would you recommend for a new photogrammetry project that needs community support?
Open on GitHub → Explain another repo

← mapillary on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.