Hey Google, What did it take to get this project done? 
This project had two aspects: To create content for preexisting displays throughout Las Vegas and to create a series of animations to be played 24 hours a day on a custom dual display at Google’s playground at CES. My first duty was to automate the query and response animations that were to be used throughout the project. Then, I was in charge of one of the larger displays with the most configuration of products being advertised. Finally, I flew out to Las Vegas with the BNS team to finalize and assure all 100+ animations were screen ready for the opening launch at CES.
Animation, AE Automation, Project Manager of Animation
Both query and response bubble size reacted dynamically to the length of text. The text itself also had a custom expression to allow it to write on with a slide controller in order to work with the bubble size expression. Olle Engström designed the animation for all the Google branding elements used in the project.
Source text expression write on. (written by: Dan Ebberts)
s = effect("Slider Control")("Slider").value;
str = "";
txt = value.split(" ");
for (i = 0; i < Math.min(txt.length,s); i++){
  str += (i > 0 ? " " : "") + txt[i];
Photos from Event/
Harmon Sqaure Display/
Breakdown & Build/
The Harmon animation was designed to be modular and was built within a dimensional grid that allowed itself to looped.
An expression was used to automate all the products to reveal themselves based on the camera's location.
Camera Z Distance, Layer Fade in and Out. (written by: Dan Ebberts)
fadeInStart =  XXXX; // Connect to Slider
fadeInEnd = XXXX; // Connect to Slider
fadeOutStart = XXXX; // Connect to Slider
fadeOutEnd = XXXX; // Connect to Slider
C = thisComp.activeCamera; // Or connect to any camera in any comp
v1 = toWorld(anchorPoint) - C.toWorld([0,0,0]);
v2 = C.toWorldVec([0,0,1]);
d = dot(v1,v2);
if (d > fadeInEnd)
else if (d > fadeOutStart)
Fashion Show Display/
Andoid Auto/
Hey Google Animation/
To make this animation easy to create and manage an expression was developed to scale the layer up and down within its on timeline length.
Scale in and out based on layer's timeline length. (written by: Dan Ebberts)
cIn = thisComp.layer("Control_Scale_In").transform.scale; //Controler layer to scale in
dIn = cIn.key(cIn.numKeys).time - cIn.key(1).time;
cOut = thisComp.layer("Control_Scale_Out").transform.scale; //Controler layer to scale out
dOut = cOut.key(cOut.numKeys).time - cOut.key(1).time;
if (time < inPoint+dIn){
  cIn.valueAtTime(cIn.key(1).time + time - inPoint);
}else if (time < outPoint - dOut){
  cOut.valueAtTime(cOut.key(cOut.numKeys).time - (outPoint - time));
Creative Directors: Jonathan Notaro, Bucky Fukumoto, Mike Calvert
Designers: Jonathan Notaro, Bucky Fukomoto, Mike Calvert, Ollë Engstrom, Abigal Oh, Kyra Odi
Producers: Johnna MacArthur, Greg Babiuk, Katherine Allen
Lead Animator (Google Branding): Olle Engström
Project Manager Animation: Olle Engström & Gerald Mark Soto
Animation: Olle Engström, Gerald Mark Soto, Paul Yung Jae Suh, Paolo Garcia, Jaewoo Park, DeeKay Kwon, Seong Yeop Sim, Mike Costabile, Jim Forster, Matthew Lane-Smith, Jay Kim, Adam Stockett, Doug Bello & Many more
Client: Google
Made at Brand New School

You may also like

Back to Top