Maya Frustum Visualizer

Why Maya doesn’t offer this functionality out of the box is a mystery to me. I suspect there is actually a way to do it but it’s so buried I can’t find it. I needed it for a recent job so I’m putting it out there for public consumption. Anyway, it’s simple: just select a camera and run the script to visualize the frustum. It should update if you change the camera transforms, film back and FOV. Use it, change it, break it, fix it, improve it at your leisure…

Braised Tangerine Tintype Beef Tongue

Prologue

In which we explore the process of exploration, and we take things and make other things from them for the purpose of being joyful in the process of exploration, and mix things up in a way that creates little mental explosions of aliveness, for no other purpose than to celebrate the uncircumscribeable, with a nod to Eraserhead and Quinn Martin. Oh, and also, pictures and tacos come out in the end.

Act I

Ingredients:

-One 8 pound beef tongue
-Chard
-One cake plate
-One 8×10 camera
-One 8×10 black enameled aluminum plate
-One studio with some lights
-Chemistry: collodion, silver nitrate, developer and fixer
-Two onion
-Two heads of garlic
-Three chipotle chilies
-Half a teaspoon oregano
-Eight bay leaves
-Five tangerines
-Salt and pepper to taste

tonguestudioshoot

Act II

-Take the beef tongue, the camera and the chemistry into the studio, and lay out the beef tongue onto the cake plate. Decorate the base with some chard leaves and carefully place your lights around the arrangement to highlight the features of the tongue.
-Take some pictures of it and adjust as needed.
-While you’re at it and in the studio, take more pictures of other stuff you happened to bring along.
-After a long day shooting, bring the tongue home, place it in the fridge and forget about it.
-Leave in fridge for four or five days until your wife starts asking what the hell you’re intending to do with that disgusting thing.
-Decide maybe you should make some decisions regarding what the next step is for the tongue.
-Look at a bunch of recipes online, decide to not follow any of them and wing it instead.

Act III

-Put the tongue in a large pot and cover with six quarts of water. Add one of the onion, one of the heads of garlic, and two of the chilies, all chopped. Add the bay leaves, salt and pepper and boil for 4 hours.
-Let the tongue cool and peel off the skin. Cut it in half and slice off a piece a decide it’s kind of weird and probably not quite cooked enough. Pretend you’re cool and that all the strange gristly fatty bits don’t freak you out at all.
-Decide it can be better…

This blog post is starting to be a little text heavy and we know that can be a problem with today’s typical 4 minute attention span reader. Here’s something completely random and unrelated that moves, for the purpose of keeping overactive brains engaged. It’s even interactive, so when you click in it, it does interactive multimedia!

Act IV

-Cut up the tongue in about 10 chunks and saute the pieces in olive oil in a dutch oven. Add salt, oregano, one chopped onion, peeled garlic cloves from the second head, and finely chopped chili.
-Juice tangerine, remove seeds, and add the juice and the peel to the mix.
-Cover the dutch oven and place in oven at 325 for 4 hours, checking it occasionally to make sure it’s not getting too dry.
-Once it’s done, cut it into 1/2 inch slices and sprinkle with chopped white onion and cilantro, and squeeze lime juice on it.
-Serve it to your family and watch them give it the old college try, claim that they really like it but say they’re not really hungry.
-Eat a lot of it yourself because it’s pretty freakin’ good, actually.
-Eat tacos de lengua at lunch for the next 5 days.
-Have your family eventually admit to you they thought it was weird and disgusting, and please never make it again.
-Blog about it later because if you don’t blog about, how can you know for sure it actually happened?
final_dish

Epilog

In which one has better figure out what the hell to do with the cow’s feet that were purchased with the tongue, because they’s really starting to smell. I hear tendon soup is a thing… Thanks to Tintypebooth for the help with the tintypes.

tongueandfeet

Building an Ultra Large Format Camera, Part 1

The basic elements of a camera

One of the cool things about a camera is that at its core, it’s very simple. All you need is a lens that focuses light and a surface that this light gets focused on. The process of bending light with lenses to focus on a surface was first explored during the Renaissance with the camera obscura. It wasn’t until the 19th century that people figured out how to keep a record of how much light hit a particular area of that surface. Anyway, to make a camera, all you really need is a lens and a surface for the light to hit, and to create an image from a camera, you either need to trace the image you see projected on the surface or you need some kind of coating on the surface that reacts to light.

lens_ring

Is that a large lens in your pocket?

After giving me a taste of 4×5 tintypes, my buddy at Tintypebooth showed me some large old lenses from photographic systems used in spy planes that he had bought on ebay. These things are serious! They are very heavy and the glass is super thick; there is just something massive about them, and when you hold one and feel its weight, you can’t help but be awed by their image making potential and you get possessed by an urge to unlock that potential. He pitched the idea of building a ultra large format camera with one of them, a little “Kodak Aero-Ektar 24” 610mm” number, weighing in at just over 10 lbs and sporting a few scratches I like to think were caused by the strafing of some of the Luftwaffe’s last Messerschmitts.

Let’s decode those numbers, shall we? The 24” is the size of the image plane and 610mm (also 24”) is the focal length.Based on my previous post about lenses, it means that at its shortest, this camera will be a little over two feet long. At four feet of distance between the lens and the plane, the image on the focal plane will be the same size as the subject in focus four feet from the lens, and six feet will create an image bigger than reality. The film holder will need to accommodate plates that will be 24 inches on one side. I may need a bigger car…

camera_build

I need a plan

Patience is a virtue I’ve always been in somewhat limited supply of. We have this killer lens… What’s the fastest and cheapest way we can get a picture out of it? Sure, we can design a fancy camera with a lot of bells and whistles but it would take a long time and cost a pretty penny. For now, I just need a bare bones proof of concept prototype. I’ll focus on the basic pieces and see if I can build it myself. I’ll build the back out of oak and do all the struts and supports using aluminum channels. The animated image above is a Maya model I built to scale that shows how all the pieces need to fit together. It doesn’t look too difficult, does it? One thing not shown in the animation is that the back that will hold the plate will be interchangeable with another back that will have the ground glass necessary to focus. The process will be as follows: first you will use the ground glass back to focus, slide it out, and then slide in the film back to load your camera.

film_back

Baby got back

Kim Kardashian’s got nothing on this bad boy! I built this 24″x20″ film back over the past couple weeks. I’m not a great builder and my Home Depot tools are a bit wobbly so I wouldn’t call it fine craftsmanship but it will hopefully do the trick. Oh, and did I forget to mention it’s not exactly square? Yeah… Let’s just say it’s square enough. It’s made from 1″x2″ and 1/4″x2″ red oak lumber which I routed to get the insets. It will make a great example when we eventually hire a finish carpenter for the next fancy version of the camera. Here are some pictures of the various pieces it’s made of (you can also see that I like to wear my slippers when I take pictures of my handy work).

More to come…

Here are the steps that come next and will be documented in a hopefully not too distant future.

  • I already bought the aluminum extrusions that are necessary to build the film back support, the lens plate holder, and the rails. I will need to learn how to properly drill in aluminum and figure out how to connect all the pieces. (anyone in Venice with a drill press?)
  • I will built the lens plate, mount the lens on the plate, and mount the plate on the rails.
  • Last will be creating the bellows. Not too sure how that will work but what the hell! We’ve got a few ideas. I’m sure we’ll figure something out.

See? It’s basically like it’s done already…

The three main attributes of a camera lens

If you ever want to embark on the foolish pursuit of building a camera, you will need to understand how lenses work. The three attribute that control the behavior of a basic camera lenses are focal length, format and aperture.

Focal length

The focal length is the distance from the lens at which infinite rays converge. For example, if you have a 50mm lens, infinity is in focus when the plane of the image is 50 millimeters away from the lens. A lens’s focal length is a factor of how much it bends the light. The more the bend, the closer to the lens the rays converge and the smaller the projected image. This, in turn, means that the focal length can also be used as an indication of the magnification of the image.

Format

The format represents the intended size of the image plane that the lens is designed to project onto, such as 35mm or 4×5. The combination of the focal length and format determine the lens’s field of view. This is why a lens with the same focal length gives you a different amount of magnification on different formats. (illustration)

Aperture

The aperture gives a measure in f-stops of how “fast” the lens is. It is often thought of as the size of the opening in the lens, but in photography, it actually is the ratio of the focal length over the diameter of the lens opening. This has the advantage of remaining proportionally equal across the different sizes of photographic systems. If you use the same f-stop in a tiny phone camera and a big SLR using the same ISO setting, the same shutter speed will expose both images similarly. As the size of the opening increases, more light gets in but the thinner the focal plane is.

Finding the focal plane

The last relevant piece of information is the formula that determines the distance of the focal plane to the lens for rays that are closer to the camera than infinity. The relationship between the distance of an object to the lens (S1), and the distance of the lens to the focal plane of that object(S2) is defined by this formula:
1/S1 + 1/S2 = 1/focal_length
Solving for S1, this becomes:
S1 = (S2 * focal_length)/(focal_length - S2)
If you plug in your own numbers, you will notice that the closer your object is to the lens, the farther away the focal plane will be from the lens.

Useful python functions


# Given a specific focal length and distance to subject, how close to the lens does the image plane converge?
def distanceOfFocusPlaneToLens(distanceToSubject, focalLength):
v= (focalLength*distanceToSubject)/(distanceToSubject-focalLength)
print ("when subject is at %s the focal plane is %s from the lens" % (distanceToSubject, v))

#FOV calculator
def FOVFromFocalAndAperture(focal, aperture):
    return math.degrees(2*math.atan(aperture/(focal * 2)))

Creating a Spotify appliance from an old smartphone

A problem:

If you have a teenager, you will no doubt be familiar with the dilemma of letting them listen to music at night while keeping them somewhat sheltered from the irresistible pull of the bright rectangle of light that seem to so efficiently hijack their attention. In my day, it was simple: the tape deck played music and that’s all it did. These days, with smart phones, it feels like it’s all or nothing. The tape deck comes with a movie theater, a video game arcade, and a place to hang out with friends, and they’re all open and available 24 hours a day. So, like any concerned parent, we take the phone away at night but since now days, it’s the place they get their music, it means they can’t listen to music anymore which is kind of sad.

Something annoying:

You know what I hate? The fact that our consumer culture dictates that when something is broken, we throw it away and buy something new rather than fixing it. I had a smartphone and after two years, the internal phone speaker broke, which meant I had to have it on speaker or plugged into an earpiece to hear people talking to me. I actually attempted to fix the problem: I ordered the part on ebay and spend 30 minutes opening the phone but I failed. Mind you, the smartphone was still a computer with over 1000 times the speed and memory of my first computer, a nice bright and sharp touch screen, wifi, etc… Other than the speaker problem, it worked perfectly. In the end, though, since I couldn’t fix the problem, I reluctantly gave in and bought a new phone. Grrrrr!

Ready for the trash? Not so fast!

So, I made this:

It’s actually really simple. I tried to restrict the functionality of the phone and create an object designed with the single purpose of enjoying spotify without the potential distraction of the rest of the internet getting in the way. First off, with the zip card out, your smartphone becomes a small tablet.

I removed all the video games and Netflix and Youtubes and Hulus and Snapchats and Facebooks and Vines and Instagrams and circles and Pinterests and Ellos and MySpace. I kept only Spotify and installed a program called Autostart which automatically launches an app after the phone boots and prevents a user from quitting the app.

I then built a frame into which I could mount the phone and poured a trademark Hollier polished cement base. I used autostart to automatically launch Spotify to whenever the phone turns on and thus transformed a crappy old orphaned phone into a custom one-of-a-kind Spotify appliance. Being mounted in a frame and set into a solid base transforms it into something you set and walk away like a radio rather than something you interact and fiddle with like a phone.

Tintype photography, part 1

You absolutely need to know about tintype photography! Tintype photography, also sometimes referred to as wet plate or collodion process, is an image making technique developed in the early 1850’s and was widely used through the second half of that century because of its ease of use, its sharpness, and the immediacy of the results. Technically, the wet plate process can be used to shoot negatives on glass which can be used later to create prints or to shoot tintypes which yield a single positive on a dark opaque support.
Jason, a friend from my old job, is a complete film and old camera junky and, with the help of the internet, had been putting together a kit that would allow him to experiment with the process. He introduced me to it and I was instantly hooked. Since then, we’ve been geeking out together and I’ve been helping out where I can on Tintypebooth with the goal of creating a mobile tintype kit. We’ve shot 4×5 portraits at the Venice art walk and Tarfest, and Jason sets up for portraits every Saturday at Bar Nine, a groovy coffee lover’s destination in Culver City.

The process

It’s actually surprisingly simple. The whole process takes about 15 minutes and consists of the following seven steps. Don’t be intimidated by the mention of the various chemicals and other fancy sounding science lab-ey processes; I personally wouldn’t know silver bromide from halide crystals if they wore name tags. You can buy all the stuff you need on the internet.

  • Coating: a black enameled aluminum plate is coated with collodion, a viscous solution containing salts.
  • Sensitizing: as soon as the collodion starts to gel, the plate is taken into a portable darkroom, dunked into a silver nitrate solution which turns the salts into light sensitive silver halides, and loaded into a film holder ready to be exposed
  • Exposing: this is the “taking the picture” part. The ISO of the plate is somewhere around .5 so fast lenses and a bright flash are used to avoid motion artifacts.
  • Developing: the exposed plate is taken back into the darkroom. An iron solution is poured on it until the the exposed silver halides turn into silver metal, at which point the developing process is stopped by rinsing off the solution with water.
  • Fixing: at this point the plate is still fully covered with silver, some developed some not. The fixer dissolves away the undeveloped silver. The silver remains on the areas of the plate that got the most light and the areas that got less light reveal the dark enamel support.
  • Washing: once the undeveloped silver is fully washed away, the plate is rinsed to get rid of any remaining fixer.
  • Varnishing: once the plate is dry, it is still very delicate and the coating can easily be damaged. A coat of varnish is used to preserve the plate.
  • Although looking at these images on a computer screen really doesn’t do any justice to the feel of handling the actual object itself, I’m including the scans of a couple portraits I did a while back to give a sense of the look.

    What’s the appeal of doing tintype?

    Stay tuned for part 2 of this fascinating series in which I use very long words to explain why I think tintypes are a very relevant medium to experience in our hyper digital world.

    All pictures on this page by Sary Madsen at Tintypebooth

    How to get a 9 year old interested in programming

    Osx has a nifty command line speech synthesizer called “say”. It allows you to type some text and hear it “spoken” by the ubiquitous synthesized robotic voice. First, open the terminal and show him how it works by typing:
    say "hello, my name is Robert"
    Then show him that you can type different sentences and let him play with that until he gets the hang of it. Make sure to include enough potty humor to ensure sufficient hilarity:
    say "Even though I am a computer, I sometimes talk about farts."
    That should get his attention. You can also include question marks and nonsensical words for extra extra fun:
    say "Are you some kind of flarpy nunckenbarf?"
    The next step is to introduce the concept of variables:
    friend="John"
    say "$friend is a complete idiot"
    friend="My hamburger"
    say "$friend is a complete idiot"

    By this time, tears of laughter should be streaming down his face, but don’t let it stop you. This is where the comedic potential really starts paying off with the introduction of the “for” loop.
    for friend in "alfred" "max"
    do
    say "$friend is a fizzlebutt"
    done

    And then show him how to pause between the sentences
    for friend in "alfred" "max"
    do
    say "$friend is a fizzlebutt"
    sleep 1
    done

    Finally, once he finally peels himself off the floor and catches his breath, you apply the final coup-de-grace with the help of the “if” statement:
    for friend in "alfred" "max" "frank" "dave"
    do
    if [ "$friend" != "max" ]
    then
    say "$friend is a total moron"
    sleep 1
    else
    say "$friend has bad breath"
    sleep 1
    fi
    done

    After you share these intoxicatingly powerful instruments of distraction with your son, I suggest you steer clear of the technology teacher at the school.

    Exposure/gain calculator for all your inverse squared falloff needs

    I get asked this approximately once every 6 months and I always forget which means I have to spend a bunch of time looking it up again. This kind of conversion usually comes up going back and forth between tweaking lights in the render and color correcting the individual outputs in the comp. I’ll jot the math down here so I know where to look for it next time. Oh, and since it’s about relentless play and hacking in general, maybe I’ll build some quick little javascript/HTML calculators, cuz I just like to party like that!

    Converting from stops to a multiplier

    This is useful when you want to use f-stops with a color correct node that multiplies your color values.
    newGain = oldGain * pow(2,exposureChange)

    Old Gain:
    Exposure Change:
    New Gain: 666

    Converting from a multiplier to stops

    This is useful when you have color corrects in the comp and want to bake them back into your render’s lights.
    newExposure = oldExposure + log(gainChange,2)

    Old Exposure:
    Gain Change:
    New Exposure: 666

    Adjusting for distance

    While we’re at it, you often need to move a light backwards or forwards while keeping the same light intensity on a subject. Assuming that “oldDistance” is your light’s current distance to subject and “newDistance” is the new distance to subject, you can use the following formula to figure out the new exposure required for the light to have the same intensity on your subject from the new position.

    newExposure = oldExposure + log(pow(newDistance,2)/pow(oldDistance,2),2)

    Old Exposure:
    Old Distance:
    New Distance:
    New Exposure 666

    Adjusting for light area

    In some renderers the light intensity is not normalized to the area of the light itself, which means that your light becomes brighter as you scale it up. If you want the amount of light to remain similar as you scale it up or down, this is your formula:

    areaRatio = (oldWidth * oldHeight)/(newWidth * newHeight)
    newExposure = oldExposure + log(areaRatio, 2)

    Old Exposure:
    Old Width:
    Old Height:
    New Width:
    New Height:
    New Exposure 666


    Submerged, a Lightscape Installation

    I have a real soft spot for projects that blend virtual environments with real architectural spaces. In fact, before I even found a place in the VFX and animation industry, I had already had the opportunity to get involved in various stage design and themed entertainment projects that required this kind of creative inquiry. I’ve also always been excited by the use of image re-projections techniques in my VFX and animation work because I find they can sometimes offer an elegant and effective solution to problems which would otherwise be difficult or expensive to tackle through more traditional approaches.

    A few months ago, when a painter friend approached me for help designing a lightscape installation for the opening of her exhibit, I jumped at the opportunity.  Corinne Chaix‘s exhibit is called “Submerged” and is at the PYO gallery downtown. Her work features underwater scenes, and she wanted to explore the idea of complementing their mood and reinforcing their theme by turning the gallery space itself into an underwater environment.

    We visited the gallery and brainstormed on the most aesthetically interesting ways to set up the projection. I also surveyed the space which later allowed me to build an accurate digital version of the environment.

    The next step was to create a digital version of the projector in this virtual environment which allowed us to visualize the way imagery projected out into the space.

    Meanwhile Corinne compiled a set of stock footage clips that resonated with her and passed them on to me. I created a composite movie that blended various elements from these clips and formatted the resulting image to fit the contours of the gallery space.
    The first clip conveyed a dark foreboding underwater feeling while the second captured the delicate crystal beauty of the water’s surface.

    I combined the two, moving the water surface to the top of the frame in an echo of many of her paintings.
    The last step was to take this composite, project it onto the walls and remap it to line up with the contours and orientation of the walls.
    I used the open source VisualSFM package to extract the geometry from the photos, Maya for the 3D and Nuke for compositing.

    Creating, Working, Playing, Hacking, Making, Breaking, Thinking, Learning, Sharing…