What fSpy does, and how the Blender importer fits in

fSpy is an open-source app for Windows, macOS and Linux that matches a camera to a single still image. You drag line segments along edges that are parallel in the real world, and fSpy computes the focal length, orientation and position of the camera. It has a two vanishing point mode and a one vanishing point mode in which you supply the focal length; the principal point can sit at the image center, be placed by hand or come from a third vanishing point; and a reference distance sets the scale.

fSpy saves a .fspy project. The separate fSpy importer add-on reads it through File > Import > fSpy, creates a camera with the solved field of view, rotation, position and lens shift, sets the render resolution to the photo, and can add the photo as the camera's background. Both are free. The latest stable fSpy app is 1.0.3 from January 2019, with a 1.1.0 beta from April 2020. (Both repositories moved from the stuffmatic GitHub account to perarnia; old links redirect.)

Does the fSpy importer work in Blender 4.2 and 5.x?

This is what the official fSpy-Blender repository shows, checked in October 2026:

  • The latest release is v1.0.3, published July 22, 2019. The most recent commit is from May 2022.
  • It is a legacy add-on (a bl_info block, no blender_manifest.toml), the format from before Blender 4.2 introduced extensions.
  • There are open reports for Blender 4.0, 4.1, 4.5 and 5.0 and newer. In those threads some users say v1.0.3 works in Blender 5.0 and 5.1 when installed from the zip; others report install or import failures.
  • Two community pull requests, #92 and #93, repackage it as a Blender 4.2+ extension. Neither has been merged.

Blender 5.2's manual still documents installing legacy add-ons from a zip with Install from Disk, so the old format alone does not break it. The real risk is that it is unmaintained: if a future Blender version breaks it, there is no release to wait for.

How to keep using fSpy with Blender 5

  1. 1
    Download the release zip, not the source

    From the Releases page, download fSpy-Blender-1.0.3.zip and keep it zipped. In Safari on a Mac, right-click and choose Download Linked File, because Safari otherwise unzips it.

  2. 2
    Install it as a legacy add-on

    Open Edit > Preferences > Add-ons, choose Install from Disk in the drop-down menu at the top right, select the zip, then enable Import fSpy project.

  3. 3
    Import in Object Mode

    Use File > Import > fSpy with the 3D Viewport in Object Mode. Importing from Edit Mode fails with a context error (issue #87).

  4. 4
    Make the imported camera the scene camera

    The importer sets the viewport's camera, not the scene camera, so renders can still use an older camera. Select the imported camera and press Ctrl+Numpad 0 (Set Active Object as Camera).

Builds attached to the open pull requests are community builds, not official releases. If the official zip will not install, one of the in-Blender tools below is the safer route.

fSpy alternatives that run inside Blender

Perspective Plotter

Perspective Plotter by Mark Kingsnorth is the most established in-Blender replacement; its documentation says it was inspired by fSpy. You define perspective lines in the viewport and the camera updates in real time. It has 1, 2 and 3 point perspective modes, a measuring guide for scale and keyframe buttons for animating the camera. As of October 2026 it costs $18 on Superhive with 12 months of updates and support, and lists Blender 3.0 to 5.2 as supported.

Free extensions: Simple Camera Match and img2cube

Two add-ons on the official Blender Extensions platform, which only lists free and open-source extensions, support Blender 4.2 and newer. Simple Camera Match solves focal length, location and rotation live from X, Y and Z vanishing lines drawn in the camera view, using the 3D cursor as the anchor for position and scale. img2cube recovers focal length and rotation from two or three vanishing points and scales the scene from one known measurement. Both were first published in 2026, so test them on your own photo first.

Perspective Matcher in MotionMaster 3D

The Perspective Matcher is part of MotionMaster 3D, the camera tracking addon I build, and is included in the Standard tier. You drag two red and two green lines onto parallel edges in the photo; it computes the focal length and rotation live, puts the world origin at the origin handle, and sets the scale from the camera-to-origin distance. It is two-point only, with no 1-point or 3-point mode and no animation keys. If photo matching is all you need, Perspective Plotter or a free extension may suit you better; the Perspective Matcher makes sense when you also want camera tracking for video in the same addon.

fSpy vs Perspective Plotter vs Perspective Matcher vs manual matching

FeaturefSpy + importerPerspective PlotterPerspective MatcherManual in Blender
PriceFree$18Included in MotionMaster 3D Standard ($29.99)Free
Where it runsStandalone app, then importInside BlenderInside Blender (Windows, Blender 5.1 and 5.2)Inside Blender
Perspective modes1 or 2 vanishing points1, 2 or 3 point2 vanishing pointsBy eye
Scale fromReference distanceMeasuring guideCamera-to-origin distanceA known object, by eye
Camera updates liveNo, import after solvingYesYesYes
Blender 5.x statusImporter last released in 2019; mixed reportsLists Blender 3.0 to 5.2Built for Blender 5.1 and 5.2Always works
Checked in October 2026 on fspy.io, the fSpy-Blender repository and the Perspective Plotter store page. Prices change, so check before you buy.

How camera matching from a photo works

Lines that are parallel in the real world converge in a photo toward a vanishing point; extend two of them until they cross and you have it. Every tool on this page solves the same geometry from those points:

  • Two-point perspective uses two horizontal directions at a right angle, such as the two walls at a building corner. With the principal point known, two perpendicular vanishing points give the focal length and the rotation. fSpy and the Perspective Matcher both work this way.
  • Three-point perspective adds the vertical direction, which converges when the camera tilts up or down. Three perpendicular vanishing points also give the principal point: it sits at the orthocenter of the triangle they form.
  • One-point perspective, a facade seen straight on, cannot give the focal length by itself, which is why fSpy asks you to enter it in that mode.

The focal length comes out in pixels first: the square root of the negative dot product of the two vectors from the principal point to each vanishing point. Converting to millimetres needs a sensor width (mm = px × sensor width ÷ image width). The angle of view is what counts, so 24 mm on a 36 mm sensor is the same camera as 16 mm on a 24 mm sensor.

The principal point is where the lens axis meets the image, normally the center. Cropping moves it, and a solver that assumes the center then gets the focal length and rotation wrong, so use the uncropped original or set the principal point by hand. Scale is never visible in one photo: a small model close up and a large building far away look the same. Every tool needs one real measurement, and an origin, the point that becomes the world origin in Blender.

From one camera position, objects at different depths can project to the same place in the image. A single photo has the same limit, which is why depth and scale always need one known measurement.

How to match a Blender camera to a photo with the Perspective Matcher

These steps follow the Perspective Matcher documentation; the plan is the same in the other tools.

  1. 1
    Pick a suitable photo

    Use the uncropped original with clear straight edges in two horizontal directions at a right angle: two walls, a tiled floor, a table. Phone and wide-angle photos bend lines near the edges, so trace edges near the center where you can.

  2. 2
    Add a camera

    Add one with Add > Camera and make it the scene camera. Without a camera the start button reads No Camera in Scene.

  3. 3
    Load the photo

    In the 3D Viewport sidebar (N), open the MotionMaster 3D tab and the Perspective Matcher panel and click Load Image. It sets the render resolution to the photo and adds it as the camera's background image. For a cropped photo, enable Custom Principal Point and enter Center X and Center Y in pixels, measured from the bottom-left corner of the image.

  4. 4
    Start matching

    Click Start Perspective Match. The viewport switches to the camera view and shows two red lines (X axis), two green lines (Y axis) and a blue origin handle.

  5. 5
    Drag the lines onto parallel edges

    Put the red lines on two edges that are parallel in the real world, and the green lines on two edges at a right angle to them. Keep each pair long and far apart; short or nearly parallel lines make the result unstable. The camera updates live, and the panel shows the focal length in pixels and millimetres.

  6. 6
    Place the origin and scale

    Drag the blue handle to the point that should become the world origin, such as a building corner at ground level. Under Origin Point, set Distance to the real camera-to-origin distance if you know it (the default is 10 scene units).

  7. 7
    Fix the orientation and apply

    If the result faces the wrong way, Flip X, Flip Y or Flip Z orbits the camera 90 degrees around that world axis. Press Enter or click Done, then Apply to Camera. Ctrl+Z and Ctrl+Y undo and redo handle moves.

Final composite frame with a white sphere sitting on the forest floor in the tracked footage
The goal of any camera match: CG that sits in the image with the right perspective. This frame comes from a tracked video shot, but a matched still photo works the same way.

How to check the match and fix common problems

Add a plane or cube at the origin and look through the camera. Its edges should run toward the same vanishing points as the real edges. If they do not:

ProblemCauseFix
"X lines are parallel (no vanishing point)"The two lines of a pair never meet in the imageTrace edges that visibly converge; a facade seen straight on needs a one-point tool
"Lines are not orthogonal enough (invalid focal length)"The two directions are not at a right angle in realityUse two directions that really are perpendicular, like the walls of one corner
Focal length jumps when a line moves slightlyVanishing points far away: a long lens or edges that barely convergeUse longer lines further apart, or a tool that accepts a known focal length
Match is offset, focal length is offA cropped photo moved the principal pointUse the original or set the principal point
CG edges miss curved edges in the photoLens distortionUndistort first; see lens distortion in Blender
Scene is the wrong sizeOne photo cannot show scaleSet Distance from a measurement, or scale from an object of known size
The quoted messages are Perspective Matcher errors; other tools fail for the same reasons with different wording.
Telephoto example frame where trees at different distances show very little relative movement
A telephoto frame: trees at very different distances look almost the same size. Long lenses flatten a still photo the same way, pushing the vanishing points far outside the frame and making the focal length estimate unstable.

Which option should you use?

Your situationGood fit
You know fSpy and the importer installs on your BlenderKeep using fSpy
You want the most established in-Blender tool, with 1 and 3 point modesPerspective Plotter
You want a free tool inside BlenderSimple Camera Match or img2cube
You also need camera tracking for video, on WindowsMotionMaster 3D (Perspective Matcher is in Standard)
One quick shot with a simple box shapeMatch it by eye in Blender

Matching by eye needs no add-on: add the photo in Camera Properties > Background Images, set the render resolution to the photo's size, enable Camera to View under View Lock in the sidebar's View tab, and move the camera and change the focal length until a plane or cube lines up. It is slow and imprecise, but fine for a background element. For video instead of a still, you need a camera track; start with the complete Blender camera tracking guide.