What is it?
FCam is an open-source C++ API for easy and precise control of digital cameras. It allows full low-level control of all camera parameters on a per-frame basis, making it easy to rewrite the camera's autofocus routine, to capture a burst of images all with different parameters, and to synchronize the operation of the camera lens and flash with all of the above.

FCam is the result of the Camera 2.0 joint research project on programmable cameras and computational photography between Marc Levoy's group in the Stanford Computer Graphics Laboratory and Kari Pulli's team at Nokia Research Center Palo Alto. (Kari moved to NVIDIA in Apr 2011, and right now can take an intern working on FCam; contact karip@nvidia.com.) A paper describing the FCam architecture, the motivation behind it, and some applications, was presented at SIGGRAPH 2010.

Currently, FCam supports the Nokia N900, as well as our lab-built F2 Frankencamera. Our library and drivers will work on any N900 running the latest firmware (PR1.3), so if you want to give it a spin, see our getting started page!

Are you looking for FCamera, our N900 demo application that lets you have full manual control of the N900, supports RAW capture, and does HDR viewfinding? Then go here for details!
HDR Capture
While FCamera supports capturing an HDR burst of raw files, it does not composite the output HDR jpeg for you right then and there. HDRCapture is Nokia Research Center Palo Alto's demo application that uses FCam to do just that. It's a camera application for the N900 that displays a live HDR viewfinder (by alternating between two exposure times and averaging the results). It meters the scene, decides how many photos to take in the HDR bracket and at what exposures, and then composites the photos for you as soon as they are captured. It was one of the apps described in the Frankencamera paper.

You can find it in the maemo extras-testing repository. To activate this repository and download this app to your N900, do the following:

Activating extras-testing
In the Application Manager:
  1. Tap the title bar to bring up the menu
  2. Select 'Application catalogs'
  3. Select 'New'
  4. Enter a catalog name of 'Maemo extras-testing'
  5. Enter a web address of http://repository.maemo.org/extras-testing
  6. Enter a distribution of 'fremantle'
  7. Enter components of 'free non-free'
  8. Select 'Save'
  9. Tell the Application Manager to update. This may take a while.
  10. Select Download, All, and start typing "hdrcapture". It should highlight the application. Click on it to install it.

Be warned, this is a beta app, so be patient if it crashes occasionally :)

Low light imaging
This demo application from Nokia Research Center Palo Alto takes two photos with different settings back-to-back (this is something the FCam API is very good at). The first frame has a high ISO and short exposure time, and the second has a low ISO and longer exposure time. The first frame tends to be noisy, while the second instead exhibits blur due to camera shake. This application combines the two frames to create an output that's better than either. This was another application described in the Frankencamera paper, and is also available in extras-testing under the name "lowlight".