Wednesday, December 1, 2010

Anima: a festival of contemporary animation by women


Valley animation fans: come see an amazing showcase of recent work by female animators!

7-9pm
Sunday December 12th
Main Lecture Hall, Franklin Patterson Hall
Hampshire College
FREE
parental note: this is not an all ages program

Click here for the facebook event page and tell us you're coming!

The fall 2010 Women in Animation class at Hampshire College has assembled an outstanding program of international and award-winning short films made by women that feature a wide variety of media, techniques, and subject matter. The work is inspiring and fresh, much of it coming from emerging artists who are sure to leave their marks on the animation world.

Official Selection (alphabetical order)
Astronomer's Sun, The (Cope, 2010, UK)
Benigni (Vuorinen, Partanen, Ottelin, 2009, Finland)
Chrigi (Kofmel, 2009, Switzerland)
El Doctor (Pitt, 2006, USA)
Forest (Schulnik, 2009, USA)
Lebensader (Steffen, 2009, Germany)
Miramare (Müller, 2009, Switzerland)
Notebook (Lohbeck, 2008, Netherlands)
Soft Plants (de Swaef, 2009, Belgium)
Tongueling, The (Vuorinen, 2010, Finland)
Triumph of the Wild 2 (Colburn, 2009, Netherlands/USA)
Windows, Masks & Doors (Orenstein, 2007, USA)

festival program


Saturday, November 20, 2010

Making a DCP entirely with open source tools (update)

Here I detail my most up-to-date pipeline for producing a DCP with open source tools. I have used these techniques to produce a DCP for The Incident at Tower 37 that has (to date) ingested and played properly on Doremi and Dolby servers. This technique is an updated version of the original pipeline I posted earlier this year, but with many small but important changes (mostly related to audio and proper formatting of the hard drive).

Step 0: prepare sources

My source video was a 24fps lossless QuickTime movie, RGB color, 1920 x 1080 (16:9). For the purposes of this document, call it INMOVIE.mov.

My source audio comprised of six wav files for Dolby 5.1 surround, each 48kHz mono and 24 bits per sample. This bit depth is critical! Dolby DSS servers considered the DCP corrupt until the audio sources were 24 bit.

Step 1: export PNGs from source QuickTime movie

Tool: ffmpeg
Version: SVN-r21770 (compiled locally)
Command:

ffmpeg -r 24 -i INMOVIE.mov -f image2 %08d.png
This marches through the video file outputting a lossless, compressed PNG 24 times per second.

Step 2: convert to 12 bit per channel XYZ color imagesTool: ImageMagick's convert
Version: 6.5.9 (compiled locally)
Must be run once per PNG frame.
Command:
convert FRAME.png -type TrueColor -alpha Off -depth 12 \
-gamma 0.454545 \
-recolor "0.4124564 0.3575761 0.18
04375 \
0.2126729 0.7151522 0.0721750 \
0.0193339 0.1191920 0.9503041" \
-gamma 2.6 FRAME.tif
This takes a 1920 x 1080 PNG from step 1, removes any alpha, sets the bit depth to 12 bits per pixel, and does a linear-space color shift from RGB->XYZ. Then it writes the image out as a TIFF. According to a comment I saw here, only one of the dimensions of the image need to match 2048 x 1080.

Step 3: convert TIFFs to JPEG-2000Tool: OpenJPEG's image_to_j2k
Version: 2.1.3.0(compiled locally from subversion revision 543)
Must be run once per TIFF frame.
Command:
image_to_j2k -cinema2K 24 -i FRAME.tif -o FRAME.j2c
This takes longer per frame than convert, in my experience. About 2x longer.

Step 4: make all the necessary DCP filesTool: OpenCinemaTools
Version: 1.1.2 (compiled locally)
Tool: asdcplib
Version: 1.6.37 (compiled locally)

NOTE: the next time I revisit this process I'm going to try using the new openDCP library instead of OpenCinemaTools, which is not actively supported and was quite challenging to build.

This step has five substeps, each of which generates one or more of the files needed for the DCP. Naming conventions are very important in DCP land, so I highly recommend that you read about them yourself and make informed choices. When you see DCPFULLNAME below, that's shorthand for what I used, which was the mouthful:
TOWER37_SHR_F_EN-XX_US-XX_51_2K_ST_20101105_OV
Command A (create a video MXF file from the folder of J2K files):
asdcptest -v -E -L -c PROJ.video.mxf FOLDER_OF_J2KS
Command B (create an audio MXF file from the six wavs):
asdcptest -v -l 5.1 -E -L -c PROJ.audio.mxf \
left.wav right.wav center.wav \
sub.wav surrLeft.wav surrRight.wav
Command C (create an XML composition playlist):
mkcpl --kind short --title DCPFULLNAME \
--annotation DCPFULLNAME --norating \
PROJ.video.mxf
PROJ.audio.mxf > PROJ.cpl.xml
Do check the output of command C and confirm that the durations of both video and audio are identical. The XML tag for this is "IntrinsicDuration."
Command D (create an XML packing list):

mkpkl --issuer BitFilms --annotation DCPFULLNAME \ PROJ.video.mxf PROJ.audio.mxf PROJ.cpl.xml > PROJ.pkl.xml
Command E (create the ASSETMAP and VOLINDEX XML files):
mkmap --issuer BitFilms \PROJ.video.mxf PROJ.audio.mxf PROJ.cpl.xml PROJ.pkl.xml
I used a bit of shorthand above since I did not identify enclosing folders. I suggest that if you make a DCP this way, you use temporary folders for all the inputs (and the results of steps 1-3), then create a finalDCP folder which you populate with only the files that will be part of the eventual DCP itself (namely, the 2 mxfs and the 4 XML files that come from step 4).

Step 5: get the DCP onto a Hard DriveTool: gparted
Version: 0.7.0-4 "live" CD image

I found the best guidance for this step at the Inter-Society Digital Cinema Forum website.

In short, you want an MBR partition table and an EXT3 file system. I booted gparted from the live CD and made a single partition on my portable USB hard drive. NOTE: I tried an HP SimpleSave drive and regretted it. This drive comes with an uneditable partition that mounts like a read-only CD-ROM in addition to its actual storage. My Lacie Rakiki worked great.

Once the disk is formatted, just copy over the 6 files that emerged from step 4 right to the root of the new disk. And it's done.

Some quick notes:
  • It is important that you check your XML files to make sure the file paths don't contain any incorrect information: if you aren't careful during step 4, your file paths in the XML may be incorrect! Here's what one of my entries looks like in my final ASSETMAP.xml file as an example: file:///tower37fullDCP.video.mxf
  • I don't know what happens if your audio and video durations are different, so I was careful to make sure mine were not. Check them in the CPL (the tag is ).
  • Work with a small movie file for starters, a minute or less, until you get the steps ironed out. Then move to your full film.
Good luck!

Thanks:
Wolfgang Woehl
John Hurst
Dave Samson
Bryan Dennis

Sunday, October 24, 2010

open source DCP update: need help testing

As a reader named Vincent posted in August on my open-source DCP process post, this method isn't foolproof. Last week I personally encountered the problem he described where a DCP ingests properly onto a Dolby DSS server, but then appears with a nasty red X on it saying "corrupt." This is happening with a DCP that ingests and plays just fine on a Doremi server.

For those keeping close notes, my problem was on a Dolby DSS100. Vincent's was on a DSS200. He also had a problem ingesting on what I assume was a Datasat DC20 server as well.

It is my goal to ferret out all of these problems and post the solutions here for everyone's benefit. If you have access to a server (or servers) and are willing to run some brief tests, you can help! Just let me know what kind of server(s) you can use and I'll get you access to a small DCP (< 1 Gb) that you can download and try to ingest/play.

Thanks in advance!

Thursday, October 14, 2010

For your consideration...


I am very excited to report that The Incident at Tower 37 has been submitted to the 83rd annual Academy Awards! Wherever it goes in the competition, I want to thank the supporters of the film from all over the world for rallying behind it during this wonderful festival run. This includes fest directors and programmers who picked it from the submission pool, to the audience members who came, watched, and shared their feelings with me about the film. You all are the reason we put so much effort into the festival run in the first place!

... and to those who have followed my DCP posts, yes: I submitted Tower to the Academy in the form of a home-rolled DCP.

Tuesday, September 7, 2010

Drome pix and a Tower 37 review

Sorry I didn't have any visuals when I posted about the Bit Films Fall Internships, but check out a few recent snaps of the summer interns and our lab spaces, below. Applications due next Monday!

The Tower 37 review comes from a viewer at Seattle's One-Reel Film Festival, who considered it the best of the Animated Life program:
The film’s noticeably low-budget CG doesn’t reduce its effectiveness in the least – this is a gripping and poignant environmental allegory with an absolutely beautiful score (from composer Evan Viera). The film’s earnest message is about as over-the-top as “Captain Planet”, but it doesn’t resort to cheap manipulation to showcase it.
Now for the pix (photo credit: Kevin Cline)





Friday, August 27, 2010

Bit Films Fall 2010 Internships

I'm pleased to report that internship information is now posted for the Fall 2010 session!


This is our fifth consecutive internship session, running from September 20 to December 17, 2010. Applications are due (via email) no later than Monday September 13, 2010 at 5pm (EDT). We understand that this is short lead time for those in need of making visa and travel arrangements. Because the projects are ongoing, the internship period is flexible; if in doubt, apply!

Everything you'd want to know about the two films being produced in-house (Caldera and Tube) is available via the link above. Today I want to mention the amazing work environment that surrounds the productions and is home to the work we do.

First of all, the studio is on the Hampshire College campus. During the fall, classes are in session so the place is buzzing with activity -- there are lectures, shows, presentations, screenings, sporting events, and more happening all the time and right next to the studio space. Interns have audited Hampshire courses in the past and we certainly expect this to continue.

Nearby Amherst and Northampton are politically liberal college towns with lots of food and entertainment. The PVTA bus system connects them, Hampshire, and the other four colleges in the Five College Consortium so transportation is straightforward. There is also a bike path connecting Northampton and Amherst (which summer 2010 intern Josh ran daily as an impressive commute/exercise regimen).

In addition to lots of US participants over the past four sessions, we've had interns from China, Argentina, South Africa, France, and England be a part of the program in the past. We are eager to fold different voices and histories into the studio so we do our best to support international applicants through the Visa process, finding a place to live, and getting oriented.

So check out the call for interns, look into the films, and see about joining our crew. We look forward to hearing from you.

Monday, August 9, 2010

Request Tower 37 on OpenIndie

I was very excited when I first heard of OpenIndie, the website that will let fans request independent films and allow people anywhere to host screenings. They now have a nice little film widget (below) that lets you request the film really easily! Please check it out if you haven't already and ask for a local screening of Tower 37 -- or host one!



Wednesday, July 7, 2010

Gender Roles in Pixar's "Day and Night"

Pixar's latest short, "Day and Night," marks an exciting new direction in mixing 2D and 3D animation while hearkening back to animation styles of the past. And I appreciate that it strives to share a valuable lesson in understanding and acceptance.

Lots of people are raving about it, but overall I found the short rather depressing. To me, it was about two spoiled white boys who figure out that they have everything they need already, and they're exactly alike too.

But most troublesome for me were the representations of women, and in particular how men behave around women. It's even a step back from Knick Knack, from 1988, where at least the voiceless white buxom mer-woman was awake and active in her courting of the male snowman.
Side note: the mermaid in Knick Knack had digital breast reduction surgery early in the new millenium. John Lasseter is quoted as saying this was done because "it was just crossing the line for me personally as a father."

The clip I remember most from "Day and Night" was where Night discovers a bikini-clad woman inside Day's sleeping butt. If you haven't seen the film, that sentence may make absolutely no sense. Thankfully, the clip is available online as a part of an odd little making of video. Jump directly to timecode 1:17 if you want just the clip I'm discussing here, or watch the whole thing, below.


Anyway, the woman is sleeping on the beach. She's totally unaware of being spied on by a huge and phallic-nosed Night (just watch that nose when he first is aware of her existence - schwing!). He's a total voyeur, and she is utterly vulnerable.

Night's first reaction to discovering her? He looks around. Guilty and nervous. Like he found a wallet on the ground. I fear for that girl when he then lowers his eyelids and throws out his gigantic tongue. He transforms into a total sleazeball predator.

He finally makes his physical move to capture her inside his belly (animation theorists will have a field day with the metaphors this new technique offers). But when she's not there, he looks at his foot like he might have stepped in something. I can only assume he's trying to find her.

Women (silent, blond, sexy, white) as property to be acquired, hunted, and ultimately captured, by men who must be sneaky, tricky, aggressive, and physically superior over one another.

This isn't new stuff for animation, and many give "Day and Night" a nostalgic "Get out of Bad Gender Dynamics Free" card because Tex Avery and others did this kind of stuff generations ago. But I watched with my 6-year old daughter and 9-year old son, for whom nostalgia played zero part. For them, it was just another demonstration of how boys should behave around girls. Badly, I'm afraid.

Thanks to all the participants in the recent e-discussion about "Day and Night" that occurred on Hampshire College's animation mailing list.

Tuesday, July 6, 2010

summer in full swing

An awesome Bit Films sticker photo by Jeremy Brown, from SIGGRAPH 2009.

It's sweltering hot these days in Western Massachusetts, so thankfully the AC is functional and the Bit Films crews aren't melting. I've been doing a lot of script writing, while the Caldera and Tube crews are deep in production. Caldera recently completed its successful kickstarter.com campaign, so big thanks to all who contributed!

Really I was psyched to find Jeremy's photo and I wanted to share it.

Thursday, June 24, 2010

A new challenge: an open source remote review tool

The year opened with a self-assigned open source DCP quest for The Incident at Tower 37. Now it is summer, and with Caldera deep in the animation phase with an amazing team both local and remote, we've got a new set of problems.

The particular one I'm looking to solve is related to animation reviews. Our ideal tool would allow the director to load up HD QuickTime movies on his machine, point at the screen, talk freely, hear what others have to say no matter where they are, pause and restart the video, scrub to a particular point in the playlist, and make annotations. And so on. Remote participants would be watching the same movie at the same quality and hearing the comments/seeing the director as he spoke.

This problem has been solved a hundred times by lots of different people. I know Animation Mentor has some solution for running reviews with bunch of participants, for example. With all the World Cup soccer I've been watching lately on ESPN3, it appears that live streaming of HQ (if not HD) content works even on my paltry DSL line at home. I've also read about cineSync which seems to be designed for this kind of situation. However, I have yet to find an easy and free solution.

There are a few paths worth exploring. If I could set up a situation that streams the director's screen and audio input in a bandwidth-sensitive way (like ESPN3) to anyone interested in watching/listening, that would be great. A test with simple iChat-based screen sharing between two macs didn't do so well, however - the network couldn't maintain a bandwidth that led to satisfactory results on the viewing end. Too choppy and blocky.

Another idea is for every interested party to pre-cache the movies being reviewed, and then have the director launch a master movie player. All participants would launch slave players, and the control commands (play, pause, seek to X, and so on) would be all that would have to be sent over the network from the master to the slaves. Pluses: this is almost possible already with VLC using its TCP interface, and it ensures that everyone is seeing the highest quality video independent of bandwidth. Minuses: it doesn't allow for annotation, nor audio communication. This would handle just the video part.

Part of working on a problem like this is knowing what the heck to search for while doing my research, and I confess that I'm rather ignorant in that regard. What I might call "remote animation review" someone else might call "live streaming screencast" or something. I will post my results as I go, but honestly part of posting this before having any results to share is to ask people for their help finding the sub-components of this solution online. Thanks in advance.

Thursday, May 13, 2010

online reviews

Some great Tower 37 reviews appeared online recently, posted by folks who saw the film at the San Francisco International Film Festival.

"...My personal favorite short is The Incident at Tower 37. This seemingly simple story is loaded with political and moral undertones, making it far more challenging than many viewers may realize. This particular short alone makes the entire program worth it."


"...In Chris Perry's brilliant short entitled The Incident at Tower 37, one of the on-duty guards at a corporate-run well designed to drain a lake of every drop of water has his resolve weakened by a strange amphibious creature.

The pangs of guilt which overcome the lone employee of a powerful conglomerate in The Incident at Tower 37 actually have an important consequence: In a moment that defies corporate logic, the man on duty in Tower 37 realizes that his actions are destroying an entire ecosystem and he reverses the flow of water.

The quality of the artwork in Perry's HD animation short is absolutely breathtaking. His film about preserving the environment becomes all the more compelling in light of the recent environmental crisis in the Gulf of Mexico (thanks to BP's catastrophic oil spill)."


"A fable about a man, water, and intelligent frog-fish creatures. Visually stunning CGA that could have come out of Pixar."

One Frame at a Time wrapup

The One Frame at a Time animation event at Hampshire went great last weekend. I thank our filmmakers for exposing us all to some outstanding work (including older films by Raoul Servais and Georges Schwizgebel -- both embedded below), and for sharing their production methods with those who attended the master class.

The nice thing about a flexible, participant-curated show is that we could squeeze in some other treats, like Bill Plympton's new short "The Cow Who Wanted to be a Hamburger" (clip below) and a 16mm print of a Mr. Magoo "Fuddy Duddy Buddy" hand-delivered to the screening by Emily Hubley.

I hadn't yet seen Bill Plympton's new short even though it has been collecting awards at many festivals lately. It was a lot of fun, and there was a great resonance with my interests of late since I've been researching food and agriculture for another project. I also smiled at the parallels between the young cow and the young protagonist of my short Catch from 2005 - both have at least some portion of their lives shaped by billboards!

Thanks to all who attended and participated. With luck we'll be able to repeat this process next year and bring a new slate of animation work to viewers in the Valley.







Friday, May 7, 2010

One frame at a time


I have no good excuse but many poor ones for not posting this event earlier. With luck, however, today's article in the Daily Hampshire Gazette/Amherst Bulletin or yesterday's lovely Tower 37 review on George Heymont's blog will help draw a good audience for the show.

Details:

Three award-winning independent animators will be at Hampshire College this Saturday hosting a master class in the afternoon and a screening in the evening. Both events are free and open to the public, but there are limited seats for the master class so priority for those spots will be given to current 5-college students.

The animators are:

Aaron Hughes and Lisa LaBracio, director and producer (respectively) of "Backwards," and Jake Armstrong, director of "The Terrible Thing of Alpha-9!"

a frame from "Backwards" by Aaron Hughes and Lisa LaBracio

a frame from "The Terrible Thing of Alpha-9" by Jake Armstrong


Schedule:

3-4pm, MASTER CLASS: The animators will present the workflows from their respective projects. The format will be casual, with audience questions encouraged. Location: Adele Simmons Hall room 126 (the ASH lab).

6-7pm, SCREENING: There will be a screening of indie animated shorts selected by the participating filmmakers and the event organizers. This is NOT an all-ages show, and it will START ON TIME so that people can make it to other events on campus that evening. Location: Franklin Patterson Hall, Main Lecture Hall.

The program is ever-evolving, but is likely to include the following films. Follow the links below for samples, but save your real appetite for the screening!

Backwards (Aaron Hughes, Lisa LaBracio)
The Terrible Thing of Alpha-9 (Jake Armstrong)
The Cow Who Wanted to be a Hamburger (Bill Plympton)
What Barry Says (Knife Party)
Pigeon: Impossible (Lucas Martell)
The Incident at Tower 37 (Chris Perry)

Event Organizers:

Chris Perry, director of "The Incident at Tower 37" and assistant professor at Hampshire College
Kevin Cline, media wackjob at Hampshire College

Saturday, April 24, 2010

Summer 2010 Internships

After three tremendously successful internship sessions last year, we are happily embarking on our second year of internships with the 2010 summer session, once again hosted at Hampshire College.

See here for the details. Applications are due May 3 via email.

A little info on both summer projects can be found at their respective websites:

Bassam Kurdali's film Tube (with shouts out to amazing international interns Jarred and Pablo)

Evan Viera and Chris Bishop's film Caldera (which YOU can help fund via kickstarter.com)

We're looking forward to reviewing your applications. Don't miss out!

Tuesday, April 13, 2010

Thanks, Harriete at Comcast!

Wow, I just had the most terrible and hilarious online chat experience with a Comcast "customer service" representative. The screen grab of the transcript pretty much tells the whole story.


A few assuring words and then BAM, thrown to the sharks. Time to look into satellite TV!

Monday, April 12, 2010

April fest news, batch 1


Tower 37 was playing all over the country this weekend: Oregon, Florida, Connecticut, and California (LA). I was able to get to the Environmental Film Festival at Yale on Thursday, for both the Dan Rather interview and our screening that followed it. Many thanks to the projectionist who actually gave a damn about what the film looked like. He called me up to the booth to confirm his projector settings and make sure I liked what I saw. I can't think of anything more comforting before a screening than knowing you're in good hands.

We were paired at Yale with the documentary The End of the Line, about the overfishing of the world's oceans. It was chilling. My sushi ordering habits will not be the same.

My story about the Yale trip would not be complete without mention of Ikea. Before hitting the festival, Kevin (the mad genius behind most of the video on Hampshire's website) and I buzzed through the New Haven Ikea. Now this might sound bizarre to those of you near urban centers, but since our closest Ikea is two hours away it makes sense to go by anytime we're within striking distance. The purpose of the visit, other than hot dogs and Swedish chocolate, was to find the centerpiece for the basement screening room that's rapidly coming to life chez moi. The mancave, as it is known locally, was in need of a couch.

Well we found it, a 2.5 seat leather number that met the major requirements: very comfortable, and not too wide for the runway-like basement. Great. Done. The helpful (?) warehouse workers talked about how this was a new item that needed "lots of assembly," which at Ikea is kind of an odd thing to hear. I was psyched, though: assembly meant smaller packaging. You just can't stuff a big couch into a Forester.

But sometimes you have to. Despite the musings of the employees, it came pre-built. Wrapped in cardboard and plastic. A full six feet long and 2x3 feet on the other dimensions. Oops. So with just a few minutes before the Dan Rather interview, Kevin and I rapidly eviscerated the car, and when the back seats were laid down--oh boy!--we were able to get about 80% of the couch in.

Having a couch stick out the back of a car would be fine if we weren't about to park on the streets in New Haven for 5 hours. The Yale kids don't have to worry about urban crime too much since their buildings look like they could withstand an assault by the huns if they couldn't get their hands on pirated electronic key cards (no, seriously, they look like impregnable medieval structures). Luckily, before pulling out of Ikea, we had the wisdom to try pushing the front seats forward and jamming the whole thing in. And it worked. So we drove to the venue with the ass of the couch jutting out, parked, and in the middle of 5pm foot traffic around the Yale campus we casually exited the car, smashed the seats forward and pushed the beast all the way in. Then left the overstuffed ride on the streets while we learned about fish, news, and how to make a Wiskey Sour the New Haven way. Going home was a breeze, literally, with the couch peeking out towards the south like it wanted to return to Ikea the whole time.

I don't have any feedback from Oregon or Florida, but at least one person caught at least one of the Los Angeles shows this weekend. Producer Daniel kindly scanned the stub you saw at the top of this page after he watched Tower 37 at the Laemmle's Sunset 5 in Encino. His report follows:
Went to see T37 at the Leammle this morning. The film looked great and sounded even better. I don't know if this theater had the best sound system of any of the theaters I have seen the film in, or if the DCP just has amazing audio quality, but I've never heard the soundtrack sound so vibrant and full. It was a really immersive experience, also I had the rare opportunity to just watch the film and enjoy it rather than having my attention on gauging audience reaction.
I'm so glad we've now had multiple confirmations of the success of our home-grown DCP; see this thread for information about our process if you're in search of making your own DCP.

This coming week includes more screenings in Florida and California (Sonoma and Beverly Hills, in particular). So there's sure to be news to share after they've come and gone.

Monday, April 5, 2010

A year and counting

Tower 37 concept painting by David Cahill, 2005

Producer Daniel reminded me last night that Tower 37 began its festival run with a screening in Providence on April 4, 2009 -- one year ago (yesterday). What an incredible year it has been, and contrary to what I anticipated when this all started, in many ways we are just warming up. Our success at certain festivals has translated into invitations to other fests, so with luck Tower will be showing even more broadly as 2010 continues.

Marking the anniversary was a wonderful review in Southern Oregon's News Source, the Mail Tribune. Writing about the Ashland Film Festival (we are a part of their Animation Shorts program), Bill Varble writes:
Passing on the usual templates for computer animation — the innocuous "family cartoon" and the special-effects blockbuster — director Chris Perry has crafted an quirky, eye-popping little narrative with a point.

Tower 37 is (a) a super-size water tower and (b) an example of hubris. It is monitored by a low-level functionary unaware of (and probably indifferent to) its disastrous environmental consequences. Then one day it's struck by (a) terrorists, (b) heroes, (c) inexorable fate.

This is a visually stunning little film that proves political stories can have some punch.

So happy birthday of sorts to our little film, with thanks and congrats to everyone who has been a part of it!


Tower 37 concept painting by David Cahill, 2005

Tuesday, March 23, 2010

From Towers to Turtles: Caldera


As Tower 37 has been winding down its festival life, I have been putting more of my animation energies into a new film: Caldera. This beautiful and thoughtful short about a girl struggling with mental illness is the brainchild of Evan Viera and Chris Bishop, two long-time collaborators and friends who birthed the idea when they were teaching animation in China. The film is one of the first two films (the other being Bassam Kurdali's Tube) being produced in Hampshire College's Animation Incubation Studio. Locally, it's the "Nerd-o-Drome."

My responsibilities vary on Caldera. I recently finished rigging the turtle character, which I had previously done some shading R&D for as well. Now I'm going to spend some time doing what lots of people have tried but most, in my opinion, have failed to do very well: get anime-style 2D "toon" renders out of a 3D pipeline.

I don't want to start a charged aesthetic debate here, rather, I'll do my best to be scientific and present reference images, analyze them, and post the results of my efforts. In other words, this is an engineering challenge. Evan and Bishop have done their work coming up with great concept art; I'm going to see if we can get motion that does the art justice:


Bishop has done some turtle animation in an underwater shot which I'll be testing turtle shading on; Cali (the girl) will come a little later when he's done with a shot that features her. Cali's going to be harder for lots of reasons which I'll get into in future posts.

So for now, the above concept painting will be my target for the look of the turtle, even though the shot I'm working on is staged further away and features him (him?) in profile. The first image from this post is a comp I assembled during shading R&D, with painted texture detail by Evan, also based on the same concept painting. The main features are looking good, though the edge lines are visibly absent, and of course motion causes everything to go crazy. Making one frame is pretty easy; the real challenge here is going to be to make it look right over time!

Sunday, February 28, 2010

Ending with a bang

Well April seems to be THE month for Tower 37. April 2009 was our premiere month and we showed in 7 different fests. This April, we are already slated for 9 fests and there are still some we haven't heard back from. I keep the calendar as up to date as possible, so use it.

Some March/April festivals of note:
I have one story to share in advance of the big fest month; others will certainly follow.

You go to a film festival and want to see some animation, right? So you go to the animated shorts block. Makes sense. Unfortunately, though, at the Tiburon International Film Festival this week Tower 37 is NOT in the animated shorts block. Which wouldn't itself be a tragedy because we're paired with what looks like a cool movie about surfing. Except... they're at the exact same time. So you have to choose: animated shorts or Tower 37. I hope there's a good surfing contingent in Tiburon.

Friday, February 26, 2010

Making a DCP entirely with open source tools


this technique is now obsolete - try the latest method instead!


Here are the steps I followed to produce a DCP for the 11-minute short film The Incident at Tower 37. It has ingested and played properly on a Doremi DCP-2000. The projector was a Barco model. Everything below was done on a Linux machine.

Credit where it is due: as I mentioned in an earlier post, I'm building off the work of the people behind asdcplib and OpenCinemaTools, and the users on the Red user forums who have published software and instructions that they have used/created while traversing this bumpy path. Big thanks to Wolfgang, Pavel, Marc, Samson, and Josiah.

In the interest of brevity, I'm not going to explain why I chose program X over program Y -- those interested can read my previous posts where I go into more of those details. Also, I'm not trying to present the be-all, end-all DCP manual here; this is just what worked for me!

Step 0: prepare sources

My source video was a 24fps lossless QuickTime movie, 1920 x 1080 (16:9). For the purposes of this document, call it INMOVIE.mov.

My source audio comprised of six wav files for Dolby 5.1 surround, each 48kHz mono.

Step 1: export PNGs from source QuickTime movie

Tool: ffmpeg
Version: SVN-r21770 (compiled locally)
Command:

ffmpeg -r 24 -i INMOVIE.mov -f image2 %08d.png
This marches through the video file outputting a lossless, compressed PNG 24 times per second.

Step 2: convert to 12 bit per channel XYZ color images
Tool: ImageMagick's convert
Version: 6.5.9 (compiled locally)
Must be run once per PNG frame.
Command:

convert FRAME.png -type TrueColor -alpha Off \
-background black -extent 2048x1080-64 -depth 12 \
-gamma 0.454545 \
-recolor "0.4124564 0.3575761 0.18
04375 \
0.2126729 0.7151522 0.0721750 \
0.0193339 0.1191920 0.9503041" \
-gamma 2.6 FRAME.tif
This takes a 1920 x 1080 PNG from step 1, removes any alpha, pads the image with 64 pixels of black on each side so that it becomes 2048 x 1080, sets the bit depth to 12 bits per pixel, and does a linear-space color shift from RGB->XYZ. Then it writes the image out as a TIFF.

Upon further reading, I interrogated my own decision to force the 1920 x 1080 images into a 2048 x 1080 container by padding with black. Apparently, you only need one dimension of the source imagery to match either 2048 or 1080 and the OpenJPEG encoder will do the right thing.

The new conversion line I used today omits the padding and looked stellar at the theater just moments ago:
convert FRAME.png -type TrueColor -alpha Off -depth 12 \
-gamma 0.454545 \
-recolor "0.4124564 0.3575761 0.18
04375 \
0.2126729 0.7151522 0.0721750 \
0.0193339 0.1191920 0.9503041" \
-gamma 2.6 FRAME.tif
This must be run one frame at a time, but it's very easy to distribute ranges of frames to multiple processors if you have them.

Step 3: convert TIFFs to JPEG-2000
Tool: OpenJPEG's image_to_j2k
Version: 2.1.3.0(compiled locally from subversion revision 543)
Must be run once per TIFF frame.
Command:
image_to_j2k -cinema2K 24 -i FRAME.tif -o FRAME.j2c
This takes longer per frame than convert, in my experience. About 2x longer. Also easy to distribute to many machines, however.

Step 4: make all the necessary DCP files
Tools: OpenCinemaTools
Version: 1.1.2 (compiled locally)

This step has five substeps, each of which generates one or more of the files needed for the DCP. Naming conventions are very important in DCP land, so I highly recommend that you read about them yourself and make informed choices. When you see DCPFULLNAME below, that's shorthand for what I used, which was the mouthful:
TOWER37_FTR_F_EN-XX_US-XX_51_2K_ST_20100212_OV
Command A (create a video MXF file from the folder of J2K files):
asdcptest -v -L -c PROJ.video.mxf FOLDER_OF_J2KS
Command B (create an audio MXF file from the six wavs):
asdcptest -v -L -c PROJ.audio.mxf left.wav right.wav \
center.wav sub.wav surrLeft.wav surrRight.wav
Command C (create an XML composition playlist):
mkcpl --kind feature --title DCPFULLNAME \
--annotation DCPFULLNAME --norating \
PROJ.video.mxf
PROJ.audio.mxf > PROJ.cpl.xml
Do check the output of command C and confirm that the durations of both video and audio are identical. The XML tag for this is "IntrinsicDuration."
Command D (create an XML packing list):

mkpkl --issuer BitFilms --annotation DCPFULLNAME \ PROJ.video.mxf PROJ.audio.mxf PROJ.cpl.xml > PROJ.pkl.xml
Command E (create the ASSETMAP and VOLINDEX XML files):
mkmap --issuer BitFilms \PROJ.video.mxf PROJ.audio.mxf PROJ.cpl.xml PROJ.pkl.xml

I used a bit of shorthand above since I did not identify enclosing folders. I suggest that if you make a DCP this way, you use temporary folders for all the inputs (and the results of steps 1-3), then create a finalDCP folder which you populate with only the files that will be part of the eventual DCP itself (namely, the 2 mxfs and the 4 XML files that come from step 4).

Step 5: Get the DCP onto a Hard Drive
Tools: regular linux shell

I need to get the specific instructions from Josiah, but basically we formatted a UDF disk solely for the purpose of holding the DCP (partition type 0x83 if I remember correctly). Then I copied over the 6 files that emerged from step 4 right to the root of the new disk. And it's done!

Some quick notes:
  • It is important that you check your XML files to make sure the file paths don't contain any incorrect information: if you aren't careful during step 4, your file paths in the XML may be incorrect! Here's what one of my entries looks like in my final ASSETMAP.xml file as an example: file:///tower37_complete3.video.mxf
  • I don't know what happens if your audio and video durations are different, so I was careful to make sure mine were not. Check them in the CPL (the tag is ).
  • Work with a small movie file for starters, a minute or less, until you get the steps ironed out. Then move to your full film.
I hope this is useful for some of you! If you see any mistakes above, or have suggestions to improve or generalize this pipeline, please let me know.

Monday, February 8, 2010

Making a DCP, post 4

Today I got to watch my latest DCP of The Incident at Tower 37 in its entirety at the theater! 5.1 surround! Crisp and clear picture! The only problem is, it looked like this:


instead of like this:


You just can't have a movie about water where all the water is orange/brown.

So what the heck went wrong?

My current image transformation pipeline is as follows:

QuickTime movie -> PNG files (by way of mplayer)
PNG files -> 12 bit per pixel, color corrected TIFF files (by way of Imagemagick's convert)
TIFF files -> JPEG-2000 files (by way of image_to_j2k, courtesy of openjpeg)

Step one of figuring out this problem: isolate the place where it appears. Luckily, my test from last week looked great, so I have an example of a working set of images to compare with the broken set. As it turns out, my original PNG files are messed up. I can't believe it. I generated over 15,000 PNG files and never actually looked at one of them to confirm that they were right. Rookie move.

The good news? The rest of the pipeline worked great 'cause my bad-looking PNGs (with the brown water) made it all the way into bad-looking JPEG-2000s on the theater screen. Half full, baby!

So let's dig into the PNG making process. It hasn't changed since I made the working test. In other words, my mplayer line is the exact same as the mplayer line I used for the test. So the problem is likely further upstream.

What did change? The source material. The excerpt I tested on last week was a QuickTime movie I made by trimming a final version of the film using QuickTime Pro on a Mac. I trimmed it, then saved it out, flat. Aha. This could be the problem. The QuickTime file I used for the full version had a number of video tracks on it (since I added color bars within QT Pro). Perhaps mplayer didn't know which stream to use, or it somehow misinterpreted the stream itself?

Oh now I have fallen into the rabbit hole. I get different results from mplayer's PNG exporter based on what frame I start with, on what kind of PNG compression I set, and more! It appears to be completely unreliable, at least with my multi-layered QuickTime source file. I'm going to take a suggestion I was given online and check out ffmpeg as an option to create the PNGs, and I'm also going to be cleaner from the outset and make a flat QT source movie with only one video channel.

More to come. Having to export and re-convert all these images again is going to force me to finally distribute this process to our cluster. I can't stand having days pass between tests!

Tuesday, February 2, 2010

Making a DCP, post 3

Victory! The smallest taste, but a good one.

After last week's close-but-no-cigar attempt, I realized I missed a critical last step in my DCP-making script. I had somehow spaced on creating the ASSETMAP and VOLINDEX XML files. Once I caught this, I rolled out a new DCP and brought it to the theater today. Plugged it in, and was pleased that the ingest feature recognized my disk. Instead of the properly-formatted DCP name, however, I saw a UUID in the ingest window. So there are still some kinks to work out.

Aside for the geeky: the UUID that appeared in the ingest window was the UUID of the packing list. I think there's an XML annotation tag or something similar I could have used in that pkl that would have made a better name appear in the ingest window.

Once we ingested the DCP, the next problem was that the CineLister elements window which lists all the DCPs didn't show ours. A reboot made it appear (my theory was that relaunching the program would re-scan the assets folder -- never got to test that theory but the reboot worked).

Aside: the list was sorted by the ContentKind tag, as in, feature, trailer, test, and so on. This is set in the Composition Playlist (CPL) file like so: test.

At this point my pulse quickened. Dave helped build a new playlist with the proper magic incantations to first show black then configure the projector to 2K flat, and we ran it. Though there were scaling issues (he said the projector was at 1k instead of 2k and that it was an easy fix), there was Leed, big as hell, climbing up the side of the tower from u2_01. That's the same shot that opens the online teaser. Heck, I'll embed it again. Too many posts without color recently.



A word on color: the color looked beautiful. I need a longer exposure to it before I say for sure, but thanks to Pavel and Wolfgang for the color transformation matrix they shared on the RedUser forum about DCPs. So far, it's worked great.

So this week I'm going to try and roll out a complete DCP, with 5.1 audio. I'll see if I can work out the kinks in the naming issues, but with luck I'll have more to report next week from the theater!

Tuesday, January 26, 2010

Making a DCP, post 2

I was knocking at the door of digital cinema today, but sadly I was not let in.

With gracious assistance from Dave and Dave at our local digitally-enabled theater, and ongoing Linux help from Josiah at Hampshire, I was actually able to plug a properly-formatted USB hard drive into a Doremi DCP-2000. But I clearly don't know enough about making proper Packing Lists because the ingest function on the DCP-2000 did not detect/recognize any of my files. Time to go back to the spec and the forums and see what I missed about those critical packaging steps (If you want to know more about packing lists and other DCP components, you can find the Digital Cinema System Specification at the Digital Cinema Initiatives website).

Curiously, I felt like I was hacking for the first time in years. Sitting in the dark projection area of the theater, we were studying DCPs that were shipped to the theater on hard drives to try and ascertain how they were different from the ones I had made. Even though we didn't figure it out, it was fun to tweak the package and try the disk over and over again while flickering light from the films illuminated our work. I kind of felt like I was in a sub. It was a long, narrow, enclosed space. The low-frequency drone of the many fans and the many spinning 35mm projectors drowned every other noise out. And just through the little window next to the digital projector, you could see the world of Pandora in its kind-of-like-the-bottom-of-the-ocean glory.

Saturday, January 23, 2010

Making a DCP, post 1

The next phase in Tower 37's exciting life is its conversion into a Digital Cinema Package (DCP). For those who don't know, DCPs are the distribution formats for digital cinema. You can think of them as the replacements of 35mm prints. Those fancy digital projectors showing all sorts of movies at the multiplexes these days take DCPs as input. The DCPs are shipped on hard drives which can be easily plugged into the projectors for complete digital delivery.

Of course I already have Tower 37 as a lossless HD QuickTime file, complete with 5.1 surround sound. You'd think (hope?) that going from one digital format to another would be as easy as, say, converting AIFF audio files to mp3 (aka "ripping" music tracks). But guess what? It's only easy when someone has written, compiled, tested, and released software for doing so. Although I have known this as long as I've worked on computers, it's easy to forget since I rarely encounter a media file these days that I cannot convert perfectly with one of many free software packages.

There are some commercial DCP-makers out there (easyDCP and Wraptor are two), but they are fairly expensive. And, damn it, if we're really just talking about some fancy conversions to a non-proprietary format, there should be something free and available for everyone to use. So yes, I've grown attached to finding an Open Source solution.

Big props so far to the people behind asdcplib and OpenCinemaTools, and the users on the Red user forums who have published software and instructions that they have used/created while traversing this bumpy path. But it's all still so underdeveloped that I've had to recompile stuff locally, make fixes in build scripts, and code my own little process to encode a brief excerpt of Tower 37 into a DCP. I'm hoping to see the test on Tuesday at a local theater, and then to try it out on the whole film if all looks good.

I promise to post a thorough guide if we succeed!