CompStart

ProLessonsCoursesElementsSoftware

CompStart

Master visual effects with cutting-edge techniques.

Learning

CoursesLessonsPro FeaturesAssetsSoftware

Tools

Tech CheckDisplay CheckMotion BlurCIE 1931PhysLightNuke Tools

Company

InstructorMissionImpressumPrivacyTerms

Projects

Moray RenderEXR ConverterOCIO.ccNuke ToolsDerekVFX

Follow

YouTubeInstagramTikTokThreadsContact

© 2026 CompStart. All rights reserved.

Radial Distort

ToolSets / Filter
Filter

2026-09-07

ToolSets/filter/radialDistort.nk

filter
distort
warp
stmap
radial
polar
lens
utility
View on GitHub

STMap radial warp for Nuke with rotation and gamma to twist and reshape falloff from center.

Radial Distort builds a polar UV map and applies it through STMap so the image warps by angle and distance from center. The map encodes normalized angle and radial distance, then feeds those channels as UVs.

Use it for quick radial stretch, twist, or lens-style pull without hand-building an STMap tree. It suits creative distortion passes and simple center-weighted warps in a filter stack.

Rotation offsets the angular component of the map. Gamma curves the radial distance channel before STMap, tightening or easing how strongly the warp reads toward the edges. Connect the plate, set rotation and gamma, and score the result in context.

Script code

set cut_paste_input [stack 0]
version 12.1 v4
push $cut_paste_input
Group {
 name radialDistort
 tile_color 0x421010ff
 selected true
 xpos -1126
 ypos 716
 addUserKnob {20 User l radialDistort}
 addUserKnob {7 rotation R -360 360}
 addUserKnob {7 gamma R 0 4}
 gamma 1.68
 addUserKnob {26 ""}
 addUserKnob {26 lbl l "" +STARTLINE T "RadialDistort v1.0"}
 addUserKnob {22 btn l DerekVFX.ca T "nuke.tcl('start', 'https://derekvfx.ca')" +STARTLINE}
}
 Input {
  inputs 0
  name Input
  xpos 447
  ypos 60
 }
set Nd732000 [stack 0]
 Multiply {
  value 0
  name Multiply1
  label "\[value value]"
  xpos 107
  ypos 286
 }
 Expression {
  temp_name0 radial
  temp_expr0 "((atan(x - center.x, y - center.y) +radians(rotation) ) + pi()) / pi()/2"
  temp_name1 offset
  temp_expr1 "(radians(rotation) *-1 ) /pi()/2"
  expr0 radial
  expr1 "sqrt(((x-center.x)**2) + ((y-center.y)**2))/diag"
  expr2 offset
  expr3 0
  name Expression3
  label "\[knob expr3]"
  xpos 107
  ypos 336
  addUserKnob {20 User}
  addUserKnob {7 diag}
  diag {{(sqrt(width**2+height**2)/2)}}
  addUserKnob {12 center}
  center {978 404}
 }
 Gamma {
  channels {-rgba.red rgba.green -rgba.blue none}
  value {{gamma}}
  name Gamma1
  xpos 107
  ypos 444
 }
push $Nd732000
 STMap {
  inputs 2
  channels rgba
  uv rgb
  name STMap3
  xpos 447
  ypos 574
 }
 Output {
  name Output1
  xpos 456
  ypos 1028
 }
end_group