I started a new blog just for the projection mapping project.
Just added these to it:
I started with this tiger and then re-shaped its head, tweaked its texture map, and then highly tweaked its texture for the bronze version.
I started a new blog just for the projection mapping project.
Just added these to it:
I started with this tiger and then re-shaped its head, tweaked its texture map, and then highly tweaked its texture for the bronze version.
I animate and render what the projector will playback and then project that animation back on the facade model, that has a similar texture to the real building, to simulate what it will look like on site.
The first animation has three statues moving their arms. After starting the rendering process I went for a walk (for those new to the blog that’s what the name means render + walk because you can’t do much else on the computer while rendering). It occurred to me that when this is projected onto the building, the statue arms will be quite a distance from the actual statue due to the facade’s depth. This isn’t much of an issue when looking at the building from front-center especially near the projector, but off-axis I felt like it may suck.
So I rendered a view off-axis to check.
I didn’t like it for two reasons. One, my original hypothesis was correct and the arms are pretty far away. This is an issue for about a third of the crowd thanks to the trees that force the audience towards the center of the viewing area, but I still don’t like it. The other reason is that any illumination on the actual statues makes them stand out as statues so I feel like we won’t be able to really remove them like I hoped. The side view does look cool even without illumination on the sides of the pillars and arches. It’s possible to project onto them too, but beyond this project’s budget.
So I created a new animation. This is better in terms of making it so the statues are seen when I want them to be seen. However, there is a moment when I have the statue “niches” rise up behind them, but it’s too late, they can already be seen. The lesson is that as parts of the building are highlighted or animated they need a strong silhouette – subtlety will be lost as soon as there is any light on them.
I’ve left the exterior lanterns, doors, and windows their natural color, which is dark, on the projection model for now. It is our goal to cover those with a material that reflects light better.
Here’s a fun experiment… A little bit of depth shading on a blueprint.
When I was preparing the model to simulate the projection on the building I found that some of the proportions of the statues were off by too much to let go. Thanks to some new photos I took of the building I had more modeling work to do to get it right. I had to spend some time moving parts of the statues around until they properly aligned with the real statues. I also tweaked the building, windows, and doors a little. Was a one step forward, two steps back moment, but it looks a lot better now and I have a lot more confidence in the projection.
The animations above were 750 frames each. Rendering them and then rendering the projection simulation was 4500 frames. Plus some re-rendering sections after deciding to make some tweaks. I use two computers to render. One is a Retina iMac and the other is a custom-built Linux/Windows PC. The iMac renders using its CPU (4 CPU cores/8 hyperthreaded cores) and the PC renders using two Nvidia GPUs. In some cases the PC can render four or more frames for every one the iMac can render because the GPU acceleration is so great.
Unfortunately/fortunately the Blender Cycles developers have been working hard on the GPU acceleration including, BTW, developers at AMD working on making it so Cycles is not limited to Nvidia GPUs. I say unfortunately because on one of the animations I found the PC Cycles render was crashing every 40 frames or so. It’s a sad morning when you see that the faster computer hadn’t been rendering for the last 6+ hours…
I don’t have time to troubleshoot the issue. It’s a mix of Blender/Cycles and Nvidia software and it’s not that bad in the grand scheme of things. To deal with it I decided to dust off a python script I wrote several years ago for a compute cluster we had at UCA. It created a job script for the distributed computing software. I was able to simplify it quite a bit and have it spit out a shell script (like a batch file for you Windows weirdos) that I could run so that Blender would render each frame as a new job rather than one job rendering all of the frames. Essentially it changes this one line that I manually type in a terminal:
blender -b blendfile.blend -a
(this tells blender to start without a UI to save resources and then render the animation based on the project’s settings)
To this listed in a shell script that I start by typing render.sh:
blender -b blendfile.blend -f 1
(render frame 1 based on the project’s settings and then close Blender)
blender -b blendfile.blend -f 2 (then render frame 2)
blender -b blendfile.blend -f 3 (then render frame 3)
Works like a charm. I could make the python script do a lot more tricks, but for now this is nice.
Last, Blender has a simple method of allowing multiple computers to render the same animation without using a render management application. Set the output to not overwrite and to make placeholders. A computer will look for frame 1 in the folder where the rendered images are saved (the output folder) and if it sees it then it will look for frame 2, etc. When it finds a frame that hasn’t been rendered it will create placeholder image, render, and replace the placeholder with the finished image. Each computer can claim a frame as they go, which is nice since one computer renders so much faster than the other. After Effects works this way too if you use multiple computers to render.
Since I’m not using a management system there is no check to make sure a frame actually gets rendered properly so I also wrote a python script back in the day that looks for frames with zero bytes to tell me if there were some bad frames. I might automate that with my other script, but I don’t want to dedicate the time to that right now. The macOS Finder does a nice job of listing “zero bytes,” which stands out in a list, or listing by size, so I’ve manually deleted bad frames too. To render those bad ones after deleting I just run the first command with the “-a” to find missing frames and render.
The 90th anniversary of the opening of the Little Rock Central High School building and the 60th anniversary of the Desegregation Crisis are coming September 18-25, 2017. It will be a week of activities that commemorates the anniversaries and culminates in an event that features a projection mapped animation on the façade of the high school building.
This first blog post is about a major milestone for the animation, which is a completed virtual 3D model of the facade including its four statues. Now that the model is complete we can finally get to work. The majority of the animation we create will be based on the architectural structure of the facade. I can’t believe February is almost over! It took me over a week longer than I expected to finish this phase of the project due to distractions including an illness that caused horrible headaches as well as external issues and projects and some personal goals beyond the projection mapping project. Hopefully the headaches are past – I can manage the rest.
Here’s the basic model:
We can add lighting that can make it appear as if we’ve hung actual lights near the building:
We can also play around (this is just a test and not final imagery):
And add stuff:
Here’s what it should look like at the campus. We intend to add some lighting around the central facade as well.
The limestone part of the high school’s main entry has several nice 1920s Art Deco details and is sculptural in nature with deep set doors and windows and jutting pedestals for the four statues. I still need to add the letters for the statues. We will hopefully be able to temporarily cover the windows and doors so they won’t be so dark. We will also need to cover the lanterns so they will reflect the projections.
When facing the building the four statues from left to right are Ambition (male), Personality (female), Opportunity (female), and Preparation (male).
I’ve been told that the four statues were “ordered from a catalog” and not unique to the building project. Their body styles are reminiscent of Michelangelo sculptures with their long muscular arms and Greek facial features. Preparation must have been the sculptor’s version of David – see his contrapposto stance, physique, lowered right arm (holding a scroll in this case), raised left arm holding a book instead of a sling, and a left-facing gaze.
Their dress is based on ancient Greek Chiton. The sculptural style is “wet drape” where the cloth clings to the skin to reveal the figure’s body underneath. This is most obvious in Preparation with his torso that practically looks bare, and you can see it in Opportunity as well. I modeled these statues by starting with nudes so I could get the wet drape look right.
I think later blog posts will go on another website dedicated to this project. Geeky stuff will stay on this blog though.
I modeled the facade by building basic geometric shapes and aligning them to a photograph I took last summer. I actually got most of this model finished by last fall. In January I added the smaller details and lanterns.
The statues were very time consuming and I knew they would be… I downloaded a few nude “base models” from Blendswap, which are designed to be a starting place for creating a character. For the females, I used the body of one and the hands and head of another. After splicing them together I pushed and pulled and extruded faces, edges, and vertices to make them match the sculpture. I also used sculpting tools to smooth and guide areas of the model. The models are considered low-poly, which makes them easy to animate and handle in the 3D software. When they are rendered they are smoothed using Pixar’s subdivision surface technology. It turns a blocky mess of polygons into flowing garments.
For the capes I essentially started with a line and extruded it and moved it to create the overlapping folds. For smaller details I just cut the larger polygonal faces into smaller ones that I could then push, pull, and sculpt into their final form.
Once a model seemed ready to go I aligned it with the main photo of the facade. I had closeups of the statues to do most of the work, but since the photos were taken from below, the proportions were not accurate so aligning with the main photo was key to getting them the correct overall size. Because of the proportion issues and a number of other things, I modeled them just looking at my photos rather than trying to align them to photos in the 3D viewport, which is common for character design.
While modeling, the virtual statue is standing in a T-pose. I used a T-pose because we will most-likely apply some custom motion capture animation and our motion capture system (Perception Neuron) requires a T-pose to start. Another common starting point for a character model is an A-pose, which is more relaxed, but not a good idea for our purposes.
After getting the proportions correct I added a skeleton to the model. The skeleton is based on the needs of the motion capture system. The model is bound to the skeleton so whenever I move a bone, the model with deform with it. I used the bones to pose the model to match the statues. I actually animated the movement so I could go back to the T-pose easily as well as test the model deformations as the bones moved. Some of the dress is not driven by the skeleton at the moment. That will come later via cloth simulations.
I modeled the statues this way because I knew we would be animating them and they needed a structure that would support animation. A more accurate alternative to modeling by eye would have been to scan the actual sculptures. Scanning could be done via LIDAR, but would have been prohibitively expensive. Or, it can be done with lots of photographs from multiple angles via photogrammetry. Shooting the sculptures with a drone and extracting frames from the video would have been a way to get the images needed.
The upside to scanning would be a very accurate model, but there are downsides. One is that the scan would have to be retopologized, which can be time intensive, to make it animatable. Another is that the models would not have a backside and the arms would be stuck to the bodies so they would need hand modeling to create the back and make the arms free. I would have been up for these things had they been scanned last fall. Unfortunately they are 22 feet above the ground so logistically it is not a trivial issue to get to them.
From here it is a matter of lighting, creating cool surface materials, animating the statues, opening the doors, or whatever else we come up with. Even things that don’t directly change the facade, such as showing a photo, will be rendered against the virtual facade so the photo will appear to interact with the building.
I used Blender to do all of this work. It is just a joy to use. Some things that came in handy (these aren’t necessarily unique to Blender BTW):
It’s been five years since I’ve designed a theatrical production with UCA Theatre. My last design was The Bacchae that was both a set and a projection design project. This time around it’s Radium Girls and again I designed the physical scenery and projected imagery. Radium Girls was directed by my colleague, Chris Fritzges.
About Radium Girls
From wikipedia – “The Radium Girls were female factory workers who contracted radiation poisoning from painting watch dials with self-luminous paint at the United States Radium factory in Orange, New Jersey, around 1917. The women, who had been told the paint was harmless, ingested deadly amounts of radium by licking their paintbrushes to give them a fine point; some also painted their fingernails and teeth with the glowing substance.
Five of the women challenged their employer in a case that established the right of individual workers who contract occupational diseases to sue their employers.”
The play, by D.W. Gregory, tells this story through one of the girls, Grace Fryer, and the president of the U.S. Radium Corporation, Arthur Roeder.
The design team, which was made up of myself and theatre faculty and students, met several times to discuss the play including what the story means and what our production goals were. One of the big goals scenically was to include projected imagery. The main reason for projections was that the play has many scenes in different locations and it shouldn’t be staged with a lot of traditional scenery. The thought was that projections could quickly change and help inform the audience of where the different scenes were taking place. Another overall goal was to use scenery that was abstract and allowed for interesting staging, such as multiple platforms at different heights, rather than being realistic looking. Realism is best used for costumes and properties (props) – the things that are closest to the characters want some authenticity, while the playing space can be more abstract or symbolic.
Chris started the process of developing the design by discussing different themes he saw in the story. The following are a few of the larger themes:
Some visual themes/motifs included clocks, gears, and flowers.
The next step in the process was to do some research. The play’s time period was the 1920s and it recounts actual events so the team, including a student dramaturg (one who is dedicated to researching the play in detail and making his research available to the rest of the team), looked for pictures and articles about the girls, Marie Curie, the U.S. Radium Corporation, radium products and research, and general 1920s trends in clothing, art, and architecture.
I was ultimately most influenced by the work of Hugh Ferriss, the U.S. Radium plant, and timepieces of the era.
Sometimes the set design will just come to me and I quickly work on about three variations of an idea. Not for this play. Instead, I drew sketches of several different ideas and shared them with the design team. The gear and clock influences are a thread throughout the ideas as well as the factory windows, which are referenced in the play. What I was unsure of, was the actual projection surfaces – how integrated should they be into the playing spaces? Also, should we project flat on typical screens or consider other shapes for projection surfaces?
After looking at sketches for a couple of weeks, we decided that we liked three levels of platforms and that they should be round (more feminine shape, clocks, gears, radium symbol). We also worked out the size of each platform. The projection surface ended up taking a little longer, but we finally worked out a projection mapping-oriented wall that had an industrial skyline silhouette at the top. The projection mapping aspect of it was that the screen was not just one plane stretching across the back of the platforms. Instead, it was broken into multiple planes at different angles. Doors through the projection surfaces were the last pieces to go in.
We made some last-minute changes to the heights of the platforms for time and cost savings, which ultimately made the set work better. You’ll notice that the doors are above the platforms in the renderings because I was trying to show the change in height as fast as I could… Also, since it had been awhile since I had done a theatrical set, and I was preoccupied by the projected imagery, Shannon Moore, the theatre Technical Director, was instrumental in dealing with some finishing touches like steps and platforms on the upstage side of the set through the doors.
Lastly, I created a painter’s elevation for the platforms. Two platforms were clock faces and the third was a watch/industrial gear.
After the set design was done we moved onto the projection design. I primarily worked with Chris rather than working with the whole design team. The cast also had some input on projection ideas. Chris and I met three times to go through possible imagery for each scene. In the early meetings I discussed imagery ideas that were documentary-like. Imagery would be based on period photos, actual photos of the characters portrayed, newspaper clippings, etc. As we got into discussing the imagery and getting ideas from the cast I felt that the documentary idea wasn’t working with the production style and ideas. The final overall design concept was experiencing each location using either symbolic imagery and/or closeups of objects that would be in that particular location.
In the scenes that were in character’s homes I tried to focus on fireplace mantels because I wanted to feature some style of clock. I included enough clocks that Chris mapped out the time that should be on each clock face starting at 1:00 and going to 11:45.
The doors didn’t quite work with the concept of closeups and symbolism so I had to come up with a way to change the apparent scale of the spaces depicted in the imagery. During an early rehearsal I attended I saw the problem and came up with a solution almost immediately. I chose to use as much of the screen as possible to do the closeup objects, such as a fireplace mantel, and then change the scale around the door to make it more realistic. I used the scale of the objects and wallpaper pattern to show that if one were to really bend their head around what I created that they could rationalize the different sized objects. I imagined what a door across a room would look like if I were standing close to the fireplace. The fireplace objects would be large in my view and the door small due to its distance away from me.
There were a few places where I tweaked this concept. In the exterior porch of the Roeder home I chose to keep the door in scale, but the house’s siding and eve would be large and out of scale. In the health department I created oversized filing cabinets that dwarf the door. In Grace’s home both doors are used so I couldn’t use the same technique so I made the props, like hanging lights and the mantel clock oversized.
Figure 53’s Qlab was used to playback the imagery on an iMac. A VGA signal was sent to two 4000 Lumen projectors at 1920×1080 pixel dimensions. Both projectors got the same image so they were overlapping each other to increase the overall brightness. Qlab was used to warp the image to counteract the warping from the angled screens (projection mapping!).
Blender was used for almost all of the imagery. I used as many pre-modeled objects as possible to save time. There are some recurring scenes with two newspaper reporters and most of those images were created in Photoshop. I used two computers concurrently to stay productive. My main computer is an iMac and I used it to do the modeling and setup lighting and materials in Blender as well as Photoshop work. I then moved over to an older Linux computer I have with two Nvidia graphics cards. Blender’s Cycles renderer can be accelerated using Nvidia cards (AMD cards are almost ready to accelerate too BTW) so I finalized the shading and lighting and did final renders with it.
Oh yeah, I also made some tables for the show
The show’s overall production quality was amazing. The set, projections, costumes (Designed by Shauna Meador), lighting, props, sound, and performances went together so well. We often talk about a unified production, but sometimes there is one element or another that just doesn’t seem to fit. Not in this case. The show looked really good and was well directed and performed. I can be very critical especially of my own work so I am surprised at how good I feel about the work.
There were problems of course.
Some of the projections:
The images below are a mix of photos and actual projection images. The photos are untouched jpegs from the camera. When I have more time I’ll work on the raw images. The screen in these photos looks a little darker than it actually was live.
Oliver Peters recently posted an article about building a non-Adobe suite of tools. It showed up in the regular email newsletters I get and my colleague, Joe Dull, had some thoughts about it as well. I get where Oliver is coming from by keeping the list of Adobe alternatives to a single suggested suite, but there are a lot more options out there. My students asked for a list a while back so I came up with this (Mac-centric with a sprinkle of Linux). BTW, I do not list products from The Foundry or any of the other great color grading apps because they are generally very expensive – Smoke just barely made the list at $195/month subscription:
Motion Graphics – Visual Effects
Color Correction and Grading
There are lots of options to build a “suite.” Consider some of the reasons to pick your applications here. Oliver Peter’s suggested suite is good overall and could be enhanced by BulletProof if you shoot with a DSLR and/or GoPro. If you need to truly author DVDs then there is Toast or DVD Styler or an old copy of iDVD or DVD Studio Pro (assuming you already had a license). So much depends on your budget, what you expect from a UX, interoperability, and what features in applications you really use.
An all-FOSS suite is a little tough on the picture editor and the FOSS community knows it. I think KDEnlive is the most like commercial editing apps. If you want to build a Linux ecosystem, but are ok with paying for some software then Lightworks is your editor.
Personally, I long for an uber-app rather than a suite. See Smoke, Hit Film, and the upcoming Nuke Studio for examples. Blender is one, but like most of these integrated apps, it does not feature strong audio editing tools.