• March 1, 2020

    Animated Logo Intro

    Animated Logo Intro

    • Skills

      Branding, Design, Animation

    • Programs

      Adobe Illustrator, Adobe After Effects, Newton Physics Engine

    • Year

      2018

    Challenge

    I was working with a group of close friends to develop a comedy YouTube channel, based around video gaming and popular culture. So we needed to find a quirky name and brand that fits our weird and dry senses of humor.

    Solution

    Hanging out as a group, we had a game; stupid band names. Hunting down the best band names in our normal speech (or, abnormal speech). Such as in the middle of a game of Dungeons and Dragons, when a character made an alcoholic concoction of fermented fish, we joked that that would be a perfect folk band name: “Dr. Bartholomew’s Experimental Fish Whisky.”

    While searching for a brand name for this odd new endeavor, we remembered some of our old band names, and Fish Whisky was born.

    I then went to work on creating a logo. I wanted to play with that mix of dry and silly, so I went with a classic badge-style logo, but with an illustrated Cthulhu-esque monster climbing out of a de-facto whisky barrel.

    Then, it was time to animate it. Using After Effects I took all the 2D elements from Adobe Illustrator and projected some of them onto a 3D plane, and piece by piece animated them all.

    Most of it is standard After Effects keyframe animation, but some of the elements needed a little something extra. I utilized the Newton physics engine to give some of the elements the feeling of weight and realism. I also add rigged the tentacle using bones and Inverse Kinematic bones.

    Finally I downloaded a series of sound effects from Splice, and laid them out and mixed them to create a track that would fit along with the animation, fleshing it out and creating both a sense of realism, and an extra comedic addition.

    Creation

    What I ended up with was a quirky, silly, fun, but dry intro for an equally silly YouTube channel.

    Check out the video here!

  • May 18, 2021

    Moonlight Youth Theatre Projections Design

    Moonlight Youth Theatre Projections Design

    • Skills

      Graphic Design, Projections, Animation

    • Programs

      QLab, Adobe Illustrator, Adobe Photoshop, Adobe After Effects, Blender, TouchDesigner

    • Year

      2019 & 2021

    Challenge

    I’ve had the pleasure of designing two productions now for Moonlight Youth Theatre; Freaky Friday in 2019, and Little Women in 2021, bookends to the 2020 COVID Pandemic. Enjoy below some features of each project.

    Freaky Friday

    Freaky Friday, the Disney Musical adaptation of the movie franchise, is a cute, over the top family comedy interrupted by a magical object. Due to the supernatural and exaggerated writing style, we opted for a comic book style, taking stock elements and modifying them to fit the sets and settings, and then using a series of rasterized effects in Adobe Photoshop turned them into comic book feel.

    Sticking with that coming book motif; during transitions between major locations, I chose to pay homage to the Marvel intro with a short animation into scenes. Splitting the projections into different “panels” to break up separate locations/times. Careful animation to highlight certain moments, such as a pink bloom effect when the lead character is overcome with “biological” feelings. Even swaying into the ridiculous to cause the head of the romantic interest to bounce across the screen in a rather ridiculous song entitled “Women and Sandwiches.” To sell the idea in the script that the “clues” during a scavenger hunt late in the show were coming via text message, grounding this fanciful play in the tactile realities of every day. All created with Adobe After Effects and was operated via QLab.

    Overall I think we matched the tone and created a truly enjoyable production both for the audiences of over 800+ per night, and for the children’s education and future.

    Little Women

    Before the 2020 COVID Pandemic there was set to be another major production like Freaky Friday of the Broadway Musical “Little Women.” Unfortunately the show was postponed and in 2021 it was brought back for a one night only staged reading.

    Due to the style of show, it was to be only my projections, and the actors themselves. So any settings, timeline, even specific actions and story beats were to be given by my projections.

    To accomplish this I chose to use time appropriate references, recreate their pattens, wallpapers, etc. in Adobe Illustrator, and then model the “set pieces” in Blender, being careful to use minimal depth to give the effect, without being distracting.

    Using a thoughtful mix of vector graphics in Adobe Illusrator, raster noise effects in Photoshop, 3D modeling and production in Blender, compositing and animation in After Effects, and even creating a custom convolution based “Kuwahara” filter in TouchDesigner. Bouncing between these allowed me the freedom to do some incredible compositing effects, such as vines growing on the edge of a recently animated scene piece, or animating in curtains to give a sense of realism, and then heighten the moment away from realism when the March sisters dreamed, via the dreamy oil-painting like “Kuwahara” filter.

  • March 1, 2020

    AWARD WINNER: 33 1/3rd – Projections Production Design

    AWARD WINNER: 33 1/3rd – Projections Production Design

    • Skills

      Graphic Design, Projections, Animation

    • Programs

      QLab, Adobe Illustrator, Adobe Photoshop, Adobe After Effects

    • Year

      2019

    • Recognition

      Winner of the 2019 Craig Noel for Outstanding Projection Design

    Challenge

    A previous colleague, Blake McCarty, contacted me looking for someone to help him with his upcoming design at the San Diego Repertory Theatre, for a world premiere show “33 1/3: House of Dreams.” I was contracted to help with content production, assembly, programming, and projections liaison with the theatre.

    Solution

    We worked together for weeks prior to tech collecting; historical images from the time and places, graphic design elements from the era, and textures (watercolor, wallpapers). We then assembled these into evolving animations that covered both the false, on-rails, proscenium, and the upstage wall, that helped to tell the story, and add texture and feeling to certain moments.

    Before we could build the show however, I had a look at their projections setup, and discovered that with the VGA they had run there, we would be unable to project the full 1980×1200 resolution (which we required to get a ceiling to floor throw). So I worked within the budget of the show to acquire two HDMI to HDBase-T adapters. Using the cat-5 cable the theatre already had, and the projectors native HDBase-T inputs, I was able to get us the full resolution, with no additional budget.

    One of the main challenges was the proscenium. Designed to be rolled in and out for different sections, the proscenium had a total of sixteen different positions throughout the show. What I did was split the stage in half (just like the proscenium was) and created four different masks for each side of stage (corresponding with the four different positions), and one global mask that went on top of everything to add a grunge texture, and keep the projections out of the actor’s faces.

    Creation

    In the end; with Blake’s excellent interpretation of the script and brilliant knowledge of history, and my work as a graphic designer and setting up/programming the technical elements, we were able to pull off an Award Winning Show!

  • February 25, 2020

    Ivan Guaderrama – Augmented Reality App

    Ivan Guaderrama – Augmented Reality App

    • Skills

      App Development, 3D Design, Animation

    • Year

      2017

    Challenge

    An artist, famous for adding a technological element, was interested in ways to utilize technology to give his art another dimension.

    Solution

    I worked with him to select a few pieces of his art, to come to life in a couple of ways.

    Way Number 1

    Create 3D animations to explode out of his paintings.

    Way Number 2

    Allow him to create 2D animated videos, that tell the story intended in his paintings.

     

    I knew I want to create an augmented reality app, but how to accomplish that was yet a mystery. I did some research and settled on using Qualcomm’s Vuforia library, and the Unity game engine which I already had experience with.

    From there, it was a fairly simple process, use a tool from Vuforia to convert pictures of the paintings into trackers. Import that to Unity. And then attach a video player object to each painting, and then trigger the video to play when the painting enters the camera viewport. Vuforia made the process very easy, all it took was some custom programming, and a lot of fine tuning to build the basic app.

    3D Angel

    Creating the 3D angel is what ended up being the most difficult. I took the picture of the painting, and removed the angel and used Adobe Photoshop’s clone stamp and Healing Brush to cover over the hole the angel used to be in. Then I took the angel and flipped its wings outwards as it would be fully outstretched, and then exported the angel and background as individual pieces. I took and used Adobe Illustrator to create a black on white outline of the angel, and exported it as an SVG object.

    I then imported the SVG object into blender. Used the “Mesh > Faces > Beautiful Fill” option to convert it to a mesh. Then spent some time cleaning up the mesh by hand. The next step was applying the Angel we cut out earlier as a material (which proved to be a finicky process to map properly.)

    By this point I had an angel with outstretched wings, and its background as two elements. Now it was time to animate it. I had created rigs before thanks to the Double Jump Intro, so that turned out to be an easy process.

    From there, I watched a lot of videos of birds flying in slow motion, and did the animation in two parts, animate the flapping of the wings itself, which was just a simple up and down motion, with a little rotation. Then it was about animating the up and down motion of the angel itself. I noticed that as birds fly, they dip a little after each flap. This helped to give it a really natural feel.

    I then took an additional digital painting given to me by the artist, and faded that in at end. Giving all the little specs and words depth as to help enhance the 3D effect.

    Creation

    And just like that I had an Augmented Reality app, and I had taken a 2D artwork and created a beautiful 3D flying angel. This wowed a lot of future clientele, and helped him to sell prints of his art as “AR Ready.” Increasing his revenues and reach.

  • May 15, 2018

    Lux Gatherings – Physics Light String

    Interested in this project?

    Lux Gatherings – Physics Light String

    • Skills

      Development, Branding, Design

    • Year

      2015

    Challenge

    A new startup that my agency had been working with since the beginning, looking to build an online portal for hiring servers and catering for luxury home parties was looking for a way to announce their new brand, and build hype. Their whole brand experience was based around; being an internet company (so we knew we had to have something somewhat advanced), and catering to a higher end client (thus the name “Lux Gatherings”).

    Solution

    So I took to building a beautifully minimalistic landing page to help communicate those two ideas. I worked with our designer to put together a simple layout, with a slight gradient, and this beautiful string light effect.

    With the initial design in place I knew exactly what I wanted to do; animate the string lights. But not a static animation, I wanted them to be interactive.

    So I settled on creating a physics based string lights effect. I found a great little 2D rigid-body physics engine in vanilla Javascript. This allowed me to create a rigid chain of small circular bodies, the small bodies would be set to not render. Meaning, it was a rigid line, connected to an invisible circle, then to another rigid line, and so on. Then at each invisible circle, I create a new, larger circle, connected (via a constraint, visualized as a thicker black line) to the invisible circle. Then I randomly positioned those larger, visible circles so that when the page was loaded, it would have a nice, falling effect.

      function initString() {
        var groupId = Body.nextGroupId();
    
        var stack = Composites.stack(0, -10, 10, 1, 0, 0, function(x, y, column, row) {
          var isStatic = false;
    
          x = ((column/9) * $string.width());
          y = (column/9) * 200;
    
          if (column == 0) {
            x = 50;
            y = -10;
    
            isStatic = true;
          }
    
          if (column == 9) {
    
            isStatic = true;
          }
    
          return Bodies.circle(x, y, 5, {
            groupId: groupId,
            isStatic: isStatic,
            frictionAir: 0.3,
            render: {
              visible: false,
            }
          });
        });
    
        string = Composites.chain(stack, 0, 0, 0, 0, {
          groupId: groupId,
          stiffness: 0.9,
          render: {
            strokeStyle: "#231f20",
            lineWidth: 3
          }
        });
    
        // add string
        World.add(engine.world, string);
      }

    Now. I could have created more points along the chain, giving the rope a more fluid feel, but I hedged away from this, due to the fact that in my cross browser testing, I noticed that some browsers would slow down dramatically due to the added physics calculations.

    Now I wanted to give the user a hint that they could interact with it. I came up with the idea of doing a wind effect. The problem was Matter did not have any sort of additional force effects. So I decided to shift gravity. At a random interval (between 0 and 3 seconds), and at a random duration (between 0 and 3 seconds), and at a random intensity (between 0.25 and 0.5), and at a random duration (between 10 and 20 frames), and in a random direction (half the length), I would ease the gravity from straight down, to the chosen direction, imitating a gust of wind.

      function initWind() {
        wind = window.setTimeout(function() { 
          gust();
        }, 2000);
    
        function gust() {
          var gravity = 0;
          var i = 0;
    
          var intensity = 0.25 - (Math.random() * 0.5);
          var length = Math.ceil(Math.random() * 20) + 10;
          var halflength = length/2;
    
          guster = window.setInterval(function() {
            if (i <= halflength) {
              gravity = ease(i, 0, intensity*halflength, halflength);
            } else {
              gravity = ease(i - halflength, intensity*halflength, 0 - intensity*halflength, halflength);
            }
    
            if (i == length) {
              window.clearInterval(guster);
    
              wind = window.setTimeout(function() {
                gust();
              }, Math.random() * 3000);
            }
    
            i++;
    
            engine.world.gravity.x = gravity;
          }, 100);
        }
      }

    Then the last part, creating interaction. For desktop I created an invisible circle that would simply track with the mouse, and repel other circles.

    function initMouse() {
      var mouser = Matter.MouseConstraint.create(engine, {
        constraint: {
          render: {
            visible: false
          }
        }
      });
    
      var groupId2 = Body.nextGroupId();
      var mover = Bodies.circle(0, 0, 10, {
        groupId: groupId2,
        isStatic: true,
        render: {
          visible: false,
        }
      });
    
      var mover2 = Bodies.circle(0, 0, 20, {
        groupId: groupId2,
        isStatic: false,
        render: {
          visible: false,
        }
      });
    
      var mouseConstraint = Constraint.create({
        bodyA: mover,
        bodyB: mover2,
        length: 0,
        render: {
          visible: false,
        }
      });
    
      Matter.Events.on(engine, 'mousemove', function(event) {
        mover.position = {x: event.mouse.position.x, y: event.mouse.position.y};
      });
    
      World.add(engine.world, [mouser, mover, mover2, mouseConstraint]);
    }

    And for Mobile I removed the wind, and instead opted to shift the gravity in the direction the user tilted their phone.

    function initMobile() {
      $("#string").css("pointer-events", "none");
    
      window.addEventListener('deviceorientation', updateGravity, true);
    
      function updateGravity() {
        oldorient = orientation;
        orientation = window.orientation,
        gravity = engine.world.gravity;
    
        if (orientation != oldorient)
          resize();
    
        if (orientation === 0) {
          gravity.x = Common.clamp(event.gamma, -90, 90) / 90;
          gravity.y = Common.clamp(event.beta, -90, 90) / 90;
        } else if (orientation === 180) {
          gravity.x = Common.clamp(event.gamma, -90, 90) / 90;
          gravity.y = Common.clamp(-event.beta, -90, 90) / 90;
        } else if (orientation === 90) {
          gravity.x = Common.clamp(event.beta, -90, 90) / 90;
          gravity.y = Common.clamp(-event.gamma, -90, 90) / 90;
        } else if (orientation === -90) {
          gravity.x = Common.clamp(-event.beta, -90, 90) / 90;
          gravity.y = Common.clamp(event.gamma, -90, 90) / 90;
        }
      };
    }

    Creation

    All In all, I created a very simplistic, beautiful way to grasp peoples attention, instigate interaction, and increase their likelihood of signing up to be a member of their mailing list. Thus increasing the companies likelihood of launch success.

  • March 1, 2020

    O’Connor’s Catholic Supply

    O’Connor’s Catholic Supply

    • Skills

      Development, Branding, Design, Team Leadership

    • Year

      2017

    Challenge

    O’Connor’s Catholic Supply store has been around for 80 years and had moved to a location that was bigger in Mission Valley. They contacted my agency to help and shift the way the community saw them as they moved into a new era.

    Solution

    With research we focused on the three tenants of the brand “Faith, Family, & Community,” and I made their new e-commerce website to match the brand with a robust, simple and easily navigable site.

    Creation

    With a custom mobile friendly navigation system, an attractive and approachable design, and 80 years of history behind them; the new website saw conversions increase and paved the way for new generations of O’Connor’s.