CAMERA FEATURES I WANT (And that really really shouldn’t be all that hard to implement)

Since camera manufacturers continue to annoy me with their unwillingness to add the features I want (yes, I’m taking this personally) I guess I’m about due for another blogpost ranting/whining about it.  I’ve covered some of these things before in this blog (and quite often on the This Week in Photo podcast) but it seems worth having an up-to-date list of some obvious stuff.

Let’s set the ground rules first.  I’m not going to be talking about radical scientific breakthroughs here.  ISO 1billion at 100 Megapixels (capturing a dynamic range that includes both coronal activity on the sun and shadow details on a piece of coal… all in the same photo) will be cool, definitely.  But there’s some fundamental physics that still need to be dealt with before we get there.  No, all I’m asking for today are engineering – often software – features.  Things that really only require desire/resources and design/integration.

At this point it’s no secret that more people take photos with their phones than with dedicated cameras.  Obviously the main reason for this is because The Best Camera Is The One That’s With You, coupled with the paradigm-shift that comes with network connectivity to friends and social networks.  As an iPhone developer I know how crazy it would be to create a fun app – even one as fun as FreezePaint – without including the ability to share the images to Facebook/Twitter/Flickr/Instagram once they’ve been taken.

But beyond all that, what else does a ‘camera’ like the iPhone give us?  Tons, really, and the bottom line is that you can do photo things with your phone that no ‘traditional’ camera can touch.  (And this in spite of the fact that the iOS development environment is woefully poor at giving deep-down access to the camera hardware).  Because camera phones are an open platform, unbounded by a single company’s vision for what a camera can or should do.

So let’s postulate some basics – a standalone camera with a good sensor, a nice array of lens options, and a reasonably open operating system under the hood that allows full programmatic access to as much of the hardware as possible.  What can we come up with?   (And a caveat before we continue:  Yes I know that there are some cameras that can already do some of the things I’m going to mention.  Some of the things.  Sort of.  We’ll talk about that too.)

First, a few more basic wishlist items on the hardware side of things.

— Radios. Access to the same data network that my phone can get, and also shorter-range communication via bluetooth, WiFi. (And while you’re at it, couldn’t you just stick something in there that grabs the local time via radio signal and sets my camera’s time automatically?  I’ve got a $20 watch that can do this…)

With network and remote communication in place, all sorts of things happen.  The ‘sharing’ stuff mentioned above of course, but also things like remote control of the focus and shutter via my phone (because the phone is getting a live video feed directly from the camera’s sensor).

Seriously, take a look at this little beauty of an app for controlling an Olympus E-M5 via iphone.  I love the features it supports. Timelapses with accelleration. Take timelapse photos based on distance moved (i.e. every 50 feet or something). Sound-detection to trigger shutter. Etc.  Only bummer is that it requires extra hardware on both phone and camera to communicate.

What else does having a networked camera give?  Hopefully I can buy flash devices that talk nicely too, via some standard transport like bluetooth or WiFi.  Radio Poppers and Pocket Wizards are great but these are professional-level tools that are way overkill (and overpriced) for what I need most of the time.  I just want to hold my camera in one hand and a flash unit (no bigger than a deck of cards, hopefully) in the other hand, extended off to the side to give a pleasing angle on the subject.

(Brief tangent on lights:  For a lot of closer-up work (not to mention video), it sure feels like continuous-light LED sources are starting to be a very viable alternative to xenon flash devices.  These too need to get remote-control friendly – take a look at the awesome kickstarter-funded ‘Kick’.  Sure would be cool, too, if I could buy a light/flash that could take the same batteries as my camera…but I’m getting way off-topic now).

— Sensors.  In this situation the word ‘sensor’ refers to all the auxiliary data that you may want to collect, i.e. accelerometers and gyroscopes and altimeters and compasses and GPS units.  Phone’s already got ‘em – put those in my camera too, please.  If you add it (and allow programmatic access to it), all sorts of cool things will start showing up, just as they have on phones.

For example, use information from the accelerometer to measure the camera’s movement and snap the photo when it’s most stable.  These accelerometers are sensitive enough that they can probably measure your heartbeat and fire the shutter between beats.

(It’s also worth noting that the main difficulty with algorithmically removing motion blur caused by camera shake, usually via deconvolution, is because of the uncertainty about exactly how the camera moved while the photo was being taken.  If we were to record accurate accelerometer readings over the duration of the time that the shutter was open and then store that in the EXIF data, it suddenly becomes much easier to remove camera-shake blur as a post-process).

Combine GPS with network connectivity so my camera’s positional data can be at least as accurate as my phone (i.e. A-GPS).  Also toss in a compass.

(Incidentally, the desire to have accurate location information isn’t just about remembering where you were when you took a photo.  There’s the much cooler technology coming down the pike that will allow for re-creating the actual geometry of the place where you’re standing if you’ve got enough views of the scene.  Take a look at Microsoft’s photosynth, Autodesk’s 123D.   And thus the more people who are posting geotagged information on the world around them, the more we’ll be able to better characterize that world.)

Yeah, there will be a battery-drain penalty if I have all these sensors and radios operating constantly.  Big deal.  Let’s see how much a Canon 5DmkIII battery goes for on ebay these days… Oh look – about TEN DOLLARS.  For that amount I think I can manage to have a few spares on hand.

— Lots of buttons and dials, sensibly placed.  More importantly – allow me to reprogram the buttons and dials in any way I see fit.  Any of the buttons/dials, not just a couple of special-case ones.  (And touchscreens don’t eliminate the need for this.  Too fiddly when you’re trying to concentrate on just getting the shot.)  If you’re really sexy you’ll give me tiny e-ink displays for the button labels so I can reprogram the labels too…

— USB support.  Not just as a dumb device I can plug into a computer, but as a host computer itself.  Like I talked about here, it sure would be nice if my camera had host-device USB capabilities so I could just plug an external drive into it and offload all my photos onto some redundant storage while I’m traveling.  Without needing to carry a laptop with me as well.  (Or having to purchase some overpriced custom card reader with built-in storage.)

And… incidentally… how about letting me charge the battery in the camera by plugging the camera into a USB port.  I understood that there may be power issues (someone out there want to figure out the tradeoff for charge times?) but just give me the choice to leave the bigassed battery-charging cradles at home.  (Or, more specifically, to not be F’d when I accidentally forget it at home!)

(In terms of wired connectivity there’s also Thunderbolt to consider but it smells like it’s a few more years out.)

Finally, for the super-geeks, it sure would be cool to get access to the hardware at a really deep level.  I’m talking stuff like allowing me to play with the scanning rate of the rolling shutter, for instance, if I want to make some funky super-jellocam images.

Okay, let’s dive into software-only stuff.  Here are a few things that would be almost trivial to implement if I had even basic programmatic access to my camera’s hardware.

— Allow me to name files sensibly and according to whatever scheme I want.  Right now I rename my images as soon as they’re loaded onto my computer (based on the day/time the photo was taken) but why can’t my camera just do that for me automatically?  And do it according to any scheme I care to specify.

— Timelapse/Long Exposure.  This is such a simple feature from a software perspective yet many (probably most) cameras still don’t support it.  For my DSLR I need to buy an external trigger with timer capabilities.  Why?  (Other than the obvious answer, which is because it allows the camera manufacturers to charge a ridiculous amount of money for such a remote trigger.  Hint – buy an ebay knockoff instead).

— Motion detection.  It’s a easy enough algorithm to detect movement and only trigger a photo when that occurs.  Yes, this would make it easy to set up a camera to see if the babysitter or the house-painters wander into rooms they shouldn’t, but it would also be very interesting to use with, for example, wildlife photography.

— Let me play with the shutter/flash timing.  Allow me to do multiple-flashes over the duration of a long exposure, for instance, to get interesting multiple-exposure effects.

— Give me programmatic control over the autofocus and the zoom (if it’s servo-controlled), so I can shoot bracketed focus-points or animate the zoom while the shutter is open for interesting effects.  I mean Lytro [link] is cool and all, but most of the time I don’t want to radically refocus my image, I just want to tweak a slightly missed shot where autofocus grabbed the bridge of the nose instead of the eyes.  If my camera had automatically shot 3 exposures with focus bracketing I’d be able to pick the best, but also I’d be able to use some simple image manipulation to stack them and increase the DOF.

(Brief sidetrack here.  Yes, some of the coolcool stuff will require fairly sophisticated algorithms to accomplish properly in a lot of situations.  So what?  There are, in fact, a lot of sophisticated algorithms out there.  There’s also a lot of stuff that can be done without sophisticated algorithms, just by using elbow grease and a few hours in Photoshop.  Give me the raw material to work with and I’ll figure out the rest!)

— Activate the microphone to do a voice annotation or capture some ambient sound with every photo.  Or for that matter, allow me to voice-activate the shutter.  ( “Siri, take a photo please.”)

Actually, let’s talk about that a bit more.  Voice-control for taking a photo may not be all that exciting, although I can certainly see situations where I’m trying to hold my camera in some strange position in order to get a particular point of view and the shutter-button has become difficult to reach easily.  (Example?  Camera on a tripod that I’m holding above my head to get a very high angle, with LCD viewfinder angled downward so I can see the framing.)   Where’s my voice-activated Digital Camera Assistant when I need her?

But beyond that, think about all the camera settings that you normally have to dig through a menu to find.  Custom-programmable buttons & dials are great, but there’s always going to be a limited number of them.  Being able to quickly tell the camera to adjust the ISO or turn on motor-drive (AKA burst or continuous mode) just might make the difference between getting the shot and not.

Finally, there’s a whole huge variety of general image-processing operations that could be applied in-camera, from custom sharpening algorithms to specialized color-corrections to just about anything else you currently need to do on your computer instead.  HDR image creation.  Panoramic stitching.  Tourist Removal.  Multiple-exposures to generate super-resolution images.  Etc., etc.  Are some of these better done as post-processes rather than in-camera?  Sure, probably.  But you could make the same claim about a lot of things – it’s why some people shoot RAW and others are happy with JPEG. Bottom line is that there are times where you just want to get a final photo straight out of the camera.

Having said that, let’s talk about the proper way to do some of these fancy things like creating HDR imagery.  There are already cameras that can, for example, auto-bracket and then create HDR images.  Sort of.  More specifically what they’re doing is internally creating an HDR image, then tone-mapping that wide dynamic range down to an image that looks ‘nice’ on a normal monitor, and then saving that out as a jpeg.  (‘Nice’, incidentally, being an arbitrary mapping that some dude in a cubicle came up with.  Or maybe a group of dudes in a conference room.  Whatever… it’s still their judgement on how to tone-map an image, not mine.)

Better thing to do?  Shoot an exposure-bracket of the scene and combine them (after auto-aligning as necessary) into a true high dynamic range image.  Save that as a high bit-depth TIFF file or DNG or (better) OpenEXR or something.  You can give me the jpeg too if you want, but don’t throw away all the useful data.  In other words, let me work with HDR images in the same way I work with RAW images because that’s exactly what a RAW file is… a somewhat limited high dynamic range file.

This mentality is the sort of thing I’d like to see for all sorts of in-camera software algorithms – give me something useful but don’t throw away data.

I could probably list dozens of additional image-processing algorithms that it would be cool to have in my camera (not to mention video-related tools).   Some of the features mentioned above may not feel terribly important or may even seem ‘gimmicky’, but all it takes is a single special-case situation where you need one of them and you’ll be glad they’re part of your software arsenal.

So who’s going to make a camera like this this?  Who’s going to make the hardware and who’s going to make the software/OS?  In terms of hardware I’m betting it won’t be Canon or Nikon – they’re too successful with their existing systems to create something as open as what I’m describing.  Probably not Sony either – they’ve always relied on proprietary, closed hardware too (look how long it took for them to realize that people were avoiding their cameras simply because they didn’t want to be tied to the Sony-only ‘memory stick’).

I guess I’m hoping that someone like Panasonic or Olympus steps up to the plate, mostly because I love the Micro 4/3 lens selection.  But maybe it will be a dark-horse 3rd party – a company that sees the opportunity here and is willing to invest in order to break into the digital camera marketplace with a huge splash.  Might even be someone like Nokia – does the recent 41 megapixel camera phone indicate a potential pivot from phone manufacturer to camera manufacturer?

In terms of software I know I’d love to see a full-featured camera running iOS, but realistically I suspect that a much more likely scenario is that we’ll get a camera running a version of Google’s Android OS.   Or hell, maybe Microsoft will step up to the plate here.  Crazier things have happened.

But bottom line is that it sure feels like someone is going to do these things, and hopefully soon.  And then the real fun will start, and we’ll see features and capabilities that nobody has thought of yet.  So you tell me – If you had full software control over your camera what would you do with it?

Announcing… FreezePaint


Yeah I know, things have been a little quiet here on the blog lately. I’ve been head-down on a couple of projects that became rather all-consuming. But the good news is that one of them has finally come to fruition and so let’s talk about it.

Because, hey, I’ve just released my first app into the iOS App store!

It’s called FreezePaint and it’s pretty fun, if I do say so myself.

The website for the app is at and that’ll give you a rough idea of what it’s all about*.  But if I had to do a quick summary description about it, I’d say it’s a sort of live on-the-fly photo-montaging compositing remixer thingy.  Which probably makes it sound more complicated than it is.  Here, watch the video:

Of course as anybody who’s done an app can tell you, getting it launched is only the beginning of the process.  Time to put on my sales&marketing hat.

I’ve had some really great advice from some really great people (thanks, really great people!) and one of the things I heard several times was that it’s extremely important to get that initial sales bump to be as large as possible.

So anybody that’s reading this who has 99cents in their pocket and is feeling either curious or charitable, I’d be HUGELY APPRECIATIVE if you could go and buy a copy of FreezePaint. More particularly, I’d be extra hugely appreciative if you’d go buy it, like, now. Heck I’ll even offer a money-back guarantee. If you really don’t like it – don’t think you’ve gotten 99cents worth of amusement out of it, then I’ll happily Paypal a buck back to you. Simple as that.

But beyond just buying it, I’m hoping you can help spread the word a little bit. Because that’s where the real traction will come from. Fortunately we’ve made it pretty darn easy to do that because once you set things up it’s just a single button-click to share via Twitter, Facebook, Flickr or email. (Or all four at the same time!)

(And if you like it, remember that good reviews are an app’s life-blood… here, let me make it easy by providing a link to where you can leave one…  Just click here and scroll down a little bit.)

I know this all sounds rather self-serving. It totally is! I want people to use FreezePaint. I want to see what sort of wacky images you can come up with!  At this point I’m not even sure what the most common usage is going to be!  Will people spend most of their time putting their friends’ faces on their dogs?  Or will it be more of a ‘scrapbooking’ thing – a quick way to collage together a fun event or location.  Beats me.  A few of the images that beta-testers have created are at – send me something good/fun/interesting/disturbing that you’ve done with FreezePaint and there’s a pretty good chance it’ll end up there too!  (There’s a button at the bottom of the ‘sharing’ page in the app that shoots your images straight to my inbox.)

I’m sure I’ll be doing several more posts about all of this – about the process of how it all came together, about the pains of trying to find the right developer to work with (which I did, finally!), about the fun of dealing with the app store submission process, etc… :-)

But for now I’m just hoping that people check it out, tell their friends, and mostly have fun!

*Also, someone remind me to write a blog at some point about what an awesome tool is for building product websites like this – save me tons of time.

Mirror Box


Buy a box of 6 mirror tiles ( i.e. something like this )

Use some duct-tape and make a box out of them (mirror-side inwards)

(put a little duct-tape handle on the 6th tile to make it easy to take it on and off)

Set timer on camera, (turn flash on), place camera in box, put mirror ‘lid’ onto box before shutter fires…

…get cool photo.

toss in balls of aluminum foil – because they’re shiny.

Play with light-leaks at the seams of the box.

Add candles.  Pretty.

Finally, add Droids.  Everything is better with Droids.

(Click on any of the above images to biggerize them.  Also on Flickr, including a few more.)


UPDATE:  Here’s someone who got inspired about the idea and did a MirrorBox photo-a-day of throughout January 2012  Cool!

Photography Futures talk

Gave a talk last month at the Mindshare LA conference, chatting about where camera/photo technology is headed and the ramifications of that on our everyday lives.

Mindshare events typically feature a very eclectic program (the night I spoke there were also presentations on building a helicopter-motorcycle, permaculture, and how women can use pole-dancing for self-empowerment) so my talk was targeted to a diverse, nontechnical audience –  but I think I managed to pack a few interesting tidbits into the 15 minute window I had. Enjoy!

(And if anybody out there wants to fly me to random interesting locations on the planet to give the same talk, I’d be happy to do so :-))

Cloud sync of photos – what I REALLY want…


Just got done taking a quick look at today’s announcement of Adobe Carousel – their new cloud-based photo-syncing/sharing/editing app. Not sure I totally get the utility of it for me, personally – Dropbox gives me easy sync between all my devices already and I can’t imagine I’ll be doing a lot of image-editing on the fly. Your Mileage May Vary, of course.

But it got me to thinking about a piece of the storage/cloud issue that hasn’t really been well-addressed yet: The ability to sync some things locally but still have access to more things on an on-demand basis. In other words, I want to be able to have all my ‘favorite’ photos synched between all my devices – phones and laptops – and kept available as a local copy. (i.e. I want to be able to see them even if I have no network connection). But if I do have a network connection then everything else should be easily accessible as well.

Dropbox sort-of does this – they allow you to specify certain folders that aren’t synched to specific devices, but if you want to get to those non-synched folders you have to go into the clunky web interface. Wouldn’t it be nice if you could just see those other filenames as if they were local files and if you clicked on them then Dropbox would transparently run out and grab them as requested? Maybe even have a local cache where the most recent ones are kept around until something newer flushes them? In other words, it would seem as if I have all of my files local, but some of them would just take a little bit longer to access.

And going beyond this sort of ‘dumb’ file synching (where all files are treated the same way), what I’d really love to see is a storage/sync tool that understands that photos are different from other file-types, and that often-times it’s perfectly acceptable to have a lower-resolution (or lower quality) version of the photo available instead.  A 1 megapixel medium-quality jpeg version of an image is wayyyy smaller (like 99% smaller!) than a 16 megapixel original.

In other words, my ideal system would intelligently manage my photos so that everything is available at low resolution even if I have no network connection but if I am connected to the magical ‘cloud’ then it (transparently) will serve me the full-resolution image instead.

(The same thing conceivably applies to music as well of course. Let me keep a few GB of my favorite songs on my iPhone at full quality, but if I really want to listen to something obscure from the other 20GB of music I own then I can at least play a slightly degraded version of it.)

The key to all of this (and why it would ideally be something built into the operating system) is to make it as transparent as possible. Image viewing or sharing shouldn’t require me to keep track of whether I’m offline or not – they should just figure it out and do the best job they can at showing me the best quality version possible.  Simple :-)

I’m seeing a lot of ‘cloud’ services pop up – and they’re all great if you’ve got a 100% reliable network connection behind them. But people, I’ve got AT&T – a 100% reliable network is, unfortunately, not something I’m familiar with…

Long shutter helicopter lights

So I went ahead and bought one of those cool remote-controlled mini-helicopters the other day (  Gotta say – that’s a hellovalotta fun for 20 bucks.

And since it has these handy red/blue lights on the front of it that flash alternately, it seemed like a good idea to try some long-exposure photos whilst flying it around my living room last night.  Pretty neat (though you can definitely see how incredibly skill-less I currently am with the thing).  Still, so far the crashes haven’t been severe enough to do any damage to ‘copter, room, or my face, so I guess I’m ahead of the game.


Some abstract patterns with the camera pointed up at the ceiling



And yes, then I crashed it into the camera…


Zipping around the globe seemed like a good challenge.  At some point I’m hoping to be good enough to actually go, you know, AROUND the glob (instead of just bouncing up and down above it, barely avoiding collisions with continents or polar ice caps)

The battery was dying at this point so about all I could do was get it to skitter along the hardwood floor.  (A floor which desperately needs to be swept, apparently!)

Beyond Focus (Part 1)

Array Camera on iPhone

A lot of buzz lately on Lytro, the company who’s building a new camera based on lightfield (aka plenoptic) technology.  In a nutshell, they’re building a camera that will allow you to refocus your photos after you’ve taken them.  (Go poke around here if you want to see some examples of what is being discussed.)

And it is indeed some very cool technology (although I’m a little surprised that it’s taken this long to productize it given the fact that the basic concepts have been floating around for a long time now).  (Okay, technically they’ve been floating around for a really, really long time now).

But I think it’s worth talking about how this fits into the workflow of a typical photographer.   Because, although there’s been no shortage of people willing to label this as a ‘revolution’ in the way we do photography, I personally see this as more of a feature – one more thing that will be nice to have in your bag of tricks.

A useful trick, to be sure, but if you lined up all the features I’d like in a camera it would probably be somewhere in the middle of the pack.  Somewhere (far) below a high resolution/high dynamic range sensor.  Somewhere below good ergonomics.  Maybe (if it’s well-implemented) I’d choose this over an extremely high burst-speed or an integrated Wi-Fi connection.  Maybe.

But it’s the ‘well implemented’ part that worries me.  Because it’s not a feature that would compel me to buy a particular camera above all others.  There are always trade-offs when you’re creating a camera and the Lytro camera will be no exception.  So unless they manage to execute extraordinarily well on all the other aspects of their camera, it could easily turn into something that’s just not all that compelling for most people.  If I said there is a camera out there that can capture 100 megapixel images you might think that’s a very cool device, right?  But then if you find out that it can only shoot at ISO 50 – that it produces absolutely unusable images unless you’re shooting in bright sunlight… Well, that camera is suddenly a lot less interesting.

So, in much the same way as what we’ve seen with the Foveon sensor – a cool technology that was never paired with a camera which was all that good in other areas – we’ll just have to wait and see what the eventual product from Lytro will look like.  I’m optimistic – there’s some smart folks there – but it’s not a trivial challenge.

I think the best thing we can hope for is that this sort of feature doesn’t remain something that is only available from Lytro.   Hopefully we’ll see similar capabilities coming from the other manufacturers as well.  Yes, there are definitely patents in place on a lot of this but there are also a number of different ways to implement light-field image capture.  For instance, you can (as I believe is the case with Lytro) use a lens that captures multiple viewpoints and sends them all to a single large sensor.  Or, you can use multiple lenses each coupled with their own sensors.  Either way you get an image (or set of images) that will require some post-processing to produce something that’s human-friendly.

Which is fine.  Something I’ve been predicting for years (and have said so many times on the This Week in Photography podcast) is that the most common camera we’ll see in the future will be a computational camera.  And personally I’m willing to bet that more often than not it will be composed of an array of smaller lenses and sensors rather than a single monolithic lens/sensor.

Why?  Big sensors are expensive to manufacture, largely due to the fact that a single defect will require you to scrap the whole thing.  Big glass is also expensive – it’s very difficult to create a large lens without introducing all sorts of optical aberrations.  (Although smart post-processing will be increasingly important in removing those too).

So it’s clear to me that there’s a better and more cost-effective solution waiting to be developed that uses an overlapping array of inexpensive cameras.  (Lytro started out this way, incidentally, via the Stanford Multi-Camera Array)

The camera in your phone, or the one stuck in the bezel of your laptop, costs only a few bucks when purchased in quantity.   Now make yourself a 5×5 array of those things.  If each one is 8 megapixels (easily available these days), that’s a lot of resolution to play with.  No, you won’t be able to generate a single 200Megapixel image but you’ll still be able to get some serious high-rez imagery that also has a lot of additional benefits (see my next post for more on these benefits).

And yes, I’m completely ignoring a ton of engineering challenges here, but there’s nothing I’m aware of that feels like it can’t be solved within the next few years.

Bottom line:  Don’t be at all surprised if the back of a future iPhone looks something like the image at the top of this post.  I’m not gonna guarantee it, but I’m willing to take bets…

(Click here for Part 2 of this discussion)