Just as guitarists collect guitars, photographers collect the instruments used to create their art: cameras and lenses. Owning a collection comprising different kinds of cameras and lenses can get complicated though.
The mirrorless universe
Modern, mirrorless, digital cameras, with interchangeable lenses, come in various types. These are most often defined by the brand and the type of digital sensor the camera employs.
Full-frame cameras feature a 36x24mm sensor, replicating the frame size of 35mm film. Cameras incorporating both smaller and larger sensors are also available, each with attendant advantages and disadvantages versus full-frame.
Using a lens designed for one type of camera, on a camera using a different sensor format, changes the effective focal length and angle-of-view of the lens. How much does it change? That’s where you need to do a calculation.

Since I am an avid lens↔camera swapper, who would prefer not to make separate calculations each time I did so, I used Claude, the Anthropic LLM , to build an app I can use instead.
Learning by doing
I have posted several previous articles about vibe-coding personalized photography planning apps with Claude. You can find links to those in the table below.
In the process of building those apps, I have learned the importance of carefully thinking through exactly what I want the app to do, then writing a detailed prompt to communicate that to Claude.
You can find my prompt further down in this article.
Here’s the app

It has input fields for lens native format (with drop down options), lens focal length, sensor format of the camera on which I will mount the lens (with drop down options), and camera sensor resolution (in megapixels).
Once I have entered that information, the app displays the effective focal length of the lens in this scenario, its angle of view (in degrees), and the effective sensor resolution (in megapixels).
A full-frame lens on an APS-C camera
In the example shown, the app tells me that if I mount a 35mm full-frame lens on a camera with an APS-C sensor, the setup will possess an effective focal length of 52.5mm, and an angle of view of 44.6°. The sensor resolution will remain unchanged, since the lens will still use the entire sensor real estate.
The app sits on my computer as a .html file, opening in a new browser window when opened, or sitting there in a Chrome tab, ready to be called upon.

My observations
In my view, this is a great way to use vibe coding – building a customized app that serves a niche market (me!), taking the drudgery out of a repetitive task.
As usual, Claude incorporated features above and beyond what I had specified in my prompt. In this case, a wider selection of camera/lens formats than I had requested.
I included a worked example in my prompt, in the hope that it would help Claude understand exactly what I was after. It also allowed me to check that the app worked correctly.
The worked example turned out to be a good idea; Claude made an error in a calculation – dividing rather than multiplying. After I pointed this out, Claude realized the problem and corrected it.
However, the app still suffered from another calculation error – Claude dividing a term unnecessarily. Again, once pointed out, this was corrected in the next version.
GUI aesthetics
I now had a fully-functioning app, but the app’s graphical interface was not as aesthetically attractive as the previous photography planning apps Claude had built for me.
When I pointed this out, Claude was extremely apologetic, and conjured up the interface you saw earlier.
I thought we were there when I asked Claude to write an html file that I could save and launch from my computer. Claude produced the file, but in doing so, reintroduced one of the calculation errors.
So, the final step was to fix that, yielding the final version of the app you saw earlier, with which I am delighted.

My prompt
I would like to build a new, lens-format converter app to help me with my photography. This is how I envisage it working.
The input fields of the app would be:
- Native lens format, for example APS-C, Full-Frame, or Digital Medium Format.
- Native lens focal length in mm.
- Sensor format of camera on which I will use the lens, for example APS-C, Full Frame, or Digital Medium Format.
- Sensor resolution in megapixels.
The output fields of the app would be:
- Effective focal length in mm.
- Effective field of view in degrees
- Image size in megapixels
As an example, if I used an APS-C lens of native focal length 35mm on a camera with a full-frame camera with a 47 megapixel sensor, the app would tell me that its effective focal length would be 52.5mm, and it would have a field of view of X degrees and produce an X megapixel image.
Can you build this app for me?
I am happy to supply the entire subsequent dialog with Claude if anyone would like to see that.

Leave a Reply