Website review
This review may include AI-generated content and is not individually verified. Domain, certificate and other facts come from the observed data on this page.
What is fSpy?
fSpy is a free, open-source tool for still image camera matching. You give it a photograph, mark the perspective cues in the scene (vanishing points, horizon, and so on), and it calculates the camera parameters that would reproduce that view. Those parameters can then be transferred into a 3D application so a rendered camera lines up with the photo.
fSpy runs on Mac, Windows and Linux, and the page states it is free to download and use, with an optional donation.
What it is used for
The typical job is matching a 3D render to a real photograph: for example, placing a modelled building, product or set extension into a photo of an existing location so the perspective looks correct. Instead of guessing a focal length and nudging the camera until it "looks about right", you derive the values from the image itself.
How the workflow fits together
fSpy is a parameter-finding step, not a modelling or rendering environment.
- Open the still image in fSpy and define its perspective structure.
- Export or copy the resulting camera parameters.
- Apply them to a camera in your 3D software.
For Blender, the page notes there is an official fSpy importer add-on that sets the Blender camera parameters and can optionally set the camera background image. For other applications without a dedicated importer, the documented approach is manual: set the camera viewport to match the input image dimensions, use the image as the camera background, then set field of view, position, orientation, and the principal point unless it coincides with the image midpoint.
Who it suits
- Architectural and VFX artists compositing 3D elements into photographs.
- Blender users who want a direct importer rather than manual entry.
- Anyone on a budget or preferring open-source tools, since it is free and cross-platform.
The main trade-off is that accuracy depends on how carefully you mark the image, and outside Blender the transfer is manual and therefore more tedious and error-prone.
Next step: if you use Blender, install the official importer add-on before you start, since it removes most of the manual parameter entry. If you use another 3D package, check whether a third-party importer exists for it; if not, plan on the manual route and keep a note of each value as you copy it across.
How do I use fSpy to match a camera to a photo?
Use fSpy to extract a camera position, orientation and field of view from a single still photo, then bring those values into your 3D application. The workflow has two halves: solving the camera in fSpy, then importing the result.
In fSpy
- Load the photo you want to match.
- Identify the parallel lines in the scene — building edges, road markings, window frames, tile grids. These are what tell fSpy how the camera was oriented.
- Align the guides to those lines. You need at least two sets of parallel lines running in different directions, plus a known or estimated focal length, to pin down the camera.
- Set the principal point if the optical centre is not at the image midpoint — common with cropped photos.
- Save the result as a
.fspyproject file.
The accuracy of your match depends almost entirely on how carefully you place those guides. A few pixels of misalignment on a long line translates into a visibly wrong camera angle in 3D.
Getting it into your 3D app
Blender is the easy case. An official fSpy importer add-on sets the Blender camera parameters directly and can optionally load your photo as the camera background, so you can compare the render against the original immediately. See fSpy for the setup instructions.
Other applications generally have no dedicated importer, so you copy values across by hand. The page outlines the sequence:
- Match the camera viewport to the input image dimensions
- Use the input image as the camera background
- Set the field of view
- Set the camera position
- Set the camera orientation
- Set the principal point, unless it already coincides with the image midpoint
That manual route works, but it is fiddly and easy to get one value wrong. If you do this often in a non-Blender tool, check whether your app has a scripting API — pasting the same numbers into a script each time is far less error-prone than typing them into a properties panel.
Practical notes
fSpy is open source and free to download for Mac, Windows and Linux, with an optional donation via PayPal. That matters if you are matching photos on a hobby budget or in a studio that avoids per-seat licences.
A concrete scenario: you have a photo of a room and want to composite a 3D object onto the table. Solve the camera in fSpy, import into Blender, and the object will sit in the correct perspective without eyeballing the focal length. The technique only works well on images with clear straight edges — a photo of foliage or a curved facade gives you nothing reliable to align to.
If you are unsure whether your image is suitable, look at it and ask whether you can point to two distinct vanishing directions. If not, fSpy is the wrong tool for that shot.
Can I import fSpy camera parameters into Blender?
Yes. fSpy has an official Blender importer add-on that transfers your solved camera parameters into Blender, and it can optionally set the camera background image to your reference photo. That makes it the smoothest path if Blender is your target.
For other 3D applications, fSpy's own guidance is that you typically copy the parameter values across manually. The outlined process is: match the camera viewport to the input image dimensions, use the image as the camera background, then set field of view, camera position, camera orientation, and the principal point (unless it already coincides with the image midpoint).
H3 Practical scenario You photograph a building facade, open the still in fSpy, place the vanishing-point guides along known parallel edges, and save the result. In Blender you enable the fSpy importer, load the file, and the camera lands at roughly the right position and focal length with the photo as a backdrop. From there you model against the image, adjusting only where your on-site measurements disagree with the estimate.
H3 Choosing your route
- Blender: use the official importer add-on — fewer steps and less chance of transcription errors.
- Other software: expect a manual parameter copy; budget a few minutes and double-check field of view and orientation, since those most affect whether geometry lines up.
- Mixed pipelines: solve once in fSpy, then export or transcribe per application rather than re-solving.
Next step: check whether your target application already has a community importer before doing the manual routine — it saves time and avoids mismatched values. fSpy itself is at fSpy, and if you use Blender, its own documentation covers add-on installation at Blender.
What do I do if my 3D software doesn't have a dedicated fSpy importer?
You still use fSpy to solve the camera, then transfer the result by hand rather than through an add-on. fSpy's own guidance says that without a dedicated importer, you copy the fSpy parameter values one by one into the target application.
The manual workflow is essentially this:
- Set the camera viewport in your 3D software to the same dimensions as the source image.
- Load that image as the camera background.
- Set the camera field of view from fSpy.
- Set the camera position.
- Set the camera orientation.
- Set the principal point, unless it already sits at the image midpoint.
That order matters: match the frame first, then the lens, then the transform. If the viewport aspect ratio is wrong, every later value will look incorrect even when it is right.
A practical example: you have a photo of a street corner and want to place a building model into it in a package with no fSpy importer. Solve the image in fSpy, note the field of view and camera transform, create a camera in your 3D app, set its render resolution to the photo's pixel dimensions, assign the photo as the camera background, then enter the values. The background should line up with your model's ground plane if the parameters are consistent.
For Blender specifically, fSpy provides an official importer add-on that sets the Blender camera parameters and can optionally set the camera background image, so the manual route is mainly for other applications. If you use Blender, install the add-on instead of copying values.
A useful decision criterion: if your software exposes camera field of view, position, rotation and principal point as editable numeric fields, manual transfer is straightforward. If it hides those controls, or only offers a simplified "camera" object, the manual method becomes impractical and you may need a different tool or a script.
Keep in mind that principal point handling is the step most often missed. Many cameras have it near the image center, so the default may work; when fSpy reports an offset, entering it is what makes the perspective match rather than merely approximate.
Is fSpy really free, and how is it funded?
Yes. fSpy is open-source software that is free to download and use, with no paid tier required to unlock its core still-image camera-matching features. It is available for Mac, Windows and Linux.
How it's funded
The project is supported by voluntary donations rather than by selling licenses. The site presents a donate button (using PayPal) and explicitly frames it as optional: pay as much or as little as you want. In other words, the software is free regardless of whether you donate, and donating is a way to support continued development rather than a condition of use. Because it's open source, the source code is also published, which is part of what makes the "free" claim verifiable rather than just a marketing statement.
What "free" does and doesn't cover
| Aspect | What to expect |
|---|---|
| Downloading and using fSpy | Free, no payment needed |
| Donations | Optional, any amount |
| Blender workflow | Free official importer add-on for camera parameters and optional background image |
| Other 3D apps | No dedicated importer; you copy parameter values manually |
The practical trade-off is that a donation-funded, open-source tool doesn't come with commercial support contracts or a guaranteed roadmap. For hobbyists, students and small studios, that's usually fine. If your pipeline depends on guaranteed updates or vendor support, factor that into your decision.
Next step
If you're evaluating it for a project, install it and test one real photo: match the camera, then export the parameters into Blender via the official add-on. If you use another 3D application, plan on the manual route — set the viewport to the image dimensions, use the image as the camera background, then enter field of view, position, orientation and principal point by hand. That exercise will tell you quickly whether fSpy fits your workflow. You can get it at fSpy.
Which operating systems does fSpy support?
fSpy runs on Mac, Windows and Linux. The download section on its site lists all three platforms together, so you can pick the build for your system rather than being tied to one OS.
If you are setting up a workflow, the more important compatibility question is your 3D application, not your OS. fSpy has an official importer add-on for Blender that sets the camera parameters and can optionally load the reference image as a camera background. For other applications, you transfer the values manually: match the camera viewport to the image dimensions, use the image as the camera background, then set field of view, position, orientation and the principal point unless it already sits at the image center.
Next step: confirm your target application before downloading. Blender users can follow the importer add-on route; everyone else should check whether a dedicated importer exists, and otherwise plan on copying the parameter values across by hand.
User reviews (0)