Camera Perspective Tool


This is a modal tool for changing your camera lens angle while keeping it steady in place.

  • Great for aligning the scene to camera background images (e.g. matching perspective from reference images, for modeling).
  • Also for animation and stills, trying different FOVs quickly without having to move the camera all the time. Find that perfect dramatic framing super quick.

Get it on Gumroad:


See also:


Wow, this is very useful in a lot of ways!

very useful… thank you

Thanks guys. If you have any questions please let me know.


I added a new feature to this addon: truck-shift (it’s a made-up name!).
It lets you change the lens shift of your camera while it automatically trucks to keep the 3D cursor in place on screen. It’s great for aligning the view to some particular perspective images or objects.

You can get the addon in the Gumroad page, but if you already have it then you should receive a message containing the updated version.

I updated this to version 1.1.1.
You can still get it on Gumroad:

This update added much needed header text information, telling you what mode you’re in and what keys you can press, just like the native Blender tools already do.
I feel it’s better this way, less stuff to memorize (see the header at the bottom):


hello, just purchase your addon, i really like the fact that you add a dolly view its amazing:

but will you update it into 2.8 ?
i modified the version but i got an error at the line 305

line 305, in invoke
    localCursor = cam.matrix_world.inverted() * context.scene.cursor_location
TypeError: Element-wise multiplication: not supported between 'Matrix' and 'Vector' types

i tried to fix it myself but im new to code and its way too much high level for me right now

1 Like

Hi @BD3D, thanks for the support.
I just sent a Gumroad update email with two editions, one for 2.79 and another for 2.80.

There are a few changes to the API – for instance, matrix vs. vector multiplication now uses the @ operator instead of the asterisk operator.

Anyway, good luck.

1 Like

Really nice idea, seems to be well implemented. I do not need it at the moment but soemthing to keep in mind for sure.

1 Like

Hi! Awesome addon, got it a few days ago and worked wonderfully in 2.80, but in recent updates throws an error. I hope it helps to fix the issue:

Traceback (most recent call last):
  File "C:\Users\USER_NAME\AppData\Roaming\Blender Foundation\Blender\2.80\scripts\addons\", line 283, in invoke
    localCursor = cam.matrix_world.inverted() @ context.scene.cursor_location
AttributeError: 'Scene' object has no attribute 'cursor_location'

location: <unknown location>:-1
1 Like

Hi @Botoni, you’re right. The latest build changed some of the API, you should be getting a Gumroad update with a fixed version.

Thanks for reporting!

I just hit that exact error in one of my addons too. It gets hard to keep up with that.

1 Like

I was just debugging another problem in some other add-on which is when you have a reference to a mathutils.Vector attribute, like for example, in 2.79 and 2.80 they behave differently: sometimes it’s a copy, sometimes it’s a reference (I don’t remember which Blender has which…).
If you expected that value to change, and you got a copy, you’d run into problems.

Yeah really hard to track, maybe the add-on devs should hack a editable wiki page about latest updates that also offers RSS feeds etc, otherwise this also affects the users too.

My biggest issue atm is that we need to support 3 different branches as if developing and distributing add-ons was easy enough. These branches are Blender 2.79b (Python 3.5), Blender 2.79b nightlies (Python 3.7) and Blender 2.80 (Python 3.7) And these diverge and differ in some areas.