Home

SkyVFX Lab

Hands-on comp in your browser

A node-based mini compositor whose maths matches Nuke, with every image rendered in Blender. It teaches principles, so it carries to any app. Separate from the video courses Sky teaches.

19 packs · 121 lessons · all playable in the browser

Comp Foundations

Channels, alpha, premult, merge, grade and node vs layer in the mini compositor

6 lessons playablePrice: not set yet (proposal in docs/PRICING.md)
  1. F1Channels and alphaAn image has 4 channels, and alpha is "where there is something"~6 min
  2. F2A double premult in a real graphOne node makes the dark edge: find it and switch it off~6 min
  3. F3Light adds up: plus vs screenWhy screen makes sparks look flat~7 min
  4. F4Grading a premultiplied imageOne lift, and the whole frame lights up~7 min
  5. F5Layers vs nodesOne shot, two ways of thinking: After Effects/Photoshop vs Nuke/Fusion/Natron/Blender~8 min
  6. F6PlaygroundWire up anything and try everything so far~10 min

Color

Linear vs display, sRGB ≠ gamma 2.2, log, stops, gamut, view transforms

9 lessons playablePrice: not set yet (proposal in docs/PRICING.md)
  1. C1Linear vs what the screen showsWhy 18% grey shows as 0.46~6 min
  2. C2sRGB is not gamma 2.2Two curves that agree, except in the shadows~5 min
  3. C3Stops and exposure+1 stop = twice the light = ×2~5 min
  4. C4Log: why footage looks flatMany stops packed into 0–1~6 min
  5. C5Gamut: same numbers, different colourssRGB, P3, Rec.2020 and ACEScg on one diagram~7 min
  6. C6View transforms: display, not the imageValues above 1 are real data the screen can’t show~6 min
  7. C7Saturation and lumaRemove colour without changing brightness~5 min
  8. C8White balance with a colour multiplyA blue-tinted plate, fixed with per-channel multiplies~6 min
  9. C9Where negative values come fromSharpen, despill and image subtraction (minus) can go negative~5 min

Color Systems in 3D

The RGB cube, 3D gamuts, ACES/OCIO, white point and HDR vs SDR

6 lessons playablePrice: not set yet (proposal in docs/PRICING.md)
  1. CS1The RGB cube: every pixel is a dotWatch a grade move the whole cloud in 3D~7 min
  2. CS2Linear vs sRGB inside the cubeSame pixels, different coordinates: watch the darks stretch~6 min
  3. CS3Gamuts are volumes, not trianglessRGB, P3, Rec.2020 and ACEScg in xyY~8 min
  4. CS4The ACES/OCIO colour pipelineIn → work in ACEScg → out. Fix the broken steps~8 min
  5. CS5White point and chromatic adaptationNeutralise a grey card under tungsten with Bradford~7 min
  6. CS6HDR vs SDR: where does a 62 go on screen?Scene values vs the nits a screen puts out~7 min

Camera & Lens Lab

Sensors and lenses: FOV, perspective, DOF/bokeh (with real Blender renders), distortion, motion blur

7 lessons playablePrice: not set yet (proposal in docs/PRICING.md)
  1. L1Focal length and sensor size35 mm on Super 35 is not 35 mm on full frame~6 min
  2. L2Perspective comes from distance, not the lensZoom in and back off: the background "grows"~6 min
  3. L3Depth of field and bokehHow big a blur disc gets is computable~8 min
  4. L4Lens distortionStraight in the world, curved in the plate~6 min
  5. L5Shutter angle and motion blurBlur length = speed × shutter~5 min
  6. L6Vignette: darker cornersReal lenses deliver less light to the corners~4 min
  7. L7LensDistort on a straight gridWhat k1 and k2 do to lines~5 min

Camera Lab 3D

Drive a camera in a 3D set: shot sizes, angles, lens vs distance, the frustum, exposure, camera moves, the 180° rule

7 lessons playablePrice: not set yet (proposal in docs/PRICING.md)
  1. CL1Shot sizes: ECU to EWSMatch target shot sizes with camera distance and focal length~7 min
  2. CL2Camera height and angleLow, eye level, high, overhead: where the camera sits changes the feeling~7 min
  3. CL3Same size, different lensPerspective comes from camera distance, not from the lens~8 min
  4. CL4God view: the camera from outsideFrustum, sensor, focal length and FOV move together~6 min
  5. CL5The exposure triangle: aperture, shutter, ISOEvery control speaks in stops, and each one has a side effect~8 min
  6. CL6Camera moves and parallaxPan, dolly, zoom, orbit, crane: which ones have parallax~7 min
  7. CL7The 180° ruleStay on one side of the line and screen direction holds~6 min

Tracking & Matchmove

2D tracks, stabilise, planar, 3D camera solves, lens distortion and checking a matchmove

8 lessons playablePrice: not set yet (proposal in docs/PRICING.md)
  1. TR1Pick a feature to trackGood features, pattern and search boxes, reading the error curve~8 min
  2. TR2Stabilise vs match-moveOne track, two directions~7 min
  3. TR3Planar track: replace a screenA flat surface follows a four-corner pin~8 min
  4. TR4Parallax and the camera solveDepth comes from seeing one point from two places~7 min
  5. TR5Lens distortion: undistort, then redistort only the CGStraighten the lens, then send the CG through the same lens as the plate~9 min
  6. TR6Reading solve errorError is in plate pixels: look at the worst, not just the average~9 min
  7. TR7Check a matchmove for slidePut CG on the ground, near and far, and play the whole shot~8 min
  8. TR8Object track vs camera solveTake the drone out of the camera solve, then give it a solve of its own~8 min

Keying Lab

Key a green screen in the browser, scored against the true Blender matte: keyer, edges and fine wires, despill

5 lessons playablePrice: not set yet (proposal in docs/PRICING.md)
  1. K1How a keyer worksscreen = g − max(r, b), flipped into alpha~7 min
  2. K2A hard key eats fine detailThe thin antennas vanish because the clip is too hard~7 min
  3. K3Despill: average vs maxGreen light bounced onto the robot~6 min
  4. K4Erode: shrinking the matteLast, and only a little~5 min
  5. K5Fixing edges with alpha gammaThe first edge fix after despill~5 min

Roto & Masks

Shapes, feather, Keymix, matte merges and holdouts

4 lessons playablePrice: not set yet (proposal in docs/PRICING.md)
  1. R1Shapes and featherA roto is an alpha you draw~4 min
  2. R2Grading inside a shape (Keymix)Switch between graded and original by a mask~5 min
  3. R3in, out, stencil, mask, atopWhat each matte merge keeps~5 min
  4. R4Holdout: put the robot behind a postCut the robot where something closer covers it~6 min

Transform & Filtering

Move, scale, rotate, pivots, resampling and concatenation

3 lessons playablePrice: not set yet (proposal in docs/PRICING.md)
  1. T1Transform: move, scale, rotateAlpha and shadow travel with the colour~4 min
  2. T2Stacked transforms soften the imageEvery resample costs sharpness~5 min
  3. T3Place the robot exactlyMove and scale to match the target~5 min

Integration

Make CG sit in the plate: blacks by depth, haze, light wrap, grain, QC, AOV rebuilds

6 lessons playablePrice: not set yet (proposal in docs/PRICING.md)
  1. I1Black matching by depthFar blacks are lifted and tinted by haze~7 min
  2. I2Haze by depthHaze is a coloured layer masked by depth, not a lift~7 min
  3. I3Light wrapLet a little background light bleed onto the CG edge~7 min
  4. I4Grain once, at the endFix a graph that grains every element~6 min
  5. I5QC with the viewerGain up, gamma up, then find the faults~6 min
  6. I6Rebuilding the beauty from AOVsHere: diffuse + glossy + emission = beauty~7 min

CG Multipass & Relighting

Light groups, Cryptomatte, P and N passes, depth defocus, motion vectors, shadow/AO and holdouts on our CG robot

8 lessons playablePrice: not set yet (proposal in docs/PRICING.md)
  1. CG1Light groupsRebalance each light in stops to match the plate’s light~8 min
  2. CG2Isolate with CryptomattePick the visor in the right layer and push it 1 stop, touching nothing else~7 min
  3. CG3Position mattes from the P passSelect by real 3D distance, not by screen position~7 min
  4. CG4Relighting with the normal passLet the sparks light the robot with N·L, albedo and plus~8 min
  5. CG5Depth defocus by layerDefocus each depth layer, then merge~8 min
  6. CG6Vector blurMotion-blur the CG from its motion vectors, matched to the plate’s shutter~7 min
  7. CG7Shadows and contact AOMeasure a real plate shadow and give the robot’s shadow the same colour and density~8 min
  8. CG8Holdouts and merge orderWhatever is nearer the camera goes on later~7 min

2.5D & Projection

Split a plate into depth cards, project it onto geometry, nodal pan vs translation, parallax and the gaps you must paint

5 lessons playablePrice: not set yet (proposal in docs/PRICING.md)
  1. P12D pan vs 2.5D cardsSplit the plate by depth so near things move faster than far ones~8 min
  2. P2Camera projection and the safe moveProject the plate from its own camera onto simple geometry and see how far you can move before it falls apart~9 min
  3. P3Nodal pan vs camera translationRotating in place has no parallax, so 2D is enough; once the camera travels you need 3D~7 min
  4. P4Reading depth from parallaxPosition in frame can lie; how far a point slides tells you its depth~6 min
  5. P5Why 2.5D breaks: the revealed gapsMove the camera and you see behind the rocks, which the plate never filmed: paint it in advance~8 min

Paint & Cleanup

Clone brush, wire and rig removal, tracked patches over markers, clean plates from many frames, degrain and regrain, QC with difference views and the flip-book, and when to project instead of paint

7 lessons playablePrice: not set yet (proposal in docs/PRICING.md)
  1. PC1Clone brushPick the right source, use a soft edge, and paint the shadow too~8 min
  2. PC2Wire removalFill, clone or split frequencies so the wire goes without leaving a smooth line~8 min
  3. PC3Tracked patchPaint one frame, let the track carry it~9 min
  4. PC4Clean plate with a medianCombine many frames so only the background stays and what moves drops out~8 min
  5. PC5Degrain and regrainPaint on a grain-free plate, then add new grain that moves every frame~7 min
  6. PC6Cleanup QCUse two difference views, then play every frame~8 min
  7. PC7Paint or projectPick the cheapest method whose patch doesn’t slide~8 min

Finishing & Optics

Defocus, glow, sharpen, chromatic aberration and the finishing order

5 lessons playablePrice: not set yet (proposal in docs/PRICING.md)
  1. O1Blur is not defocusPoints of light become discs (bokeh), not soft haze~6 min
  2. O2How a glow worksTake the bright part, blur at several sizes, add~6 min
  3. O3Sharpen makes halosSharper by pushing edges past reality~5 min
  4. O4Chromatic aberrationRed and blue drift apart towards the frame edge~5 min
  5. O5The finishing order, like a real cameraGlow → CA → vignette → grain~6 min

Lens Artifacts (Advanced)

Flare ghosts, anamorphic, halation, glow vs diffusion, rolling shutter, overscan and the lens stack order

7 lessons playablePrice: not set yet (proposal in docs/PRICING.md)
  1. LA1Lens flare ghostsGhosts line up from the light, through the centre, to the far side~7 min
  2. LA2The anamorphic lookVertical oval bokeh, horizontal streaks and distortion~7 min
  3. LA3Halation: add only what spreadsmax(0, spread − original), and roto out red lights~8 min
  4. LA4Diffusion, glow, veiling glare and the energy testThree different looks, and measuring a glow on a flat field~8 min
  5. LA5Rolling shutterRows read one at a time: fast pans skew, vibration wobbles~6 min
  6. LA6Overscan for redistortRender CG with spare edges, or the corners come out empty~6 min
  7. LA7Lens order and focus breathingDiffusion → flares → glints → shake → CA → halation → grain~8 min

FX Elements: fire, smoke, explosions

Fire is light, smoke is matter, interactive light, heat distortion, explosion timing, retiming by scale and element QC

7 lessons playablePrice: not set yet (proposal in docs/PRICING.md)
  1. FE1Fire is lightPlus the fire onto the plate, keep the core above 1, check the element’s black~7 min
  2. FE2Smoke is matterOver with its own alpha, graded without lifting the empty area~8 min
  3. FE3Interactive lightMultiply the light by the plate, then plus it; never add light straight on~8 min
  4. FE4Heat distortionHeat shimmers in place, above the fire, and very gently~6 min
  5. FE5Explosion timingFlash first, shake when the shockwave lands~7 min
  6. FE6Retime by scaleBig things move slowly: scale an element up, slow it down too~7 min
  7. FE7Element QCPush the viewer, check alpha and grain, then fix the right thing~7 min

Motion Basics

Keyframes, graph editor, timing and spacing, springs, overlap, camera shake and retiming for comp

7 lessons playablePrice: not set yet (proposal in docs/PRICING.md)
  1. M1Keyframes and interpolationSame two keys, very different frames in between~6 min
  2. M2The graph editor: handles and speedDrag a handle and watch the speed curve change~7 min
  3. M3Timing and spacingHow many frames, and how far apart: two different things~6 min
  4. M4Overshoot and settleA spring that overshoots once, then settles~7 min
  5. M5Follow-through and overlapping actionThe robot’s antenna: the tip arrives after the root~6 min
  6. M6Camera shake for VFXA blast’s shake starts when the shockwave arrives, not on the flash~8 min
  7. M7Retiming: slow motion without stutterNearest frame, frame blend or motion vectors~7 min

AI in Comp: CopyCat concepts

Train tiny models in the browser: input/target pairs, choosing frames, overfitting, marker cleanup, is it worth it, and QC of results

6 lessons playablePrice: not set yet (proposal in docs/PRICING.md)
  1. AI1What a model learns: input → target pairsLearn a colour grade from 3 before/after patches, then apply it to the whole frame~7 min
  2. AI2Choosing training data: coverageTrain on the darks only and the model breaks on the sky~7 min
  3. AI3Loss curves, epochs and overfittingToo big memorises noise, too small misses the shape~7 min
  4. AI4Patch-based cleanup: removing a markerFix a few frames by hand and let the model do the rest~8 min
  5. AI5When ML is worth it, and when to work by handCount artist time from your own estimates~6 min
  6. AI6Reading results: difference views, flicker and QCA good loss doesn’t mean every frame is good~7 min

Case Files: real comp problems

Real cases, detective style: symptom → cause → fix → prevention

8 lessons playablePrice: not set yet (proposal in docs/PRICING.md)
  1. CF1Case 1: the CG looks pasted on, because its blacks are deeperMatch the black of things at the same distance, not the darkest pixel in frame~7 min
  2. CF2Case 2: a light rim round the key, though the matte didn’t changeBefore touching the matte, check the colour at the edge~6 min
  3. CF3Case 3: the empty element that darkened the whole frameAlpha-0 pixels carrying negative colour from a log black~8 min
  4. CF4Case 4: flat sparks and grey bokehLight clipped at 1 before the defocus, then screened on top~7 min
  5. CF5Case 5: light from behind lands on the robotLight plussed after the foreground went over, so it covers the foreground~6 min
  6. CF6Case 6: the sparks vanished and the robot’s edge went darkA Premult kills everything outside the alpha~6 min
  7. CF7Case 7: grain on top of grainRegrain only what changed, but the mask was inverted~6 min
  8. CF8Case 8: the CG is sharper than the plateFind the culprit among three suspects~5 min