Hey, I Can Do Motion Graphics, Too!

I was pleased to see that these videos I animated at Ninjaneer have been publicly released.

The project was very straightforward, so there’s not much to sink my teeth into with one of my trademark write-ups. Assets, storyboards, and voiceovers were all provided for us. Heather Knott was lead on the project, and we coordinated and cross-checked to ensure all our flourishes and tweening were consistent, so the videos would have a unified style. The videos were animated in Adobe After Effects from assets provided as Adobe Illustrator files, and compression for delivery was done with Handbrake.

Now I am an Architect

One day at Ninjaneer Studios, Joe Rosa called in to the office while off-site with a question. “Do you think we can do some architectural visualization?”

The response? “And how!”

We were given a floor plan and an example of a 3/4 aerial cutaway view of a home. I was assigned to the task.


The first step was to trace out the walls and extrude them into place. Once that was done, I filled in the lintels above the hallways and split out the different rooms and surfaces, assigning them loud, contrasting colors  so that I’d be able to differentiate them at a glance and would be less likely to forget to assign one a real texture later on than I would be if I left it at default grey.

Next, I began filling in furniture and other objects from our stock model library. A handful had to be tweaked to more closely resemble the illustrations on the floor plan, but I was able to match the original spec fairly closely. I then popped in some temporary lighting (just a single point source in each room on the ceiling).


Having roughed in the furniture, it was the work of moments to adjust the model to be used for the final cutaway view. The walls were clipped down to around 3/4 of their full height, and the camera moved outside of the structure. Once in the birds-eye view, I began applying rough texturing to the apartment. A turnaround was rendered, and this was the result.


It was missing a certain je ne sais quoi, and, not knowing what that could be, I FBX’d the model out of Lightwave and sent it over to Heather Knott, a professionally trained interior designer. She unclipped the walls and raised the camera, as the lowered wall height made the rooms look deceptively large, and replaced my haphazardly placed furniture with sets that actually looked of a piece, proving the importance of both teamwork and expertise


A version of this post appeared on the official Ninjaneer Studios blog.

We Do Not Have Time For Your Damned Hobby, Sir!

The Red Silk Thread is an opera by composer Stella Sung with libretto by Ernest Hilbert. It tells the story of Marco Polo’s return to Europe at the end of his famous voyages through Asia. This past April, a workshop performance took place at the University of Michigan, in advance of a full premiere at the University of Florida in April, 2014.

Ninjaneer Studios provided virtual sets for the Opera, projected behind the actors and used in place of physical scenery. There are six principle settings in the drama: the Court of Kublai Khan, the Gardens of Kublai Khan, a Chinese treasure ship at sail, the Court of the Persian King, a Genoese prison cell, and a desert dream-scape.

Thanks to my love of all things nautical, I immediately volunteered to take over the ship scene. The opera’s creative team had already put together some research on the types of boat they had in mind.


I used this as a jumping-off point, and found additional materials. My primary reference ended up being a high-resolution photo of an exquisitely detailed model of a Ming Dynasty treasure ship. While this exact design is of dubious historicity, especially for an ocean voyage, and dates from at least a hundred years after Marco Polo died, information on the ships of his time was sketchy at best, and what I did find didn’t look nearly as impressive.

I began by roughing out the general shape of the hull in Lightwave Modeler. Even though the concept only called for the deck to be seen, I wanted to have at least a foundation for the exterior in case it was needed later. It also made it easier to ensure the deck was proportionate. I matched the camera angle as best I could to my reference photo in Lightwave Layout, and switched back and forth while adjusting the hull. I’ve found that while it isn’t a perfectly accurate technique compared to working off a set of orthographic schematics, it’s much better than eyeballing it.


After completing the majority of the modeling, I began texturing the model, ending with populating the deck with various scenery objects


I then presented Dr. Sung with a set of potential camera angles.

After getting the go-ahead for a 3/4 view towards aft, I began setting up the scene and lighting. The motion of the horizon was based on stock footage from a locked-off camera on the deck of a boat. A long-exposure photo of the night sky was used as a placeholder. I started with my standard ocean model, but had the usual problem with flickering as it got closer to the horizon. A combination of making the waves larger and rendering a limited region of the frame at a much higher resolution blunted the problem enough that it was no longer visible after post-processing.

The frame was split into several passes for rendering. This was primarily for efficiency, so only passes which required lengthy render processes like extreme antialiasing or multi-bounce radiosity would be put through them, and simpler elements could be rendered at reduced quality or, occasionally, as single frames.


I prepared a test composite in Photoshop, which I passed along to Christopher Brown, who handled the compositing for all scenes in the opera. He built on my design, unifying it stylistically with the other scenes, and altering it to fit with the limited staging available for the workshop performance.

Initial Photoshop Test Composite

Initial Photoshop Test Composite

Final After Effects Composite

Final After Effects Composite

Over the next several months, all of us at Ninjaneer will be revising and expanding our virtual sets for the premiere at the University of Florida next year. I don’t want to ruin the surprises we’re planning, but I wouldn’t be surprised to see a few more ships in the Great Khan’s fleet.

A version of this post appeared on the official Ninjaneer Studios blog.

Wetter is Better

While working on a landscape for a forthcoming project at Ninjaneer Studios, I found that the animated reflections in some open water took prohibitively long to render thanks to a combination of the reflections and the diffused lighting of the scene. There had to be a quicker process that gave similar results, so I began investigating alternatives.

Render With Full Lighting and Raytraced Reflections

I found that Adobe After Effects has a filter called Displacement Map, allowing me to distort one layer based on another. One big drawback to this filter is the way it displaces, resulting in artifacts at the edge of the screen and other transparent areas where it attempts to sample data that is out-of-frame. This was easy enough to solve, but required some creative shot breakout.

Displacement Map (Note the ragged edges along the bottom and left sides)

Returning to Lightwave, I rendered out a reflection pass of the foreground elements. I changed the surfacing of the water so it was mirrored, deleted everything except the foreground elements, and set the foreground element to be unseen by the camera. This gave a pass consisting only of the reflection of the foreground, accounting for the perspective distortion in the reflection.

Thanks to the distance, there wasn’t enough perspective difference between the background and sky and their reflections to require a true reflection pass to be rendered, so I just reused those, flipped vertically. The clouds were a single panoramic plate, slowly receding, so those were likewise flipped vertically and layered into the basic reflection composite.

With the reflected version of the scene now created, all that remained was to make it look like water. I returned to Lightwave and rendered out basic diffusion and specularity passes from the original water object. To get the input for the distortion map, I created a duplicate of the water object and took surfacing in the bump channel and reapplied to to the color channel. After zeroing out the other channels and setting luminosity to 100%, I rendered it out, creating a shifting cloud pattern which corresponded perfectly to the diffusion and specularity passes I rendered earlier.

Diffusion, Specularity, and Bump Passes

Back in After Effects, I brought these passes in and layered them over the reflection composite I had created. I hid the bump layer and added an adjustment layer between the reflection elements and the diffuse and specularity layers. I applied a displacement map to it and set the bump layer as the input. All that remained was to tweak the horizontal and vertical displacement to make the reflection appropriately wavy.

The Final Post-Production Reflection

A version of this post appeared on the official Ninjaneer Studios blog.

Ninjaneer Studios Projection Mapping Display at Otronicon

Recently, my company, Ninjaneer Studios, was invited to exhibit at the Otronicon event. We decided to set up a small-scale 3D projection mapping show. My specific contribution was the cityscape at the end of the show.

While Ninjaneer generally uses Maya for 3D work, I use LightWave occasionally, especially in projects where I’m working solo. This was my first big test of a cross-platform workflow, since the template for the stage and projector set-up was a Maya file, I wanted to model the city buildings in Lightwave so I could work with the greatest speed, and my scene would have to go back to Maya for rendering by my colleague Christopher Brown, who was in charge implementing the show. It was much easier than I expected, though it helped that thanks to time constraints and the nature of the final output, I elected not to give the buildings more than the simplest of surfaces.

Design doodles

The first step was to do research. I had five-and-a-half rectangular silhouettes, and needed to make each building as distinct and interesting as possible. The first building from the left was inspired by a computer-animated video showing the construction of the replacement World Trade Center tower in New York. I took advantage of the transparent design to incorporate an elevator at each corner, adding some life to the building.

Building two was primarily based on the Flatiron Building, also in New York. It was the last or second-to-last I did, and I felt I was being a bit too modernist with the others, and that “Otron City” (as no one else called it) needed some older architecture. I also wanted to make a small reference to the apartment building which was the setting of my University class’s graduation project, the animated short “Squeaky Business.”

Building three was a lucky break during research, coming from a Google image search. I eventually learned it was a (new? Proposed? I never found a detailed description) building in Miami. I actually decided building four would just be a concrete cube with some fans in it before  I found out how the practical boxes would be arranged, since it was the only thing I could think of for something so small. It ended up fitting perfectly on top of number three as if it were a machine room. The inclusion of the fans added some more animation to buildings.

Building five was loosely based on the Swiss Re building in London (which I had never actually noticed before the most recent season finale of “Doctor Who,” where I briefly thought it was a special effect because it was so aggressively modern).

Building six is my personal favorite, and is based on the HSBC Building in Hong Kong. I became aware of it during the research process, while I was looking through a coffee table book I got on clearance some years ago in case something like this happened, Masterpieces of Modern Architecture.

Our template 3D set

I exported the Maya template scene for the show’s setup as a Collada file, and brought it into LightWave Modeler. I modeled the six buildings and sent them back to Maya using LightWave’s FBX exporter, since I wanted to try all the interoperability. Due to time constraints and the way the fact that fine detail wouldn’t be very apparent in the final output, the Maya versions had just simple values set for the shading. I set up a basic scene with duplicate buildings filling out the background and a skydome rotating around the scene to give the illusion that the time of day was changing and really sell the simulated depth of the projection, as well as animating the fans on building four and the elevators on building one in a cycle so the whole thing could be looped.

The Maya version of the cityscape being projected

During the course of Otronicon, there were periods of downtime where I returned to the LightWave version of the city. I  added texture maps to the window boxes of the buildings, gave the rest of the buildings more complicated procedural textures, and added basic lighting setups. Once I was done, I rendered the “sweetened” version of the city as a still in day and night versions, to be used on our idle screen in between shows.

The LightWave daytime version of the city being projected

The LightWave night version of the city being projected

A version of this post appeared on the official Ninjaneer Studios blog.