3D Photo Gallery

July 30, 2009 No comments yet

We’ve added a 3D Photo Gallery that contains some sample images from 3D Camera. Other than reducing their size, the images have not been altered or modified in any way. There are parallel and cross-eyed sterogram photos and some grey and color anaglyph images (that require 3D glasses). If you’re wondering how to view them, be sure to check out our FAQ.

Check Out the 3D Photo Gallery

3D Camera Lite Rejection

July 14, 2009 10 comments

Today, we received notification from Apple that 3D Camera Lite (the free version of 3D Camera based on the upcoming 1.2 update) was rejected:

Thank you for submitting 3D Camera Lite to the App Store. Unfortunately it cannot be added to the App Store because it is modifying or extending an undocumented API, which as outlined in the iPhone Developer Program License Agreement section 3.3.1 is prohibited:

“3.3.1 Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs.”

There is no documentation for the custom subclasses or self-contained views of UIImagePickerController – this includes PLCameraView and its custom subclasses (PLImageTile, PLRotationView, PLImageScroller, PLImageView, PLCropOverlay, PLCropLCDLayer, TPBottomDualButtonBar, TPPushButton and TPCameraPushButton) – in the iPhone SDK.

We’re familiar with this particular rejection, because 3D Camera 1.0 was rejected for the very same reason when we initially submitted it to the App Store. The first version of our app did modify the UIImagePickerController views in an undocumented way in order to make it quicker and easier to take two simultaneous photos. When taking left and right photos for 3D images, it’s critical to keep the camera orientation stable for both photos; the more you have to touch the screen and the longer the duration between shots, the lower the quality of the final image.

So, to comply with Apple’s rules, we removed this custom camera functionality. The only functionality we could keep was the overlay that shows “Left Image” and “Right Image” along with a translucent version of the left photo to assist with alignment of the second shot. We did this by adding a a UILabel and UIImage over the top of the UIImagePickerController. We did not do anything that could be considered “modifying or extending an undocumented API,” and none of the functionality depends on anything within the UIImagePickerController itself. We’re long time software guys, and we completely understand how brittle an app can become if it depends on undocumented internals.

From a developer perspective, this diagram illustrates how the 3D Camera overlay is implemented:

3D Camera Layering

This “fix” was approved by Apple, and it’s the same functionality that has been in 3D Camera 1.0 and 1.1 for awhile now.

So, it’s puzzling to us that Apple has rejected version 1.2, when we’ve changed absolutely nothing about the camera functionality. To be honest, we’re not entirely sure that this is the reason that it’s been rejected, because the e-mail (above) is very vague. Follow-up e-mail exchanges have failed to provide any more clarification about the issue that is causing them to reject the app. Responses are along the lines of: “In order for your application to be reconsidered for the App Store, please resolve this issue and upload your new binary to iTunes Connect.” If we knew what “this issue” was, we’d happily and quickly work to resolve it.

The worst part of the process is that we’re in the dark about what to do. Additionally, because the app has now been rejected, we’ll be forced to wait through another lengthy review period, and we may end up right back where we started.

Very frustrating.

modifying or extending an undocumented API,

Nature 0 Now Available

July 5, 2009 No comments yet

Apple has just informed us that Nature 0 is now available in the App Store. Nature 0 is a free edition that includes 12 images from across the Nature series: 4 from Nature 1, 4 from Nature 2, and 4 that are exclusive to Nature 0. These images were created by a photographer whose work is included in major operating systems and whose photos have been downloaded over 2 million times. They’ve been optimized for the iPhone and iPod touch screens, and we hope you enjoy them.

3D Camera 1.2 Submitted to App Store

July 2, 2009 6 comments

Wigglegram AnimationIt’s been a little less than a month since we submitted 3D Camera 1.1 to the App Store, and we’ve been busily working on adding new features and functionality ever since. Yes, we listen to your feedback. As a matter of fact, we depend on it! Many of the 3D Camera 1.2 updates are based on suggestions and criticisms that have been posted to the App Store or that we’ve received via e-mail from you. Here are some of the highlights:

  • We added the much requested functionality that enables animated wigglegrams to be sent to Twitter (via Twitpic). Take a look at some of our test uploads: shoes, anaglyph glasses, garden sculpture.
  • We added a new alignment feature that uses touch to reposition images. This means that you can use your finger to align the left and right images after you’ve taken them (or loaded them from your Photo Album). This is another feature that we’ve received numerous requests for, and we can tell you that the resulting 3D images are much higher quality.
  • We updated the app so that all camera photos are automatically saved to the Camera Roll. This used to be a manual step, but we had many users tell us that they forgot to save some of their best shots. We certainly don’t like to hear that, so we’ve made it automatic. The only thing you now have to remember to save is your final 3D photo.
  • We added a setting to choose the working image size (100%, 75%, 50%, 25%). This feature comes with a warning, though. The pre-3GS iPhones barely have enough memory to work with three 100% or 75% simultaneous images (left + right + final 3D), which is why larger images may not work. Nothing will be lost, but the app may run out of memory and unexpectedly exit. However, because we had requests for larger image support, we’ve given you the option. Swim at your own risk, and when in doubt, clear memory with a tool or by resetting your phone.
  • We added a setting to control the size of stereogram borders. They can also be completely eliminated.
  • We added a setting to limit the maximum Twitpic image dimensions (1024, 800, 640). This way, you have more control over the images that are sent to Twitpic.
  • We added a setting to select the blending method that is used for color anaglyphs (full color, half color, optimized, and red/blue). For 3D enthusiasts, this should be a welcome option. For everyone else, leaving it set to full color works just fine.
  • We updated the app to properly rotate stereogram images before saving them to the Photo Album. We had an annoying bug that wouldn’t rotate them before saving. It’s fixed now.
  • We added a setting to bypass the introduction screen.
  • We added text to indicate the current stereogram viewing method (parallel and cross-eyed).

There are a few other fit and finish tweaks, and we continued to stabilize the app as much as possible (realizing that we’re dancing on the edge of memory in the iPhone). We hope you like the update.

If our last submission is any indication, it’s our hope that 3D Camera 1.2 is approved by Apple and available within 12 days or so. We look forward to your feedback.



PHVsPjxsaT48c3Ryb25nPndvb19hZGRibG9nPC9zdHJvbmc+IC0gdHJ1ZTwvbGk+PGxpPjxzdHJvbmc+d29vX2Fkc19yb3RhdGU8L3N0cm9uZz4gLSB0cnVlPC9saT48bGk+PHN0cm9uZz53b29fYWRfaW1hZ2VfMTwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbS9hZHMvd29vdGhlbWVzLTEyNXgxMjUtMS5naWY8L2xpPjxsaT48c3Ryb25nPndvb19hZF9pbWFnZV8yPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tL2Fkcy93b290aGVtZXMtMTI1eDEyNS0yLmdpZjwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX2ltYWdlXzM8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb20vYWRzL3dvb3RoZW1lcy0xMjV4MTI1LTMuZ2lmPC9saT48bGk+PHN0cm9uZz53b29fYWRfaW1hZ2VfNDwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbS9hZHMvd29vdGhlbWVzLTEyNXgxMjUtNC5naWY8L2xpPjxsaT48c3Ryb25nPndvb19hZF91cmxfMTwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbTwvbGk+PGxpPjxzdHJvbmc+d29vX2FkX3VybF8yPC9zdHJvbmc+IC0gaHR0cDovL3d3dy53b290aGVtZXMuY29tPC9saT48bGk+PHN0cm9uZz53b29fYWRfdXJsXzM8L3N0cm9uZz4gLSBodHRwOi8vd3d3Lndvb3RoZW1lcy5jb208L2xpPjxsaT48c3Ryb25nPndvb19hZF91cmxfNDwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbTwvbGk+PGxpPjxzdHJvbmc+d29vX2FsdF9zdHlsZXNoZWV0PC9zdHJvbmc+IC0gZGFya2dyZWVuLmNzczwvbGk+PGxpPjxzdHJvbmc+d29vX2F1dG9faW1nPC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19ibG9nY2F0PC9zdHJvbmc+IC0gL2NhdGVnb3J5L2Jsb2cvPC9saT48bGk+PHN0cm9uZz53b29fYmxvZ19jYXRfaWQ8L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19jYXRtZW51PC9zdHJvbmc+IC0gZmFsc2U8L2xpPjxsaT48c3Ryb25nPndvb19jdXN0b21fY3NzPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fY3VzdG9tX2Zhdmljb248L3N0cm9uZz4gLSA8L2xpPjxsaT48c3Ryb25nPndvb19leF9mZWF0cGFnZXM8L3N0cm9uZz4gLSB0cnVlPC9saT48bGk+PHN0cm9uZz53b29fZmVhdGhlaWdodDwvc3Ryb25nPiAtIDwvbGk+PGxpPjxzdHJvbmc+d29vX2ZlYXRwYWdlczwvc3Ryb25nPiAtIDUzNiw0NjYsNiw5NTwvbGk+PGxpPjxzdHJvbmc+d29vX2ZlZWRidXJuZXJfdXJsPC9zdHJvbmc+IC0gPC9saT48bGk+PHN0cm9uZz53b29fZ29vZ2xlX2FuYWx5dGljczwvc3Ryb25nPiAtIDxzY3JpcHQgdHlwZT1cInRleHQvamF2YXNjcmlwdFwiPg0KdmFyIGdhSnNIb3N0ID0gKChcImh0dHBzOlwiID09IGRvY3VtZW50LmxvY2F0aW9uLnByb3RvY29sKSA/IFwiaHR0cHM6Ly9zc2wuXCIgOiBcImh0dHA6Ly93d3cuXCIpOw0KZG9jdW1lbnQud3JpdGUodW5lc2NhcGUoXCIlM0NzY3JpcHQgc3JjPVwnXCIgKyBnYUpzSG9zdCArIFwiZ29vZ2xlLWFuYWx5dGljcy5jb20vZ2EuanNcJyB0eXBlPVwndGV4dC9qYXZhc2NyaXB0XCclM0UlM0Mvc2NyaXB0JTNFXCIpKTsNCjwvc2NyaXB0Pg0KPHNjcmlwdCB0eXBlPVwidGV4dC9qYXZhc2NyaXB0XCI+DQp0cnkgew0KdmFyIHBhZ2VUcmFja2VyID0gX2dhdC5fZ2V0VHJhY2tlcihcIlVBLTg5MTI0ODctMVwiKTsNCnBhZ2VUcmFja2VyLl90cmFja1BhZ2V2aWV3KCk7DQp9IGNhdGNoKGVycikge308L3NjcmlwdD48L2xpPjxsaT48c3Ryb25nPndvb19ncmF2YXRhcjwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19pbWFnZV9oZWlnaHQ8L3N0cm9uZz4gLSAyNTA8L2xpPjxsaT48c3Ryb25nPndvb19pbWFnZV93aWR0aDwvc3Ryb25nPiAtIDM5MDwvbGk+PGxpPjxzdHJvbmc+d29vX2ludHJvPC9zdHJvbmc+IC0gV29uZGVyaW5nIHdoZXJlIHRvIGdldCBmcmVlIDNEIGFuYWdseXBoIGdsYXNzZXM/IENoZWNrIG91dCB0aGUgPGEgaHJlZj1cImh0dHA6Ly93d3cuanVpY3liaXRzc29mdHdhcmUuY29tL2ZhcS9cIj4zRCBDYW1lcmEgRkFRPC9hPi48L2xpPjxsaT48c3Ryb25nPndvb19sb2dvPC9zdHJvbmc+IC0gaHR0cDovL3d3dy5qdWljeWJpdHNzb2Z0d2FyZS5jb20vaW1hZ2VzL2p1aWN5LWJpdHMtaGVhZGVyLWxvZ28td2l0aC1zdWJoZWFkLnBuZzwvbGk+PGxpPjxzdHJvbmc+d29vX21hbnVhbDwvc3Ryb25nPiAtIGh0dHA6Ly93d3cud29vdGhlbWVzLmNvbS90aGVtZS1kb2N1bWVudGF0aW9uL292ZXItZWFzeS88L2xpPjxsaT48c3Ryb25nPndvb19tZW51cGFnZXM8L3N0cm9uZz4gLSA2LDk1LDEwMSwxMjIsNDY2LDUyODwvbGk+PGxpPjxzdHJvbmc+d29vX3Jlc2l6ZTwvc3Ryb25nPiAtIHRydWU8L2xpPjxsaT48c3Ryb25nPndvb19zaG9ydG5hbWU8L3N0cm9uZz4gLSB3b288L2xpPjxsaT48c3Ryb25nPndvb190aGVtZW5hbWU8L3N0cm9uZz4gLSBPdmVyIEVhc3k8L2xpPjxsaT48c3Ryb25nPndvb190aGVfY29udGVudDwvc3Ryb25nPiAtIHRydWU8L2xpPjwvdWw+