Grounds For Sculpture VR/3D Montage


I made this VR photo montage from 3D photos I shot a few years ago at the Grounds For Sculpture in Hamilton, NJ. It was made with toolkit for Google Cardboard Camera app VR photosphere image format. 

Download the photo to the DCIM/CardboardCamera folder on your Android phone, then view with the Cardboard Camera app or supporting file viewer. REQUIRES 2136 x 1440 display or larger, and works with the Samsung S6 smartphone. 


UPDATE 2015/12/31

I shot the stereo photos with twin Olympus Pen E-PM2 cameras and Panasonic 14mm fixed lens (28 mm equivalent 35mm lens.) Image sensor size is 17.3 mm x 13.0 mm (4/3). The FOV (field of view) used for the XMP GPano parameter calculations was 49.7 degrees (vertical) instead of the horizontal FOV of 63.4 degrees for this camera/lens combination. I used the following calculators for FOV: field of view calculator and angular field of view calculator

---- XMP-GPano ----
Cropped Area Image Height Pixels: 1440
Cropped Area Left Pixels        : 0
Cropped Area Top Pixels         : 1887
Cropped Area Image Width Pixels : 10524
Initial View Heading Degrees    : 90
Full Pano Height Pixels         : 5215
Full Pano Width Pixels          : 11307


Create VR Photos for Google Cardboard Camera App

UPDATED 2015/12/28 
Correction 2016/05/01

Google's Cardboard Camera app can shoot and view VR/3D panoramic photos with your Android phone. After using it a while my opinion is that the app is amazing, but unfortunately the image quality is not as good as a 3D camera and sometimes the photos gives me eyestrain. The app has a viewer mode for the 3D panoramic photos you shoot with the app, but does not provide any way for me to see 3D photos I have already created in other formats.

Thanks to the work of Andrew Perry, he wrote a web app Cardboard Camera Toolkit that will Split a VR photo from the Cardboard Camera app into left and right images and a mode to Join left and right images to create a Cardboard Camera VR image. You might want to do these operations so you can edit your photo and then replace your original VR photo with your new version. This can also be used to help you replace or edit the sound portion of the VR photo.

I have stereo photos that I would like to view in the Cardboard Camera app and with Andrew Perry's Cardboard Camera Toolkit Join procedure I can do this. 

When I connect my phone to my PC USB port, the VR/3D photos I shot are found at:

PC\Galaxy S6\Phone\DCIM\CardboardCamera

This is where I will store my finished VR photos.

I took a stereo photo with a FujiFilm W3 3D camera to get a MPO file format 3D photo. Using the Stereo Photo Maker toolkit, I split the W3 MPO 3D photo into left and right images, aligned the original left and right images, and saved the aligned left and right pair as JPGs appending_left and _right to the filenames. 

The image sizes for the photo pair are identical but smaller than the original left/right pair due to alignment. The original image size was 3584 width x 2016 height. Here are my example aligned photos, 3427 width x 2002 height.



Because the Cardboard Camera app expects panoramic images, I have to set the XMP parameters in the image file. See Google's photo sphere XMP metadata description. Since my 3D photos are not panoramic I made adjustments to the XMP parameters as follows:

The FujiFilm W3 camera shoots with a 62 degree field of view since it has a 35 mm equivalent lens. See the BH Photo Video Angle of view chart. The photos above were cropped so that the FOV changed to 59 degrees for this photo.

(3427 / 3584) x 62 = 59

Using the photo width 3427 pixels, the 360 degree full pano width is calculated as

(3427 x 360) / 59 = 20810

Using the photo height 2002 pixels, the 180 degree full pano height is calculated as

(2002 x 180) / 59 = 6108

I calculated the CroppedAreaTopPixels as half the difference between the pano height and cropped image height.

(6108 - 2002) / 2 = 2053

I copied the left and right images into the Join procedure toolkit box and set the XMP properties using the advanced drop down menu.

GPano:CroppedAreaLeftPixels   0
GPano:CroppedAreaTopPixels   2053
GPano:CroppedAreaImageWidthPixels   3427
GPano:CroppedAreaImageHeightPixels   2002
GPano:FullPanoWidthPixels   20810
GPano:FullPanoHeightPixels   6108
GPano:InitialViewHeadingDegrees   90

Click on the Join button and download the output photo from the Join procedure:


I copied this to the DCIM/CardboardCamera folder on my phone and it shows up in the Cardboard Camera app when started.

Thanks Andrew Perry!

My photo was taken at the Bonnet House, Museum and Gardens in Ft. Lauderdale, Florida last September.

Here are parameters for the same photo to show it zoomed. The parameters were determined by experimentation:

GPano:CroppedAreaLeftPixels   0
GPano:CroppedAreaTopPixels   1001
GPano:CroppedAreaImageWidthPixels   3427
GPano:CroppedAreaImageHeightPixels   2002
GPano:FullPanoWidthPixels   6854
GPano:FullPanoHeightPixels   4004
GPano:InitialViewHeadingDegrees   62


Holiday Nutcracker Light Painting

Nutcracker Envy
During a recent photo shoot I had an opportunity to do some daytime light painting with model Mely who posed for me. Here Mely protects a bag of peanuts from the hungry Nutcrackers painted in the background using my latest version 3 LED light stick. She did excellent work posing and remaining still during the long exposures.

My camera is on a tripod as I trigger the camera shutter from the light stick to begin painting the background.

I didn't move out of the way in time, so I did some Photoshop work to remove me from the photo above. I wish I had worn a black shirt. A strobe flash at max setting fired at the end of the 13 second exposure using the camera's rear curtain flash setting. My camera settings were F11, ISO 200, 24 mm lens with a 3 stop neutral density filter. The LEDs are so bright at the subject distance (10 ft.), I needed the ND filter.

In Photoshop I had some fun animating the Nutcrackers in a GIF file:

A photo where I purposely used only the light stick to illuminate the photo capture wrapping light around Mely.

Upside down:

A block diagram of the setup:

The light stick features a 228 LED neopixel strip from Adafruit controlled by a Teensy 2.0 microcomputer board, linked over Adafruit CC3000 WiFi to an Android tablet for loading images into the stick's SPI SRAM 512K byte memory storage. I wrote the controller software with Arduino IDE and libraries from Adafruit.

A diagram of the LED stick controller major electronic components:

The actual LED stick controller circuit before mounting in a box:

HTTP protocol for loading images using the stick's web server:

Here is a screen shot of the Android tablet app I wrote to load the Nutcracker image. I coded it in Java with Processing libraries using Android Studio as the IDE (integrated development environment). With some code changes I could convert it into a Java PC notebook application because it's Processing based.