Fixed Canvas Backgrounds

I’ve talked a bit about separating our semantic and non-semantic content within websites. We can take our rich non-semantic content and throw it onto a canvas. This provides a number of benefits, cleaning up our markup, reducing DOM elements and optimizes performance. I’ve put together some examples of how this can be used in both Fixed Canvas Backgrounds

New Site

Recently I redesigned my website ( Personal sites are kind of a constant background project for me and a great way to keep exploring and learning. I like to keep it clean with some animation and effects. One of these effects is a subtle WebGL background animation using white and off-white semi-transparent beams. I think New Site

Parallax Deep Dive

Welcome to the first part of my deep dive into parallax. In this part we’re going to talk about what parallax is, how it relates to the web, and whether it’s just a fad. You’ve probably experienced this phenomenon driving in a car looking off towards the horizon. The further away an object is the Parallax Deep Dive

Basic Parallax

In the second installment of my Parallax deep dive, I go into how to implement basic parallax on the web. I also discuss some other things to consider when implementing parallax. We cover the formula of how to offset positions based on an offset, multiplied by the scroll position. newY = scrollY * offsetY; We Basic Parallax

Advanced Parallax

In the third installment of my Parallax deep dive, I go into how to implement more advanced parallax on elements that are further down the page. We explore some more advanced calculations to get specific results based on scroll position at a target point within the viewport. I also utilize canvas to show how we Advanced Parallax

Scrolling on a Path

In the fourth installment of my Parallax deep dive, I discuss one technique to animate elements along a complex path. I discuss how to use an SVG path created in Illustrator to define an animation path for our element. We leverage Greensock’s TweenMax and it’s bezier plugin to animate along this path. Then we tie Scrolling on a Path

Mouse Parallax

In the fifth installment of my Parallax deep dive, I discuss how to use mouse movement to apply a parallax effect. Using the same plugin exporting layout data from Illustrator that I discussed in Episode 3. Then we use mouse events to adjust the offsets of our content. We also use Greensock’s TweenMax to apply Mouse Parallax

Beyond Parallax

This is my last episode in my series on parallax. I’m going to go through one quick demo of how we can trigger events on items based on their position in the viewport. I also talk about how we can take the ideas we’ve learned throughout the series and expand on them to create other Beyond Parallax

Three.js Introduction

Three.js is an open source javascript library for drawing 3d graphics on the web. It was created by Ricardo Cabello (aka. Mr. doob). It grew out of the work he had done for Flash on the Papervision 3D library. Originally it was created as a renderer agnostic API with a 2D Canvas and SVG Renderer. Three.js Introduction

Three.js Getting Started

Let’s set up a basic scene in Three.js. The first thing you need to do is include the Three.js library. You can download it at You can also use the CDN url from cdnjs The Renderer The first thing we need to do is create a renderer. Because Three.js supports multiple renderers we Three.js Getting Started