Repository navigation
v1.2.0
The phone can now be told what lens took a photograph. If your pictures carry that in their EXIF, nothing here will ever ask you anything and you can skip to the last line.
Why it matters more than it sounds. ml-sharp reads the focal length from the file and assumes 30 mm when it finds none. That assumption is not about size: it is the field of view the scene is unprojected through, so it sets the shape. The same photograph built at three lenses puts its subject 2.5, 4.1 and 6.9 metres away, with the depth stretched to match. A portrait taken at 85 mm and built at 30 comes out pressed flat — recognisably the right picture, with the depth squeezed out of it.
The editor has had a field for this. The phone, which is the only place you can paste a picture, had none.
-
It asks once, before building. A photograph that records its own lens is built straight away. One that does not is held, and the field appears; building starts when you answer. Leave it blank to accept the 30 mm that would have been assumed anyway. A portrait is usually 50 to 85; a phone's own camera is around 24 to 28.
-
Full-width digits are read as ordinary ones, so there is no need to change input mode to type two characters.
-
You can change your mind. The lens cannot be judged before the scene exists, so the field stays: type a different number and press Rebuild. That runs
ml-sharpagain and takes about as long as the first time. It runs only when you press it. A 360 scene cannot be rebuilt this way, being six reconstructions merged rather than one. -
Tipping the device now moves the view the other way round. Reported as backwards, and it was.
One note for anyone who had already made a scene: scenes built before this release carry no record of what lens they used, and are left alone rather than guessed about. Paste the picture again if you want to set one.
The full description of what this project is, and the two external conditions worth reading before installing, are in v1.0. What changed in the phone viewer itself is in v1.1.0.