When solving for camera movement my clip starts at frame 1 but camera is given a location at frame 0?

I've tracked and solved for the camera motion in a small clip. The clip starts at frame 1 but if I drag the playhead back to frame 0 then I see that the camera has a different location at this frame. How can this be - there is no frame 0 in the clip so there can be no motion to recover between it and frame 1?

Here's a .gif where I'm looking down on my camera and can clearly see this movement between frame 0 and 1:

If I convert the Camera Solver constraint to an f-curve then I can clearly see the change in location values between this non-existent frame 0 and frame 1.

Here's frame 0 with a location slightly different from the base location of the camera before converting to an f-curve:

And here's frame 1 - the camera has now moved to the location that was shown when it still had a constraint:

We also see our first keyframe at frame 0 rather than frame 1. What is going on here? Where is this motion coming from? What does it represent? Why is it needed?

This may sound like a rather obscure question but I'm trying to manipulate things in Python and this movement before the first frame is causing me a lot of confusion.

Any insights as to what's going on here would be much appreciated.

There's nothing special about the camera solve - I see the same effect no matter what I do. You can find my .blend file here (as it was before I converted the constrain to an f-curve). You'll also need the video which you can find here on Google Drive as Footage.mp4.

If it's relevant, I just converted the constraint like so:

Credit: Footage.mp4 comes from this video by Blender Daily.

I'm just guessing ...

Footage Tested with simple Cube, tracked corners, Camera rotate arround in 90° ...

Tracked

Solved Tracks are almost perfect with error 0.1 ... and mainly - position on frame 1 matches with first frame of reference video footage ... so tracking is not offseted and is as suppose to be.

If you see the camera path, the frame zero looks like a prediction based on previous frame 1.

Orange circle is just for reference (how solved camera path matchs), black part of circle is solved camera path and pink dots are frame marks in time.

My guessing is that algorythm works on calculating track position from frame before and after and since there is none it generates prediction of possible position ... usefull also for Refining ... what ruins my theory is that the last frame doesnt have this frame after :)

• Without someone who knows the code, this will remain an informed guess (as you point out). But I'm convinced. Commented Feb 5, 2022 at 21:27
• PS your shadow catcher answer from 2015 was super helpful for me recently. It's super to have people like you helping out beginners like me - I really appreciate it. Commented Feb 6, 2022 at 11:06