JSplacement is pretty awesome

Joe Clay | Jun 17, 2017

Mmmmm, easy greeble

Yesterday, Sev sent me something someone (sorry, I'm not sure who!) posted to the Motion Design Slack Channel. It's an awesome, free tool for creating instant 8K displacement maps that's called JSplacement. Though you might want to tip them through Paypal (link next to their download link).

JSplacement offers three types of displacement maps—and an experimental fourth—you can generate. Each type is randomly created and there are sliders you can use to determine how they're generated. I built the image above using just one that I made in it. If you need any greebling, displacement, or time displacement, grab this program. It is awesome! And it's built in Electron, which is pretty awesome too!

The Bug that Keeps on Giving

Joe Clay | Jun 7, 2017


So I found another excellent reason to use this helpful tip that I wrote about last week. Remember that pesky bug that I keep mentioning that really annoys me? You know, the one where you try to save a preset in After Effects 2017 and it wants to save it in the 2015 location? Well it turns out that must be incorrect in the API too because that's also the location FX Console searches for your presets. I saved over a preset in my 2017 User Presets folder, but FX Console kept going to the 2015 version. So it must use a path provided by the API that is also incorrect.

So I symlinked my Dropbox User Presets folder over the 2015 folder and it still failed. I restarted AE and it worked. So either FX Console doesn't refresh or maybe it relies on AE refreshing the presets. And of course AE refreshes the correct 2017 User Presets folder, it just doesn't want to save to it. So if you rely on FX Console to quickly apply animation presets, be aware of this. And if you save a new preset, restart AE and make sure a copy is in the 2015 User Presets path too. Bummer.

New Patreon Tiers

Joe Clay | May 30, 2017

Bring the value

This is just a quick note to say that I've changed up my Patreon reward tiers a little bit. I didn't feel like I was providing enough value for my patrons, so instead of offering rewards that are time consuming but don't otherwise offer much, I've decided to switch to offering things like textures/maps/mattes, graphics and icons, and presets that I can provide on a more frequent basis since these are things I create all the time. I've expanded my offerings for scripts for the higher tiers as well, including possibly beta-testing new scripts through those Patreon tiers.

If you've checked out my Patreon page in the past and didn't see enough value in it, then perhaps you might want to take a look again. Some new content is already up for patrons, whether you're new or not.

As always, this is just something extra. If you don't want to or can't afford to become a patron, that is completely fine. There will still be plenty of free content for you to enjoy! Thanks for reading!


Joe Clay | May 30, 2017

Random preset locations are fun!

About a week ago, I was finally fed up with some setup issues with Adobe programs. Illustrator sparked it, but it's something I've wanted to do for a bit, and I did it. It's simple so I should've done it sooner.

I work a lot with Sev, and we share a lot of project files, presets, scripts, etc. If I want to save a preset out for him to use, I have to save it to my documents/Adobe/whatever directory then I have to put a copy in Dropbox, then he has to grab it and put it in his directory. And then we have an extra copy of all of these presets floating around. And then AE updates may or may not migrate that folder. And that preset location bug in 2017 means I also have to navigate to the proper folder just to save.

And what's worse, various Adobe programs install presets in all sorts of locations. And some—I'm looking at you Illustrator!—have you save your presets/templates to one location and don't even search that location! So rather than navigating through that entire mess I decided to solve this issue once and for all with an ages old method—symlinks.

What is a Symlink?

Symlinks, symbolic links, or aliases are basically a folder or file that point back to the original folder or file. Any changes made to either will affect the other. And to the filesystem, it appears that the linked files exist as real files in their linked location. It's like Portal, haha. This is a technique I use a lot with Dropbox to mirror folders outside of Dropbox. There are other ways to do this that don't even involve Dropbox, but this is my method.

The process is the same for every type of preset folder you want to move. For this example I'll talk about migrating the After Effects User Presets folder which lives in ~/documents/Adobe/After Effects CC 201X/. Symlinks exist on Windows, but you'll have to look that one up for yourself.

Symlinking Preset Folders

  1. Make a new folder with the name of the presets folder—User Presets—or copy the User Presets folder to wherever you want in Dropbox—I like to make my own folder so my user has all of the permissions on it, just in case, but it's probably fine to copy it.
  2. Open up a Terminal window and type ln -s, make sure to leave a space after the "s."
  3. Now you'll drag your new preset folder out of Dropbox and into the terminal window and its path should appear.
  4. Next, Drag the current User Presets folder into the terminal. Double check to make sure you have the correct order in your ln command—the Dropbox path should be first—and that you have all the files in the Dropbox folder.
  5. When you have verified that you have all of the files copied to Dropbox, delete the original User Presets folder—unfortunately, the ln command can't do that for you, but you can look up rm if you want to stay in the terminal.
  6. Go back to terminal and hit enter to run the command. The original folder should reappear with a small black arrow on it to show that it's now linked.


You might have to update this again when there's an update to your programs or something. You should only ever have to change the target or right side of the command—for example changing 2017 to 2018. Basically, if Adobe moves the folder location or overwrites it, you'll have to check the target path, move any new files to Dropbox, delete the folder and rerun the command. That's all you'll need to do to keep your folders in sync.

Since these commands should be very similar between versions, I've taken to saving them as a note in Notes so I can just copy them to the terminal, run them after an update, and be done. If you want to get fancy you can delete the folders through the rm command and then make your own script to update everything automatically. And then you can set it up so that you can run it by clicking something on your desktop. Either way, I can now save a preset to my Dropbox and it updates everywhere—including Sev's machines—so we don't have to stop working to move files around. And if you're running multiple versions of AE, you can link one folder to all of those locations as well so every version can have the same scripts and presets.

Adobe expects you to do this

When you save your first preset to your Dropbox folder in AE, it'll give you an error that you can set to ignore forever, talking about how the preset won't show up unless you've basically symlinked that folder, so they're kind of expecting you to get annoyed enough to do this too, haha. I've also seen some Adobe peeps suggest something similar, so there's that too.

Saving Presets...Again

Joe Clay | May 29, 2017

So, as I said last time, saving presets can be a real pain in After Effects. But it doesn't have to be—I think. I could be totally wrong. And well, I kind of was. It turns out that if you do as I suggested before, you might lose things when you select the main groups in a layer's properties, like Effects or Transform. Sure, it'll save the name. But if you apply the preset to a layer that already has effects, they'll be overwritten—aka removed completely and replaced—with the ones the preset has saved. This even happens with transform properties. If you save the whole Transform group in your preset, and you apply the preset to a layer that has any of the properties set or keyed, they'll be replaced.

So, we're going back to the old tip of having to save the sub-level items, like position, rotation, or an effect specifically. If you rename your effects and you click on it to save, it'll keep the name.

But what about shapes? You can rename them and save them by clicking on the shape/group. So basically, instead of selecting the major group—like Contents—you select the immediate sub-objects of each of those main groups that you want to retain. And unless you want to get really specific with certain keys, I wouldn't bother attempting to select them directly unless they're Transform properties—and in that case select the property itself and not the keys.

Also FYI, the latest update of 2017 still wants to save presets to the 2015 location by default. So that's fun.

Workbench Tutorial Style

Joe Clay | May 28, 2017

Every once in a while, I get a suggestion from a viewer about how I should show more of the basic build of my tutorials so that beginners can follow along. I've noted my reasoning in a few places—though certainly not frequently enough—and I've made a few individual responses to this suggestion, but I think it makes more sense to make a post about it that I can point people to so I don't have to explain it each time.

First of all, if you are having a hard time with something I'm showing, ask me, and I'll do my best to explain it. Hit me up @workbench_tv or leave a comment on youtube or our site for that specific tutorial. If you're trying to understand, I'm not going to shut you down!

Second, I actually originally intended to make more beginner-focused tutorials because that wasn't available to me when I got started. Video Copilot wasn't even around then. But by the time I got around to starting Workbench, a ton of excellent resources like Greyscale Gorilla, Lester Banks, Motionworks, School of Motion, Evan Abrams, Mikey, Mt. Mograph, CGI tuts, etc, popped up to cover that user segment. In fact, almost every tutorial I've ever seen teaches with beginners in mind. But there's nothing I've found for advanced users. So I decided to make the tutorials I'd want to see.

I know my tutorials are advanced and that they skip a lot of steps. But they are geared toward advanced users who know, or can easily figure out those steps. And those viewers have given me a lot of excellent feedback. A lot of them note that the reason they love my tutorials is because I skip right to the point and don't try to teach them what they already know—which is exactly my goal. I don't want to be the guy making 30 minute tutorials with 5 minutes of actual content.

To be quite honest, I still watch tutorials. I look for a little nugget—often not even related to the tutorial—that I can take and build upon in other ways. Sometimes my mind even wanders while watching someone else work, and I think of something completely different. And that nugget is what I'm hoping to show advanced users. My tutorials are less, "we're going to make this example" and more, "hey, let's check this technique out and hopefully you can find something cool to do with it." I'm not about making robots who can copy my tutorials. I want you to watch, learn, and exploit what I've shown you in other ways.

I know that I can grow an audience by catering my tutorials to beginners. But by doing so, I'd be destroying exactly what the advanced users love about my tutorials—I show them something useful as quickly as I can, and save their time because I assume a level of familiarity with the programs we're using.

2017 Intro Build

Joe Clay | Apr 24, 2017

Here's a quick time lapse of creating the newer Workbench intro. It's about 2 hours compressed into just under 3 minutes. This version has music. I riffed on one of my acoustic guitars for about the time allotted and put it on there. So if the music sucks, it's because I suck. :)

I tried to add a few funny moments in there. Hopefully they brighten up your day.

Saving Presets

Joe Clay | Feb 20, 2017

This has been updated.

Saving presets can be a real pain in After Effects. But it doesn't have to be—I think. I could be totally wrong. That's the, uh, beauty of saving presets in After Effects. And it gets even prettier, if you're saving in CC 2017, it might point you to the 2015 user presets folder by default, so keep your eyes open to see all the beauty.

So last week, I needed to save my named groups in a shape layer for the Speed Lines preset so it'd make sense. So I did what I remember usually doing—while probably failing—hitting UU and selecting the keyframes. Then I selected the effects one by one because I remember that working. Well, it turns out, depending upon what you select, things will keep their names or not. Uh, what?

So after an hour of wasting my time testing, and testing even more to write this article. I just discovered that even the way I showed in the Speed Lines tutorial was selecting too much. You barely need to select anything. In fact, you really only seem to need to get specific with what you select in order to exclude things.

So if you want to save all your named shape groups, just select Contents. If you want your expression controls and effects, just select Effects. And if you want to select your transform keys/expressions/whatever, select Transform. And if you want to select the name of the layer, hahahaha.

Client Management - Managing Expectations

Joe Clay | Feb 2, 2017

This is a quick guide about the business side of things. This is by all means not an exhaustive guide about how to deal with every situation, and it might not work in every situation you face. I don't use all of these ideas with every client, because it's obvious that some people already know these things. But not talking about any of these things with your client will likely end negatively for you at some point.

All of the best relationships in business and in life have two things in common, mutual respect and communication. So keep that in mind every time you talk to your clients.


Tell your client what your business hours are. Let them know how you prefer to be contacted and be especially accommodating to clients who are respectful of your time. If someone asks politely to discuss something after your business hours, and you can swing it, do so.


You'll encounter clients who know how to budget for mograph, and you'll encounter those who have no idea what it costs. If someone doesn't have a clue about it, ask them what their budget is. They should at least know what they're looking to spend. If the budget doesn't work, look for ways that it can. Sometimes there's non-monetary value in a project. Is it something you can have fun with? Can you get more creative control? I often will try to get creative control of a project if there's no budget for me to concept and go back and forth with endless revisions. Usually people come to you because they like your style, so you might be able to work out a deal where both of you benefit. I've done this a few times, and it's always been a great experience. So don't always discount a low budget.


If you want an upfront deposit, ask for it. If your client tells you they're net 60, see if you can invoice the bulk of the money—like 75% to 80%—at the start of the project. It's never a bad idea to ask how quickly they pay. A good client will usually be upfront about it if they're non-standard i.e. not net 30.


We've all had a client who had us work through the weekend—losing time away from our families—to deliver on a deadline that was shortened because someone didn't deliver a script or some elements on time. And we've all been really angry when we find out that client didn't even look at the draft until three days later. It's going to happen. But if you probe them about actual deadlines, and perhaps tell them that you'll have to grind the whole weekend, they might actually let you know their deadline was artificial and the timeline is a little more flexible. So if you're put in this situation and you think there might be a little more play in the timeline than they're letting on, lay it on thick. Because if they're going to let you do that, knowing that the deadline is flexible, they're not respecting your time—which is your most precious commodity.

Showing the work, NDAs, etc.

If a client wants to have a work-for-hire gig, or they want you to sign an NDA, don't be afraid to still ask if you can show the work. Sometimes they won't have an issue with you adding snippets to a reel, or even showing a director's cut with relevant branding removed. That usually is enough for me. But if you don't want to work with that, I don't blame you. Tell the client that. Often these issues come about because they want to be able to distribute the work in whatever way they choose and think they need all the ownership rights because some lawyer said they should. I often have issues with that because I frequently reuse pieces of animation, icons, or snippets of code, like expressions, that I've built or that others have built. So they can't really own that and it becomes nebulous. So if I can, I'll offer them rights to distribute and reproduce as they see fit while I maintain copyright so I can show my work and get more work from it. I don't like to take work-for-hire jobs that I can't show, but if you do, charge more for it because you have a blank spot in your work history.

Under-promise, over-deliver

This one is pretty standard, but it works well. I don't take the approach of purposefully saying I can't get something done, but I won't make a guarantee if it's not guaranteed. If you say you're going to do something, you must do it. Keep your word. And if something happens, a render glitch, an emergency, etc., tell your client as soon as you can. That way you're not silently missing a deadline, leading them to wonder about what is going on.

Remember, communication is key. It's fine to be casual, but be firm about what you expect and what your client should expect. If you act respectfully and stand up for yourself, you'll get respect. And if you don't, avoid working with that client now or in the future if you can, and remember all of the red flags they put up. If you have any questions or want to tell some stories, hit up the comments. Have a good day and manage expectations!

Bearded Spice

Joe Clay | Jan 27, 2017

Hi guys, this is just a quick note to tell you about a great piece of free software I came across. I was talking to a friend about podcasts, and there's one he suggested that only had episodes on YouTube—seriously guys, then it's not a podcast.

Anyway, I hate listening to long form content on YouTube while I work because I can't quickly pause something to listen to a VO or something. Or I get up and pause something only to have it open iTunes and play more stuff on top of what was playing.

Anyway, that got me wondering if there was anything out there than can pre-empt media keys on macOS so you can play/pause YouTube. Side note: it feels strange, but satisfyingly easy to write macOS vs Mac OS.

So I came across the strangely named Bearded Spice project on GitHub. Don't go to the .com site, because it's either been hacked or someone set it up with redirects for a bad reason. Anyway, though it's a little buggy, this menubar app throws a little bearded guy up on your menubar that will allow you to switch between sources. It seems to have a bug where if Spotify is open it only plays and pauses that, even if you have YouTube selected, but that's not a huge deal.

It works in Chrome out of the box, but in Safari you need to "Allow Javascript from Apple Events" in the Develop Menu. It has support for a lot of sites, and if you're adventurous with Javascript, you can write your own support and update the Git.

So I don't know about you, but this is pretty awesome as it opens up a world of other content without interrupting my workflow.

< Older