Congratulations to Andriy Koval for winning the NukeX license giveaway! As a bonus for being a Patreon supporter, I wanted to show you the thought process & Python script I wrote to help me choose a winner.

To start, I was able to download a CSV report for newsletter subscribers who entered the giveaway, as well as another CSV report for current Patreon supporters. I then needed to find an easy way to get all the email addresses from both CSV’s into a Python-friendly list. I’d never had to use Python to navigate a CSV file before, so it was a fun learning experience!

As you know, subscribers of Ben’s Comp Newsletter could enter this draw simply by clicking the sign-up link in Issue 064, and since you’re a Patreon Supporter, you got two entries! However, there was no guarantee that all Patreon supporters would click the link in the newsletter for that second entry, so I also wanted to code up a solution to account for that.

Lastly, this draw had to be completely random. Rather than closing my eyes, scrolling through a list, and putting my finger on the screen to make my selection, I wanted the computer to choose for me to remove any human bias.

Check out the final code below, commented for clarity.

# Import the modules we need.
import csv
import random

# Create lists to hold email addresses.
newsletter = []
patreon = []

# Define filepaths for the CSV's on disk.
newsletter_csv_file = open("C:\\Users\\benmc\\Desktop\\newsletter.csv", "r")
patreon_csv_file = open("C:\\Users\\benmc\\Desktop\\patreon.csv", "r")

# Open the newsletter CSV, and add all the addresses from the "email address" column (column A).
for emails in csv.reader(newsletter_csv_file, delimiter=','):
	newsletter.append(emails[0])
# The first item in the row is the header, "email address", so we can remove it.
newsletter.pop(0)

# Same deal for the Patreon members CSV, except the email addresses are in column B in this instance.
for emails in csv.reader(patreon_csv_file, delimiter=','):
	patreon.append(emails[1])
patreon.pop(0)


# List to hold all email addresses.
email_list = []

# Remove Patreon subscribers from newsletter list.
print(str(len(set(patreon).intersection(newsletter)))+" Patreons were duplicates, and have been removed.")
for email in set(patreon).intersection(newsletter):
	newsletter.remove(email)

# Add Newsletter subscribers to the email list.
email_list.extend(newsletter)

# Add patreon subscribers into the same list, twice.
email_list.extend(patreon)
email_list.extend(patreon)


# Randomly pick a winner.
print("\nThe winner of the NukeX license is: "+str(random.choice(email_list))+"!")


"""
-----  RESULT  -----

24 Patreons were duplicates, and have been removed.

The winner of the NukeX license is: <email address hidden for privacy>
"""

When warping, I always use ST Maps as the base, as they provide so much extra control. Nuke’s built-in “MotionBlur” node, RSMB, and other nodes are available to generate motion blur from our warped input images, however, these nodes are generating new motion vectors, essentially making their best guess at where the pixels are travelling. Wouldn’t it be better to use our warp data to drive this instead?

Continue Reading "Quick Tip: Add accurate motion blur to your warps."

My name’s Pedro Andrade and I’ve been working in VFX for around 10 years and out of a complete accident. I have a background in Mechanical Engineering and I effectively worked as one in different countries until I took a chance and left that field to pursue a career as a Music Producer in London – which I also did for a while. Then, in London in a sort of twist of fate, in a completely unplanned way, I came across with VFX, an industry in which I’ve been working as a 2D supervisor for some time now in companies like Milk VFX, Cinesite and more recently DNEG.

A couple of months ago, fuelled by the current pandemic situation, I’ve started a little project in the form of a live show on YouTube called ‘Comp Lair’.

Apart from that I love traveling (!!!), food, spending time with family and friends, playing and hearing music, holidays, etc.

Continue Reading "INTERVIEW: Pedro Andrade"

Using TCL expressions in Nuke can help us to evaluate mathematical operations, as well as link values together to create something new. However, an often forgotten feature in Nuke is the ability to add expressions to RotoShapes and Paint strokes (which are also splines under the hood).

Nuke’s built-in “Tracker linking dialog” (pictured above), helps us to link individual vertices to various things in a Tracker node, and is doing so by automatically adding TCL expressions for us! However, what if we wanted to link things the other way around?

Continue Reading "A simple tutorial on using expressions with Paint Strokes."

You might have seen gizmos with knobs that dynamically disable/enable, or hide/show, based on the value of another knob. This is achieved by accessing the knobChanged knob, which is hidden to users, and can be accessed via Python. You can disable a selected node’s mix knob with this line of code: Similarly, you can hide a selected node’s mix knob with this line of code: Super easy. Now to do hide/show and disable/enable some knobs dynamically, I’ll create a NoOp with some custom knobs. And…Continue Reading “Dynamic knobs in Nuke.”

Hi, my name is Geoffroy Givry, I’ve been in the VFX industry since 2001, first as a Generalist and I quickly became a full-time Compositor around 2003. I’m a proud and dedicated husband and father of 3 wonderful children. I love looking after my family, my garden, cooking BBQs, chopping wood and building AI Drones. But most of all, my two real passions are learning (I’m addicted to video tutorials!) and in developing pipelines and intelligent workflows for the VFX industry, especially everything concerning remote work.

I created my own company in August 2019 after being at ILM for 5 years as Senior Comp, Comp TD and Comp Technical Lead. Now, I’m working remotely in the gorgeous countryside of Surrey in the UK, as a Visual Effects Supervisor, pipeline architect and senior compositor. As well, I am an Art Director and VFX Supervisor for Ubisoft on their game cinematics.

Continue Reading "INTERVIEW: Geoffroy Givry"

After graduating from Vancouver Film School I started my VFX career in 2007 at Image Engine in Vancouver where I worked for 8 years, with my last project being VFX Supervisor on Straight Outta Compton. I then went to OATS Studios and Umedia before returning to Image Engine again as VFX Supervisor on Pokemon: Detective Pikachu. After wrapping that one up I started my own business under Hive VFX using AWS.

Outside of geeking out at a computer, I enjoy anything in the outdoors, hiking, running, biking and skiing among others.

Continue Reading "INTERVIEW: Bernie Kimbacher, VFX Supervisor & Founder of Hive VFX."

 

Over the last two parts of this series, we’ve talked about how the Coronavirus pandemic has impacted the VFX industry globally, how VFX vendors are adapting, and the opportunities presented to us to manage our own time, increase productivity, and gain greater flexibility in our lives. In this third and final part, we’ll discuss some of the potential pitfalls that working from home brings, how you can make the most of the situation, and even find an opportunity for growth.

Continue Reading "COVID-19 — An Opportunity for the VFX Industry: Part 3."