Sunday, January 03, 2010
Stereoscopic 3D Rig with Steadicam
See my previous post on a different 3D rig design, and a discussion of how to postprocess the videos in QuickTime Pro. I decided to build a Steadicam to help reduce jerkiness when recording while walking. I used the design from steadycam.org. This steadicam works with any camera with a tripod mount. So to mount two stereoscopic cameras, I found an 8" doorjamb striker plate that had two holes 6.5cm apart and a third hole for mounting on the steadicam.
I covered this with a thin layer of foam rubber, then attached the two cameras with 1/4" X 20 bolts, and attached the plate to the steadicam using a washer and toggle bolt. The cameras need to be slightly rotated to stay coplanar - because the screw holes in the plate are staggered.
So the cameras mounted on the steadicam look like this:
Here is a sample video shot with this rig.
Thursday, December 31, 2009
Stereoscopic 3D Video Rig
I have access to two identical Flip Video camcorders.
I built a cheap $3 mounting bracket system so I could use them to shoot stereoscopic 3D video. I used two 1/4" X 20 screws (these fit the tripod mount on the cameras) and a couple of nuts and washers.
Also a bracket, I used some plumbing bracket. It was too large so I had to squeeze it smaller. You want the distance between the camera lenses to be about 6.5cm once they are screwed onto the bracket.
So the result looks like this.
When you shoot video, try to start both cameras at the same time. After shooting, you can use QuickTime 7 Pro to edit the videos, you will need Perian on Mac to handle the Flip DiVX AVIs. Trim each video so they start at the same time (use a clap board or something so you have a visual event to synchronize on) - use Edit | Trim to Selection in QuickTime. Open a new empty QuickTime movie (File | New Player), Edit | Select All and Copy the trimmed video from the Left camera and choose Edit | Add to Movie in the new movie. Choose Window | Show Movie Properties in the new movie and rename the audio and video tracks to Left Sound Track and Left Video Track. Now Edit |Select All and Copy the trimmed video from the Right camera, move the playhead back to time zero in the new movie and choose Edit | Add to Movie.
You will now have two sound tracks and two video tracks in the new movie. Rename the new video track to Right Video Track and disable the new sound track.
Following YouTubes guidelines, we want the Left camera on the right and the Right camera on the left. Select the Left Video Track in the movie properties for the new movie, click the Visual Settings tab and uncheck Preserve Aspect Ratio and enter 640 for the first Offset value (this is the X offset). This shifts the Left video track to the right of the Right video track. You should see the videos side by side now, Left on the right and Right on the left.
You can Save as a reference movie to avoid losing your work. Then File | Export... and export as MP4 with H.264/AAC for upload to YouTube. On YouTube tag your video with yt3d:enable=true to enable the 3D player.
To view your video in 3D you need a mirror, or some 3D glasses, or use the freestanding cross-eyed technique. See YouTubes viewing guidelines for further instructions on how to view the 3D effect.
Here's my first attempt.
Update:
It turns out that even when the cameras are perfectly aligned vertically, there is some internal vertical alignment difference. You can see then when I put the cameras side by side on a table - the bezel of the monitor is at a different vertical position in the images:
In my case the difference is 42 pixels. This can be corrected for by offsetting the video track vertically in the QuickTime track properties. You can determine the amount of offset by flipping one of the tracks horizontally (mirror) so you can align a horizontal feature in the video. When you export to MP4 you can set the vertical size to compensate for the vertical offset (in this case 480-42=438) and set it to crop - QuickTime will crop from the center removing the top and bottom 42 pixel borders.
I shot a few more sample videos, adjusting the vertical alignment, with much better results. See part 1 and part 2.
Update 2:
See new post with updated rig and steadicam.
Thursday, June 25, 2009
PhotoCloth
My iPhone app, PhotoCloth, is finally available in the app store. PhotoCloth can turn any photo into a realistic 3D interactive cloth simulation. See demo videos and appstore link here.
Friday, March 13, 2009
Fixed Width Fonts in Gmail
I like to compose and read email with a fixed width font. Gmail now supports reading a message with a fixed width font using the Show in fixed width font option - but you have to do that on each message as you read it.
If you use Firefox, you can create a user stylesheet that is domain specific to force all non-HTML messages and the message composition textarea to display in fixed width.
The user stylesheet should contain:
@-moz-document domain(mail.google.com) {
/* GMail messages and textarea should use fixed-width font */
textarea.dV, div.ii.gt {
font-family: MonoSpace !important;
font-size: 9pt !important;
}
}
Place the stylesheet (on MacOS) under your Firefox profile directory e.g. ~/Library/Application Support/Firefox/Profiles/XXXXXXXX.default/chrome/userContent.cssMonday, August 04, 2008
Virtualizing Mac OS X Leopard Client
VMWare Fusion 2.0 beta2 supports virtualizing Mac OS X Server as a guest OS. If you try to install a Leopard Client guest, you get an error
The guest operating system is not Mac OS X Server.However, if you create an ISO/CDR image from your Leopard install DVD, mount it then do
touch "/Volumes/Mac OS X Install DVD/System/Library/CoreServices/ServerVersion.plist"then unmount it, you can now use that image to install Leopard Client into VMWare with no complaints. After you install, reboot VMWare from the install DVD ISO again, run Terminal and
touch "/Volumes/Macintosh HD/System/Library/CoreServices/ServerVersion.plist"then reboot from the HD. This probably violates your license agreement so don't do it, I certainly wouldn't.
Update: You can automate the deletion and creation of the ServerVersion.plist file using a LaunchDaemon. Put the following xml in a new file /Library/LaunchDaemons/com.rectalogic.vmware.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.rectalogic.vmware</string>
<key>ProgramArguments</key>
<array>
<string>/bin/bash</string>
<string>-c</string>
<string>/bin/rm -f /System/Library/CoreServices/ServerVersion.plist; trap "/usr/bin/touch /System/Library/CoreServices/ServerVersion.plist; exit" SIGINT SIGTERM SIGHUP; sleep 999999 & wait $!</string>
</array>
<key>KeepAlive</key>
<true/>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
Then run sudo launchctl load /Library/LaunchDaemons/com.rectalogic.vmware.plistNow when you login ServerVersion.plist will be deleted, when you shutdown it will be recreated ready for the next reboot.
Alternative approach: An alternative approach discussed in the comments is to hack VMWare to disable the check for server.
VMWare Fusion 3.0: Fusion 3.0 uses EFI instead of BIOS by default. After creating a new VM and before booting it from the install DVD/ISO, edit the *.vmx file and remove/comment out the firmware="efi" line. VMWare will then use the hacked boot image from darwin.iso.sudo bash cd "/Library/Application Support/VMware Fusion/isoimages" mkdir original mv darwin.iso tools-key.pub *.sig original perl -n -p -e 's/ServerVersion.plist/SystemVersion.plist/g' > darwin.iso openssl genrsa -out tools-priv.pem 2048 openssl rsa -in tools-priv.pem -pubout -out tools-key.pub openssl dgst -sha1 -sign tools-priv.pem > darwin.iso.sig for A in *.iso ; do openssl dgst -sha1 -sign tools-priv.pem < $A > $A.sig ; done exit






