College student makes 3D printed film camera that shoots 35mm film

Photographer and computer science student Joshua Bird has developed a 3D printed film camera using “regular” photo film canisters with the aim of letting him enjoy the nostalgic look of film videos without having to pay for expensive cinema films.

Bird has been experimenting with custom camera accessories for a number of years, including a homemade camera flash made by reusing ones salvaged from disposable cameras, but this time he went above and beyond and designed, 3D printed and built a custom film camera.

“I was obsessed with the warm and blurry look of film videos. Maybe it’s just my Gen Z brain nostalgic for a time before I was born, but film just feels special compared to today’s sterile digital video,” he writes on his blog.

Unfortunately, filming with film is an expensive affair.

“Motion film is in short supply and it’s almost impossible to find someone willing to develop and scan your videos,” Bird explains. “All things considered, you’d probably have to wait months and pay around $250 for just 10 minutes of footage – not the best value!”

3D printed film camera

To counteract this, Bird decided to build a film video camera that used standard 35mm film instead. But since standard rolls of film only have 36 shots at most, he had to find a solution that would yield more than three seconds of video per roll.

“To attempt [and] To squeeze more footage into these rolls of film, I reduced the frame size by a factor of 8, so we get 36*8 = 288 photos per roll,” he says. “That brings us to about 16 seconds of video per roll of film.”

READ :  The 10 scariest movies to watch on Halloween night

An incredibly complex project

Bird says this project was a perfect combination of all of his interests: CAD modeling, 3D printing, embedded programming, film photography, camera design, computer vision and more.

“It’s honestly pretty incredible how well this project fits my more casual skillset. At every stage of the project I was working on something new, which is honestly the only reason I was able to work on it for four months at a time,” he says.

Bird built the entire camera from scratch, including the design for the gear that moves the roll of film and pulls it behind the shutter and the shutter itself, as well as the viewfinder. His camera uses a Canon EFS 18-55mm kit lens simply because it was one of the cheapest lenses he could find online.

He even managed to get his camera to control the lens aperture using a huge 100-page PDF reverse-engineering Canon’s EF lens protocols – a document that was originally in French and needed to be translated.

canon efs lens
Bird 18-55mm Canon lens with focus scales drawn on a strip of green tape.

“So I sent the PDF through Google Translate and read all 100 pages of the poorly translated documentation,” he says.

“With these resources, I was able to write my own implementation of Canon’s lens protocol in C++ to control the lens’ iris and active image stabilization.”

Even after the camera was working properly, scanning the film and turning it into film was still another challenge.

“If everything went right, the developed film should contain a few hundred thumbnail-sized frames. Now we have to do the most tedious step: digitally scan all of these photos,” says Bird.

“To do this, I placed the film against a strong backlight and used a macro lens to photograph the film with my digital camera. This is essentially a DSLR scanning setup widely used in the film photography world. However, the images are much smaller than regular 35mm frames, which means you need to use a macro lens with a very high magnification factor and a camera with a small sensor size. Make sure to also set the camera exposure to manual so it doesn’t change from photo to photo.”

3D printed film camera

Ironically, Bird had to purchase his very first digital camera to complete this step. There are about 280 frames on each roll of film, which took him about 30 minutes to scan without a custom-built automatic machine (which he was considering building).

Once the negatives were scanned, he turned them into positives and then used computer vision to align the images.

film negative

“Because we took all of these photos manually, the frames will all be misaligned. If we just put the images into a video, it would be an edgy mess. So we have to align the images so the sprocket holes are always in the same place,” explains Bird.

3D printed film camera

“I wrote a small OpenCV Python script for this. The code is in the GitHub repo and explains how to run the program. The code quality is pretty terrible (I threw it together in an afternoon) but it works!”

Tedious, but worth it

However, the manufacturing process of the camera was far from perfect. Bird describes several times over the past summer where he’s tried to use the camera, only for it to fail, which really puts into perspective how incredible cameras are — even the analog ones.

“It was always a silly problem, like a motor driver stalling or a cable breaking, but there were so many moving parts and absolutely no redundancy that even the slightest mistake would render the entire camera unusable,” he says.

Bird was so excited to be working on the project that he failed to do a bit of calculating the cost of using his DIY solution compared to a standard film camera.

“At a cost of about $600 for 10 minutes. That’s more than twice as bad as just using a traditional motion picture camera, but I didn’t bother to do the math before starting this project and once I realized how expensive it was going to be, I was too far in to stop. ” he says.

Despite this, he is still satisfied with what he has created.

“It was definitely one of my biggest projects to date. I spent four months and hundreds of dollars on film and parts so I’m very happy that I was able to get such great results in the end.”

To see his entire build along with everything needed to replicate it, visit Bird’s blog and the project on GitHub.


Photo credit: Joshua Vogel

Leave a Reply

Your email address will not be published. Required fields are marked *