{"id":8228,"date":"2026-11-09T13:04:21","date_gmt":"2026-11-09T12:04:21","guid":{"rendered":"https:\/\/photoni.st\/?p=8228"},"modified":"2026-11-09T13:04:21","modified_gmt":"2026-11-09T12:04:21","slug":"latent-digital-film-camera","status":"publish","type":"post","link":"https:\/\/photoni.st\/index.php\/2026\/11\/09\/latent-digital-film-camera\/","title":{"rendered":"Latent: digital film camera"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">I like the film experience very much. I like the limitations of the medium (e.g. fixed ISO), the limitations of the process (e.g. no feedback until you process), I like the fact that you have to plan (e.g. you have the films you have, no infinite shooting), and I like the limitations of the render (e.g. you\u2019re stuck with the film stock you chose). All those limitations make the process more of a slow, intent-driven, more personal experience.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But it\u2019s so expensive!<\/p>\n\n\n\n<figure class=\"wp-block-image is-resized\"><a class=\"image-link image2 is-viewable-img\" href=\"https:\/\/substackcdn.com\/image\/fetch\/$s_!zrjR!,f_auto,q_auto:good,fl_progressive:steep\/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7358073e-222b-44ac-b2d7-7e089724e8cd_1408x768.jpeg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" src=\"https:\/\/substackcdn.com\/image\/fetch\/$s_!zrjR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep\/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7358073e-222b-44ac-b2d7-7e089724e8cd_1408x768.jpeg\" alt=\"\" style=\"aspect-ratio:1.8333333333333333;width:1408px;height:auto\" title=\"\"\/><\/a><figcaption class=\"wp-element-caption\">Taadaa!<\/figcaption><\/figure>\n\n\n\n<!--more-->\n\n\n\n<p class=\"wp-block-paragraph\">So I thought to myself: could I turn a digital camera into a film camera? I could in theory have the cheap process and the film experience. I went round the interwebs, and found a few projects (e.g. FilmRoll). They all had good ideas, but they clearly didn\u2019t want to let go off the digital background. They all created a sort of hybrid process I didn\u2019t like.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So, being an engineer, I decided to scratch that itch myself and I started a deep dive into camera firmwares, film processes, film quality and rendering, ane more. Over a weekend, I built my thing: <a target=\"_blank\" rel=\"noopener\" href=\"https:\/\/latent.photoni.st\/\">Latent<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">At the moment it\u2019s only tested on the Canon 7D because I had one lying around unused for many years and it was therefore essentially disposable: if it got bricked, it got bricked, no crying about it. But in theory it could be generalised to most Canon cameras.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I chose that name because of its meaning in the photographic process: things that are not yet here. When light hits a film, the image is latent: it\u2019s there and it\u2019s not there. Something is recorded, but until you process the roll, you can\u2019t see it. Everything between the shutter and the developer is latent, and nothing you do to the film in between will tell you what\u2019s in there.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A digital sensor blurs the whole process because of its internal steps: as soon as you take a photo, the sensor captures signal, it\u2019s processed, and it\u2019s saved on the memory card, already accessible and inspectable (obviously those gloss over well depth, signal amplification, debayering, many more things manufacturers decided to hide from the user). Film, on the other hand, makes you wait. And that\u2019s not a defect that needs to be fixed, it\u2019s a choice.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The way I designed Latent was for maximum faithfulness with the film experience. First, you setup your camera bag: on the computer you choose what rolls of film you\u2019ll take with you (stock and number). You can choose any number, so you have a big bag. But it\u2019s definitively finite: once you\u2019ve made your choice and loaded it in the camera, that\u2019s all you have. No way around it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When you\u2019re out shooting, you need to load a roll of film. By clicking on the Picture Style button, you access your \u201cBag of cans\u201d. It shows you all the films you loaded, available to use, and spent. Loading a film spends it, even if you don\u2019t take photos or only take a few. Exactly like with a film camera.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Of course, you can\u2019t reuse films. Once spent, it\u2019s spent. You\u2019ll have to go back home to load more films in your bag.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">You can choose to push\/pull up to 2 stops if you want with the joystick left\/right. In most cases, you don\u2019t need to worry about that, but it can be useful, e.g. in low light shoowting when all you have in your bag is 200 or 400 ISO film. Once you have a film loaded, the camera ISO is fixed to the stock sensitivity or your push\/pull choice. You can\u2019t change it anymore.<\/p>\n\n\n\n<figure class=\"wp-block-image is-resized\"><a class=\"image-link image2 is-viewable-img\" href=\"https:\/\/substackcdn.com\/image\/fetch\/$s_!yZzS!,f_auto,q_auto:good,fl_progressive:steep\/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d6c1bb5-4dd6-42f3-bf44-bd66b966992e_1440x960.png\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" src=\"https:\/\/substackcdn.com\/image\/fetch\/$s_!yZzS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep\/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1d6c1bb5-4dd6-42f3-bf44-bd66b966992e_1440x960.png\" alt=\"\" style=\"aspect-ratio:1.5;width:1440px;height:auto\" title=\"\"\/><\/a><figcaption class=\"wp-element-caption\"><em>The shelf of cans. Loadable films first, the ones already shot below them, and the camera\u2019s other buttons locked while it\u2019s open. The revision in the corner names the build.<\/em><\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">In theory you should set your camera to raw only. Not as a crutch, but because it makes the push\/pull process more flexible. You can\u2019t visualise the photos anyway, the replay button is deactivated. Like on a film camera: until processing, you don\u2019t know what you have.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When you get back home, it\u2019s development time. The application lets you retrieve the photos from your card, and the images are processed according to their film stock and push\/pull settings. At the moment I have 296 colour looks, which covers 129 film stock + variations or so.<\/p>\n\n\n\n<figure class=\"wp-block-image is-resized\"><a class=\"image-link image2 is-viewable-img\" href=\"https:\/\/substackcdn.com\/image\/fetch\/$s_!sVC3!,f_auto,q_auto:good,fl_progressive:steep\/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf7299ab-c1f5-4d28-993e-c37a41205637_866x1300.jpeg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" src=\"https:\/\/substackcdn.com\/image\/fetch\/$s_!sVC3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep\/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbf7299ab-c1f5-4d28-993e-c37a41205637_866x1300.jpeg\" alt=\"\" style=\"aspect-ratio:0.6661538461538462;width:866px;height:auto\" title=\"\"\/><\/a><figcaption class=\"wp-element-caption\"><em>Kodak Tri-X 400 at box speed, developed from the RAW with the measured profile.<\/em><\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Grain, halation and a little softening are applied to be as authentic as possible. Grain was a hard problem because the camera\u2019s own noise depends on exposure alone, and that is why nobody would be able to tell Tri-X from Portra from HP5 by looking at the images, though the three obviously differ in terms of look. So I measured the grain instead of modelling it. That step required mapping from the 7D to film emulations, so it\u2019s camera dependant. I wrote a program that provides you with a wedge sheet to photograph and processes the photos you\u2019re asked to take to map noise levels at various ISOs. You have to work a little bit for it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Then of course, grain and sensor noise are independent, so what needs to be applied to the resulting image is the difference rather than the grain level. That was a bit of a mess to get about right, but in the end it works quite well in my tests.<\/p>\n\n\n\n<figure class=\"wp-block-image is-resized\"><a class=\"image-link image2 is-viewable-img\" href=\"https:\/\/substackcdn.com\/image\/fetch\/$s_!JPty!,f_auto,q_auto:good,fl_progressive:steep\/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29156197-3b69-4cbe-849f-83849c7a175e_1300x866.jpeg\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" src=\"https:\/\/substackcdn.com\/image\/fetch\/$s_!JPty!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep\/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F29156197-3b69-4cbe-849f-83849c7a175e_1300x866.jpeg\" alt=\"\" style=\"aspect-ratio:1.5011547344110854;width:1300px;height:auto\" title=\"\"\/><\/a><figcaption class=\"wp-element-caption\"><em>Kodak Portra 400 rated and developed at +1.<\/em><\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">For a little bit of fun, somethines the can give you 1 or 2 additional photos, but you won\u2019t know from the display (always 12\/24\/36). You\u2019ll have to find out when you get to the end of the film.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This was a fun little project that taught me a lot about how DSLRs work internally. It\u2019s not even beta grade yet and it probably needs a little more work (I\u2019m still looking into what other features would make the experience more real). But at some point it might become a product for everyone.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">#Photography #FilmCamera #DigitalProcess #FilmDigital #FilmSimulation<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I like the film experience very much. I like the limitations of the medium (e.g. fixed ISO), the limitations of the process (e.g. no feedback until you process), I like the fact that you have to plan (e.g. you have the films you have, no infinite shooting), and I like the limitations of the render [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10,15],"tags":[],"class_list":["post-8228","post","type-post","status-publish","format-standard","hentry","category-gear","category-opinion"],"_links":{"self":[{"href":"https:\/\/photoni.st\/index.php\/wp-json\/wp\/v2\/posts\/8228","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/photoni.st\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/photoni.st\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/photoni.st\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/photoni.st\/index.php\/wp-json\/wp\/v2\/comments?post=8228"}],"version-history":[{"count":1,"href":"https:\/\/photoni.st\/index.php\/wp-json\/wp\/v2\/posts\/8228\/revisions"}],"predecessor-version":[{"id":8229,"href":"https:\/\/photoni.st\/index.php\/wp-json\/wp\/v2\/posts\/8228\/revisions\/8229"}],"wp:attachment":[{"href":"https:\/\/photoni.st\/index.php\/wp-json\/wp\/v2\/media?parent=8228"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/photoni.st\/index.php\/wp-json\/wp\/v2\/categories?post=8228"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/photoni.st\/index.php\/wp-json\/wp\/v2\/tags?post=8228"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}