A fun camera app to process images in real time, using Web technologies.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.



A fun camera app to process images in real time, using Web technologies. Check it out!

Warning: the online version might be slightly outdated as I only push "stable" code there. Check out the latest code if you want to play with the latest features


You need a browser with support for WebRTC's getUserMedia and WebGL, and a connected camera for maximum fun.

Firefox for desktop has getUserMedia enabled by default starting on Firefox 22. If you want to run this on your Android device, you'll need to get a (Nightly](http://nightly.mozilla.org/) or Aurora version.

On Firefox OS, WebRTC support is not ready yet, so the live image processing feature is not available, but you can still pick existing images, modify them and save the ones you like.

Chrome should work out of the box on desktop, but WebRTC is not supported on the stable Chrome Mobile yet. You have to use Chrome Mobile Beta, and also go to chrome://flags and enable WebGL.

Safari doesn't seem to have support for WebRTC, we have to emulate IndexedDB using a shim (because it's not supported either) and WebGL needs to be manually enabled after enabling the Developer menu. But then it fails in weird places. If you can fix it, feel free to send a pull request and I'll merge the changes in :-)

How to run it

Get the code by cloning it:

git clone git@github.com:sole/rtcamera.git rtcamera

Then, because we load files using AJAX, you'll need to either upload a copy to your server, or use a local server.

If you're running Linux or Mac OS you will probably be able to start a local server by running this:

cd rtcamera
python -m SimpleHTTPServer

The app will be accessible at http://localhost:8000/

You will need to find out your computer's IP address if you want to try it on your mobile device. Once you know the address, replace localhost with it and try that on your device. For example, assuming the address is, you'd browse to on your device.

A developer walkthrough is also available.


We're using the mighty Bugzilla for filing bugs on this project. Please add them under Developer Ecosystem :: App Center, and for maximum helpfulness, you can also add [refapps][rtcamera] to the summary line.

You can also see the current list of bugs, and maybe contribute to the project by taking over one of them? :-)


Used libraries

This app wouldn't be possible without these wonderful libraries. Many thanks to their authors!