Showing preview only (8,913K chars total). Download the full file or copy to clipboard to get everything.
Repository: CreativeLyons/NukeSurvivalToolkit_publicRelease
Branch: master
Commit: b6ebfa3e88fb
Files: 373
Total size: 8.4 MB
Directory structure:
gitextract_r8btb1q3/
├── .gitattributes
├── .gitignore
├── CHANGELOG.md
├── DEVELOPMENT.md
├── LICENSE
├── NukeSurvivalToolkit/
│ ├── gizmos/
│ │ ├── NST_AdditiveKeyerPro.gizmo
│ │ ├── NST_AnimationCurve.gizmo
│ │ ├── NST_AntiAliasingFilter.gizmo
│ │ ├── NST_AutoCropTool.gizmo
│ │ ├── NST_AutoFlare2.gizmo
│ │ ├── NST_BBoxToFormat.gizmo
│ │ ├── NST_BeautifulSkin.gizmo
│ │ ├── NST_BiasedSaturation.gizmo
│ │ ├── NST_BinaryAlpha.gizmo
│ │ ├── NST_BlacksExpon.gizmo
│ │ ├── NST_BlacksMatch.gizmo
│ │ ├── NST_BokehBuilder.gizmo
│ │ ├── NST_C44Kernel.gizmo
│ │ ├── NST_CProject.gizmo
│ │ ├── NST_CProject2.gizmo
│ │ ├── NST_CameraNormals.gizmo
│ │ ├── NST_CardToTrack.gizmo
│ │ ├── NST_CardToTrack2.gizmo
│ │ ├── NST_CatsEyeDefocus.gizmo
│ │ ├── NST_CellNoise.gizmo
│ │ ├── NST_ChannelCombiner.gizmo
│ │ ├── NST_ChannelControl.gizmo
│ │ ├── NST_ChannelCreator.gizmo
│ │ ├── NST_ChromaSmear.gizmo
│ │ ├── NST_Chromatik.gizmo
│ │ ├── NST_ColorCopy.gizmo
│ │ ├── NST_ColorSampler.gizmo
│ │ ├── NST_ColorSmear.gizmo
│ │ ├── NST_ConstantPro.gizmo
│ │ ├── NST_ContactSheetAuto.gizmo
│ │ ├── NST_Contrast.gizmo
│ │ ├── NST_ConvertPNZ.gizmo
│ │ ├── NST_ConvolutionMatrix.gizmo
│ │ ├── NST_CornerPin2D_Matrix.gizmo
│ │ ├── NST_CrossProductVector2.gizmo
│ │ ├── NST_CrossProductVector3.gizmo
│ │ ├── NST_DVPColorCorrect.gizmo
│ │ ├── NST_DVPToImage.gizmo
│ │ ├── NST_DVP_Shader.gizmo
│ │ ├── NST_DVP_ToonShader.gizmo
│ │ ├── NST_DVPattern.gizmo
│ │ ├── NST_DVPfresnel.gizmo
│ │ ├── NST_DVPmatte.gizmo
│ │ ├── NST_DVPortal.gizmo
│ │ ├── NST_DVPrelight.gizmo
│ │ ├── NST_DVPrelightPT.gizmo
│ │ ├── NST_DVProjection.gizmo
│ │ ├── NST_DVPscene.gizmo
│ │ ├── NST_DVPsetLight.gizmo
│ │ ├── NST_DasGrain.gizmo
│ │ ├── NST_Deep2VP.gizmo
│ │ ├── NST_Deep2VPosition.gizmo
│ │ ├── NST_DeepBoolean.gizmo
│ │ ├── NST_DeepCopyBBox.gizmo
│ │ ├── NST_DeepCropSoft.gizmo
│ │ ├── NST_DeepFromDepth.gizmo
│ │ ├── NST_DeepFromPosition.gizmo
│ │ ├── NST_DeepHoldoutSmoother.gizmo
│ │ ├── NST_DeepKeyMix.gizmo
│ │ ├── NST_DeepMerge_Advanced.gizmo
│ │ ├── NST_DeepRecolorMatte.gizmo
│ │ ├── NST_DeepSampleCount.gizmo
│ │ ├── NST_DeepSer.gizmo
│ │ ├── NST_DeflickerVelocity.gizmo
│ │ ├── NST_DefocusSwirlyBokeh.gizmo
│ │ ├── NST_DespillToColor.gizmo
│ │ ├── NST_Diffusion.gizmo
│ │ ├── NST_DirectionalBlur.gizmo
│ │ ├── NST_Distance3D.gizmo
│ │ ├── NST_DistanceBetween_CS.gizmo
│ │ ├── NST_DotProductVector2.gizmo
│ │ ├── NST_DotProductVector3.gizmo
│ │ ├── NST_DummyCam.gizmo
│ │ ├── NST_Edge.gizmo
│ │ ├── NST_EdgeDetectAlias.gizmo
│ │ ├── NST_EdgeDetectPRO.gizmo
│ │ ├── NST_EdgeFromAlpha.gizmo
│ │ ├── NST_Edge_Expand.gizmo
│ │ ├── NST_Edge_RimLight.gizmo
│ │ ├── NST_Emission.gizmo
│ │ ├── NST_EnvReflect_BB.gizmo
│ │ ├── NST_ErodeSmooth.gizmo
│ │ ├── NST_Erode_Fine.gizmo
│ │ ├── NST_ExponBlurSimple.gizmo
│ │ ├── NST_ExponGlow.gizmo
│ │ ├── NST_F_P_Project.gizmo
│ │ ├── NST_F_P_Ramp.gizmo
│ │ ├── NST_FastComplexityDistort.gizmo
│ │ ├── NST_FillSampler.gizmo
│ │ ├── NST_FlareSuperStar.gizmo
│ │ ├── NST_FractalBlur.gizmo
│ │ ├── NST_FrameFiller.gizmo
│ │ ├── NST_FrameHoldSpecial.gizmo
│ │ ├── NST_FrameMedian.gizmo
│ │ ├── NST_GUI_Switch.gizmo
│ │ ├── NST_GammaPlus.gizmo
│ │ ├── NST_GenerateMatrix4.gizmo
│ │ ├── NST_GenerateSTMap.gizmo
│ │ ├── NST_GeoToPoints.gizmo
│ │ ├── NST_Glass.gizmo
│ │ ├── NST_Glow_Exponential.gizmo
│ │ ├── NST_GlueP.gizmo
│ │ ├── NST_GodRaysProjector.gizmo
│ │ ├── NST_GradMagic.gizmo
│ │ ├── NST_GradeLayerPass.gizmo
│ │ ├── NST_Grain_Advanced.gizmo
│ │ ├── NST_GuidedBlur.gizmo
│ │ ├── NST_HSL_Tool.gizmo
│ │ ├── NST_Halation.gizmo
│ │ ├── NST_HeatWave.gizmo
│ │ ├── NST_HexColor.gizmo
│ │ ├── NST_HighPass.gizmo
│ │ ├── NST_HighlightSuppress.gizmo
│ │ ├── NST_ID_Extractor.gizmo
│ │ ├── NST_IIDistort.gizmo
│ │ ├── NST_ITransformU.gizmo
│ │ ├── NST_ImagePlane3D.gizmo
│ │ ├── NST_InjectMatteChannel.gizmo
│ │ ├── NST_InverseMatrix33.gizmo
│ │ ├── NST_InverseMatrix44.gizmo
│ │ ├── NST_InvertAxis.gizmo
│ │ ├── NST_InvertMatrix4.gizmo
│ │ ├── NST_KeyChew.gizmo
│ │ ├── NST_KeymixBBox.gizmo
│ │ ├── NST_KillOutline.gizmo
│ │ ├── NST_LabelFromRead.gizmo
│ │ ├── NST_LensEngine.gizmo
│ │ ├── NST_LightSwitch.gizmo
│ │ ├── NST_LightWrapPro.gizmo
│ │ ├── NST_Lightning3D.gizmo
│ │ ├── NST_LineTool.gizmo
│ │ ├── NST_Looper.gizmo
│ │ ├── NST_LumaGrain.gizmo
│ │ ├── NST_LumaKeyer.gizmo
│ │ ├── NST_LumaToVector3.gizmo
│ │ ├── NST_MECfiller.gizmo
│ │ ├── NST_MagnitudeVector2.gizmo
│ │ ├── NST_MagnitudeVector3.gizmo
│ │ ├── NST_Matrix4x4Math.gizmo
│ │ ├── NST_Matrix4x4_Inverse.gizmo
│ │ ├── NST_MergeAll.gizmo
│ │ ├── NST_MergeAtmos.gizmo
│ │ ├── NST_MergeBlend.gizmo
│ │ ├── NST_MirrorBorder.gizmo
│ │ ├── NST_MirrorDimension.gizmo
│ │ ├── NST_MonochromePlus.gizmo
│ │ ├── NST_MorphDissolve.gizmo
│ │ ├── NST_MotionBlurPaint.gizmo
│ │ ├── NST_MultiplyVector3Matrix3.gizmo
│ │ ├── NST_NAN_INF_Killer.gizmo
│ │ ├── NST_N_Reflection.gizmo
│ │ ├── NST_Noise3DTexture.gizmo
│ │ ├── NST_Noise3D_spin.gizmo
│ │ ├── NST_NoiseAdvanced.gizmo
│ │ ├── NST_NormalizeVector2.gizmo
│ │ ├── NST_NormalizeVector3.gizmo
│ │ ├── NST_NormalsRotate.gizmo
│ │ ├── NST_NukeZ.gizmo
│ │ ├── NST_P2N.gizmo
│ │ ├── NST_P2Z.gizmo
│ │ ├── NST_P_Noise_Advanced.gizmo
│ │ ├── NST_ParticleKiller.gizmo
│ │ ├── NST_ParticleLights.gizmo
│ │ ├── NST_PerspectiveGuide.gizmo
│ │ ├── NST_PlanarProjection.gizmo
│ │ ├── NST_PlotScanline.gizmo
│ │ ├── NST_PointCloudKeyer.gizmo
│ │ ├── NST_PosMatte_MJ.gizmo
│ │ ├── NST_PosPattern_MJ.gizmo
│ │ ├── NST_PosProjection_MJ.gizmo
│ │ ├── NST_ProductMatrix4.gizmo
│ │ ├── NST_Pyclopedia.gizmo
│ │ ├── NST_Python_and_TCL.gizmo
│ │ ├── NST_RP_Reformat.gizmo
│ │ ├── NST_RadialAdvanced.gizmo
│ │ ├── NST_RadialDilate.gizmo
│ │ ├── NST_RainMaker.gizmo
│ │ ├── NST_Randomizer.gizmo
│ │ ├── NST_RankFilter.gizmo
│ │ ├── NST_RayDeepAO.gizmo
│ │ ├── NST_ReProject_3D.gizmo
│ │ ├── NST_Reconcile3DFast.gizmo
│ │ ├── NST_Relight_Simple.gizmo
│ │ ├── NST_Relight_bb.gizmo
│ │ ├── NST_Rings_of_Power.gizmo
│ │ ├── NST_RotateMatrix4.gizmo
│ │ ├── NST_RotateVector2.gizmo
│ │ ├── NST_RotateVector3.gizmo
│ │ ├── NST_RotoCentroid.gizmo
│ │ ├── NST_RotoPaintTransform.gizmo
│ │ ├── NST_RotoQC.gizmo
│ │ ├── NST_SSMesh.gizmo
│ │ ├── NST_STMapToVector2.gizmo
│ │ ├── NST_STmapInverse.gizmo
│ │ ├── NST_ScaleMatrix4.gizmo
│ │ ├── NST_SceneDepthCalculator.gizmo
│ │ ├── NST_ShadowMult.gizmo
│ │ ├── NST_SimpleSSS.gizmo
│ │ ├── NST_SkyMatte.gizmo
│ │ ├── NST_SliceTool.gizmo
│ │ ├── NST_Sparky.gizmo
│ │ ├── NST_Spill_Correct.gizmo
│ │ ├── NST_SpotFlare.gizmo
│ │ ├── NST_SpotLight.gizmo
│ │ ├── NST_Suppress_RGBCMY.gizmo
│ │ ├── NST_Symmetry.gizmo
│ │ ├── NST_TProject.gizmo
│ │ ├── NST_TProject2.gizmo
│ │ ├── NST_TimeMachine.gizmo
│ │ ├── NST_TransformCutOut.gizmo
│ │ ├── NST_TransformMatrix.gizmo
│ │ ├── NST_TransformMatrix4.gizmo
│ │ ├── NST_TransformMix.gizmo
│ │ ├── NST_TransformVector2.gizmo
│ │ ├── NST_TransformVector3.gizmo
│ │ ├── NST_TranslateMatrix4.gizmo
│ │ ├── NST_TransposeMatrix4.gizmo
│ │ ├── NST_UVEditor.gizmo
│ │ ├── NST_UV_Map.gizmo
│ │ ├── NST_UV_Mapper.gizmo
│ │ ├── NST_Unify3DCoordinate.gizmo
│ │ ├── NST_Vector2ToSTMap.gizmo
│ │ ├── NST_Vector3ToMatrix4.gizmo
│ │ ├── NST_VectorExtendEdge.gizmo
│ │ ├── NST_VectorTracker.gizmo
│ │ ├── NST_Vectors_Direction.gizmo
│ │ ├── NST_Vectors_to_Degrees.gizmo
│ │ ├── NST_VoronoiGradient.gizmo
│ │ ├── NST_WaterLens.gizmo
│ │ ├── NST_WaveletBlur.gizmo
│ │ ├── NST_WhiteBalance.gizmo
│ │ ├── NST_WhiteSoftClip.gizmo
│ │ ├── NST_X_Aton_Volumetrics.gizmo
│ │ ├── NST_X_Denoise.gizmo
│ │ ├── NST_X_Distort.gizmo
│ │ ├── NST_X_Sharpen.gizmo
│ │ ├── NST_X_Soften.gizmo
│ │ ├── NST_X_Tesla.gizmo
│ │ ├── NST_Z2N.gizmo
│ │ ├── NST_Z2P.gizmo
│ │ ├── NST_ZeroAxis.gizmo
│ │ ├── NST_aPCard.gizmo
│ │ ├── NST_aPMatte_v2.gizmo
│ │ ├── NST_aeRefracTHOR.gizmo
│ │ ├── NST_aeRelight2D.gizmo
│ │ ├── NST_aeShadows.gizmo
│ │ ├── NST_apChroma.gizmo
│ │ ├── NST_apChromaBlurNew.gizmo
│ │ ├── NST_apChromaMergeNew.gizmo
│ │ ├── NST_apChromaPremult.gizmo
│ │ ├── NST_apChromaTransformNew.gizmo
│ │ ├── NST_apChromaUnpremult.gizmo
│ │ ├── NST_apDespill.gizmo
│ │ ├── NST_apDirLight.gizmo
│ │ ├── NST_apEdgeCrush.gizmo
│ │ ├── NST_apEdgePush.gizmo
│ │ ├── NST_apFresnel.gizmo
│ │ ├── NST_apLoop.gizmo
│ │ ├── NST_apViewerBlocker.gizmo
│ │ ├── NST_apVignette.gizmo
│ │ ├── NST_apeGlow.gizmo
│ │ ├── NST_apeScreenClean.gizmo
│ │ ├── NST_apeScreenGrow.gizmo
│ │ ├── NST_bm_CameraShake.gizmo
│ │ ├── NST_bm_CurveRemapper.gizmo
│ │ ├── NST_bm_MatteCheck.gizmo
│ │ ├── NST_bm_NoiseGen.gizmo
│ │ ├── NST_bm_OpticalGlow.gizmo
│ │ ├── NST_bm_OpticalLightwrap.gizmo
│ │ ├── NST_deHaze.gizmo
│ │ ├── NST_fxT_ChromaticAberration.gizmo
│ │ ├── NST_h_gradienteditor.gizmo
│ │ ├── NST_h_silk.gizmo
│ │ ├── NST_h_stickit.gizmo
│ │ ├── NST_iBlurU.gizmo
│ │ ├── NST_iConvolve.gizmo
│ │ ├── NST_iErode.gizmo
│ │ ├── NST_iMorph.gizmo
│ │ ├── NST_iMorph_v2.gizmo
│ │ ├── NST_iTransform_ae.gizmo
│ │ ├── NST_mScatterGeo.gizmo
│ │ ├── NST_origami.gizmo
│ │ ├── NST_renameChannels.gizmo
│ │ ├── NST_streamCart.gizmo
│ │ ├── NST_vector3DMathExpression.gizmo
│ │ ├── NST_viewer_render.gizmo
│ │ ├── NST_waterSchmutz.gizmo
│ │ ├── NST_waveCustom.gizmo
│ │ ├── NST_waveGrade.gizmo
│ │ ├── NST_waveMaker.gizmo
│ │ ├── NST_waveMerge.gizmo
│ │ └── NST_waveRetime.gizmo
│ ├── init.py
│ ├── menu.py
│ ├── nk_files/
│ │ ├── C4x4.nk
│ │ ├── GradientCorner.nk
│ │ ├── IBKGizmo_Expression.nk
│ │ ├── Lines_Horizontal.nk
│ │ ├── Lines_Horizontal_Animated.nk
│ │ ├── Lines_Vertical.nk
│ │ ├── Lines_Vertical_Animated.nk
│ │ ├── NST_AdvancedKeyingTemplate.nk
│ │ ├── NST_AdvancedKeyingTemplate_Stamps.nk
│ │ ├── NST_LightSwitchPuppet.nk
│ │ ├── NST_Noise4D.nk
│ │ ├── NST_ParticleLights_ExampleScript.nk
│ │ ├── NST_SSMesh_demo.nk
│ │ ├── NST_STMap_Keying_Setup.nk
│ │ ├── NST_SparkyExampleScene.nk
│ │ ├── NST_UVEditor_demo_clean.nk
│ │ ├── NST_WaterLens_sampleScript.nk
│ │ ├── NST_X_Aton_Examples.nk
│ │ ├── Noise.nk
│ │ ├── Random_colors.nk
│ │ ├── Random_every_frame.nk
│ │ ├── Random_every_pixel.nk
│ │ ├── STMap_invert.nk
│ │ ├── Trunc.nk
│ │ ├── UV_to_Vector.nk
│ │ ├── Vector_to_UV.nk
│ │ ├── abs.nk
│ │ ├── alpha_binary.nk
│ │ ├── alpha_comparison.nk
│ │ ├── alpha_exists.nk
│ │ ├── alpha_sum.nk
│ │ ├── bricks.nk
│ │ ├── check_nan_inf.nk
│ │ ├── check_negative.nk
│ │ ├── circles.nk
│ │ ├── circles_user.nk
│ │ ├── coordinates.nk
│ │ ├── create_inf.nk
│ │ ├── create_nan.nk
│ │ ├── deepThickness.nk
│ │ ├── deepToDepth.nk
│ │ ├── depth_normalize.nk
│ │ ├── despill_blue.nk
│ │ ├── despill_blue_list.nk
│ │ ├── despill_green.nk
│ │ ├── despill_green_list.nk
│ │ ├── differenceKey.nk
│ │ ├── fBm.nk
│ │ ├── gradient_horizontal.nk
│ │ ├── gradient_horizontal_invert.nk
│ │ ├── gradient_vertical.nk
│ │ ├── gradient_vertical_invert.nk
│ │ ├── keying.nk
│ │ ├── kill_inf.nk
│ │ ├── kill_nan.nk
│ │ ├── normalPass_relight.nk
│ │ ├── points.nk
│ │ ├── points_advanced.nk
│ │ ├── radial.nk
│ │ ├── radial_gradient.nk
│ │ ├── radial_rays.nk
│ │ ├── transform.nk
│ │ ├── transform_advanced.nk
│ │ ├── turbulence.nk
│ │ └── twist.nk
│ └── python/
│ ├── ColorGradientUi.py
│ ├── GradientPresets.cfg
│ ├── NST_ID_Extractor.py
│ ├── NST_VectorTracker.py
│ ├── NST_cardToTrack.py
│ ├── NST_cardToTrack_v9.py
│ ├── NST_helper.py
│ └── NST_stickit.py
└── README.md
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitattributes
================================================
# Auto detect text files and perform LF normalization
* text=auto
================================================
FILE: .gitignore
================================================
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
## Mac ignore
# General
.DS_Store
.AppleDouble
.LSOverride
*.pyc
tab_stats.dat
*.dat
.dropbox
# Thumbnails
._*
# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent
# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
# C extensions
*.so
# Distribution / packaging
*.zip
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
pip-wheel-metadata/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
# Translations
*.mo
*.pot
# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal
# Flask stuff:
instance/
.webassets-cache
# Scrapy stuff:
.scrapy
# Sphinx documentation
docs/_build/
# PyBuilder
target/
# Jupyter Notebook
.ipynb_checkpoints
# IPython
profile_default/
ipython_config.py
# pyenv
.python-version
# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock
# celery beat schedule file
celerybeat-schedule
# SageMath parsed files
*.sage.py
# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/
# Spyder project settings
.spyderproject
.spyproject
# Rope project settings
.ropeproject
# mkdocs documentation
/site
# mypy
.mypy_cache/
.dmypy.json
dmypy.json
# Pyre type checker
.pyre/
.DS_Store
*.dat
# Cursor IDE
.cursor/
# AI assistant/tooling
.claude/
.codex/
# JetBrains IDE
.idea/
# Code review reports
.code-review/
.code-review
================================================
FILE: CHANGELOG.md
================================================
# Changelog
All notable changes to the Nuke Survival Toolkit are documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [2.2.0] - 2026-03-19
### Added
**Tools (gizmos and Python)**
**2026**
- CardToTrack (AK) v9.0
**2024**
- aeShadows (AE) v1.0
- FastComplexity_Distort (MHD)
- fxT_ChromaticAberration (fxT) v3.1
- Emission (NW) v1.2
- aeRefracTHOR (AE) v1.0
- LightSwitch (TL)
- LightSwitchPuppet template
- ChromaSmear (LJ)
- apEdgeCrush (AP)
- MirrorDimension (TL)
**2023**
- PointCloudKeyer (IS)
- SpotLight (TL)
- Rings of Power (TL)
- Symmetry (TL)
- SkyMatte
**2022**
- CardToTrack (AK) updated to v8.0 with NST_cardToTrack.py
- ID_Extractor (TL) with NST_ID_Extractor.py
- ConstantPro (TL)
- HexColor (NW)
- RadialDilate (CF)
**2021**
- GuidedBlur (RF)
- iErode (PP)
- aeRelight2D (AE)
- iTransform_ae (AE) — later fixed onCreate code for render farm
- ImagePlane3D_v2 (TL) v2.0
- bm_OpticalLightwrap (renamed from bm_Lightwrap)
---
**Other**
- `LOAD_EXPRESSION_MENU` configuration option in `menu.py` to optionally enable or disable the Expression Nodes AG submenu (default: disabled).
### Changed
- Icon assets recompressed for ~53% size reduction (~127 KB saved); no visual changes.
- `ColorGradientUi.py` updated for Nuke 16+ compatibility and PySide6 migration (GradientEditor MHD).
- Menu refactor: `nk_path()` and `icon_path()` helpers, f-strings, improved readability; no user-visible behavior change.
- Documentation menu now uses a `Documentation` submenu with `Wiki/Docs (Auto)`, `Wiki (Online)`, `Wiki (Offline)`, and `Docs (PDF)` commands. The auto command now falls back in order: online wiki -> offline local wiki -> local PDF, with reachability checks and concise missing-target guidance.
- Documentation (offline HTML): **`Wiki/Docs (Auto)`** and **`Wiki (Offline)`** open the bundled wiki via a local **`http://127.0.0.1`** static server (ephemeral port) so **MkDocs Material search** works; falls back to **`file://`** if the server cannot start; browser launch is **non-blocking** (background thread). Reuses the same server when the offline root path is unchanged.
- Added dedicated icons for documentation submenu entries (`wiki_default`, `wiki_online`, `wiki_offline`) and used Nuke native `StickyNote` for PDF.
- `README.md` now includes an optional offline documentation install section that points users to release ZIP downloads and the required local path (`NukeSurvivalToolkit/NST_Documentation/index.html`).
- Updated .nk templates: NST_AdvancedKeyingTemplate_Stamps.nk, NST_X_Aton_Examples.nk, deepThickness.nk.
- New icon assets for aeRefracTHOR, aeShadows.
- EdgeDetect, GuidedBlur: corrected icons and attribution (#62).
- iMorph v2 AP (beta) added alongside v1 in menu.
- CardToTrack v9 (AK): Transform menu entries CardToTrack_v9 AK, CProject2 AK, TProject2 AK now use NST_-prefixed gizmos (NST_CardToTrack2, NST_CProject2, NST_TProject2) and NST_cardToTrack_v9.py.
**Updated Tools**
*Nuke 13 compatibility:*
- aPCard
- AutoCropTool
- DeepKeyMix
- FrameFiller
- GradMagic
- ImagePlane3D
- LumaGrain
- Matrix4x4_Inverse
- mScatterGeo
- origami
- PlanarProjection (also fixed XAton volumes example)
- Reconcile3DFast
- Relight_Simple
- ReProject_3D
- RotoCentroid
- RP_Reformat
- Sparky
- SSMesh
- viewer_render
- VoronoiGradient
*Other updates:*
- apeGlow (fixed overscan bug on crop knobs)
- apChroma (internal restructure)
- apChromaMergeNew (internal restructure)
- apDespill: v1 deprecated, v2 promoted as canonical — `NST_apDespill_v2.gizmo` renamed to `NST_apDespill.gizmo` (#63)
- apVignette (v0.5: added transform tab, "Apply to White Constant" option)
- bm_CameraShake (v4.0: fewer internal nodes/expressions, curve smoothness control, cleaner UI, experimental auto-motionblur beta) (#39)
- bm_OpticalGlow (v4.1: fixed mix slider with mask input, removed stale `algorithm_code` knob) (#40, #64)
- bm_OpticalLightwrap (fixed mix slider with mask input, removed stale `algorithm_code` knob, default `effect_only` to false, renamed menu entry and icon) (#41)
- CameraNormals (updated DummyCam to v1.3)
- CellNoise (fixed onCreate center calculation)
- ColorSampler (added option to export constant)
- DeepRecolorMatte (bug fixes, ported later version)
- DummyCam (v1.3, Nuke 13/14+ Camera3 class)
- ExponGlow (fixed bug that deleted luma key when changing iterations)
- Glass (added channel support and mask input)
- InjectMatteChannel (exposed bbox knob)
- LightWrapPro (fixed bounding box in non-final view modes)
- MorphDissolve (added 0→1 / 1→0 options, STmap export)
- SimpleSSS (internal cleanup)
- SliceTool (code cleanup)
- STmapInverse (code cleanup)
- Suppress_RGBCMY (added mask and mix features)
- UV_Map (fixed overscan scaling bug)
- UV_Mapper (internal cleanup)
### Removed
- `h_Qt.py` — obsolete Qt compatibility shim (no longer needed after PySide6 migration).
- `NST_bm_Lightwrap.gizmo` — replaced by bm_OpticalLightwrap.
- `NST_apDespill_v2.gizmo` — renamed to `NST_apDespill.gizmo` (v2 promoted as canonical).
- GlobalCTRL, AnamorphicLensBlur — removed from toolkit (no menu entry, not maintained).
- Duplicate `NST_ImagePlane3D_v2.gizmo` — identical to v1, single copy retained.
### Fixed
- CellNoise: Blink kernel compile errors on Nuke 15+ (moved globals to #define, replaced abs() with signedness check) (#36).
- apEdgeCrush: BlinkScript compile error on Nuke 16 — replaced global inline `lerp()` with `#define` macro (#59).
- Windows filepath issues: use `Path.as_posix()` for all toolkit paths so forward slashes are used on every platform, avoiding backslash escape sequences (e.g. `\n` in `\nk_files`) that broke `nuke.nodePaste()` and file knobs on Windows.
- Help documentation link on Windows: use `Path.as_uri()` for the documentation PDF URL so drive-letter paths open correctly in the browser.
- Documentation online reachability check now handles environments where Python SSL certificate validation fails, preventing false fallback from online docs to PDF.
- Offline MkDocs **search** was unreliable when the wiki was opened as **`file://`** — mitigated by serving the same folder over **localhost** when launching from Nuke (**Wiki/Docs (Auto)** / **Wiki (Offline)**).
- Node class check in `filepathCreateNode`: use tuple membership instead of chained `or` for file-node detection (#46).
- Replaced bare `except:` clauses with specific exception handling (ImportError, RuntimeError) for ColorGradientUi, VectorTracker, and NST_cardToTrack imports (#45).
- Menu: corrected bm_Lightwrap node name to bm_OpticalLightwrap (#61).
- Menu: replaced broken DeepToPosition TL with Deep2VPosition MJT (#60).
- Issue #43: **`NST_FolderPath` is defined inside `NST_helper`** (from `__file__`) instead of being assigned from `menu.py`, so the helper does not depend on `menu.py` having run first and avoids import-order `NameError` risk.
---
## [2.1.1] - 2021-05-19
### Changed
- Updated NST_ImagePlane3D, NST_apDespill_v2, NST_FrameHoldSpecial gizmos.
- Updated deepThickness.nk script.
---
## [2.1.0] - 2021-04-28
### Added
**Tools (gizmos and Python)**
**2021**
- BokehBuilder (KB)
- LensEngine (KB)
- RankFilter (JP)
- MotionBlurPaint (AG)
- RotoPaintTransform (AG)
- Deep2VP (MJT)
- DVPColorCorrect (MJT)
- DVP_Shader (MJT)
- DVP_ToonShader (MJT)
- DVPrelightPT (MJT)
- DVPortal (MJT)
- FrameHoldSpecial (AG)
- InverseMatrix33 (MJT)
- InverseMatrix44 (MJT)
- apDespill v2 (AP)
- MonochromePlus (CF)
**2020**
- iMorph v2 (AP)
- LabelFromRead (TL)
- Unify3DCoordinate (MJT)
- SceneDepthCalculator (MJT)
- DasGrain (FH)
- Looper (DB)
- HeatWave (DB)
---
**Other**
- New documentation.
### Changed
- NST_ImagePlane3D, NST_GradMagic, NST_iMorph updates.
- Menu structure updates.
---
## [2.0.0] - 2021-03-29
### Added
**Tools (gizmos and Python)**
**2021**
- GodRaysProjector (CF)
- MonochromePlus (CF)
- RainMaker (MR)
**2020**
- ImagePlane3D (TL) v2.0
- FrameFiller (MJT)
- Edge (RB)
- Reconcile3DFast (DR)
- GlueP (LS)
- AutoFlare2 (NKPD)
- DeepMerge_Advanced (BM)
- bm_MatteCheck (BM)
- bm_NoiseGen (BM)
- bm_Lightwrap (BM)
- SimpleSSS (MHD)
- KeyChew (NKPD)
- AdditiveKeyerPro (TL)
- apeGlow (AP)
- iBlurU (NKPD)
- DeepFromDepth
---
**Other**
- ReadGeo class support in NST_helper.
- PerspectiveBB reset points button.
- UV_Map, injectChannelMatte tab rename.
- Menu restructure and submenus.
### Changed
- Nuke 13 compatibility updates across multiple gizmos.
- Major init.py restructure.
- Documentation updates.
### Fixed
- ImagePlane3D crop1, DirectionalBlur CopyBBox, bm_MatteCheck grey_amt.
- Menu bugs.
- NST_Reconcile3DFast.
---
## [1.1.1] - 2020-10-05
### Changed
- Updated NST_AutoFlare2 gizmo.
---
## [1.1.0] - 2020-10-04
### Added
**Tools (gizmos and Python)**
- AutoFlare2 (NKPD)
- FrameFiller (MJT)
- Edge (RB)
- Reconcile3DFast (DR)
- GlueP (LS)
- DeepMerge_Advanced (BM)
- bm_MatteCheck (BM)
- bm_NoiseGen (BM)
- bm_CurveRemapper (BM)
- bm_Lightwrap (BM)
- SimpleSSS (MHD)
- KeyChew (NKPD)
---
### Changed
- Dev branch merge; bm_Lightwrap replaced prior NST_bm_Lightwrap; various tool updates.
---
## [1.0.1] - 2020-09-26
### Changed
- Sparky DB updated to v1.5.
- README updates.
---
## [1.0.0] - 2020-09-23
### Added
**Tools (gizmos and Python)**
- Initial curated gizmo collection.
---
**Other**
- Portable tool menu for Foundry Nuke.
- Installation via init.py plugin path.
[Unreleased]: https://github.com/CreativeLyons/NukeSurvivalToolkit_publicRelease/compare/v2.2.0...HEAD
[2.2.0]: https://github.com/CreativeLyons/NukeSurvivalToolkit_publicRelease/compare/v2.1.1...v2.2.0
[2.1.1]: https://github.com/CreativeLyons/NukeSurvivalToolkit_publicRelease/compare/v2.1.0...v2.1.1
[2.1.0]: https://github.com/CreativeLyons/NukeSurvivalToolkit_publicRelease/compare/v2.0.0...v2.1.0
[2.0.0]: https://github.com/CreativeLyons/NukeSurvivalToolkit_publicRelease/compare/v1.1.1...v2.0.0
[1.1.1]: https://github.com/CreativeLyons/NukeSurvivalToolkit_publicRelease/compare/v1.1.0...v1.1.1
[1.1.0]: https://github.com/CreativeLyons/NukeSurvivalToolkit_publicRelease/compare/v1.0.1...v1.1.0
[1.0.1]: https://github.com/CreativeLyons/NukeSurvivalToolkit_publicRelease/compare/v1.0.0...v1.0.1
[1.0.0]: https://github.com/CreativeLyons/NukeSurvivalToolkit_publicRelease/releases/tag/v1.0.0
================================================
FILE: DEVELOPMENT.md
================================================
# NukeSurvivalToolkit Development Notes
This document captures key learnings, architecture decisions, and development knowledge for AI agents and developers working on this project.
## Architecture Overview
```
NukeSurvivalToolkit/
├── menu.py # Main entry point - creates toolbar, loads all tools
├── init.py # Minimal (plugin path setup happens in menu.py)
├── gizmos/ # 290+ .gizmo files (prefixed NST_)
├── python/ # Supporting Python modules
├── nk_files/ # .nk script templates and presets
├── icons/ # Menu and tool icons (.png)
└── images/ # Demo images referenced by gizmos
```
**Loading Flow:**
1. User adds `nuke.pluginAddPath("path/to/NukeSurvivalToolkit")` to their `init.py`
2. Nuke auto-loads `menu.py` on startup
3. `menu.py` registers plugin paths, imports helpers, creates the toolbar menu structure
**Documentation menu:** Online/offline/PDF targets and opening offline HTML (preferring a local `http://127.0.0.1` server so MkDocs Material search works) are implemented in `NST_helper`—see that module and `CHANGELOG.md`.
## Menu System
### Entry Point: `menu.py`
The menu system uses `nuke.menu('Nodes')` to create a toolbar with submenus:
```python
toolbar = nuke.menu('Nodes')
NST_menu = toolbar.addMenu('NukeSurvivalToolkit', icon="SurvivalToolkit.png")
```
### Helper Functions
Two utility functions simplify path construction:
```python
def nk_path(filename, prefix=False):
"""Return full path to an .nk file in nk_files folder."""
name = f"{prefixNST}{filename}" if prefix else filename
return f"{NST_FolderPath}/nk_files/{name}"
def icon_path(filename):
"""Return full path to an icon file."""
return f"{NST_FolderPath}/icons/{filename}"
```
Usage patterns:
```python
# With prefix (NST_AdvancedKeyingTemplate.nk)
nk_path("AdvancedKeyingTemplate.nk", prefix=True)
# Without prefix (deepThickness.nk)
nk_path("deepThickness.nk")
```
### Tool Creation Methods
There are three ways tools are added to menus:
1. **Direct gizmo creation** (most common):
```python
menu.addCommand('ToolName', f"nuke.createNode('{prefixNST}ToolName')", icon="icon.png")
```
2. **Node paste from .nk file** (for templates/multi-node setups):
```python
menu.addCommand('Template', f'nuke.nodePaste("{nk_path("Template.nk")}")')
```
3. **Helper function** (for tools needing file path replacement):
```python
menu.addCommand('AutoFlare', f"NST_helper.filepathCreateNode('{prefixNST}AutoFlare2')")
```
## Gizmo Naming Convention
**All toolkit gizmos are prefixed with `NST_`** to avoid conflicts with user tools or other plugins.
```
NST_DummyCam.gizmo
NST_LabelFromRead.gizmo
NST_ID_Extractor.gizmo
```
The prefix is stored as a global in `menu.py`:
```python
global prefixNST
prefixNST = "NST_"
```
## Cross-Platform Path Handling
### The Windows Backslash Problem
Windows uses backslashes (`\`) in paths, which causes issues:
- `\n` in a path like `C:\nk_files\` is interpreted as a newline
- `nuke.nodePaste()` fails with malformed paths
- File knobs display incorrectly
**Solution:** Always use `Path.as_posix()` to force forward slashes:
```python
from pathlib import Path
# CORRECT - works on all platforms
NST_FolderPath = Path(__file__).parent.as_posix()
# WRONG - breaks on Windows
NST_FolderPath = os.path.dirname(__file__)
```
`NST_helper.py` also defines `NST_FolderPath` at import time from its own location (toolkit root is the parent of `python/`). `menu.py` still assigns `NST_helper.NST_FolderPath` after import; both point at the same toolkit folder.
### Documentation URLs (`NST_helper`)
Documentation is opened from `NST_helper` (see `openNSTDocumentationDefault`, `openNSTDocumentationOffline`, `openNSTDocumentationPDF`).
- **Online wiki:** `webbrowser.open(NST_DOCS_ONLINE_URL)` with a prior HTTPS reachability check (`is_online_wiki_reachable`).
- **Offline HTML:** Prefer `http://127.0.0.1:<port>/` via a small local static server so MkDocs Material search works; if that fails, fall back to `offline_index.as_uri()` (`file://`).
- **PDF in toolkit root:** Resolve with `find_pdf_doc()` (`NST_DOCS_PDF_NAME` under `_toolkit_root()`), then open with `Path.as_uri()` so Windows drive letters become valid `file:///…` URLs:
```python
pdf_doc = find_pdf_doc()
if pdf_doc:
webbrowser.open(pdf_doc.as_uri())
```
## Dynamic File Path Replacement
Some gizmos contain Read/Camera nodes that reference image files in the toolkit. These use a placeholder pattern:
```python
# In gizmo: file path contains "<<<replace>>>"
# NST_helper.filepathCreateNode() swaps it with actual path
def filepathCreateNode(gizmoName):
# ...create node...
for i in fileNodes:
if i.Class() in ("Read", "DeepRead", "ReadGeo", "ReadGeo2", "Camera2", "Axis2"):
filepath = i.knob("file").getValue()
if "<<<replace>>>" in filepath:
newFilepath = filepath.replace("<<<replace>>>", NST_FolderPath)
i.knob("file").setValue(newFilepath)
```
**Example (Read node `file` knob):**
| | Path |
|---|------|
| **Before** (placeholder in gizmo) | `<<<replace>>>/images/my_demo.exr` |
| **After** (at runtime) | `NST_FolderPath` + `/images/my_demo.exr` — e.g. `/…/NukeSurvivalToolkit/images/my_demo.exr` |
Put assets under `images/` next to `gizmos/`, `python/`, etc., and keep the path after `<<<replace>>>` relative to the toolkit root.
**Node classes that support file replacement:** Read, DeepRead, ReadGeo, ReadGeo2, Camera2, Axis2
## Python Module Loading
### Safe Import Pattern
When loading optional Python modules, use specific exception handling:
```python
# CORRECT - catches specific errors
try:
import ColorGradientUi
drawMenu.addCommand("GradientEditor", ...)
except ImportError as e:
print(f"Could not load ColorGradientUi: {e}")
pass
# ALSO CORRECT - for nuke.load()
try:
nuke.load(f'{prefixNST}VectorTracker.py')
menu.addCommand('VectorTracker', ...)
except RuntimeError as e:
print(f"Could not load VectorTracker.py: {e}")
pass
```
### Module Dependencies
| Module | Purpose | Dependencies |
|--------|---------|--------------|
| `ColorGradientUi.py` | Gradient editor widget | PySide6, ConfigParser |
| `NST_helper.py` | Path replacement utility; documentation submenu (online/offline/PDF); local HTTP for offline HTML | nuke, nukescripts, pathlib, stdlib (http, threading) |
| `NST_ID_Extractor.py` | ID channel extraction | nuke, nukescripts |
| `NST_VectorTracker.py` | Vector-based tracking | nuke |
| `NST_cardToTrack.py` | CardToTrack v7 — 3D card to 2D track | nuke, math, threading |
| `NST_cardToTrack_v9.py` | CardToTrack v9 — used by NST_CardToTrack2, NST_CProject2, NST_TProject2 | nuke, math, re, time |
| `NST_stickit.py` | Camera tracker warping | nuke, nuke.splinewarp, math |
## Nuke Version Compatibility
### Camera Class Changes (Nuke 13+)
Nuke 13 introduced `Camera3` class. Code must check for all camera types:
```tcl
# In DummyCam.gizmo TCL expression
if {[class $x]=="Camera3"||[class $x]=="Camera2"||[class $x]=="Camera"} {
# handle camera...
}
```
### PySide Migration (Nuke 16+)
Nuke 16+ uses PySide6 instead of PySide2. The `ColorGradientUi.py` was updated:
```python
# Old (PySide2)
from PySide2 import QtGui, QtCore, QtWidgets
# New (PySide6)
from PySide6 import QtGui, QtCore, QtWidgets
from PySide6.QtWidgets import QWidget, QLabel, ...
from PySide6.QtGui import QColor, QPainter, ...
```
**Key change:** In PySide6, some classes moved from `QtWidgets` to `QtGui` (e.g., `QAction`).
## Gizmo Etiquette
### Save as Group, not Gizmo
When you save a tool to disk, use a **Group** as the root node, not a **Gizmo**. NST ships tools as Groups so scripts remain valid if NST is not installed (for example on a render farm) or if the toolkit is removed. Internal nodes, expressions, and the Group structure still load; a Gizmo definition would not.
### Clean the header when pasting from Nuke
Copying a node from Nuke into a text editor often includes paste/stack boilerplate before the node block. Strip that so **`Group {` is the first line** of the tool, and verify the **`name`** matches the tool.
**Remove these lines** (everything above `Group {`):
```nk
set cut_paste_input [stack 0]
version 16.0 v8
push $cut_paste_input
```
(Version numbers will differ; remove the `set`, `version`, and `push` block in full.)
**Remove graph position** so the node does not snap to a fixed spot when the script is merged or opened elsewhere. Delete the `xpos` and `ypos` lines near the top of the Group, **before** the first `addUserKnob`:
```nk
xpos 136
ypos -78
```
**Example — raw paste (abbreviated):**
```nk
---
set cut_paste_input [stack 0]
version 16.0 v8
push $cut_paste_input
Group {
name GradMagic
tile_color 0x621d5aff
gl_color 0xbffffff
note_font "Verdana Bold"
note_font_color 0x73e6e2ff
selected true
xpos 136
ypos -78
addUserKnob {20 GradMagic}
```
**Example — cleaned header:**
```nk
Group {
name GradMagic
tile_color 0x621d5aff
gl_color 0xbffffff
note_font "Verdana Bold"
note_font_color 0x73e6e2ff
selected true
addUserKnob {20 GradMagic}
```
## TCL Expression Techniques
### DummyCam's Camera Traversal
The DummyCam gizmo uses TCL to find an upstream camera through any number of group levels:
```tcl
# Traverse up through inputs and groups to find camera
set x [node $starting_point]
while {$finished != 1} {
while {[class $x] != "Camera3" && [class $x] != "Camera2" ...} {
set x [node $x.input0]
}
# If found Input node, jump to parent group's corresponding input
if {[class $x]=="Input"} {
set inp "$x.parent.input"
set inputNum [value $x.number]
# ...
}
}
```
## Configuration Options
`menu.py` includes user-configurable variables:
```python
# Set to True to load the Expression Nodes AG submenu under Draw
LOAD_EXPRESSION_MENU = False
```
**Note:** Disabled by default to reduce menu clutter for users who don't need expression node presets.
## Integration with External Tools
### Stamps Integration
Several tools attempt to integrate with Adrian Pueyo's Stamps tool:
```python
try:
import stamps
stamps.anchor(title=channelName, tags="ID", input_node="", node_type="2D")
except ImportError:
pass # Stamps not installed, skip silently
```
**Tools with Stamps support:** ID_Extractor
## File Reference
| File | Purpose |
|------|---------|
| `menu.py` | Main menu creation and tool registration |
| `init.py` | Minimal stub (most work in menu.py) |
| `NST_helper.py` | `filepathCreateNode()` for dynamic paths; documentation menu (online/offline/PDF); local HTTP server for offline wiki when opening bundled HTML |
| `ColorGradientUi.py` | PySide6 gradient editor widget |
| `NST_ID_Extractor.py` | RGB channel extraction with Stamps |
| `NST_VectorTracker.py` | Vector/motion vector based tracking |
| `NST_cardToTrack.py` | CardToTrack v7 3D→2D conversion |
| `NST_cardToTrack_v9.py` | CardToTrack v9 3D→2D conversion; used by NST_CardToTrack2, NST_CProject2, NST_TProject2 gizmos |
| `NST_stickit.py` | SplineWarp from CameraTracker |
| `GradientPresets.cfg` | Stored gradient presets (ConfigParser) |
## Testing
1. Add toolkit path to `~/.nuke/init.py`:
```python
nuke.pluginAddPath("/path/to/NukeSurvivalToolkit")
```
2. Restart Nuke
3. Look for red multi-tool icon in toolbar
4. Test individual tools by creating them from the menu
## Contributing
When adding new tools:
1. Name the gizmo file `NST_ToolName.gizmo`
2. Add menu entry in appropriate section of `menu.py`
3. Use existing icon or add new one to `icons/`
4. If tools or tool demos need images to read in, add them to `images/` and use the `<<<replace>>>` placeholder in the Read (or other file) node's file path so `NST_helper.filepathCreateNode()` can substitute the toolkit root.
5. Update CHANGELOG.md with addition
================================================
FILE: LICENSE
================================================
MIT License
Copyright (c) 2020 CreativeLyons
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
================================================
FILE: NukeSurvivalToolkit/gizmos/NST_AdditiveKeyerPro.gizmo
================================================
Group {
name AdditiveKeyerPro
tile_color 0x5200ff
note_font "Verdana Bold"
note_font_color 0xffffffff
selected true
addUserKnob {20 AdditiveKeyer}
addUserKnob {6 useSC l "Use Screen Color as CleanPlate" +STARTLINE}
addUserKnob {41 screenColor l "Screen Color" T Keylight1.screenColour}
addUserKnob {6 despillSat l "Despill Screen Color from Saturation?" +STARTLINE}
despillSat true
addUserKnob {26 ""}
addUserKnob {7 DarkValue l "Dark Value" R 0 5}
DarkValue 1
addUserKnob {7 satDarks l "Saturate Darks"}
satDarks 0.2
addUserKnob {18 darkTint l "Dark Tint"}
darkTint 1
addUserKnob {6 darkTint_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {26 ""}
addUserKnob {6 lightTint_panelDropped l "panel dropped state" +HIDDEN +STARTLINE}
addUserKnob {7 ExtraLightValue l "Light Value Plus" R 0 2}
ExtraLightValue 1
addUserKnob {7 satLights l "Saturate Lights"}
satLights 0.2
addUserKnob {18 lightTint l "Light Tint"}
lightTint 1
addUserKnob {6 lightTint_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {7 LightValue l "Light Value BG Mult" R 0 5}
LightValue 0.25
addUserKnob {26 ""}
addUserKnob {6 darkTint_panelDropped_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1_1 l "panel dropped state" +HIDDEN +STARTLINE}
addUserKnob {6 lightTint_panelDropped_1_1_1_1_1_1_1_1_1_1_1_1 l "panel dropped state" +HIDDEN +STARTLINE}
addUserKnob {6 compositeSwitch l "Output Difference to RGB" +STARTLINE}
addUserKnob {6 outputDiffAlpha l "Output Difference Matte to Alpha" +STARTLINE}
addUserKnob {26 ""}
addUserKnob {41 maskChannelMask l mask T MergeKeymix.maskChannelMask}
addUserKnob {41 inject -STARTLINE T MergeKeymix.inject}
addUserKnob {41 invert_mask l invert -STARTLINE T MergeKeymix.invert_mask}
addUserKnob {41 fringe -STARTLINE T MergeKeymix.fringe}
addUserKnob {41 mix T MergeKeymix.mix}
addUserKnob {20 info l Info}
addUserKnob {26 creator l "Modified By:" T "<b><big>Tony Lyons"}
addUserKnob {26 desc l Description: t "adds the difference between cleanplate and key plate to the BG\n\nGood for hair details and shadows and sensitive edge treatment" T AdditiveKeyer}
addUserKnob {26 ver l Version: T v04}
}
Input {
inputs 0
name Inputmask
xpos 685
ypos 1141
number 3
}
Dot {
name Dot10
label Mask
note_font_size 41
xpos 719
ypos 1883
}
Dot {
name Dot11
note_font_size 41
xpos 719
ypos 1983
}
Input {
inputs 0
name fg
label "\[value number]"
xpos -500
ypos -221
number 1
}
Remove {
channels alpha
name Remove2
xpos -500
ypos -147
}
AddChannels {
channels rgba
name AddChannels2
xpos -500
ypos -109
}
Dot {
name Dot26
note_font_size 41
xpos -466
ypos 5
}
set Ne63218b0 [stack 0]
OFXuk.co.thefoundry.keylight.keylight_v201 {
show "Final Result"
unPreMultiply false
screenColour {0 0 0}
screenGain 1
screenBalance 0.5
alphaBias {0.5 0.5 0.5}
despillBias {0.5 0.5 0.5}
gangBiases true
preBlur 0
"Screen Matte" 0
screenClipMin 0
screenClipMax 1
screenClipRollback 0
screenGrowShrink 0
screenSoftness 0
screenDespotBlack 0
screenDespotWhite 0
screenReplaceMethod "Soft Colour"
screenReplaceColour {0.5 0.5 0.5}
Tuning 0
midPoint 0.5
lowGain 1
midGain 1
highGain 1
"Inside Mask" 0
sourceAlphaHandling Ignore
insideReplaceMethod "Soft Colour"
insideReplaceColour {0.5 0.5 0.5}
Crops 0
SourceXMethod Colour
SourceYMethod Colour
SourceEdgeColour 0
SourceCropL 0
SourceCropR 1
SourceCropB 0
SourceCropT 1
balanceSet false
insideComponent None
outsideComponent None
cacheBreaker true
name Keylight1
xpos -500
ypos 73
}
set Nda7c91c0 [stack 0]
push $Ne63218b0
Dot {
name Dot27
note_font_size 41
xpos -356
ypos 5
}
Merge2 {
inputs 2
operation from
name Merge3
label "\[ expr \{ \[value mix] == 1 ? \" \" : \[concat Mix: \[value mix]] \}]"
xpos -390
ypos 73
}
Clamp {
channels rgba
name Clamp1
xpos -390
ypos 99
}
Saturation {
saturation 0
name Saturation4
xpos -390
ypos 125
}
push $Nda7c91c0
Merge2 {
inputs 2
operation plus
name Merge7
label "\[ expr \{ \[value mix] == 1 ? \" \" : \[concat Mix: \[value mix]] \}]"
xpos -500
ypos 125
}
push $Ne63218b0
Dot {
name Dot30
note_font_size 41
xpos -598
ypos 5
}
Dot {
name Dot31
note_font_size 41
xpos -598
ypos 218
}
Switch {
inputs 2
which {{parent.despillSat}}
name DespillSwitch1
label "\[value which]"
xpos -500
ypos 208
}
Dot {
name Dot8
xpos -466
ypos 373
}
set Ne61ad600 [stack 0]
Input {
inputs 0
name clean
label "\[value number]"
xpos 126
ypos -175
number 2
}
Remove {
channels alpha
name Remove3
xpos 126
ypos -101
}
AddChannels {
channels rgba
name AddChannels1
xpos 126
ypos -63
}
Grade {
multiply 0
add {{parent.Keylight1.screenColour} {parent.Keylight1.screenColour} {parent.Keylight1.screenColour} {parent.Keylight1.screenColour}}
name ScreenColor
xpos 126
ypos -14
disable {{!parent.useSC}}
}
Dot {
name Dot28
note_font_size 41
xpos 160
ypos 50
}
set Ne61d0820 [stack 0]
OFXuk.co.thefoundry.keylight.keylight_v201 {
show "Final Result"
unPreMultiply false
screenColour {{parent.Keylight1.screenColour} {parent.Keylight1.screenColour} {parent.Keylight1.screenColour}}
screenGain 1
screenBalance 0.5
alphaBias {0.5 0.5 0.5}
despillBias {0.5 0.5 0.5}
gangBiases true
preBlur 0
"Screen Matte" 0
screenClipMin 0
screenClipMax 1
screenClipRollback 0
screenGrowShrink 0
screenSoftness 0
screenDespotBlack 0
screenDespotWhite 0
screenReplaceMethod "Soft Colour"
screenReplaceColour {0.5 0.5 0.5}
Tuning 0
midPoint 0.5
lowGain 1
midGain 1
highGain 1
"Inside Mask" 0
sourceAlphaHandling Ignore
insideReplaceMethod "Soft Colour"
insideReplaceColour {0.5 0.5 0.5}
Crops 0
SourceXMethod Colour
SourceYMethod Colour
SourceEdgeColour 0
SourceCropL 0
SourceCropR 1
SourceCropB 0
SourceCropT 1
balanceSet false
insideComponent None
outsideComponent None
cacheBreaker true
name Keylight2
xpos 126
ypos 118
}
set Ne61d4760 [stack 0]
push $Ne61d0820
Dot {
name Dot29
note_font_size 41
xpos 270
ypos 50
}
Merge2 {
inputs 2
operation from
name Merge8
label "\[ expr \{ \[value mix] == 1 ? \" \" : \[concat Mix: \[value mix]] \}]"
xpos 236
ypos 118
}
Clamp {
channels rgba
name Clamp2
xpos 236
ypos 144
}
Saturation {
saturation 0
name Saturation5
xpos 236
ypos 170
}
push $Ne61d4760
Merge2 {
inputs 2
operation plus
name Merge9
label "\[ expr \{ \[value mix] == 1 ? \" \" : \[concat Mix: \[value mix]] \}]"
xpos 126
ypos 170
}
push $Ne61d0820
Dot {
name Dot33
note_font_size 41
xpos 28
ypos 50
}
Dot {
name Dot34
note_font_size 41
xpos 28
ypos 230
}
Switch {
inputs 2
which {{parent.despillSat}}
name DespillSwitch2
label "\[value which]"
xpos 126
ypos 223
}
Dot {
name Dot35
note_font_size 41
xpos 160
ypos 320
}
set Ndc6e9920 [stack 0]
Dot {
name Dot6
xpos 412
ypos 320
}
Merge2 {
inputs 2
operation difference
Achannels rgb
Bchannels rgb
name Merge6
xpos 378
ypos 370
}
Group {
name ChannelControl_v3
label "\[value channel_selector.in]"
note_font "Bitstream Vera Sans"
xpos 378
ypos 440
mapsize {0.15 0.15}
addUserKnob {20 channelControl}
addUserKnob {41 Channel_Selection T channel_selector.in}
addUserKnob {26 Description l "" +STARTLINE T ":Channel Control:\n\nChannel math with choice of merge operation"}
addUserKnob {26 ""}
addUserKnob {7 redGain}
redGain 0.3
addUserKnob {7 greenGain}
greenGain 0.59
addUserKnob {7 blueGain}
blueGain 0.11
addUserKnob {7 alphaGain}
addUserKnob {41 operation T Merge1.operation}
}
Input {
inputs 0
name Input1
xpos 558
ypos -694
}
Shuffle {
name channel_selector
label "\[value in]"
xpos 558
ypos -668
}
set Ne600a100 [stack 0]
Shuffle {
green red
blue red
alpha red
name Shuffle1
xpos 386
ypos -536
}
Grade {
channels rgba
white {{parent.redGain i}}
name Grade12
xpos 386
ypos -492
}
push $Ne600a100
Shuffle {
red green
blue green
alpha green
name Shuffle2
xpos 499
ypos -534
}
Grade {
channels rgba
white {{parent.greenGain i}}
name Grade13
xpos 499
ypos -493
}
Merge2 {
inputs 2
operation plus
name Merge1
xpos 411
ypos -428
}
set C310f6910 [stack 0]
push $Ne600a100
Shuffle {
red blue
green blue
alpha blue
name Shuffle3
xpos 610
ypos -538
}
Grade {
channels rgba
white {{parent.blueGain i}}
name Grade14
xpos 610
ypos -494
}
clone $C310f6910 {
inputs 2
xpos 486
ypos -369
selected false
}
push $Ne600a100
Shuffle {
red alpha
green alpha
blue alpha
name Shuffle4
selected true
xpos 725
ypos -535
}
Grade {
channels rgba
white {{parent.alphaGain i}}
name Grade15
xpos 725
ypos -494
}
clone $C310f6910 {
inputs 2
xpos 580
ypos -307
selected false
}
Output {
name Output1
xpos 600
ypos -210
}
end_group
Dot {
name Dot14
note_font_size 41
xpos 412
ypos 1768
}
Input {
inputs 0
name bg
label "\[value number]"
xpos -845
ypos -242
}
AddChannels {
channels rgba
name AddChannels3
xpos -845
ypos -151
}
Dot {
name Dot9
note_font_size 41
xpos -811
ypos -78
}
Dot {
name Dot4
xpos -811
ypos 1449
}
set Nd631a0b0 [stack 0]
Dot {
name Dot13
note_font_size 41
xpos -811
ypos 1688
}
set Nd631df90 [stack 0]
push $Ne61ad600
Dot {
name Dot2
note_font_size 41
xpos -466
ypos 421
}
set Nd6321e60 [stack 0]
Saturation {
saturation {{parent.satDarks}}
name Saturation9
xpos -378
ypos 418
}
push $Ndc6e9920
Saturation {
saturation {{parent.satDarks}}
name Saturation8
xpos -215
ypos 317
}
Merge2 {
inputs 2
operation divide
name Merge5
label "\[ expr \{ \[value mix] == 1 ? \" \" : \[concat Mix: \[value mix]] \}]"
xpos -215
ypos 418
}
Dot {
name Dot38
note_font_size 41
xpos -181
ypos 674
}
Clamp {
channels rgba
minimum 1
minimum_enable false
name Clamp4
xpos -215
ypos 786
}
Add {
channels rgba
value -1
name Add3
xpos -215
ypos 840
}
Multiply {
channels rgb
value {{parent.DarkValue} {parent.DarkValue} {parent.DarkValue} 0}
name DARK_VALUE
xpos -215
ypos 892
}
Grade {
multiply {{parent.darkTint} {parent.darkTint} {parent.darkTint} {parent.darkTint}}
reverse true
black_clamp false
name DARK_TINT
xpos -215
ypos 931
}
Add {
channels rgba
value 1
name Add4
xpos -215
ypos 988
}
Clamp {
channels rgb
name Clamp5
xpos -215
ypos 1065
}
Dot {
name Dot39
note_font_size 41
xpos -181
ypos 1257
}
push $Nd6321e60
Dot {
name Dot36
note_font_size 41
xpos -466
ypos 577
}
Saturation {
saturation {{parent.satLights}}
name Saturation1
xpos -101
ypos 574
}
set Nb662b010 [stack 0]
push $Ndc6e9920
Saturation {
saturation {{parent.satLights}}
name Saturation6
xpos 126
ypos 500
}
set Nb662f000 [stack 0]
Merge2 {
inputs 2
operation divide
also_merge all
name Merge10
label all
xpos 126
ypos 568
}
Clamp {
channels rgba
minimum 1
maximum_enable false
name Clamp3
xpos 126
ypos 780
}
Add {
channels rgba
value -1
name Add1
xpos 126
ypos 838
}
Multiply {
channels rgb
value {{parent.LightValue} {parent.LightValue} {parent.LightValue} 0}
name LIGHT_VALUE
xpos 126
ypos 961
}
Multiply {
channels rgb
value {{parent.lightTint.r} {parent.lightTint.g} {parent.lightTint.b} 0}
name LIGHT_TINT
xpos 126
ypos 1039
}
Add {
channels rgba
value 1
name Add2
xpos 126
ypos 1120
}
Merge2 {
inputs 2
operation multiply
Achannels rgb
Bchannels rgb
output rgb
name __CONSTRAIN_DARKS__
xpos 128
ypos 1253
}
Dot {
name Dot19
note_font_size 41
xpos 162
ypos 1354
}
set Nd6028a80 [stack 0]
Dot {
name Dot3
xpos -8
ypos 1354
}
Dot {
name Dot16
note_font_size 41
xpos -8
ypos 1611
}
push $Nb662f000
Dot {
name Dot7
note_font_size 41
xpos 310
ypos 503
}
push $Nb662b010
Dot {
name Dot5
note_font_size 41
xpos -67
ypos 691
}
Merge2 {
inputs 2
operation from
name Merge1
label "\[ expr \{ \[value mix] == 1 ? \" \" : \[concat Mix: \[value mix]] \}]"
xpos 276
ypos 688
}
Clamp {
channels rgba
maximum_enable false
name Clamp6
xpos 276
ypos 781
}
Multiply {
channels rgba
value {{parent.ExtraLightValue}}
name Multiply1
label "\[value value]"
xpos 276
ypos 899
}
Multiply {
channels rgb
value {{parent.lightTint.r} {parent.lightTint.g} {parent.lightTint.b} 0}
name LIGHT_TINT1
xpos 276
ypos 1036
}
Dot {
name Dot15
note_font_size 41
xpos 310
ypos 1513
}
push $Nd6028a80
Dot {
name Dot1
note_font_size 41
xpos 162
ypos 1449
}
push $Nd631a0b0
Merge2 {
inputs 2
operation multiply
Achannels rgb
Bchannels rgb
output rgb
name CONSTRAIN_LIGHTS
xpos 128
ypos 1446
}
Merge2 {
inputs 2
operation plus
output rgb
name Merge2
label "\[ expr \{ \[value mix] == 1 ? \" \" : \[concat Mix: \[value mix]] \}]"
xpos 128
ypos 1510
}
Switch {
inputs 2
which {{parent.compositeSwitch}}
name Switch1
label "\[value which]"
xpos 128
ypos 1604
}
Copy {
inputs 2
from0 rgba.alpha
to0 rgba.alpha
name Copy1
xpos 128
ypos 1678
disable {{parent.outputDiffAlpha}}
}
Copy {
inputs 2
from0 rgba.blue
to0 rgba.alpha
name __LUMA_INTO_ALPHA__
xpos 128
ypos 1758
disable {{!parent.outputDiffAlpha}}
}
Dot {
name Dot17
label A
note_font_size 41
xpos 162
ypos 1910
}
push $Nd631df90
Dot {
name Dot18
label B
note_font_size 41
xpos -811
ypos 1895
}
Dot {
name Dot12
note_font_size 41
xpos -811
ypos 1986
}
Merge2 {
inputs 2+1
operation copy
bbox B
Achannels none
Bchannels none
output none
also_merge rgba
name MergeKeymix
xpos 128
ypos 1973
}
Output {
name Output1
xpos 128
ypos 2235
}
end_group
================================================
FILE: NukeSurvivalToolkit/gizmos/NST_AnimationCurve.gizmo
================================================
Group {
name ANIMATION_CURVES
inputs 0
knobChanged "nk = nuke.thisNode()\nk = nuke.thisKnob()\nif ('active_translate' in k.name()) or ('active_scale' in k.name()) or ('active_time' in k.name())or ('scale_1' in k.name()) or ('translate' in k.name()) or ('delay' in k.name()):\n input = nk.knob('input_modify').getValue()\n value = input\n expression = 'input_modify'\n string = 'input'\n if(nk.knob('active_time').getValue() == 1):\n expression = 'input_modify(frame + delay)'\n string = 'input(frame + offset)'\n if(nk.knob('active_scale').getValue() == 1):\n value = value * nk.knob('scale_1').getValue()\n expression = expression + '*scale_1'\n string = string + ' * scale'\n if(nk.knob('active_translate').getValue() == 1):\n value = value + nk.knob('translate').getValue()\n expression = '(' + expression + ' + translate)'\n string = '(' + string + '+ translate)'\n nk.knob('output_modify').setExpression(expression)\n nk.knob('expression_modify').setValue(string)\nif ('wave_type' in k.name()):\n if int(nk.knob('wave_type').getValue())==0:\n expression = 'random((frame+offset)/speed) * (max_val-min_val) + min_val'\n elif int(nk.knob('wave_type').getValue())==1:\n expression = '(noise((frame+offset)/speed)+1)/2 * (max_val-min_val) + min_val'\n elif int(nk.knob('wave_type').getValue())==2:\n expression = '(sin(2*pi*(frame+offset)/speed)+1)/2 * (max_val-min_val) + min_val'\n elif int(nk.knob('wave_type').getValue())==3:\n expression = '(asin(sin(2*pi*(frame+offset)/speed))/pi+0.5) * (max_val-min_val) + min_val'\n elif int(nk.knob('wave_type').getValue())==4:\n expression = 'int(sin(2*pi*(frame+offset)/speed)+1) * (max_val-min_val) + min_val'\n elif int(nk.knob('wave_type').getValue())==5:\n expression = '((frame+(offset+speed)) % (speed+blip)/(speed)) *(speed/blip) - (speed/blip) >= 0 ? max_val : min_val'\n elif int(nk.knob('wave_type').getValue())==6:\n expression = '((int((frame+offset) % speed)) >= 0 ? ((int((frame+offset) % speed)) <= (0+(blip-1)) ? ((sin(pi*((frame+offset) % speed)/blip)/2+1/2) * (2*max_val-2*min_val) + (2*min_val-max_val)) : min_val) : min_val)'\n elif int(nk.knob('wave_type').getValue())==7:\n expression = 'abs(sin(pi*(frame + offset)/speed))* (max_val-min_val) + min_val'\n elif int(nk.knob('wave_type').getValue())==8:\n expression = '((frame+offset) % speed)/speed * (max_val-min_val) + min_val'\n elif int(nk.knob('wave_type').getValue())==9:\n expression = 'sin((pi*(frame+offset)/(2*speed)) % (pi/2)) * (max_val-min_val) + min_val'\n elif int(nk.knob('wave_type').getValue())==10:\n expression = 'cos((pi*(frame+offset)/(2*speed)) % (pi/2)) * (max_val-min_val) + min_val'\n elif int(nk.knob('wave_type').getValue())==11:\n expression = '(exp(2*pi*((frame+offset) % speed)/speed)-1)/exp(2*pi) * (max_val-min_val) + min_val'\n nk.knob('output_wave').setExpression(expression)\n nk.knob('expression_wave').setValue(expression)\n#----------------------------------------\n#FADE\n\n\nif ('fade_type' in k.name()) or ('fade_dissolve' in k.name()):\n fadeStart = nk.knob('fadeStart').getValue()\n fadeEnd = nk.knob('fadeEnd').getValue()\n \n if int(nk.knob('fade_type').getValue())==0:\n expression_fade=\"clamp((frame-fadeStart)/(fadeEnd-fadeStart))\"\n elif int(nk.knob('fade_type').getValue())==1:\n expression_fade=\"(sin(clamp(((frame-fadeStart)*pi)/(fadeEnd-fadeStart) - pi/2, -pi/2, pi/2))+1) /2\"\n elif int(nk.knob('fade_type').getValue())==2:\n expression_fade=\"sin(clamp(((frame-fadeStart)*pi)/((fadeEnd-fadeStart)*2)-pi/2, -pi/2,0))+1\"\n elif int(nk.knob('fade_type').getValue())==3:\n expression_fade=\"sin(clamp(((frame-(fadeStart*2-fadeEnd))*pi)/((fadeEnd-fadeStart)*2)-pi/2,0,pi/2))\"\n\n\n \n saveExpression = expression_fade\n \n if int(nk.knob('fade_dissolve').getValue())==0:\n expression_fade = saveExpression\n elif int(nk.knob('fade_dissolve').getValue())==1:\n expression_fade = \"1-(\" + saveExpression + \")\"\n \n nk.knob('out_fade').setExpression(expression_fade)\n nk.knob('expression_fade').setValue(expression_fade)\n"
autolabel nuke.thisNode().name()
tile_color 0x367f5eff
note_font "Bitstream Vera Sans Bold"
note_font_color 0xffffffff
addUserKnob {20 wave_generator l "Wave Generator"}
addUserKnob {4 wave_type l "Wave type" M {Random Noise Sine Triangle Square Blip "Sine Blip" Bounce SawTooth "Saw Parabolic" "Saw Parabolic Reverse" "Saw Exponential" ""}}
addUserKnob {7 min_val l "Min val" R -10 10}
min_val 10
addUserKnob {7 max_val l "Max val" R -10 10}
max_val 28
addUserKnob {7 speed l "Speed (frequency)" R 1 100}
speed 2
addUserKnob {7 offset l "Time offset" R -10 10}
addUserKnob {7 blip l Blip R 1 10}
blip 1
addUserKnob {26 ""}
addUserKnob {7 output_wave l "<font color=orangered><i>output wave"}
output_wave {{"random((frame+offset)/speed) * (max_val-min_val) + min_val"}}
addUserKnob {1 expression_wave l "<font color=darkcyan>Expression"}
expression_wave "random((frame+offset)/speed) * (max_val-min_val) + min_val"
addUserKnob {26 ""}
addUserKnob {26 email l "" +STARTLINE T "<b><font color=\"MediumSeaGreen\">Animation and Curves v2.2</font></b><br>\n<font size=“1”><i>by Andrea Geremia</i><br>\n<br>\nandrea.geremia89@gmail.com<br>\nwww.andreageremia.it</font>"}
addUserKnob {22 Tutorial l "<b><font color=\"MediumSeaGreen\">Tutorial" -STARTLINE T "nuke.tcl('start', 'http://www.andreageremia.it/tutorial_animation_nuke.html')"}
addUserKnob {20 newrange l "New Range"}
addUserKnob {26 message l "" +STARTLINE T "<i>Normalize animation curves\nRemap a curve into a new min-max range, keeping the proportion"}
addUserKnob {26 "" +STARTLINE}
addUserKnob {7 input_range l "<font color=springgreen><i>input"}
addUserKnob {26 original l "ORIGINAL RANGE"}
addUserKnob {22 calc_min_max l "Calculate Min and Max" t "Drag and drop your input curve, then press this button. \nYou can calculate automatically the min and max value of the curve" T "first = nuke.Root().firstFrame()\nlast = nuke.Root().lastFrame()\n\nframeRange = str(first) + \"-\" + str(last)\n\n\nret = nuke.getFramesAndViews('insert frame range', frameRange)\nif ret:\n frame_range = ret\[0].split('-')\n \n min = max = nuke.thisNode()\['input_range'].getValueAt(int(frame_range\[0]))\n \n nuke.frame(int(frame_range\[0]))\n \n for i in range(int(frame_range\[0]), int(frame_range\[1])+1):\n knob = nuke.thisNode()\['input_range'].getValueAt(i)\n if (knob > max):\n max = knob\n \n if (knob < min):\n min = knob\n \n \n nuke.thisNode()\['min_old'].setValue(min)\n nuke.thisNode()\['max_old'].setValue(max)" +STARTLINE}
addUserKnob {7 min_old l min}
min_old -5
addUserKnob {7 max_old l max}
max_old 6
addUserKnob {26 new l "NEW RANGE"}
addUserKnob {7 min_new l min}
addUserKnob {7 max_new l max}
max_new 1
addUserKnob {26 ""}
addUserKnob {7 output_range l "<font color=orangered><i>output range" -STARTLINE}
output_range {{min_new+(((max_new-min_new)/(max_old-min_old))*(input_range-min_old))}}
addUserKnob {1 expression_range l "<font color=darkcyan>Expression"}
expression_range min_new+(((max_new-min_new)/(max_old-min_old))*(input-min_old))
addUserKnob {22 generate l Generate -STARTLINE T "nk = nuke.thisNode()\nnk.knob('expression_range').setValue(\"min_new+(((max_new-min_new)/(max_old-min_old))*(input-min_old))\")"}
addUserKnob {20 smooth_curve l "Smooth Curves"}
addUserKnob {26 message_2 l "" +STARTLINE T "<i>Drag and drop your curve and apply the smooth."}
addUserKnob {26 "" +STARTLINE}
addUserKnob {14 input_smooth l "<font color=springgreen><i>input" R 0 100}
addUserKnob {26 ""}
addUserKnob {14 smooth l Smooth R 0 100}
smooth 2
addUserKnob {4 smooth_type l Type M {low high "" ""}}
smooth_type high
addUserKnob {26 ""}
addUserKnob {14 output_smooth l "<font color=orangered><i>output smooth" R 0 100}
output_smooth {{"smooth_type==0?input_smooth.w.integrate(frame-1, frame+1) / (2*smooth.w):input_smooth.w.integrate(frame-smooth.w, frame+smooth.w) / (2*smooth.w)"}}
addUserKnob {1 expression_smooth l "<font color=darkcyan>Expression"}
expression_smooth "input.x.integrate(frame-smooth, frame+smooth) / (2*smooth)"
addUserKnob {22 generate_smooth l Generate -STARTLINE T "nk = nuke.thisNode()\nnk.knob('expression_smooth').setValue(\"input.x.integrate(frame-smooth, frame+smooth) / (2*smooth)\")"}
addUserKnob {20 modify l "Modify Curves"}
addUserKnob {26 message_5 l "" +STARTLINE T "<i>Change size, translation or offset of your curve"}
addUserKnob {26 "" +STARTLINE}
addUserKnob {14 input_modify l "<font color=springgreen><i>input" R 0 100}
addUserKnob {26 ""}
addUserKnob {6 active_translate l "" +STARTLINE +STARTLINE}
addUserKnob {26 position l TRANSLATE -STARTLINE T " "}
addUserKnob {14 translate R 0 100}
translate 1
addUserKnob {26 ""}
addUserKnob {6 active_scale l "" +STARTLINE +STARTLINE}
addUserKnob {26 scale l SCALE -STARTLINE T " "}
addUserKnob {14 scale_1 l scale R 0 100}
scale_1 1
addUserKnob {26 ""}
addUserKnob {6 active_time l "" +STARTLINE +STARTLINE}
addUserKnob {26 time l TIME -STARTLINE T " "}
addUserKnob {3 delay l "Time offset"}
delay 1
addUserKnob {26 frames -STARTLINE T " "}
addUserKnob {26 ""}
addUserKnob {14 output_modify l "<font color=orangered><i>output modify" R 0 100}
output_modify {{input_modify}}
addUserKnob {1 expression_modify l "<font color=darkcyan>Expression"}
expression_modify input
addUserKnob {20 Fade}
addUserKnob {26 fade_message l "" +STARTLINE T "<i>Create the fade/dissolve from start frame till end frame. \nYou can animate mix or another value from 0-1 or 1-0"}
addUserKnob {26 "" +STARTLINE}
addUserKnob {4 fade_type l Type M {Linear "Slow-in Slow-out" "Slow-in Linear-out" "Linear-in Slow-Out"}}
fade_type "Slow-in Slow-out"
addUserKnob {4 fade_dissolve l "fade from" M {"0 to 1" "1 to 0"}}
fade_dissolve "1 to 0"
addUserKnob {26 ""}
addUserKnob {26 fade_message_1 l "" +STARTLINE T "<b>Start frame has to be less than End frame"}
addUserKnob {3 fadeStart l "start Frame"}
addUserKnob {3 fadeEnd l "end Frame"}
fadeEnd 5
addUserKnob {26 ""}
addUserKnob {7 out_fade l "<font color=orangered><i>output fade"}
out_fade {{"1-((sin(clamp(((frame-fadeStart)*pi)/(fadeEnd-fadeStart) - pi/2, -pi/2, pi/2))+1) /2)"}}
addUserKnob {1 expression_fade l "<font color=darkcyan>Expression"}
expression_fade "1-((sin(clamp(((frame-fadeStart)*pi)/(fadeEnd-fadeStart) - pi/2, -pi/2, pi/2))+1) /2)"
addUserKnob {20 reference_frame l "Ref frame"}
addUserKnob {26 message_1 l "" +STARTLINE T "<i>Change reference frame of your curve.\nSet the input equal to 0 in the reference frame"}
addUserKnob {26 "" +STARTLINE}
addUserKnob {7 input_ref l "<font color=springgreen><i>input"}
addUserKnob {3 ref_frame l "Reference frame"}
ref_frame 100
addUserKnob {22 set_frame l "set current to frame" -STARTLINE T "nk = nuke.thisNode()\nnk.knob('ref_frame').setValue(nuke.frame())"}
addUserKnob {26 ""}
addUserKnob {7 output_ref l "<font color=orangered><i>output ref"}
output_ref {{"input_ref - input_ref(ref_frame)"}}
addUserKnob {1 expression_ref l "<font color=darkcyan>Expression"}
expression_ref "input - input(frame)"
addUserKnob {22 generate_3 l Generate -STARTLINE T "nk = nuke.thisNode()\nnk.knob('expression_ref').setValue(\"input - input(frame)\")"}
addUserKnob {20 percentage l Percentage}
addUserKnob {26 message_4 l "" +STARTLINE T "<i>Increase or reduce the curve with %"}
addUserKnob {26 "" +STARTLINE}
addUserKnob {7 input_percentage l "<font color=springgreen><i>input"}
addUserKnob {4 operation M {increase reduce "" "" ""}}
addUserKnob {3 percentage_1 l " "}
percentage_1 10
addUserKnob {26 percentage_2 l % -STARTLINE}
addUserKnob {26 ""}
addUserKnob {7 output_percentage l "<font color=orangered><i>output percentage"}
output_percentage {{operation==0?input_percentage+(input_percentage*percentage_1)/100:input_percentage-(input_percentage*percentage_1)/100}}
addUserKnob {1 expression_percentage l "<font color=darkcyan>Expression" t "nk = nuke.thisNode()\nnk.knob('expression_percentage').setValue(\"input+(input*percentage)/100\")"}
expression_percentage input+(input*percentage)/100
addUserKnob {22 generate_1 l Generate -STARTLINE T "nk = nuke.thisNode()\nnk.knob('expression_percentage').setValue(\"input+(input*percentage)/100\")"}
addUserKnob {20 average_1 l Average}
addUserKnob {26 message_3 l "" +STARTLINE T "<i>Find the average number of the curve values"}
addUserKnob {26 "" +STARTLINE}
addUserKnob {7 input_average l "<font color=springgreen><i>input"}
addUserKnob {3 frame_in l "frame range"}
frame_in 1
addUserKnob {3 frame_out l "" -STARTLINE}
frame_out 100
addUserKnob {26 ""}
addUserKnob {7 average l "<font color=orangered><i>average"}
average {{"input_average.integrate(frame_in, frame_out)/(frame_out-frame_in)"}}
addUserKnob {1 expression_average l "<font color=darkcyan>Expression"}
expression_average "input.integrate(frame_in, frame_out)/(frame_out-frame_in)"
addUserKnob {22 generate_2 l Generate -STARTLINE T "nk = nuke.thisNode()\nnk.knob('expression_average').setValue(\"input.integrate(frame_in, frame_out)/(frame_out-frame_in)\")"}
}
Output {
inputs 0
name Output1
xpos 0
ypos 300
}
end_group
================================================
FILE: NukeSurvivalToolkit/gizmos/NST_AntiAliasingFilter.gizmo
================================================
Group {
name AntialiasingFilter
inputs 2
tile_color 0xc17a4aff
label "(\[value antialiasing])"
note_font "Verdana Bold"
addUserKnob {20 Antialiasing}
addUserKnob {41 channels T Matrix3.channels}
addUserKnob {26 ""}
addUserKnob {4 antialiasing t "Select which filter you want to apply: you have 3 intensity for the antialiasing filter and other 3 for to tweak the aliasing and get the image sharper" M {"- aliasing high" "- aliasing medium" "- aliasing low" none "+ antialiasing low" "+ antialiasing medium" "+ antialiasing high" ""}}
antialiasing none
addUserKnob {6 blackClamp l "black clamp" t "Aliasing filter can give you negative values" +STARTLINE}
blackClamp true
addUserKnob {6 whiteClamp l "white clamp" t "Aliasing filter can give you values over 1 in the alpha channel" -STARTLINE}
addUserKnob {6 normalize l INVISIBLE -STARTLINE +INVISIBLE}
normalize true
addUserKnob {26 ""}
addUserKnob {41 maskChannel l "mask channel" T Keymix1.maskChannel}
addUserKnob {41 invertMask l invert -STARTLINE T Keymix1.invertMask}
addUserKnob {26 ""}
addUserKnob {41 mix T Keymix1.mix}
addUserKnob {26 "" +STARTLINE}
addUserKnob {26 email l "" +STARTLINE T "<b><font color='SandyBrown'>Antialiasing filter v2.0</font></b><br>\n<font size=“1”><i>by Andrea Geremia</i><br>\n<br>\nandrea.geremia89@gmail.com<br>\nwww.andreageremia.it</font> "}
}
Reformat {
inputs 0
type "to box"
box_width 10
box_height 10
box_fixed true
name Reformat1
xpos 207
ypos -40
}
Shuffle {
alpha white
name Shuffle1
xpos 207
ypos 40
}
Input {
inputs 0
name mask
xpos 55
ypos -187
number 1
}
Switch {
inputs 2
which {{"!\[exists parent.input1]"}}
name Switch3
xpos 55
ypos 40
}
Dot {
name Dot8
xpos 88
ypos 432
}
Input {
inputs 0
name src
xpos -1152
ypos -390
}
set N66a8cd60 [stack 0]
Dot {
name Dot3
xpos -1119
ypos -180
}
set N7f720840 [stack 0]
Dot {
name Dot9
xpos -1005
ypos -180
}
set N66ce7a80 [stack 0]
Dot {
name Dot10
xpos -858
ypos -180
}
set N66ce9ee0 [stack 0]
Dot {
name Dot4
xpos -623
ypos -180
}
Matrix {
channels {{{parent.Matrix3.channels}}}
matrix {
{1 1 1}
{1 1 1}
{1 1 1}
}
normalize true
name Matrix8
label "ANTIALIASING HIGH"
xpos -656
ypos -34
}
push $N66ce9ee0
Matrix {
channels {{{parent.Matrix3.channels}}}
matrix {
{1 2 1}
{2 4 2}
{1 2 1}
}
normalize true
name Matrix5
label "ANTIALIASING MEDIUM"
xpos -891
ypos -24
}
push $N66ce7a80
Matrix {
channels {{{parent.Matrix3.channels}}}
matrix {
{0 1 0}
{1 2 1}
{0 1 0}
}
normalize true
name Matrix6
label "ANTIALIASING LOW"
xpos -1038
ypos -26
}
push $N7f720840
push $N7f720840
Dot {
name Dot12
xpos -1309
ypos -180
}
set N66ce0a50 [stack 0]
Matrix {
channels {{{parent.Matrix3.channels}}}
matrix {
{0 -0.5 0}
{-0.5 3 -0.5}
{0 -0.5 0}
}
normalize {{parent.normalize}}
name Matrix10
label "ALIASING LOW"
xpos -1342
ypos -65
}
push $N66ce0a50
Dot {
name Dot5
xpos -1464
ypos -180
}
set N66cc8b70 [stack 0]
Matrix {
channels {{{parent.Matrix3.channels}}}
matrix {
{0 -1 0}
{-1 5 -1}
{0 -1 0}
}
normalize true
name Matrix7
label "ALIASING MEDIUM"
xpos -1497
ypos -59
}
push $N66cc8b70
Dot {
name Dot13
xpos -1699
ypos -180
}
Matrix {
channels {{{parent.Matrix3.channels}}}
matrix {
{-1 -1 -1}
{-1 9 -1}
{-1 -1 -1}
}
normalize {{parent.normalize}}
name Matrix4
label "ALIASING HIGH"
xpos -1732
ypos -58
}
Switch {
inputs 7
which {{parent.antialiasing}}
name Switch1
xpos -1152
ypos 244
}
Clamp {
channels {{{parent.Matrix3.channels}}}
minimum_enable {{parent.blackClamp}}
maximum_enable {{parent.whiteClamp}}
name Clamp1
xpos -1152
ypos 323
}
Dot {
name Dot2
xpos -1119
ypos 432
}
push $N66a8cd60
Dot {
name Dot1
xpos -234
ypos -388
}
Keymix {
inputs 3
name Keymix1
xpos -267
ypos 426
}
Output {
name Output1
xpos -267
ypos 516
}
StickyNote {
inputs 0
name StickyNote2
label "<b>sharp ."
note_font_size 20
xpos -1486
ypos -239
}
StickyNote {
inputs 0
name StickyNote1
label "<b>antialiasing ."
note_font_size 20
xpos -925
ypos -226
}
Matrix {
inputs 0
channels rgba
matrix {
{0 0 0}
{0 1 0}
{0 0 0}
}
name Matrix3
xpos -1936
ypos -79
}
end_group
================================================
FILE: NukeSurvivalToolkit/gizmos/NST_AutoCropTool.gizmo
================================================
Group {
name AutoCropTool
tile_color 0xa57aaaff
note_font "Bitstream Vera Sans Bold"
note_font_color 0xffffffff
selected true
addUserKnob {20 AutoCropTool}
addUserKnob {41 channels l "Channels to Analyse" T CurveTool.channels}
addUserKnob {26 ""}
addUserKnob {26 preReformat l "@b; Pre-Reformat Scale" T " "}
addUserKnob {41 scale l "" -STARTLINE T Reformat1.scale}
addUserKnob {22 go l Go! T "import time\nn = nuke.thisNode()\n#Define this node\n\nct1 = nuke.toNode(\"CurveTool\")\n# Define curveTool nodes\n\nfirst_frame = int(nuke.Root()\['first_frame'].getValue())\nlast_frame = int(nuke.Root()\['last_frame'].getValue())\n# Grab first and last frame from root\n\np = nuke.Panel(\"Execute on FrameRange\")\np.addSingleLineInput('First Frame', first_frame)\np.addSingleLineInput('Last Frame', last_frame)\np.addSingleLineInput('Increment', 1)\nif p.show():\n \n # Create user input panel\n \n ff = int(p.value(\"First Frame\"))\n lf = int(p.value(\"Last Frame\"))\n i = int(p.value(\"Increment\"))\n # Define first, last, increment from user input panel\n \n with n:\n \n ct1\[\"autocropdata\"].clearAnimated()\n # Clear any intensitydata from all CurveTool nodes\n \n def executeCT(first,last,inc):\n runMe = True\n while runMe == True:\n nuke.execute(ct1,first,last,inc)\n stop_event.set()\n runMe = False\n print('CurveTools done')\n break\n # Define CurveTool execution function\n \n \n global stop_event \n stop_event = threading.Event()\n threading.Thread(target=executeCT, kwargs=dict(first=ff,last=lf,inc=i) ).start() \n while not stop_event.is_set():\n time.sleep(0.1)\n # run CurveTools with threading" +STARTLINE}
addUserKnob {26 adjustbbox l "@b;Adjust Final BBox"}
addUserKnob {6 blackOutside l BlackOutside +STARTLINE}
addUserKnob {7 addPix l "Add Pixels" R 0 100}
addPix 20
addUserKnob {20 outbbox2 l "Output BBox Data" n 1}
outbbox2 0
addUserKnob {41 box T CropBBox_v02_.box}
addUserKnob {41 bboxCenter l "bbox Center" T CropBBox_v02_.bboxCenter}
addUserKnob {20 endGroup n -1}
addUserKnob {20 Info}
addUserKnob {26 creator l Creator: T "<big><b>Tony Lyons"}
addUserKnob {26 desc l Name: T AutoCropTool}
addUserKnob {26 ver l Version: T v03}
}
Input {
inputs 0
name Input1
xpos -489
ypos 342
}
Dot {
name Dot159
xpos -455
ypos 404
}
set N1f815980 [stack 0]
Reformat {
type scale
scale 0.05
pbb true
name Reformat1
xpos -629
ypos 400
}
set N1f864460 [stack 0]
CurveTool {
operation "Auto Crop"
channels alpha
ROI {{"min(bboxSize1.Crop6.box.x, bboxSize2.Crop6.box.x)"} {"min(bboxSize1.Crop6.box.y, bboxSize2.Crop6.box.y)"} {"max(bboxSize1.Crop6.box.r, bboxSize2.Crop6.box.r)"} {"max(bboxSize1.Crop6.box.t, bboxSize2.Crop6.box.t)"}}
autocropdata {{curve} {curve} {curve} {curve}}
intensitydata {0 0 0 0}
name CurveTool
xpos -629
ypos 496
}
Crop {
box {{parent.CurveTool.autocropdata} {parent.CurveTool.autocropdata} {"parent.CurveTool.autocropdata.r == 0 ? 1 : parent.CurveTool.autocropdata.r"} {"parent.CurveTool.autocropdata.t == 0 ? 1 : parent.CurveTool.autocropdata.t"}}
name Crop29
xpos -629
ypos 534
addUserKnob {20 User}
addUserKnob {22 cropToBbox l "Crop to Bounding Box" -STARTLINE T codeBBox()}
addUserKnob {22 cropToBbox_1 l "Crop to Bounding Box" -STARTLINE T codeBBox()}
addUserKnob {22 cropToBbox_2 l "Crop to Bounding Box" -STARTLINE T codeBBox()}
}
Reformat {
type scale
scale {{1/parent.Reformat1.scale}}
pbb true
name Reformat6
xpos -629
ypos 560
}
Group {
name CropBBox_v02_
tile_color 0xa57aaaff
xpos -629
ypos 586
lock_connections {{curve x1000 0}}
addUserKnob {20 User}
addUserKnob {26 info l "" +STARTLINE T "crop node with width/height set to the inputs width/height, with black outside checked off"}
addUserKnob {4 type l Type M {"To Format" "To BBox"}}
type "To BBox"
addUserKnob {41 intersect T Crop6.intersect}
addUserKnob {6 blackOutside l "Black Outside" -STARTLINE}
addUserKnob {20 inputBbox n 1}
addUserKnob {41 box T Crop6.box}
addUserKnob {14 bboxCenter l "bbox Center" R 0 100}
bboxCenter {{"(this.Crop6.box.r-this.Crop6.box.x)/2 + this.Crop6.box.x"} {"(this.Crop6.box.t-this.Crop6.box.y)/2 + this.Crop6.box.y"}}
addUserKnob {20 endGroup n -1}
}
Input {
inputs 0
name Input1
xpos 261
ypos 388
}
Crop {
box {{"type == 0 ? 0 : input.bbox.x"} {"type == 0 ? 0 : input.bbox.y"} {"type == 0 ? input.width : input.bbox.r"} {"type == 0 ? input.height : input.bbox.t"}}
crop {{parent.blackOutside}}
name Crop6
xpos 261
ypos 466
addUserKnob {20 User}
addUserKnob {22 cropToBbox l "Crop to Bounding Box" -STARTLINE T codeBBox()}
addUserKnob {22 cropToBbox_1 l "Crop to Bounding Box" -STARTLINE T codeBBox()}
addUserKnob {22 cropToBbox_2 l "Crop to Bounding Box" -STARTLINE T codeBBox()}
}
Output {
name Output1
xpos 261
ypos 583
}
end_group
AdjBBox {
numpixels {{parent.addPix}}
name AdjBBox6
xpos -629
ypos 612
}
push $N1f815980
CopyBBox {
inputs 2
name CopyBBox13
xpos -489
ypos 612
}
BlackOutside {
name BlackOutside1
xpos -489
ypos 636
disable {{!parent.blackOutside}}
}
Output {
name Output1
xpos -489
ypos 712
}
push $N1f864460
Group {
name bboxSize1
tile_color 0xa57aaaff
xpos -780
ypos 400
lock_connections {{curve x1000 0}}
addUserKnob {20 User}
addUserKnob {26 info l "" +STARTLINE T "crop node with width/height set to the inputs width/height, with black outside checked off"}
addUserKnob {4 type l Type M {"To Format" "To BBox"}}
addUserKnob {41 intersect T Crop6.intersect}
addUserKnob {6 blackOutside l "Black Outside" -STARTLINE}
addUserKnob {20 inputBbox n 1}
addUserKnob {41 box T Crop6.box}
addUserKnob {14 bboxCenter l "bbox Center" R 0 100}
bboxCenter {{"(this.Crop6.box.r-this.Crop6.box.x)/2 + this.Crop6.box.x"} {"(this.Crop6.box.t-this.Crop6.box.y)/2 + this.Crop6.box.y"}}
addUserKnob {20 endGroup n -1}
}
Input {
inputs 0
name Input1
xpos 261
ypos 388
}
Crop {
box {{"type == 0 ? 0 : input.bbox.x"} {"type == 0 ? 0 : input.bbox.y"} {"type == 0 ? input.width : input.bbox.r"} {"type == 0 ? input.height : input.bbox.t"}}
intersect true
crop {{parent.blackOutside}}
name Crop6
xpos 261
ypos 466
addUserKnob {20 User}
addUserKnob {22 cropToBbox l "Crop to Bounding Box" -STARTLINE T codeBBox()}
addUserKnob {22 cropToBbox_1 l "Crop to Bounding Box" -STARTLINE T codeBBox()}
addUserKnob {22 cropToBbox_2 l "Crop to Bounding Box" -STARTLINE T codeBBox()}
}
Output {
name Output1
xpos 261
ypos 583
}
end_group
push $N1f864460
Group {
name bboxSize2
tile_color 0xa57aaaff
xpos -763
ypos 501
lock_connections {{curve x1000 0}}
addUserKnob {20 User}
addUserKnob {26 info l "" +STARTLINE T "crop node with width/height set to the inputs width/height, with black outside checked off"}
addUserKnob {4 type l Type M {"To Format" "To BBox"}}
type "To BBox"
addUserKnob {41 intersect T Crop6.intersect}
addUserKnob {6 blackOutside l "Black Outside" -STARTLINE}
addUserKnob {20 inputBbox n 1}
addUserKnob {20 endGroup n -1}
}
Input {
inputs 0
name Input1
xpos 261
ypos 388
}
Crop {
box {{"type == 0 ? 0 : input.bbox.x"} {"type == 0 ? 0 : input.bbox.y"} {"type == 0 ? input.width : input.bbox.r"} {"type == 0 ? input.height : input.bbox.t"}}
intersect true
crop {{parent.blackOutside}}
name Crop6
xpos 261
ypos 466
addUserKnob {20 User}
addUserKnob {22 cropToBbox l "Crop to Bounding Box" -STARTLINE T codeBBox()}
addUserKnob {22 cropToBbox_1 l "Crop to Bounding Box" -STARTLINE T codeBBox()}
addUserKnob {22 cropToBbox_2 l "Crop to Bounding Box" -STARTLINE T codeBBox()}
}
Output {
name Output1
xpos 261
ypos 583
}
end_group
end_group
================================================
FILE: NukeSurvivalToolkit/gizmos/NST_AutoFlare2.gizmo
================================================
Group {
name AutoFlare
selected true
lock_connections true
addUserKnob {20 User l Controls}
addUserKnob {41 effectOnly l "effect only" T _INPUT_CTRL.effectOnly}
addUserKnob {41 viewSelectedHighlights l "view highlights selection" T _INPUT_CTRL.viewSelectedHighlights}
addUserKnob {41 brightspot T _INPUT_CTRL.brightspot}
addUserKnob {41 threshold T _INPUT_CTRL.threshold}
addUserKnob {41 gamma T _INPUT_CTRL.gamma}
addUserKnob {41 clampBright l "clamp to brightspot" T _INPUT_CTRL.clampBright}
addUserKnob {41 quality T _INPUT_CTRL.quality}
addUserKnob {26 ""}
addUserKnob {41 overallMult l "overall mult" T _INPUT_CTRL.overallMult}
addUserKnob {41 overallLensScale l "overall lens scale" T _INPUT_CTRL.overallLensScale}
addUserKnob {41 overallLensDistance l "overall lens distance" T _INPUT_CTRL.overallLensDistance}
addUserKnob {41 overallSaturation l "overall saturation" T _INPUT_CTRL.overallSaturation}
addUserKnob {41 sourceCol l "source color" T _INPUT_CTRL.sourceCol}
addUserKnob {41 sourceSat l "source sat" T _INPUT_CTRL.sourceSat}
addUserKnob {26 ""}
addUserKnob {41 overallGrainOpacity l "overall grain opacity" T _INPUT_CTRL.overallGrainOpacity}
addUserKnob {41 overallGrainSizeMult l "grain size mult" T _INPUT_CTRL.overallGrainSizeMult}
addUserKnob {41 overallGrainGainMult l "grain gain mult" T _INPUT_CTRL.overallGrainGainMult}
addUserKnob {26 ""}
addUserKnob {41 reflectionsOpacity l "reflections opacity" T _INPUT_CTRL.reflectionsOpacity}
addUserKnob {41 reflectionsRotOffset l "reflections rot offset" T _INPUT_CTRL.reflectionsRotOffset}
addUserKnob {41 reflectionsBlurAdd l "reflections add blur" T _INPUT_CTRL.reflectionsBlurAdd}
addUserKnob {41 reflectionsWhitepointMult l "refl whitepoint mult" T _INPUT_CTRL.reflectionsWhitepointMult}
addUserKnob {41 reflectionsGammaMult l "refl gamma mult" T _INPUT_CTRL.reflectionsGammaMult}
addUserKnob {26 ""}
addUserKnob {41 vignetteActive l "vignette source" T _INPUT_CTRL.vignetteActive}
addUserKnob {41 vignetteScale l scale T _INPUT_CTRL.vignetteScale}
addUserKnob {41 vignetteDarkness l darkness T _INPUT_CTRL.vignetteDarkness}
addUserKnob {20 Presets}
addUserKnob {41 preset_01 l "Pink on Blue" T _INPUT_CTRL.preset_01}
addUserKnob {41 preset_02 l "Fat Orange" T _INPUT_CTRL.preset_02}
addUserKnob {41 preset_03 l "Classic Orange Blue" T _INPUT_CTRL.preset_03}
addUserKnob {41 preset_04 l "Giant Colorful" T _INPUT_CTRL.preset_04}
addUserKnob {41 preset_05 l "Thin and Wide" T _INPUT_CTRL.preset_05}
addUserKnob {41 preset_06 l "Hexa Green Orange" T _INPUT_CTRL.preset_06}
addUserKnob {20 Lenses}
addUserKnob {41 showNumbers l "show numbers on lenses" T _INPUT_CTRL.showNumbers}
addUserKnob {26 ""}
addUserKnob {20 Lens1GRP l "lens 01" n 1}
Lens1GRP 0
addUserKnob {41 lens1Active l active T _INPUT_CTRL.lens1Active}
addUserKnob {41 lens1Size l size T _INPUT_CTRL.lens1Size}
addUserKnob {41 lens1Col l color T _INPUT_CTRL.lens1Col}
addUserKnob {41 lens1Blur l blur T _INPUT_CTRL.lens1Blur}
addUserKnob {41 lens1AxisPos l "axis pos" T _INPUT_CTRL.lens1AxisPos}
addUserKnob {41 lens1Polygon l polygon T _INPUT_CTRL.lens1Polygon}
addUserKnob {41 lens1Diaphragm l diaphragm T _INPUT_CTRL.lens1Diaphragm}
addUserKnob {41 lens1DiaphRot l "diaph rotation" T _INPUT_CTRL.lens1DiaphRot}
addUserKnob {41 lens1grainOpacity l "grain opacity" T _INPUT_CTRL.lens1grainOpacity}
addUserKnob {41 lens1grainSize l "grain size" T _INPUT_CTRL.lens1grainSize}
addUserKnob {41 lens1grainGain l "grain gain" T _INPUT_CTRL.lens1grainGain}
addUserKnob {41 lens1reflectionOpacity l "refl opacity" T _INPUT_CTRL.lens1reflectionOpacity}
addUserKnob {41 lens1reflectionRotation l "refl rotation" T _INPUT_CTRL.lens1reflectionRotation}
addUserKnob {41 lens1reflWhitepoint l "refl whitepoint" T _INPUT_CTRL.lens1reflWhitepoint}
addUserKnob {41 lens1reflectionGamma l "refl gamma" T _INPUT_CTRL.lens1reflectionGamma}
addUserKnob {41 lens1reflectionBlur l "refl blur" T _INPUT_CTRL.lens1reflectionBlur}
addUserKnob {20 endGroup n -1}
addUserKnob {26 ""}
addUserKnob {20 lens2GRP l "lens 02" n 1}
lens2GRP 0
addUserKnob {41 lens2Active l active T _INPUT_CTRL.lens2Active}
addUserKnob {41 lens2Size l size T _INPUT_CTRL.lens2Size}
addUserKnob {41 lens2Col l color T _INPUT_CTRL.lens2Col}
addUserKnob {41 lens2Blur l blur T _INPUT_CTRL.lens2Blur}
addUserKnob {41 lens2AxisPos l "axis pos" T _INPUT_CTRL.lens2AxisPos}
addUserKnob {41 lens2Polygon l polygon T _INPUT_CTRL.lens2Polygon}
addUserKnob {41 lens2Diaphragm l diaphragm T _INPUT_CTRL.lens2Diaphragm}
addUserKnob {41 lens2DiaphRot l "diaph rotation" T _INPUT_CTRL.lens2DiaphRot}
addUserKnob {41 lens2grainOpacity l "grain opacity" T _INPUT_CTRL.lens2grainOpacity}
addUserKnob {41 lens2grainSize l "grain size" T _INPUT_CTRL.lens2grainSize}
addUserKnob {41 lens2grainGain l "grain gain" T _INPUT_CTRL.lens2grainGain}
addUserKnob {41 lens2reflectionOpacity l "refl opacity" T _INPUT_CTRL.lens2reflectionOpacity}
addUserKnob {41 lens2reflectionRotation l "refl rotation" T _INPUT_CTRL.lens2reflectionRotation}
addUserKnob {41 lens2reflWhitepoint l "refl whitepoint" T _INPUT_CTRL.lens2reflWhitepoint}
addUserKnob {41 lens2reflectionGamma l "refl gamma" T _INPUT_CTRL.lens2reflectionGamma}
addUserKnob {41 lens2reflectionBlur l "refl blur" T _INPUT_CTRL.lens2reflectionBlur}
addUserKnob {20 endGroup_1 l endGroup n -1}
addUserKnob {26 ""}
addUserKnob {20 lens3GRP l "lens 03" n 1}
lens3GRP 0
addUserKnob {41 lens3Active l active T _INPUT_CTRL.lens3Active}
addUserKnob {41 lens3Size l size T _INPUT_CTRL.lens3Size}
addUserKnob {41 lens3Col l color T _INPUT_CTRL.lens3Col}
addUserKnob {41 lens3Blur l blur T _INPUT_CTRL.lens3Blur}
addUserKnob {41 lens3AxisPos l "axis pos" T _INPUT_CTRL.lens3AxisPos}
addUserKnob {41 lens3Polygon l polygon T _INPUT_CTRL.lens3Polygon}
addUserKnob {41 lens3Diaphragm l diaphragm T _INPUT_CTRL.lens3Diaphragm}
addUserKnob {41 lens3DiaphRot l "diaph rotation" T _INPUT_CTRL.lens3DiaphRot}
addUserKnob {41 lens3grainOpacity l "grain opacity" T _INPUT_CTRL.lens3grainOpacity}
addUserKnob {41 lens3grainSize l "grain size" T _INPUT_CTRL.lens3grainSize}
addUserKnob {41 lens3grainGain l "grain gain" T _INPUT_CTRL.lens3grainGain}
addUserKnob {41 lens3reflectionOpacity l "refl opacity" T _INPUT_CTRL.lens3reflectionOpacity}
addUserKnob {41 lens3reflectionRotation l "refl rotation" T _INPUT_CTRL.lens3reflectionRotation}
addUserKnob {41 lens3reflWhitepoint l "refl whitepoint" T _INPUT_CTRL.lens3reflWhitepoint}
addUserKnob {41 lens3reflectionGamma l "refl gamma" T _INPUT_CTRL.lens3reflectionGamma}
addUserKnob {41 lens3reflectionBlur l "refl blur" T _INPUT_CTRL.lens3reflectionBlur}
addUserKnob {20 endGroup_2 l endGroup n -1}
addUserKnob {26 ""}
addUserKnob {20 lens4GRP l "lens 04" n 1}
lens4GRP 0
addUserKnob {41 lens4Active l active T _INPUT_CTRL.lens4Active}
addUserKnob {41 lens4Size l size T _INPUT_CTRL.lens4Size}
addUserKnob {41 lens4Col l color T _INPUT_CTRL.lens4Col}
addUserKnob {41 lens4Blur l blur T _INPUT_CTRL.lens4Blur}
addUserKnob {41 lens4AxisPos l "axis pos" T _INPUT_CTRL.lens4AxisPos}
addUserKnob {41 lens4Polygon l polygon T _INPUT_CTRL.lens4Polygon}
addUserKnob {41 lens4Diaphragm l diaphragm T _INPUT_CTRL.lens4Diaphragm}
addUserKnob {41 lens4DiaphRot l "diaph rotation" T _INPUT_CTRL.lens4DiaphRot}
addUserKnob {41 lens4grainOpacity l "grain opacity" T _INPUT_CTRL.lens4grainOpacity}
addUserKnob {41 lens4grainSize l "grain size" T _INPUT_CTRL.lens4grainSize}
addUserKnob {41 lens4grainGain l "grain gain" T _INPUT_CTRL.lens4grainGain}
addUserKnob {41 lens4reflectionOpacity l "refl opacity" T _INPUT_CTRL.lens4reflectionOpacity}
addUserKnob {41 lens4reflectionRotation l "refl rotation" T _INPUT_CTRL.lens4reflectionRotation}
addUserKnob {41 lens4reflWhitepoint l "refl whitepoint" T _INPUT_CTRL.lens4reflWhitepoint}
addUserKnob {41 lens4reflectionGamma l "refl gamma" T _INPUT_CTRL.lens4reflectionGamma}
addUserKnob {41 lens4reflectionBlur l "refl blur" T _INPUT_CTRL.lens4reflectionBlur}
addUserKnob {20 endGroup_3 l endGroup n -1}
addUserKnob {26 ""}
addUserKnob {20 lens5GRP l "lens 05" n 1}
lens5GRP 0
addUserKnob {41 lens5Active l active T _INPUT_CTRL.lens5Active}
addUserKnob {41 lens5Size l size T _INPUT_CTRL.lens5Size}
addUserKnob {41 lens5Col l color T _INPUT_CTRL.lens5Col}
addUserKnob {41 lens5Blur l blur T _INPUT_CTRL.lens5Blur}
addUserKnob {41 lens5AxisPos l "axis pos" T _INPUT_CTRL.lens5AxisPos}
addUserKnob {41 lens5Polygon l polygon T _INPUT_CTRL.lens5Polygon}
addUserKnob {41 lens5Diaphragm l diaphragm T _INPUT_CTRL.lens5Diaphragm}
addUserKnob {41 lens5DiaphRot l "diaph rotation" T _INPUT_CTRL.lens5DiaphRot}
addUserKnob {41 lens5grainOpacity l "grain opacity" T _INPUT_CTRL.lens5grainOpacity}
addUserKnob {41 lens5grainSize l "grain size" T _INPUT_CTRL.lens5grainSize}
addUserKnob {41 lens5grainGain l "grain gain" T _INPUT_CTRL.lens5grainGain}
addUserKnob {41 lens5reflectionOpacity l "refl opacity" T _INPUT_CTRL.lens5reflectionOpacity}
addUserKnob {41 lens5reflectionRotation l "refl rotation" T _INPUT_CTRL.lens5reflectionRotation}
addUserKnob {41 lens5reflWhitepoint l "refl whitepoint" T _INPUT_CTRL.lens5reflWhitepoint}
addUserKnob {41 lens5reflectionGamma l "refl gamma" T _INPUT_CTRL.lens5reflectionGamma}
addUserKnob {41 lens5reflectionBlur l "refl blur" T _INPUT_CTRL.lens5reflectionBlur}
addUserKnob {20 endGroup_4 l endGroup n -1}
addUserKnob {26 ""}
addUserKnob {20 lens6GRP l "lens 06" n 1}
lens6GRP 0
addUserKnob {41 lens6Active l active T _INPUT_CTRL.lens6Active}
addUserKnob {41 lens6Size l size T _INPUT_CTRL.lens6Size}
addUserKnob {41 lens6Col l color T _INPUT_CTRL.lens6Col}
addUserKnob {41 lens6Blur l blur T _INPUT_CTRL.lens6Blur}
addUserKnob {41 lens6AxisPos l "axis pos" T _INPUT_CTRL.lens6AxisPos}
addUserKnob {41 lens6Polygon l polygon T _INPUT_CTRL.lens6Polygon}
addUserKnob {41 lens6Diaphragm l diaphragm T _INPUT_CTRL.lens6Diaphragm}
addUserKnob {41 lens6DiaphRot l "diaph rotation" T _INPUT_CTRL.lens6DiaphRot}
addUserKnob {41 lens6grainOpacity l "grain opacity" T _INPUT_CTRL.lens6grainOpacity}
addUserKnob {41 lens6grainSize l "grain size" T _INPUT_CTRL.lens6grainSize}
addUserKnob {41 lens6grainGain l "grain gain" T _INPUT_CTRL.lens6grainGain}
addUserKnob {41 lens6reflectionOpacity l "refl opacity" T _INPUT_CTRL.lens6reflectionOpacity}
addUserKnob {41 lens6reflectionRotation l "refl rotation" T _INPUT_CTRL.lens6reflectionRotation}
addUserKnob {41 lens6reflWhitepoint l "refl whitepoint" T _INPUT_CTRL.lens6reflWhitepoint}
addUserKnob {41 lens6reflectionGamma l "refl gamma" T _INPUT_CTRL.lens6reflectionGamma}
addUserKnob {41 lens6reflectionBlur l "refl blur" T _INPUT_CTRL.lens6reflectionBlur}
addUserKnob {20 endGroup_5 l endGroup n -1}
addUserKnob {26 ""}
addUserKnob {20 lens7GRP l "lens 07" n 1}
lens7GRP 0
addUserKnob {41 lens7Active l active T _INPUT_CTRL.lens7Active}
addUserKnob {41 lens7Size l size T _INPUT_CTRL.lens7Size}
addUserKnob {41 lens7Col l color T _INPUT_CTRL.lens7Col}
addUserKnob {41 lens7Blur l blur T _INPUT_CTRL.lens7Blur}
addUserKnob {41 lens7AxisPos l "axis pos" T _INPUT_CTRL.lens7AxisPos}
addUserKnob {41 lens7Polygon l polygon T _INPUT_CTRL.lens7Polygon}
addUserKnob {41 lens7Diaphragm l diaphragm T _INPUT_CTRL.lens7Diaphragm}
addUserKnob {41 lens7DiaphRot l "diaph rotation" T _INPUT_CTRL.lens7DiaphRot}
addUserKnob {41 lens7grainOpacity l "grain opacity" T _INPUT_CTRL.lens7grainOpacity}
addUserKnob {41 lens7grainSize l "grain size" T _INPUT_CTRL.lens7grainSize}
addUserKnob {41 lens7grainGain l "grain gain" T _INPUT_CTRL.lens7grainGain}
addUserKnob {41 lens7reflectionOpacity l "refl opacity" T _INPUT_CTRL.lens7reflectionOpacity}
addUserKnob {41 lens7reflectionRotation l "refl rotation" T _INPUT_CTRL.lens7reflectionRotation}
addUserKnob {41 lens7reflWhitepoint l "refl whitepoint" T _INPUT_CTRL.lens7reflWhitepoint}
addUserKnob {41 lens7reflectionGamma l "refl gamma" T _INPUT_CTRL.lens7reflectionGamma}
addUserKnob {41 lens7reflectionBlur l "refl blur" T _INPUT_CTRL.lens7reflectionBlur}
addUserKnob {20 endGroup_6 l endGroup n -1}
addUserKnob {26 ""}
addUserKnob {20 lens8GRP l "lens 08" n 1}
lens8GRP 0
addUserKnob {41 lens8Active l active T _INPUT_CTRL.lens8Active}
addUserKnob {41 lens8Size l size T _INPUT_CTRL.lens8Size}
addUserKnob {41 lens8Col l color T _INPUT_CTRL.lens8Col}
addUserKnob {41 lens8Blur l blur T _INPUT_CTRL.lens8Blur}
addUserKnob {41 lens8AxisPos l "axis pos" T _INPUT_CTRL.lens8AxisPos}
addUserKnob {41 lens8Polygon l polygon T _INPUT_CTRL.lens8Polygon}
addUserKnob {41 lens8Diaphragm l diaphragm T _INPUT_CTRL.lens8Diaphragm}
addUserKnob {41 lens8DiaphRot l "diaph rotation" T _INPUT_CTRL.lens8DiaphRot}
addUserKnob {41 lens8grainOpacity l "grain opacity" T _INPUT_CTRL.lens8grainOpacity}
addUserKnob {41 lens8grainSize l "grain size" T _INPUT_CTRL.lens8grainSize}
addUserKnob {41 lens8grainGain l "grain gain" T _INPUT_CTRL.lens8grainGain}
addUserKnob {41 lens8reflectionOpacity l "refl opacity" T _INPUT_CTRL.lens8reflectionOpacity}
addUserKnob {41 lens8reflectionRotation l "refl rotation" T _INPUT_CTRL.lens8reflectionRotation}
addUserKnob {41 lens8reflWhitepoint l "refl whitepoint" T _INPUT_CTRL.lens8reflWhitepoint}
addUserKnob {41 lens8reflectionGamma l "refl gamma" T _INPUT_CTRL.lens8reflectionGamma}
addUserKnob {41 lens8reflectionBlur l "refl blur" T _INPUT_CTRL.lens8reflectionBlur}
addUserKnob {20 endGroup_7 l endGroup n -1}
addUserKnob {26 ""}
addUserKnob {20 lens9GRP l "lens 09" n 1}
lens9GRP 0
addUserKnob {41 lens9Active l active T _INPUT_CTRL.lens9Active}
addUserKnob {41 lens9Size l size T _INPUT_CTRL.lens9Size}
addUserKnob {41 lens9Col l color T _INPUT_CTRL.lens9Col}
addUserKnob {41 lens9Blur l blur T _INPUT_CTRL.lens9Blur}
addUserKnob {41 lens9AxisPos l "axis pos" T _INPUT_CTRL.lens9AxisPos}
addUserKnob {41 lens9Polygon l polygon T _INPUT_CTRL.lens9Polygon}
addUserKnob {41 lens9Diaphragm l diaphragm T _INPUT_CTRL.lens9Diaphragm}
addUserKnob {41 lens9DiaphRot l "diaph rotation" T _INPUT_CTRL.lens9DiaphRot}
addUserKnob {41 lens9grainOpacity l "grain opacity" T _INPUT_CTRL.lens9grainOpacity}
addUserKnob {41 lens9grainSize l "grain size" T _INPUT_CTRL.lens9grainSize}
addUserKnob {41 lens9grainGain l "grain gain" T _INPUT_CTRL.lens9grainGain}
addUserKnob {41 lens9reflectionOpacity l "refl opacity" T _INPUT_CTRL.lens9reflectionOpacity}
addUserKnob {41 lens9reflectionRotation l "refl rotation" T _INPUT_CTRL.lens9reflectionRotation}
addUserKnob {41 lens9reflWhitepoint l "refl whitepoint" T _INPUT_CTRL.lens9reflWhitepoint}
addUserKnob {41 lens9reflectionGamma l "refl gamma" T _INPUT_CTRL.lens9reflectionGamma}
addUserKnob {41 lens9reflectionBlur l "refl blur" T _INPUT_CTRL.lens9reflectionBlur}
addUserKnob {20 endGroup_8 l endGroup n -1}
addUserKnob {26 ""}
addUserKnob {20 lens10GRP l "lens 10" n 1}
lens10GRP 0
addUserKnob {41 lens10Active l active T _INPUT_CTRL.lens10Active}
addUserKnob {41 lens10Size l size T _INPUT_CTRL.lens10Size}
addUserKnob {41 lens10Col l color T _INPUT_CTRL.lens10Col}
addUserKnob {41 lens10Blur l blur T _INPUT_CTRL.lens10Blur}
addUserKnob {41 lens10AxisPos l "axis pos" T _INPUT_CTRL.lens10AxisPos}
addUserKnob {41 lens10Polygon l polygon T _INPUT_CTRL.lens10Polygon}
addUserKnob {41 lens10Diaphragm l diaphragm T _INPUT_CTRL.lens10Diaphragm}
addUserKnob {41 lens10DiaphRot l "diaph rotation" T _INPUT_CTRL.lens10DiaphRot}
addUserKnob {41 lens10grainOpacity l "grain opacity" T _INPUT_CTRL.lens10grainOpacity}
addUserKnob {41 lens10grainSize l "grain size" T _INPUT_CTRL.lens10grainSize}
addUserKnob {41 lens10grainGain l "grain gain" T _INPUT_CTRL.lens10grainGain}
addUserKnob {41 lens10reflectionOpacity l "refl opacity" T _INPUT_CTRL.lens10reflectionOpacity}
addUserKnob {41 lens10reflectionRotation l "refl rotation" T _INPUT_CTRL.lens10reflectionRotation}
addUserKnob {41 lens10reflWhitepoint l "refl whitepoint" T _INPUT_CTRL.lens10reflWhitepoint}
addUserKnob {41 lens10reflectionGamma l "refl gamma" T _INPUT_CTRL.lens10reflectionGamma}
addUserKnob {41 lens10reflectionBlur l "refl blur" T _INPUT_CTRL.lens10reflectionBlur}
addUserKnob {20 endGroup_9 l endGroup n -1}
addUserKnob {26 ""}
addUserKnob {20 lens11GRP l "lens 11" n 1}
lens11GRP 0
addUserKnob {41 lens11Active l active T _INPUT_CTRL.lens11Active}
addUserKnob {41 lens11Size l size T _INPUT_CTRL.lens11Size}
addUserKnob {41 lens11Col l color T _INPUT_CTRL.lens11Col}
addUserKnob {41 lens11Blur l blur T _INPUT_CTRL.lens11Blur}
addUserKnob {41 lens11AxisPos l "axis pos" T _INPUT_CTRL.lens11AxisPos}
addUserKnob {41 lens11Polygon l polygon T _INPUT_CTRL.lens11Polygon}
addUserKnob {41 lens11Diaphragm l diaphragm T _INPUT_CTRL.lens11Diaphragm}
addUserKnob {41 lens11DiaphRot l "diaph rotation" T _INPUT_CTRL.lens11DiaphRot}
addUserKnob {41 lens11grainOpacity l "grain opacity" T _INPUT_CTRL.lens11grainOpacity}
addUserKnob {41 lens11grainSize l "grain size" T _INPUT_CTRL.lens11grainSize}
addUserKnob {41 lens11grainGain l "grain gain" T _INPUT_CTRL.lens11grainGain}
addUserKnob {41 lens11reflectionOpacity l "refl opacity" T _INPUT_CTRL.lens11reflectionOpacity}
addUserKnob {41 lens11reflectionRotation l "refl rotation" T _INPUT_CTRL.lens11reflectionRotation}
addUserKnob {41 lens11reflWhitepoint l "refl whitepoint" T _INPUT_CTRL.lens11reflWhitepoint}
addUserKnob {41 lens11reflectionGamma l "refl gamma" T _INPUT_CTRL.lens11reflectionGamma}
addUserKnob {41 lens11reflectionBlur l "refl blur" T _INPUT_CTRL.lens11reflectionBlur}
addUserKnob {20 endGroup_10 l endGroup n -1}
addUserKnob {26 ""}
addUserKnob {20 lens12GRP l "lens 12" n 1}
lens12GRP 0
addUserKnob {41 lens12Active l active T _INPUT_CTRL.lens12Active}
addUserKnob {41 lens12Size l size T _INPUT_CTRL.lens12Size}
addUserKnob {41 lens12Col l color T _INPUT_CTRL.lens12Col}
addUserKnob {41 lens12Blur l blur T _INPUT_CTRL.lens12Blur}
addUserKnob {41 lens12AxisPos l "axis pos" T _INPUT_CTRL.lens12AxisPos}
addUserKnob {41 lens12Polygon l polygon T _INPUT_CTRL.lens12Polygon}
addUserKnob {41 lens12Diaphragm l diaphragm T _INPUT_CTRL.lens12Diaphragm}
addUserKnob {41 lens12DiaphRot l "diaph rotation" T _INPUT_CTRL.lens12DiaphRot}
addUserKnob {41 lens12grainOpacity l "grain opacity" T _INPUT_CTRL.lens12grainOpacity}
addUserKnob {41 lens12grainSize l "grain size" T _INPUT_CTRL.lens12grainSize}
addUserKnob {41 lens12grainGain l "grain gain" T _INPUT_CTRL.lens12grainGain}
addUserKnob {41 lens12reflectionOpacity l "refl opacity" T _INPUT_CTRL.lens12reflectionOpacity}
addUserKnob {41 lens12reflectionRotation l "refl rotation" T _INPUT_CTRL.lens12reflectionRotation}
addUserKnob {41 lens12reflWhitepoint l "refl whitepoint" T _INPUT_CTRL.lens12reflWhitepoint}
addUserKnob {41 lens12reflectionGamma l "refl gamma" T _INPUT_CTRL.lens12reflectionGamma}
addUserKnob {41 lens12reflectionBlur l "refl blur" T _INPUT_CTRL.lens12reflectionBlur}
addUserKnob {20 endGroup_11 l endGroup n -1}
addUserKnob {26 ""}
addUserKnob {20 len13GRP l "lens 13" n 1}
len13GRP 0
addUserKnob {41 lens13Active l active T _INPUT_CTRL.lens13Active}
addUserKnob {41 lens13Size l size T _INPUT_CTRL.lens13Size}
addUserKnob {41 lens13Col l color T _INPUT_CTRL.lens13Col}
addUserKnob {41 lens13Blur l blur T _INPUT_CTRL.lens13Blur}
addUserKnob {41 lens13AxisPos l "axis pos" T _INPUT_CTRL.lens13AxisPos}
addUserKnob {41 lens13Polygon l polygon T _INPUT_CTRL.lens13Polygon}
addUserKnob {41 lens13Diaphragm l diaphragm T _INPUT_CTRL.lens13Diaphragm}
addUserKnob {41 lens13DiaphRot l "diaph rotation" T _INPUT_CTRL.lens13DiaphRot}
addUserKnob {41 lens13grainOpacity l "grain opacity" T _INPUT_CTRL.lens13grainOpacity}
addUserKnob {41 lens13grainSize l "grain size" T _INPUT_CTRL.lens13grainSize}
addUserKnob {41 lens13grainGain l "grain gain" T _INPUT_CTRL.lens13grainGain}
addUserKnob {41 lens13reflectionOpacity l "refl opacity" T _INPUT_CTRL.lens13reflectionOpacity}
addUserKnob {41 lens13reflectionRotation l "refl rotation" T _INPUT_CTRL.lens13reflectionRotation}
addUserKnob {41 lens13reflWhitepoint l "refl whitepoint" T _INPUT_CTRL.lens13reflWhitepoint}
addUserKnob {41 lens13reflectionGamma l "refl gamma" T _INPUT_CTRL.lens13reflectionGamma}
addUserKnob {41 lens13reflectionBlur l "refl blur" T _INPUT_CTRL.lens13reflectionBlur}
addUserKnob {20 endGroup_12 l endGroup n -1}
addUserKnob {26 ""}
addUserKnob {20 lens14GRP l "lens 14" n 1}
lens14GRP 0
addUserKnob {41 lens14Active l active T _INPUT_CTRL.lens14Active}
addUserKnob {41 lens14Size l size T _INPUT_CTRL.lens14Size}
addUserKnob {41 lens14Col l color T _INPUT_CTRL.lens14Col}
addUserKnob {41 lens14Blur l blur T _INPUT_CTRL.lens14Blur}
addUserKnob {41 lens14AxisPos l "axis pos" T _INPUT_CTRL.lens14AxisPos}
addUserKnob {41 lens14Polygon l polygon T _INPUT_CTRL.lens14Polygon}
addUserKnob {41 lens14Diaphragm l diaphragm T _INPUT_CTRL.lens14Diaphragm}
addUserKnob {41 lens14DiaphRot l "diaph rotation" T _INPUT_CTRL.lens14DiaphRot}
addUserKnob {41 lens14grainOpacity l "grain opacity" T _INPUT_CTRL.lens14grainOpacity}
addUserKnob {41 lens14grainSize l "grain size" T _INPUT_CTRL.lens14grainSize}
addUserKnob {41 lens14grainGain l "grain gain" T _INPUT_CTRL.lens14grainGain}
addUserKnob {41 lens14reflectionOpacity l "refl opacity" T _INPUT_CTRL.lens14reflectionOpacity}
addUserKnob {41 lens14reflectionRotation l "refl rotation" T _INPUT_CTRL.lens14reflectionRotation}
addUserKnob {41 lens14reflWhitepoint l "refl whitepoint" T _INPUT_CTRL.lens14reflWhitepoint}
addUserKnob {41 lens14reflectionGamma l "refl gamma" T _INPUT_CTRL.lens14reflectionGamma}
addUserKnob {41 lens14reflectionBlur l "refl blur" T _INPUT_CTRL.lens14reflectionBlur}
addUserKnob {20 endGroup_13 l endGroup n -1}
addUserKnob {26 ""}
addUserKnob {20 lens15GRP l "lens 15" n 1}
lens15GRP 0
addUserKnob {41 lens15Active l active T _INPUT_CTRL.lens15Active}
addUserKnob {41 lens15Size l size T _INPUT_CTRL.lens15Size}
addUserKnob {41 lens15Col l color T _INPUT_CTRL.lens15Col}
addUserKnob {41 lens15Blur l blur T _INPUT_CTRL.lens15Blur}
addUserKnob {41 lens15AxisPos l "axis pos" T _INPUT_CTRL.lens15AxisPos}
addUserKnob {41 lens15Polygon l polygon T _INPUT_CTRL.lens15Polygon}
addUserKnob {41 lens15Diaphragm l diaphragm T _INPUT_CTRL.lens15Diaphragm}
addUserKnob {41 lens15DiaphRot l "diaph rotation" T _INPUT_CTRL.lens15DiaphRot}
addUserKnob {41 lens15grainOpacity l "grain opacity" T _INPUT_CTRL.lens15grainOpacity}
addUserKnob {41 lens15grainSize l "grain size" T _INPUT_CTRL.lens15grainSize}
addUserKnob {41 lens15grainGain l "grain gain" T _INPUT_CTRL.lens15grainGain}
addUserKnob {41 lens15reflectionOpacity l "refl opacity" T _INPUT_CTRL.lens15reflectionOpacity}
addUserKnob {41 lens15reflectionRotation l "refl rotation" T _INPUT_CTRL.lens15reflectionRotation}
addUserKnob {41 lens15reflWhitepoint l "refl whitepoint" T _INPUT_CTRL.lens15reflWhitepoint}
addUserKnob {41 lens15reflectionGamma l "refl gamma" T _INPUT_CTRL.lens15reflectionGamma}
addUserKnob {41 lens15reflectionBlur l "refl blur" T _INPUT_CTRL.lens15reflectionBlur}
addUserKnob {20 endGroup_14 l endGroup n -1}
addUserKnob {26 ""}
addUserKnob {20 lens16GRP l "lens 16" n 1}
lens16GRP 0
addUserKnob {41 lens16Active l active T _INPUT_CTRL.lens16Active}
addUserKnob {41 lens16Size l size T _INPUT_CTRL.lens16Size}
addUserKnob {41 lens16Col l color T _INPUT_CTRL.lens16Col}
addUserKnob {41 lens16Blur l blur T _INPUT_CTRL.lens16Blur}
addUserKnob {41 lens16AxisPos l "axis pos" T _INPUT_CTRL.lens16AxisPos}
addUserKnob {41 lens16Polygon l polygon T _INPUT_CTRL.lens16Polygon}
addUserKnob {41 lens16Diaphragm l diaphragm T _INPUT_CTRL.lens16Diaphragm}
addUserKnob {41 lens16DiaphRot l "diaph rotation" T _INPUT_CTRL.lens16DiaphRot}
addUserKnob {41 lens16grainOpacity l "grain opacity" T _INPUT_CTRL.lens16grainOpacity}
addUserKnob {41 lens16grainSize l "grain size" T _INPUT_CTRL.lens16grainSize}
addUserKnob {41 lens16grainGain l "grain gain" T _INPUT_CTRL.lens16grainGain}
addUserKnob {41 lens16reflectionOpacity l "refl opacity" T _INPUT_CTRL.lens16reflectionOpacity}
addUserKnob {41 lens16reflectionRotation l "refl rotation" T _INPUT_CTRL.lens16reflectionRotation}
addUserKnob {41 lens16reflWhitepoint l "refl whitepoint" T _INPUT_CTRL.lens16reflWhitepoint}
addUserKnob {41 lens16reflectionGamma l "refl gamma" T _INPUT_CTRL.lens16reflectionGamma}
addUserKnob {41 lens16reflectionBlur l "refl blur" T _INPUT_CTRL.lens16reflectionBlur}
addUserKnob {20 endGroup_15 l endGroup n -1}
addUserKnob {26 ""}
addUserKnob {20 lens17GRP l "lens 17" n 1}
lens17GRP 0
addUserKnob {41 lens17Active l active T _INPUT_CTRL.lens17Active}
addUserKnob {41 lens17Size l size T _INPUT_CTRL.lens17Size}
addUserKnob {41 lens17Col l color T _INPUT_CTRL.lens17Col}
addUserKnob {41 lens17Blur l blur T _INPUT_CTRL.lens17Blur}
addUserKnob {41 lens17AxisPos l "axis pos" T _INPUT_CTRL.lens17AxisPos}
addUserKnob {41 lens17Polygon l polygon T _INPUT_CTRL.lens17Polygon}
addUserKnob {41 lens17Diaphragm l diaphragm T _INPUT_CTRL.lens17Diaphragm}
addUserKnob {41 lens17DiaphRot l "diaph rotation" T _INPUT_CTRL.lens17DiaphRot}
addUserKnob {41 lens17grainOpacity l "grain opacity" T _INPUT_CTRL.lens17grainOpacity}
addUserKnob {41 lens17grainSize l "grain size" T _INPUT_CTRL.lens17grainSize}
addUserKnob {41 lens17grainGain l "grain gain" T _INPUT_CTRL.lens17grainGain}
addUserKnob {41 lens17reflectionOpacity l "refl opacity" T _INPUT_CTRL.lens17reflectionOpacity}
addUserKnob {41 lens17reflectionRotation l "refl rotation" T _INPUT_CTRL.lens17reflectionRotation}
addUserKnob {41 lens17reflWhitepoint l "refl whitepoint" T _INPUT_CTRL.lens17reflWhitepoint}
addUserKnob {41 lens17reflectionGamma l "refl gamma" T _INPUT_CTRL.lens17reflectionGamma}
addUserKnob {41 lens17reflectionBlur l "refl blur" T _INPUT_CTRL.lens17reflectionBlur}
addUserKnob {20 endGroup_16 l endGroup n -1}
addUserKnob {26 ""}
addUserKnob {20 lens18GRP l "lens 18" n 1}
lens18GRP 0
addUserKnob {41 lens18Active l active T _INPUT_CTRL.lens18Active}
addUserKnob {41 lens18Size l size T _INPUT_CTRL.lens18Size}
addUserKnob {41 lens18Col l color T _INPUT_CTRL.lens18Col}
addUserKnob {41 lens18Blur l blur T _INPUT_CTRL.lens18Blur}
addUserKnob {41 lens18AxisPos l "axis pos" T _INPUT_CTRL.lens18AxisPos}
addUserKnob {41 lens18Polygon l polygon T _INPUT_CTRL.lens18Polygon}
addUserKnob {41 lens18Diaphragm l diaphragm T _INPUT_CTRL.lens18Diaphragm}
addUserKnob {41 lens18DiaphRot l "diaph rotation" T _INPUT_CTRL.lens18DiaphRot}
addUserKnob {41 lens18grainOpacity l "grain opacity" T _INPUT_CTRL.lens18grainOpacity}
addUserKnob {41 lens18grainSize l "grain size" T _INPUT_CTRL.lens18grainSize}
addUserKnob {41 lens18grainGain l "grain gain" T _INPUT_CTRL.lens18grainGain}
addUserKnob {41 lens18reflectionOpacity l "refl opacity" T _INPUT_CTRL.lens18reflectionOpacity}
addUserKnob {41 lens18reflectionRotation l "refl rotation" T _INPUT_CTRL.lens18reflectionRotation}
addUserKnob {41 lens18reflWhitepoint l "refl whitepoint" T _INPUT_CTRL.lens18reflWhitepoint}
addUserKnob {41 lens18reflectionGamma l "refl gamma" T _INPUT_CTRL.lens18reflectionGamma}
addUserKnob {41 lens18reflectionBlur l "refl blur" T _INPUT_CTRL.lens18reflectionBlur}
addUserKnob {20 endGroup_17 l endGroup n -1}
addUserKnob {26 ""}
addUserKnob {20 lens19GRP l "lens 19" n 1}
lens19GRP 0
addUserKnob {41 lens19Active l active T _INPUT_CTRL.lens19Active}
addUserKnob {41 lens19Size l size T _INPUT_CTRL.lens19Size}
addUserKnob {41 lens19Col l color T _INPUT_CTRL.lens19Col}
addUserKnob {41 lens19Blur l blur T _INPUT_CTRL.lens19Blur}
addUserKnob {41 lens19AxisPos l "axis pos" T _INPUT_CTRL.lens19AxisPos}
addUserKnob {41 lens19Polygon l polygon T _INPUT_CTRL.lens19Polygon}
addUserKnob {41 lens19Diaphragm l diaphragm T _INPUT_CTRL.lens19Diaphragm}
addUserKnob {41 lens19DiaphRot l "diaph rotation" T _INPUT_CTRL.lens19DiaphRot}
addUserKnob {41 lens19grainOpacity l "grain opacity" T _INPUT_CTRL.lens19grainOpacity}
addUserKnob {41 lens19grainSize l "grain size" T _INPUT_CTRL.lens19grainSize}
addUserKnob {41 lens19grainGain l "grain gain" T _INPUT_CTRL.lens19grainGain}
addUserKnob {41 lens19reflectionOpacity l "refl opacity" T _INPUT_CTRL.lens19reflectionOpacity}
addUserKnob {41 lens19reflectionRotation l "refl rotation" T _INPUT_CTRL.lens19reflectionRotation}
addUserKnob {41 lens19reflWhitepoint l "refl whitepoint" T _INPUT_CTRL.lens19reflWhitepoint}
addUserKnob {41 lens19reflectionGamma l "refl gamma" T _INPUT_CTRL.lens19reflectionGamma}
addUserKnob {41 lens19reflectionBlur l "refl blur" T _INPUT_CTRL.lens19reflectionBlur}
addUserKnob {20 endGroup_18 l endGroup n -1}
addUserKnob {26 ""}
addUserKnob {20 lens20GRP l "lens 20" n 1}
lens20GRP 0
addUserKnob {41 lens20Active l active T _INPUT_CTRL.lens20Active}
addUserKnob {41 lens20Size l size T _INPUT_CTRL.lens20Size}
addUserKnob {41 lens20Col l color T _INPUT_CTRL.lens20Col}
addUserKnob {41 lens20Blur l blur T _INPUT_CTRL.lens20Blur}
addUserKnob {41 lens20AxisPos l "axis pos" T _INPUT_CTRL.lens20AxisPos}
addUserKnob {41 lens20Polygon l polygon T _INPUT_CTRL.lens20Polygon}
addUserKnob {41 lens20Diaphragm l diaphragm T _INPUT_CTRL.lens20Diaphragm}
addUserKnob {41 lens20DiaphRot l "diaph rotation" T _INPUT_CTRL.lens20DiaphRot}
addUserKnob {41 lens20grainOpacity l "grain opacity" T _INPUT_CTRL.lens20grainOpacity}
addUserKnob {41 lens20grainSize l "grain size" T _INPUT_CTRL.lens20grainSize}
addUserKnob {41 lens20grainGain l "grain gain" T _INPUT_CTRL.lens20grainGain}
addUserKnob {41 lens20reflectionOpacity l "refl opacity" T _INPUT_CTRL.lens20reflectionOpacity}
addUserKnob {41 lens20reflectionRotation l "refl rotation" T _INPUT_CTRL.lens20reflectionRotation}
addUserKnob {41 lens20reflWhitepoint l "refl whitepoint" T _INPUT_CTRL.lens20reflWhitepoint}
addUserKnob {41 lens20reflectionGamma l "refl gamma" T _INPUT_CTRL.lens20reflectionGamma}
addUserKnob {41 lens20reflectionBlur l "refl blur" T _INPUT_CTRL.lens20reflectionBlur}
addUserKnob {20 endGroup_19 l endGroup n -1}
}
Input {
inputs 0
name Input
xpos 153
ypos 416
}
NoOp {
name _INPUT_
xpos 153
ypos 456
}
set N49d16e70 [stack 0]
NoOp {
name _SOURCE
xpos -72
ypos 456
}
Multiply {
value 0
name _compOnSource
xpos -72
ypos 10508
disable {{1-_INPUT_CTRL.effectOnly i}}
}
push $N49d16e70
Reformat {
type scale
scale {{_INPUT_CTRL.quality i}}
name _reformatQuality
xpos 153
ypos 485
}
NoOp {
name _INPUT_CTRL
xpos 153
ypos 523
addUserKnob {20 Controls}
addUserKnob {6 effectOnly l "effect only" +STARTLINE}
addUserKnob {6 viewSelectedHighlights l "view highlights selection" +STARTLINE}
addUserKnob {7 brightspot R 0.9 15}
brightspot 2
addUserKnob {7 threshold}
threshold 1
addUserKnob {7 gamma t "Value for the gamma function applied between threshold value and brightspot value.\n" R 0 3}
gamma 2.2
addUserKnob {6 clampBright l "clamp to brightspot" t "Clamp the maximum values to the brightspot value." +STARTLINE}
clampBright true
addUserKnob {7 quality}
quality 0.5
addUserKnob {26 ""}
addUserKnob {7 overallMult l "overall mult" R 0 2}
overallMult 1
addUserKnob {7 overallLensScale l "overall lens scale" R 0 2}
overallLensScale 1
addUserKnob {7 overallLensDistance l "overall lens distance" R 0 2}
overallLensDistance 1
addUserKnob {7 overallSaturation l "overall saturation" R 0 2}
overallSaturation 1
addUserKnob {7 sourceCol l "source color" t "Mix with source color"}
sourceCol 1
addUserKnob {7 sourceSat l "source sat" R 0 3}
sourceSat 1
addUserKnob {26 ""}
addUserKnob {7 overallGrainOpacity l "overall grain opacity"}
addUserKnob {7 overallGrainSizeMult l "grain size mult" R 0 10}
overallGrainSizeMult 1
addUserKnob {7 overallGrainGainMult l "grain gain mult" R 0 5}
overallGrainGainMult 1
addUserKnob {26 ""}
addUserKnob {7 reflectionsOpacity l "reflections opacity"}
addUserKnob {7 reflectionsRotOffset l "reflections rot offset" R 0 360}
addUserKnob {7 reflectionsBlurAdd l "reflections add blur" R 0 50}
addUserKnob {18 reflectionsWhitepointMult l "refl whitepoint mult" R 0 2}
reflectionsWhitepointMult 1
addUserKnob {6 reflectionsWhitepointMult_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 reflectionsWhitepointMult_panelDropped_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 reflectionsWhitepointMult_panelDropped_1_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {18 reflectionsGammaMult l "refl gamma mult" R 0 5}
reflectionsGammaMult 1
addUserKnob {6 reflectionsGammaMult_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 reflectionsGammaMult_panelDropped_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 reflectionsGammaMult_panelDropped_1_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {26 ""}
addUserKnob {6 vignetteActive l "vignette source" +STARTLINE}
vignetteActive true
addUserKnob {7 vignetteScale l scale}
vignetteScale 0.7
addUserKnob {7 vignetteDarkness l darkness}
vignetteDarkness 1
addUserKnob {20 Presets}
addUserKnob {22 preset_01 l "Pink on Blue" T "n=nuke.toNode('_INPUT_CTRL')\n\nn.knob('lens1Active').setValue(True)\nn.knob('lens1Size').setValue(230)\nn.knob('lens1Col').setValue(2.48,0)\nn.knob('lens1Col').setValue(2.86,1)\nn.knob('lens1Col').setValue(16.6,2)\nn.knob('lens1Blur').setValue(17)\nn.knob('lens1AxisPos').setValue(-1.18)\nn.knob('lens1Polygon').setValue(0)\nn.knob('lens1Diaphragm').setValue(1)\nn.knob('lens1DiaphRot').setValue(0)\n\nn.knob('lens2Active').setValue(True)\nn.knob('lens2Size').setValue(50)\nn.knob('lens2Col').setValue(0.0027,0)\nn.knob('lens2Col').setValue(0.0095,1)\nn.knob('lens2Col').setValue(0.3,2)\nn.knob('lens2Blur').setValue(0)\nn.knob('lens2AxisPos').setValue(1.86)\nn.knob('lens2Polygon').setValue(0)\nn.knob('lens2Diaphragm').setValue(1)\nn.knob('lens2DiaphRot').setValue(0)\n\nn.knob('lens3Active').setValue(True)\nn.knob('lens3Size').setValue(200)\nn.knob('lens3Col').setValue(7,0)\nn.knob('lens3Col').setValue(6.02,1)\nn.knob('lens3Col').setValue(2.79,2)\nn.knob('lens3Blur').setValue(0)\nn.knob('lens3AxisPos').setValue(-1.18)\nn.knob('lens3Polygon').setValue(0)\nn.knob('lens3Diaphragm').setValue(1)\nn.knob('lens3DiaphRot').setValue(0)\n\nn.knob('lens4Active').setValue(True)\nn.knob('lens4Size').setValue(900)\nn.knob('lens4Col').setValue(26,0)\nn.knob('lens4Col').setValue(5.88,1)\nn.knob('lens4Col').setValue(10.64,2)\nn.knob('lens4Blur').setValue(0)\nn.knob('lens4AxisPos').setValue(-2.2)\nn.knob('lens4Polygon').setValue(0)\nn.knob('lens4Diaphragm').setValue(1)\nn.knob('lens4DiaphRot').setValue(0)\n\nn.knob('lens5Active').setValue(True)\nn.knob('lens5Size').setValue(540)\nn.knob('lens5Col').setValue(0.6,0)\nn.knob('lens5Col').setValue(0.34,1)\nn.knob('lens5Col').setValue(0.4,2)\nn.knob('lens5Blur').setValue(0)\nn.knob('lens5AxisPos').setValue(1)\nn.knob('lens5Polygon').setValue(0)\nn.knob('lens5Diaphragm').setValue(1)\nn.knob('lens5DiaphRot').setValue(0)\n\nn.knob('lens6Active').setValue(True)\nn.knob('lens6Size').setValue(430)\nn.knob('lens6Col').setValue(1.29,0)\nn.knob('lens6Col').setValue(0.19,1)\nn.knob('lens6Col').setValue(1.17,2)\nn.knob('lens6Blur').setValue(0)\nn.knob('lens6AxisPos').setValue(2.2)\nn.knob('lens6Polygon').setValue(0)\nn.knob('lens6Diaphragm').setValue(1)\nn.knob('lens6DiaphRot').setValue(0)\n\nn.knob('lens7Active').setValue(True)\nn.knob('lens7Size').setValue(400)\nn.knob('lens7Col').setValue(0,0)\nn.knob('lens7Col').setValue(674.66,1)\nn.knob('lens7Col').setValue(720,2)\nn.knob('lens7Blur').setValue(0)\nn.knob('lens7AxisPos').setValue(0.1)\nn.knob('lens7Polygon').setValue(0)\nn.knob('lens7Diaphragm').setValue(1)\nn.knob('lens7DiaphRot').setValue(0)\n\nn.knob('lens8Active').setValue(True)\nn.knob('lens8Size').setValue(950)\nn.knob('lens8Col').setValue(5,0)\nn.knob('lens8Col').setValue(13.21,1)\nn.knob('lens8Col').setValue(20,2)\nn.knob('lens8Blur').setValue(40)\nn.knob('lens8AxisPos').setValue(-2.16)\nn.knob('lens8Polygon').setValue(0)\nn.knob('lens8Diaphragm').setValue(1)\nn.knob('lens8DiaphRot').setValue(0)\n\nn.knob('lens9Active').setValue(True)\nn.knob('lens9Size').setValue(130)\nn.knob('lens9Col').setValue(0.07,0)\nn.knob('lens9Col').setValue(0.23,1)\nn.knob('lens9Col').setValue(4.8,2)\nn.knob('lens9Blur').setValue(5.6)\nn.knob('lens9AxisPos').setValue(0.7)\nn.knob('lens9Polygon').setValue(0)\nn.knob('lens9Diaphragm').setValue(1)\nn.knob('lens9DiaphRot').setValue(0)\n\nn.knob('lens10Active').setValue(True)\nn.knob('lens10Size').setValue(350)\nn.knob('lens10Col').setValue(1.549,0)\nn.knob('lens10Col').setValue(1,1)\nn.knob('lens10Col').setValue(0.85,2)\nn.knob('lens10Blur').setValue(0)\nn.knob('lens10AxisPos').setValue(-1.8)\nn.knob('lens10Polygon').setValue(0)\nn.knob('lens10Diaphragm').setValue(1)\nn.knob('lens10DiaphRot').setValue(0)\n\nn.knob('lens11Active').setValue(True)\nn.knob('lens11Size').setValue(10)\nn.knob('lens11Col').setValue(0.1,0)\nn.knob('lens11Col').setValue(0.032,1)\nn.knob('lens11Col').setValue(0.087,2)\nn.knob('lens11Blur').setValue(3.8)\nn.knob('lens11AxisPos').setValue(-0.6)\nn.knob('lens11Polygon').setValue(0)\nn.knob('lens11Diaphragm').setValue(1)\nn.knob('lens11DiaphRot').setValue(0)\n\nn.knob('lens12Active').setValue(True)\nn.knob('lens12Size').setValue(390)\nn.knob('lens12Col').setValue(0.11,0)\nn.knob('lens12Col').setValue(0.053,1)\nn.knob('lens12Col').setValue(0.036,2)\nn.knob('lens12Blur').setValue(2.1)\nn.knob('lens12AxisPos').setValue(-1.8)\nn.knob('lens12Polygon').setValue(0)\nn.knob('lens12Diaphragm').setValue(1)\nn.knob('lens12DiaphRot').setValue(0)\n\nn.knob('lens13Active').setValue(True)\nn.knob('lens13Size').setValue(140)\nn.knob('lens13Col').setValue(0.5,0)\nn.knob('lens13Col').setValue(2.75,1)\nn.knob('lens13Col').setValue(5,2)\nn.knob('lens13Blur').setValue(140)\nn.knob('lens13AxisPos').setValue(2)\nn.knob('lens13Polygon').setValue(0)\nn.knob('lens13Diaphragm').setValue(1)\nn.knob('lens13DiaphRot').setValue(0)\n\nn.knob('lens14Active').setValue(True)\nn.knob('lens14Size').setValue(420)\nn.knob('lens14Col').setValue(509.29,0)\nn.knob('lens14Col').setValue(-50.93,1)\nn.knob('lens14Col').setValue(500.3,2)\nn.knob('lens14Blur').setValue(20)\nn.knob('lens14AxisPos').setValue(0.08)\nn.knob('lens14Polygon').setValue(0)\nn.knob('lens14Diaphragm').setValue(1)\nn.knob('lens14DiaphRot').setValue(0)\n\nn.knob('lens15Active').setValue(True)\nn.knob('lens15Size').setValue(590)\nn.knob('lens15Col').setValue(1120,0)\nn.knob('lens15Col').setValue(-55.99,1)\nn.knob('lens15Col').setValue(946.47,2)\nn.knob('lens15Blur').setValue(0)\nn.knob('lens15AxisPos').setValue(-0.1)\nn.knob('lens15Polygon').setValue(0)\nn.knob('lens15Diaphragm').setValue(1)\nn.knob('lens15DiaphRot').setValue(0)\n\nn.knob('lens16Active').setValue(True)\nn.knob('lens16Size').setValue(130)\nn.knob('lens16Col').setValue(0.8,0)\nn.knob('lens16Col').setValue(0.74,1)\nn.knob('lens16Col').setValue(0.119,2)\nn.knob('lens16Blur').setValue(5.8)\nn.knob('lens16AxisPos').setValue(-0.51)\nn.knob('lens16Polygon').setValue(0)\nn.knob('lens16Diaphragm').setValue(1)\nn.knob('lens16DiaphRot').setValue(0)\n\nn.knob('lens17Active').setValue(True)\nn.knob('lens17Size').setValue(210)\nn.knob('lens17Col').setValue(0.4911,0)\nn.knob('lens17Col').setValue(1.01,1)\nn.knob('lens17Col').setValue(2.59,2)\nn.knob('lens17Blur').setValue(0)\nn.knob('lens17AxisPos').setValue(1.2)\nn.knob('lens17Polygon').setValue(0)\nn.knob('lens17Diaphragm').setValue(1)\nn.knob('lens17DiaphRot').setValue(0)\n\nn.knob('lens18Active').setValue(True)\nn.knob('lens18Size').setValue(50)\nn.knob('lens18Col').setValue(0.26,0)\nn.knob('lens18Col').setValue(0.039,1)\nn.knob('lens18Col').setValue(-0.624,2)\nn.knob('lens18Blur').setValue(0)\nn.knob('lens18AxisPos').setValue(-0.83)\nn.knob('lens18Polygon').setValue(0)\nn.knob('lens18Diaphragm').setValue(1)\nn.knob('lens18DiaphRot').setValue(0)\n\nn.knob('lens19Active').setValue(True)\nn.knob('lens19Size').setValue(410)\nn.knob('lens19Col').setValue(4.4,0)\nn.knob('lens19Col').setValue(2.7,1)\nn.knob('lens19Col').setValue(2.04,2)\nn.knob('lens19Blur').setValue(0)\nn.knob('lens19AxisPos').setValue(-0.95)\nn.knob('lens19Polygon').setValue(0)\nn.knob('lens19Diaphragm').setValue(1)\nn.knob('lens19DiaphRot').setValue(0)\n\nn.knob('lens20Active').setValue(True)\nn.knob('lens20Size').setValue(700)\nn.knob('lens20Col').setValue(2.32,0)\nn.knob('lens20Col').setValue(0,1)\nn.knob('lens20Col').setValue(104,2)\nn.knob('lens20Blur').setValue(0)\nn.knob('lens20AxisPos').setValue(0.6)\nn.knob('lens20Polygon').setValue(0)\nn.knob('lens20Diaphragm').setValue(1)\nn.knob('lens20DiaphRot').setValue(0)\n\n\n" +STARTLINE}
addUserKnob {22 preset_02 l "Fat Orange" T "n=nuke.toNode('_INPUT_CTRL')\n\nn.knob('lens1Active').setValue(True)\nn.knob('lens1Size').setValue(7)\nn.knob('lens1Col').setValue(0.0074,0)\nn.knob('lens1Col').setValue(0,1)\nn.knob('lens1Col').setValue(0.07,2)\nn.knob('lens1Blur').setValue(17)\nn.knob('lens1AxisPos').setValue(-1.3)\nn.knob('lens1Polygon').setValue(0)\nn.knob('lens1Diaphragm').setValue(1)\nn.knob('lens1DiaphRot').setValue(0)\n\nn.knob('lens2Active').setValue(True)\nn.knob('lens2Size').setValue(130)\nn.knob('lens2Col').setValue(0.11,0)\nn.knob('lens2Col').setValue(0.055,1)\nn.knob('lens2Col').setValue(0.0709,2)\nn.knob('lens2Blur').setValue(9.5)\nn.knob('lens2AxisPos').setValue(-1.66)\nn.knob('lens2Polygon').setValue(0)\nn.knob('lens2Diaphragm').setValue(1)\nn.knob('lens2DiaphRot').setValue(0)\n\nn.knob('lens3Active').setValue(True)\nn.knob('lens3Size').setValue(340)\nn.knob('lens3Col').setValue(3.9,0)\nn.knob('lens3Col').setValue(1.125,1)\nn.knob('lens3Col').setValue(0.195,2)\nn.knob('lens3Blur').setValue(0)\nn.knob('lens3AxisPos').setValue(-0.32)\nn.knob('lens3Polygon').setValue(0)\nn.knob('lens3Diaphragm').setValue(1)\nn.knob('lens3DiaphRot').setValue(0)\n\nn.knob('lens4Active').setValue(True)\nn.knob('lens4Size').setValue(160)\nn.knob('lens4Col').setValue(2.59,0)\nn.knob('lens4Col').setValue(0.13,1)\nn.knob('lens4Col').setValue(0.228,2)\nn.knob('lens4Blur').setValue(0)\nn.knob('lens4AxisPos').setValue(-0.24)\nn.knob('lens4Polygon').setValue(0)\nn.knob('lens4Diaphragm').setValue(1)\nn.knob('lens4DiaphRot').setValue(0)\n\nn.knob('lens5Active').setValue(True)\nn.knob('lens5Size').setValue(350)\nn.knob('lens5Col').setValue(0.6,0)\nn.knob('lens5Col').setValue(0.135,1)\nn.knob('lens5Col').setValue(0,2)\nn.knob('lens5Blur').setValue(0)\nn.knob('lens5AxisPos').setValue(-0.78)\nn.knob('lens5Polygon').setValue(0)\nn.knob('lens5Diaphragm').setValue(1)\nn.knob('lens5DiaphRot').setValue(0)\n\nn.knob('lens6Active').setValue(True)\nn.knob('lens6Size').setValue(30)\nn.knob('lens6Col').setValue(0.11,0)\nn.knob('lens6Col').setValue(0.053,1)\nn.knob('lens6Col').setValue(0.0000012,2)\nn.knob('lens6Blur').setValue(4)\nn.knob('lens6AxisPos').setValue(-0.75)\nn.knob('lens6Polygon').setValue(0)\nn.knob('lens6Diaphragm').setValue(1)\nn.knob('lens6DiaphRot').setValue(0)\n\nn.knob('lens7Active').setValue(True)\nn.knob('lens7Size').setValue(1000)\nn.knob('lens7Col').setValue(190,0)\nn.knob('lens7Col').setValue(24.27,1)\nn.knob('lens7Col').setValue(0,2)\nn.knob('lens7Blur').setValue(0)\nn.knob('lens7AxisPos').setValue(-0.04)\nn.knob('lens7Polygon').setValue(0)\nn.knob('lens7Diaphragm').setValue(1)\nn.knob('lens7DiaphRot').setValue(0)\n\nn.knob('lens8Active').setValue(True)\nn.knob('lens8Size').setValue(350)\nn.knob('lens8Col').setValue(0.6,0)\nn.knob('lens8Col').setValue(0.233,1)\nn.knob('lens8Col').setValue(0.089,2)\nn.knob('lens8Blur').setValue(100)\nn.knob('lens8AxisPos').setValue(-1.9)\nn.knob('lens8Polygon').setValue(0)\nn.knob('lens8Diaphragm').setValue(1)\nn.knob('lens8DiaphRot').setValue(0)\n\nn.knob('lens9Active').setValue(True)\nn.knob('lens9Size').setValue(200)\nn.knob('lens9Col').setValue(0.949,0)\nn.knob('lens9Col').setValue(0.05,1)\nn.knob('lens9Col').setValue(0,2)\nn.knob('lens9Blur').setValue(30)\nn.knob('lens9AxisPos').setValue(-0.76)\nn.knob('lens9Polygon').setValue(0)\nn.knob('lens9Diaphragm').setValue(1)\nn.knob('lens9DiaphRot').setValue(0)\n\nn.knob('lens10Active').setValue(True)\nn.knob('lens10Size').setValue(270)\nn.knob('lens10Col').setValue(5,0)\nn.knob('lens10Col').setValue(1.78,1)\nn.knob('lens10Col').setValue(0.87,2)\nn.knob('lens10Blur').setValue(0)\nn.knob('lens10AxisPos').setValue(0.18)\nn.knob('lens10Polygon').setValue(0)\nn.knob('lens10Diaphragm').setValue(1)\nn.knob('lens10DiaphRot').setValue(0)\n\nn.knob('lens11Active').setValue(True)\nn.knob('lens11Size').setValue(20)\nn.knob('lens11Col').setValue(0.03,0)\nn.knob('lens11Col').setValue(0.0093,1)\nn.knob('lens11Col').setValue(0,2)\nn.knob('lens11Blur').setValue(3.5)\nn.knob('lens11AxisPos').setValue(-0.6)\nn.knob('lens11Polygon').setValue(0)\nn.knob('lens11Diaphragm').setValue(1)\nn.knob('lens11DiaphRot').setValue(0)\n\nn.knob('lens12Active').setValue(True)\nn.knob('lens12Size').setValue(700)\nn.knob('lens12Col').setValue(0.04,0)\nn.knob('lens12Col').setValue(0,1)\nn.knob('lens12Col').setValue(0.0058,2)\nn.knob('lens12Blur').setValue(10)\nn.knob('lens12AxisPos').setValue(-2.2)\nn.knob('lens12Polygon').setValue(0)\nn.knob('lens12Diaphragm').setValue(1)\nn.knob('lens12DiaphRot').setValue(0)\n\nn.knob('lens13Active').setValue(True)\nn.knob('lens13Size').setValue(100)\nn.knob('lens13Col').setValue(0.12,0)\nn.knob('lens13Col').setValue(0,1)\nn.knob('lens13Col').setValue(0.0178,2)\nn.knob('lens13Blur').setValue(200)\nn.knob('lens13AxisPos').setValue(2)\nn.knob('lens13Polygon').setValue(0)\nn.knob('lens13Diaphragm').setValue(1)\nn.knob('lens13DiaphRot').setValue(0)\n\nn.knob('lens14Active').setValue(True)\nn.knob('lens14Size').setValue(80)\nn.knob('lens14Col').setValue(0.28,0)\nn.knob('lens14Col').setValue(0.0419,1)\nn.knob('lens14Col').setValue(0.101,2)\nn.knob('lens14Blur').setValue(0)\nn.knob('lens14AxisPos').setValue(0.38)\nn.knob('lens14Polygon').setValue(0)\nn.knob('lens14Diaphragm').setValue(1)\nn.knob('lens14DiaphRot').setValue(0)\n\nn.knob('lens15Active').setValue(True)\nn.knob('lens15Size').setValue(500)\nn.knob('lens15Col').setValue(1,0)\nn.knob('lens15Col').setValue(0.2428,1)\nn.knob('lens15Col').setValue(0.1,2)\nn.knob('lens15Blur').setValue(0)\nn.knob('lens15AxisPos').setValue(-0.5)\nn.knob('lens15Polygon').setValue(0)\nn.knob('lens15Diaphragm').setValue(1)\nn.knob('lens15DiaphRot').setValue(0)\n\nn.knob('lens16Active').setValue(True)\nn.knob('lens16Size').setValue(130)\nn.knob('lens16Col').setValue(0.449,0)\nn.knob('lens16Col').setValue(0.146,1)\nn.knob('lens16Col').setValue(0.0225,2)\nn.knob('lens16Blur').setValue(0)\nn.knob('lens16AxisPos').setValue(1.4)\nn.knob('lens16Polygon').setValue(0)\nn.knob('lens16Diaphragm').setValue(1)\nn.knob('lens16DiaphRot').setValue(0)\n\nn.knob('lens17Active').setValue(True)\nn.knob('lens17Size').setValue(210)\nn.knob('lens17Col').setValue(0.09,0)\nn.knob('lens17Col').setValue(0.009,1)\nn.knob('lens17Col').setValue(0.056,2)\nn.knob('lens17Blur').setValue(0)\nn.knob('lens17AxisPos').setValue(1.2)\nn.knob('lens17Polygon').setValue(0)\nn.knob('lens17Diaphragm').setValue(1)\nn.knob('lens17DiaphRot').setValue(0)\n\nn.knob('lens18Active').setValue(True)\nn.knob('lens18Size').setValue(100)\nn.knob('lens18Col').setValue(0.06,0)\nn.knob('lens18Col').setValue(0.009,1)\nn.knob('lens18Col').setValue(0.0579,2)\nn.knob('lens18Blur').setValue(120)\nn.knob('lens18AxisPos').setValue(2.5)\nn.knob('lens18Polygon').setValue(0)\nn.knob('lens18Diaphragm').setValue(1)\nn.knob('lens18DiaphRot').setValue(0)\n\nn.knob('lens19Active').setValue(True)\nn.knob('lens19Size').setValue(150)\nn.knob('lens19Col').setValue(0.2,0)\nn.knob('lens19Col').setValue(0.0708,1)\nn.knob('lens19Col').setValue(0.1219,2)\nn.knob('lens19Blur').setValue(9)\nn.knob('lens19AxisPos').setValue(0.8)\nn.knob('lens19Polygon').setValue(0)\nn.knob('lens19Diaphragm').setValue(1)\nn.knob('lens19DiaphRot').setValue(0)\n\nn.knob('lens20Active').setValue(True)\nn.knob('lens20Size').setValue(1100)\nn.knob('lens20Col').setValue(0.8,0)\nn.knob('lens20Col').setValue(0.178,1)\nn.knob('lens20Col').setValue(0.119,2)\nn.knob('lens20Blur').setValue(0)\nn.knob('lens20AxisPos').setValue(0.95)\nn.knob('lens20Polygon').setValue(0)\nn.knob('lens20Diaphragm').setValue(1)\nn.knob('lens20DiaphRot').setValue(0)\n\n\n" +STARTLINE}
addUserKnob {22 preset_03 l "Classic Orange Blue" T "n=nuke.toNode('_INPUT_CTRL')\n\nn.knob('lens1Active').setValue(True)\nn.knob('lens1Size').setValue(650)\nn.knob('lens1Col').setValue(35.59,0)\nn.knob('lens1Col').setValue(19.95,1)\nn.knob('lens1Col').setValue(5.27,2)\nn.knob('lens1Blur').setValue(17)\nn.knob('lens1AxisPos').setValue(0.98)\nn.knob('lens1Polygon').setValue(0)\nn.knob('lens1Diaphragm').setValue(1)\nn.knob('lens1DiaphRot').setValue(0)\n\nn.knob('lens2Active').setValue(True)\nn.knob('lens2Size').setValue(20)\nn.knob('lens2Col').setValue(0.649,0)\nn.knob('lens2Col').setValue(0.34,1)\nn.knob('lens2Col').setValue(0.137,2)\nn.knob('lens2Blur').setValue(7)\nn.knob('lens2AxisPos').setValue(0.77)\nn.knob('lens2Polygon').setValue(0)\nn.knob('lens2Diaphragm').setValue(1)\nn.knob('lens2DiaphRot').setValue(0)\n\nn.knob('lens3Active').setValue(True)\nn.knob('lens3Size').setValue(520)\nn.knob('lens3Col').setValue(446,0)\nn.knob('lens3Col').setValue(249.31,1)\nn.knob('lens3Col').setValue(44.6,2)\nn.knob('lens3Blur').setValue(9.4)\nn.knob('lens3AxisPos').setValue(-0.43)\nn.knob('lens3Polygon').setValue(0)\nn.knob('lens3Diaphragm').setValue(1)\nn.knob('lens3DiaphRot').setValue(0)\n\nn.knob('lens4Active').setValue(True)\nn.knob('lens4Size').setValue(60)\nn.knob('lens4Col').setValue(26,0)\nn.knob('lens4Col').setValue(22.8,1)\nn.knob('lens4Col').setValue(14,2)\nn.knob('lens4Blur').setValue(7)\nn.knob('lens4AxisPos').setValue(0.7)\nn.knob('lens4Polygon').setValue(0)\nn.knob('lens4Diaphragm').setValue(1)\nn.knob('lens4DiaphRot').setValue(0)\n\nn.knob('lens5Active').setValue(True)\nn.knob('lens5Size').setValue(220)\nn.knob('lens5Col').setValue(30,0)\nn.knob('lens5Col').setValue(11.46,1)\nn.knob('lens5Col').setValue(0,2)\nn.knob('lens5Blur').setValue(4.4)\nn.knob('lens5AxisPos').setValue(0.66)\nn.knob('lens5Polygon').setValue(0)\nn.knob('lens5Diaphragm').setValue(1)\nn.knob('lens5DiaphRot').setValue(0)\n\nn.knob('lens6Active').setValue(True)\nn.knob('lens6Size').setValue(130)\nn.knob('lens6Col').setValue(0.134,0)\nn.knob('lens6Col').setValue(17.49,1)\nn.knob('lens6Col').setValue(40,2)\nn.knob('lens6Blur').setValue(0)\nn.knob('lens6AxisPos').setValue(0.23)\nn.knob('lens6Polygon').setValue(0)\nn.knob('lens6Diaphragm').setValue(1)\nn.knob('lens6DiaphRot').setValue(0)\n\nn.knob('lens7Active').setValue(True)\nn.knob('lens7Size').setValue(200)\nn.knob('lens7Col').setValue(50,0)\nn.knob('lens7Col').setValue(47.767,1)\nn.knob('lens7Col').setValue(31.44,2)\nn.knob('lens7Blur').setValue(0)\nn.knob('lens7AxisPos').setValue(0.203)\nn.knob('lens7Polygon').setValue(0)\nn.knob('lens7Diaphragm').setValue(1)\nn.knob('lens7DiaphRot').setValue(0)\n\nn.knob('lens8Active').setValue(True)\nn.knob('lens8Size').setValue(850)\nn.knob('lens8Col').setValue(130,0)\nn.knob('lens8Col').setValue(61.45,1)\nn.knob('lens8Col').setValue(1.76,2)\nn.knob('lens8Blur').setValue(40)\nn.knob('lens8AxisPos').setValue(-0.96)\nn.knob('lens8Polygon').setValue(0)\nn.knob('lens8Diaphragm').setValue(1)\nn.knob('lens8DiaphRot').setValue(0)\n\nn.knob('lens9Active').setValue(True)\nn.knob('lens9Size').setValue(10)\nn.knob('lens9Col').setValue(1.25,0)\nn.knob('lens9Col').setValue(0.249,1)\nn.knob('lens9Col').setValue(0.756,2)\nn.knob('lens9Blur').setValue(0)\nn.knob('lens9AxisPos').setValue(0.53)\nn.knob('lens9Polygon').setValue(0)\nn.knob('lens9Diaphragm').setValue(1)\nn.knob('lens9DiaphRot').setValue(0)\n\nn.knob('lens10Active').setValue(True)\nn.knob('lens10Size').setValue(65)\nn.knob('lens10Col').setValue(20,0)\nn.knob('lens10Col').setValue(9.2,1)\nn.knob('lens10Col').setValue(5.5,2)\nn.knob('lens10Blur').setValue(4.8)\nn.knob('lens10AxisPos').setValue(0.18)\nn.knob('lens10Polygon').setValue(0)\nn.knob('lens10Diaphragm').setValue(1)\nn.knob('lens10DiaphRot').setValue(0)\n\nn.knob('lens11Active').setValue(True)\nn.knob('lens11Size').setValue(30)\nn.knob('lens11Col').setValue(4.5,0)\nn.knob('lens11Col').setValue(8.26,1)\nn.knob('lens11Col').setValue(10,2)\nn.knob('lens11Blur').setValue(0)\nn.knob('lens11AxisPos').setValue(-0.2)\nn.knob('lens11Polygon').setValue(0)\nn.knob('lens11Diaphragm').setValue(1)\nn.knob('lens11DiaphRot').setValue(0)\n\nn.knob('lens12Active').setValue(True)\nn.knob('lens12Size').setValue(1090)\nn.knob('lens12Col').setValue(0.11,0)\nn.knob('lens12Col').setValue(0.053,1)\nn.knob('lens12Col').setValue(0.036,2)\nn.knob('lens12Blur').setValue(2.1)\nn.knob('lens12AxisPos').setValue(-0.8)\nn.knob('lens12Polygon').setValue(0)\nn.knob('lens12Diaphragm').setValue(1)\nn.knob('lens12DiaphRot').setValue(0)\n\nn.knob('lens13Active').setValue(True)\nn.knob('lens13Size').setValue(32)\nn.knob('lens13Col').setValue(10,0)\nn.knob('lens13Col').setValue(9.7,1)\nn.knob('lens13Col').setValue(6.26,2)\nn.knob('lens13Blur').setValue(19.6)\nn.knob('lens13AxisPos').setValue(0.68)\nn.knob('lens13Polygon').setValue(0)\nn.knob('lens13Diaphragm').setValue(1)\nn.knob('lens13DiaphRot').setValue(0)\n\nn.knob('lens14Active').setValue(True)\nn.knob('lens14Size').setValue(320)\nn.knob('lens14Col').setValue(2509,0)\nn.knob('lens14Col').setValue(1171,1)\nn.knob('lens14Col').setValue(1256,2)\nn.knob('lens14Blur').setValue(0)\nn.knob('lens14AxisPos').setValue(-0.04)\nn.knob('lens14Polygon').setValue(0)\nn.knob('lens14Diaphragm').setValue(1)\nn.knob('lens14DiaphRot').setValue(0)\n\nn.knob('lens15Active').setValue(True)\nn.knob('lens15Size').setValue(590)\nn.knob('lens15Col').setValue(1120,0)\nn.knob('lens15Col').setValue(506,1)\nn.knob('lens15Col').setValue(456,2)\nn.knob('lens15Blur').setValue(0)\nn.knob('lens15AxisPos').setValue(-0.1)\nn.knob('lens15Polygon').setValue(0)\nn.knob('lens15Diaphragm').setValue(1)\nn.knob('lens15DiaphRot').setValue(0)\n\nn.knob('lens16Active').setValue(True)\nn.knob('lens16Size').setValue(60)\nn.knob('lens16Col').setValue(18,0)\nn.knob('lens16Col').setValue(4.51,1)\nn.knob('lens16Col').setValue(1.8,2)\nn.knob('lens16Blur').setValue(5.8)\nn.knob('lens16AxisPos').setValue(-0.27)\nn.knob('lens16Polygon').setValue(0)\nn.knob('lens16Diaphragm').setValue(1)\nn.knob('lens16DiaphRot').setValue(0)\n\nn.knob('lens17Active').setValue(True)\nn.knob('lens17Size').setValue(70)\nn.knob('lens17Col').setValue(20,0)\nn.knob('lens17Col').setValue(13.74,1)\nn.knob('lens17Col').setValue(4.58,2)\nn.knob('lens17Blur').setValue(0)\nn.knob('lens17AxisPos').setValue(-0.24)\nn.knob('lens17Polygon').setValue(0)\nn.knob('lens17Diaphragm').setValue(1)\nn.knob('lens17DiaphRot').setValue(0)\n\nn.knob('lens18Active').setValue(True)\nn.knob('lens18Size').setValue(50)\nn.knob('lens18Col').setValue(30,0)\nn.knob('lens18Col').setValue(8.94,1)\nn.knob('lens18Col').setValue(-10.5,2)\nn.knob('lens18Blur').setValue(30)\nn.knob('lens18AxisPos').setValue(-0.32)\nn.knob('lens18Polygon').setValue(0)\nn.knob('lens18Diaphragm').setValue(1)\nn.knob('lens18DiaphRot').setValue(0)\n\nn.knob('lens19Active').setValue(True)\nn.knob('lens19Size').setValue(50)\nn.knob('lens19Col').setValue(1.97,0)\nn.knob('lens19Col').setValue(3.2,1)\nn.knob('lens19Col').setValue(0.32,2)\nn.knob('lens19Blur').setValue(4.4)\nn.knob('lens19AxisPos').setValue(-0.47)\nn.knob('lens19Polygon').setValue(0)\nn.knob('lens19Diaphragm').setValue(1)\nn.knob('lens19DiaphRot').setValue(0)\n\nn.knob('lens20Active').setValue(True)\nn.knob('lens20Size').setValue(80)\nn.knob('lens20Col').setValue(3.79,0)\nn.knob('lens20Col').setValue(3.11,1)\nn.knob('lens20Col').setValue(0.8,2)\nn.knob('lens20Blur').setValue(0)\nn.knob('lens20AxisPos').setValue(-0.15)\nn.knob('lens20Polygon').setValue(0)\nn.knob('lens20Diaphragm').setValue(1)\nn.knob('lens20DiaphRot').setValue(0)\n\n\n" +STARTLINE}
addUserKnob {22 preset_04 l "Giant Colorful" T "n=nuke.toNode('_INPUT_CTRL')\n\nn.knob('lens1Active').setValue(True)\nn.knob('lens1Size').setValue(6)\nn.knob('lens1Col').setValue(0.4,0)\nn.knob('lens1Col').setValue(0.664,1)\nn.knob('lens1Col').setValue(1.85,2)\nn.knob('lens1Blur').setValue(0)\nn.knob('lens1AxisPos').setValue(-0.16)\nn.knob('lens1Polygon').setValue(0)\nn.knob('lens1Diaphragm').setValue(1)\nn.knob('lens1DiaphRot').setValue(0)\n\nn.knob('lens2Active').setValue(True)\nn.knob('lens2Size').setValue(1.1)\nn.knob('lens2Col').setValue(2.67,0)\nn.knob('lens2Col').setValue(3.09,1)\nn.knob('lens2Col').setValue(0.68,2)\nn.knob('lens2Blur').setValue(0)\nn.knob('lens2AxisPos').setValue(0.05)\nn.knob('lens2Polygon').setValue(0)\nn.knob('lens2Diaphragm').setValue(1)\nn.knob('lens2DiaphRot').setValue(0)\n\nn.knob('lens3Active').setValue(True)\nn.knob('lens3Size').setValue(410)\nn.knob('lens3Col').setValue(14,0)\nn.knob('lens3Col').setValue(4.77,1)\nn.knob('lens3Col').setValue(0.76,2)\nn.knob('lens3Blur').setValue(0)\nn.knob('lens3AxisPos').setValue(1.1)\nn.knob('lens3Polygon').setValue(0)\nn.knob('lens3Diaphragm').setValue(1)\nn.knob('lens3DiaphRot').setValue(0)\n\nn.knob('lens4Active').setValue(True)\nn.knob('lens4Size').setValue(370)\nn.knob('lens4Col').setValue(12,0)\nn.knob('lens4Col').setValue(3.96,1)\nn.knob('lens4Col').setValue(10.37,2)\nn.knob('lens4Blur').setValue(7)\nn.knob('lens4AxisPos').setValue(0.95)\nn.knob('lens4Polygon').setValue(0)\nn.knob('lens4Diaphragm').setValue(1)\nn.knob('lens4DiaphRot').setValue(0)\n\nn.knob('lens5Active').setValue(True)\nn.knob('lens5Size').setValue(1120)\nn.knob('lens5Col').setValue(110,0)\nn.knob('lens5Col').setValue(48.46,1)\nn.knob('lens5Col').setValue(7.55,2)\nn.knob('lens5Blur').setValue(18.8)\nn.knob('lens5AxisPos').setValue(0.26)\nn.knob('lens5Polygon').setValue(0)\nn.knob('lens5Diaphragm').setValue(1)\nn.knob('lens5DiaphRot').setValue(0)\n\nn.knob('lens6Active').setValue(True)\nn.knob('lens6Size').setValue(330)\nn.knob('lens6Col').setValue(0.55,0)\nn.knob('lens6Col').setValue(0.329,1)\nn.knob('lens6Col').setValue(0.073,2)\nn.knob('lens6Blur').setValue(0)\nn.knob('lens6AxisPos').setValue(-1.43)\nn.knob('lens6Polygon').setValue(0)\nn.knob('lens6Diaphragm').setValue(1)\nn.knob('lens6DiaphRot').setValue(0)\n\nn.knob('lens7Active').setValue(True)\nn.knob('lens7Size').setValue(360)\nn.knob('lens7Col').setValue(5.69,0)\nn.knob('lens7Col').setValue(3.44,1)\nn.knob('lens7Col').setValue(0,2)\nn.knob('lens7Blur').setValue(0)\nn.knob('lens7AxisPos').setValue(-1.58)\nn.knob('lens7Polygon').setValue(0)\nn.knob('lens7Diaphragm').setValue(1)\nn.knob('lens7DiaphRot').setValue(0)\n\nn.knob('lens8Active').setValue(True)\nn.knob('lens8Size').setValue(8)\nn.knob('lens8Col').setValue(0.38,0)\nn.knob('lens8Col').setValue(1.5,1)\nn.knob('lens8Col').setValue(3.79,2)\nn.knob('lens8Blur').setValue(0)\nn.knob('lens8AxisPos').setValue(0.1)\nn.knob('lens8Polygon').setValue(0)\nn.knob('lens8Diaphragm').setValue(1)\nn.knob('lens8DiaphRot').setValue(0)\n\nn.knob('lens9Active').setValue(True)\nn.knob('lens9Size').setValue(46.5)\nn.knob('lens9Col').setValue(1.8,0)\nn.knob('lens9Col').setValue(1.88,1)\nn.knob('lens9Col').setValue(3.29,2)\nn.knob('lens9Blur').setValue(2.8)\nn.knob('lens9AxisPos').setValue(-0.22)\nn.knob('lens9Polygon').setValue(0)\nn.knob('lens9Diaphragm').setValue(1)\nn.knob('lens9DiaphRot').setValue(0)\n\nn.knob('lens10Active').setValue(True)\nn.knob('lens10Size').setValue(400)\nn.knob('lens10Col').setValue(14,0)\nn.knob('lens10Col').setValue(7.09,1)\nn.knob('lens10Col').setValue(12.38,2)\nn.knob('lens10Blur').setValue(0)\nn.knob('lens10AxisPos').setValue(0.44)\nn.knob('lens10Polygon').setValue(0)\nn.knob('lens10Diaphragm').setValue(1)\nn.knob('lens10DiaphRot').setValue(0)\n\nn.knob('lens11Active').setValue(True)\nn.knob('lens11Size').setValue(6.2)\nn.knob('lens11Col').setValue(0.14,0)\nn.knob('lens11Col').setValue(0.11,1)\nn.knob('lens11Col').setValue(0.014,2)\nn.knob('lens11Blur').setValue(10.8)\nn.knob('lens11AxisPos').setValue(-1.4)\nn.knob('lens11Polygon').setValue(0)\nn.knob('lens11Diaphragm').setValue(1)\nn.knob('lens11DiaphRot').setValue(0)\n\nn.knob('lens12Active').setValue(True)\nn.knob('lens12Size').setValue(10)\nn.knob('lens12Col').setValue(0.11,0)\nn.knob('lens12Col').setValue(0.05,1)\nn.knob('lens12Col').setValue(0.02,2)\nn.knob('lens12Blur').setValue(4.6)\nn.knob('lens12AxisPos').setValue(-1.42)\nn.knob('lens12Polygon').setValue(0)\nn.knob('lens12Diaphragm').setValue(1)\nn.knob('lens12DiaphRot').setValue(0)\n\nn.knob('lens13Active').setValue(True)\nn.knob('lens13Size').setValue(2.3)\nn.knob('lens13Col').setValue(0.14,0)\nn.knob('lens13Col').setValue(0.13,1)\nn.knob('lens13Col').setValue(0.04,2)\nn.knob('lens13Blur').setValue(3)\nn.knob('lens13AxisPos').setValue(-1.48)\nn.knob('lens13Polygon').setValue(0)\nn.knob('lens13Diaphragm').setValue(1)\nn.knob('lens13DiaphRot').setValue(0)\n\nn.knob('lens14Active').setValue(True)\nn.knob('lens14Size').setValue(1020)\nn.knob('lens14Col').setValue(260,0)\nn.knob('lens14Col').setValue(122,1)\nn.knob('lens14Col').setValue(12.6,2)\nn.knob('lens14Blur').setValue(0)\nn.knob('lens14AxisPos').setValue(0.5)\nn.knob('lens14Polygon').setValue(0)\nn.knob('lens14Diaphragm').setValue(1)\nn.knob('lens14DiaphRot').setValue(0)\n\nn.knob('lens15Active').setValue(True)\nn.knob('lens15Size').setValue(650)\nn.knob('lens15Col').setValue(80,0)\nn.knob('lens15Col').setValue(21.6,1)\nn.knob('lens15Col').setValue(47.88,2)\nn.knob('lens15Blur').setValue(0)\nn.knob('lens15AxisPos').setValue(0.4)\nn.knob('lens15Polygon').setValue(0)\nn.knob('lens15Diaphragm').setValue(1)\nn.knob('lens15DiaphRot').setValue(0)\n\nn.knob('lens16Active').setValue(True)\nn.knob('lens16Size').setValue(60)\nn.knob('lens16Col').setValue(2.04,0)\nn.knob('lens16Col').setValue(0.42,1)\nn.knob('lens16Col').setValue(0.10,2)\nn.knob('lens16Blur').setValue(0)\nn.knob('lens16AxisPos').setValue(0.4)\nn.knob('lens16Polygon').setValue(0)\nn.knob('lens16Diaphragm').setValue(1)\nn.knob('lens16DiaphRot').setValue(0)\n\nn.knob('lens17Active').setValue(True)\nn.knob('lens17Size').setValue(80)\nn.knob('lens17Col').setValue(1.2,0)\nn.knob('lens17Col').setValue(0.36,1)\nn.knob('lens17Col').setValue(0.388,2)\nn.knob('lens17Blur').setValue(70)\nn.knob('lens17AxisPos').setValue(-2.4)\nn.knob('lens17Polygon').setValue(0)\nn.knob('lens17Diaphragm').setValue(1)\nn.knob('lens17DiaphRot').setValue(0)\n\nn.knob('lens18Active').setValue(True)\nn.knob('lens18Size').setValue(60)\nn.knob('lens18Col').setValue(10,0)\nn.knob('lens18Col').setValue(4.42,1)\nn.knob('lens18Col').setValue(0,2)\nn.knob('lens18Blur').setValue(30)\nn.knob('lens18AxisPos').setValue(-0.54)\nn.knob('lens18Polygon').setValue(0)\nn.knob('lens18Diaphragm').setValue(1)\nn.knob('lens18DiaphRot').setValue(0)\n\nn.knob('lens19Active').setValue(True)\nn.knob('lens19Size').setValue(99)\nn.knob('lens19Col').setValue(1.54,0)\nn.knob('lens19Col').setValue(1.25,1)\nn.knob('lens19Col').setValue(0.24,2)\nn.knob('lens19Blur').setValue(50)\nn.knob('lens19AxisPos').setValue(1.8)\nn.knob('lens19Polygon').setValue(0)\nn.knob('lens19Diaphragm').setValue(1)\nn.knob('lens19DiaphRot').setValue(0)\n\nn.knob('lens20Active').setValue(True)\nn.knob('lens20Size').setValue(9.4)\nn.knob('lens20Col').setValue(0.239,0)\nn.knob('lens20Col').setValue(0.121,1)\nn.knob('lens20Col').setValue(0.065,2)\nn.knob('lens20Blur').setValue(4)\nn.knob('lens20AxisPos').setValue(0.58)\nn.knob('lens20Polygon').setValue(0)\nn.knob('lens20Diaphragm').setValue(1)\nn.knob('lens20DiaphRot').setValue(0)\n\n\n" +STARTLINE}
addUserKnob {22 preset_05 l "Thin and Wide" T "n=nuke.toNode('_INPUT_CTRL')\n\nn.knob('lens1Active').setValue(True)\nn.knob('lens1Size').setValue(25.2)\nn.knob('lens1Col').setValue(0.97,0)\nn.knob('lens1Col').setValue(2.927,1)\nn.knob('lens1Col').setValue(18,2)\nn.knob('lens1Blur').setValue(0)\nn.knob('lens1AxisPos').setValue(-0.11)\nn.knob('lens1Polygon').setValue(0)\nn.knob('lens1Diaphragm').setValue(0.8)\nn.knob('lens1DiaphRot').setValue(0)\n\nn.knob('lens2Active').setValue(True)\nn.knob('lens2Size').setValue(4.8)\nn.knob('lens2Col').setValue(-2.3,0)\nn.knob('lens2Col').setValue(6.32,1)\nn.knob('lens2Col').setValue(15.39,2)\nn.knob('lens2Blur').setValue(0)\nn.knob('lens2AxisPos').setValue(-0.082)\nn.knob('lens2Polygon').setValue(0)\nn.knob('lens2Diaphragm').setValue(1)\nn.knob('lens2DiaphRot').setValue(0)\n\nn.knob('lens3Active').setValue(True)\nn.knob('lens3Size').setValue(13.5)\nn.knob('lens3Col').setValue(1.17,0)\nn.knob('lens3Col').setValue(1.72,1)\nn.knob('lens3Col').setValue(26,2)\nn.knob('lens3Blur').setValue(0)\nn.knob('lens3AxisPos').setValue(-0.06)\nn.knob('lens3Polygon').setValue(0)\nn.knob('lens3Diaphragm').setValue(0.8)\nn.knob('lens3DiaphRot').setValue(0)\n\nn.knob('lens4Active').setValue(True)\nn.knob('lens4Size').setValue(2.05)\nn.knob('lens4Col').setValue(6.93,0)\nn.knob('lens4Col').setValue(32,1)\nn.knob('lens4Col').setValue(29.82,2)\nn.knob('lens4Blur').setValue(0)\nn.knob('lens4AxisPos').setValue(0.08)\nn.knob('lens4Polygon').setValue(0)\nn.knob('lens4Diaphragm').setValue(1)\nn.knob('lens4DiaphRot').setValue(0)\n\nn.knob('lens5Active').setValue(True)\nn.knob('lens5Size').setValue(200)\nn.knob('lens5Col').setValue(1.09,0)\nn.knob('lens5Col').setValue(1.14,1)\nn.knob('lens5Col').setValue(8,2)\nn.knob('lens5Blur').setValue(0)\nn.knob('lens5AxisPos').setValue(0.27)\nn.knob('lens5Polygon').setValue(0)\nn.knob('lens5Diaphragm').setValue(1)\nn.knob('lens5DiaphRot').setValue(0)\n\nn.knob('lens6Active').setValue(True)\nn.knob('lens6Size').setValue(1000)\nn.knob('lens6Col').setValue(50,0)\nn.knob('lens6Col').setValue(6.38,1)\nn.knob('lens6Col').setValue(0,2)\nn.knob('lens6Blur').setValue(0)\nn.knob('lens6AxisPos').setValue(-1.08)\nn.knob('lens6Polygon').setValue(0)\nn.knob('lens6Diaphragm').setValue(1)\nn.knob('lens6DiaphRot').setValue(0)\n\nn.knob('lens7Active').setValue(True)\nn.knob('lens7Size').setValue(460)\nn.knob('lens7Col').setValue(0,0)\nn.knob('lens7Col').setValue(0.99,1)\nn.knob('lens7Col').setValue(20,2)\nn.knob('lens7Blur').setValue(0)\nn.knob('lens7AxisPos').setValue(-0.88)\nn.knob('lens7Polygon').setValue(0)\nn.knob('lens7Diaphragm').setValue(1)\nn.knob('lens7DiaphRot').setValue(0)\n\nn.knob('lens8Active').setValue(True)\nn.knob('lens8Size').setValue(450)\nn.knob('lens8Col').setValue(12,0)\nn.knob('lens8Col').setValue(2.25,1)\nn.knob('lens8Col').setValue(10.04,2)\nn.knob('lens8Blur').setValue(9.9)\nn.knob('lens8AxisPos').setValue(-0.69)\nn.knob('lens8Polygon').setValue(0)\nn.knob('lens8Diaphragm').setValue(1)\nn.knob('lens8DiaphRot').setValue(0)\n\nn.knob('lens9Active').setValue(True)\nn.knob('lens9Size').setValue(50.4)\nn.knob('lens9Col').setValue(0.9,0)\nn.knob('lens9Col').setValue(1.012,1)\nn.knob('lens9Col').setValue(3,2)\nn.knob('lens9Blur').setValue(2.8)\nn.knob('lens9AxisPos').setValue(0.34)\nn.knob('lens9Polygon').setValue(0)\nn.knob('lens9Diaphragm').setValue(1)\nn.knob('lens9DiaphRot').setValue(0)\n\nn.knob('lens10Active').setValue(True)\nn.knob('lens10Size').setValue(85.6)\nn.knob('lens10Col').setValue(2.79,0)\nn.knob('lens10Col').setValue(1.537,1)\nn.knob('lens10Col').setValue(-2.6,2)\nn.knob('lens10Blur').setValue(4.6)\nn.knob('lens10AxisPos').setValue(0.37)\nn.knob('lens10Polygon').setValue(0)\nn.knob('lens10Diaphragm').setValue(1)\nn.knob('lens10DiaphRot').setValue(0)\n\nn.knob('lens11Active').setValue(True)\nn.knob('lens11Size').setValue(83.5)\nn.knob('lens11Col').setValue(0,0)\nn.knob('lens11Col').setValue(4.86,1)\nn.knob('lens11Col').setValue(30,2)\nn.knob('lens11Blur').setValue(0)\nn.knob('lens11AxisPos').setValue(0.15)\nn.knob('lens11Polygon').setValue(0)\nn.knob('lens11Diaphragm').setValue(1)\nn.knob('lens11DiaphRot').setValue(0)\n\nn.knob('lens12Active').setValue(True)\nn.knob('lens12Size').setValue(40)\nn.knob('lens12Col').setValue(10,0)\nn.knob('lens12Col').setValue(3.9,1)\nn.knob('lens12Col').setValue(7.98,2)\nn.knob('lens12Blur').setValue(4.6)\nn.knob('lens12AxisPos').setValue(0.44)\nn.knob('lens12Polygon').setValue(0)\nn.knob('lens12Diaphragm').setValue(1)\nn.knob('lens12DiaphRot').setValue(0)\n\nn.knob('lens13Active').setValue(True)\nn.knob('lens13Size').setValue(1.4)\nn.knob('lens13Col').setValue(3.29,0)\nn.knob('lens13Col').setValue(1.28,1)\nn.knob('lens13Col').setValue(2.6,2)\nn.knob('lens13Blur').setValue(5.6)\nn.knob('lens13AxisPos').setValue(0.45)\nn.knob('lens13Polygon').setValue(0)\nn.knob('lens13Diaphragm').setValue(1)\nn.knob('lens13DiaphRot').setValue(0)\n\nn.knob('lens14Active').setValue(True)\nn.knob('lens14Size').setValue(1)\nn.knob('lens14Col').setValue(1.64,0)\nn.knob('lens14Col').setValue(0.74,1)\nn.knob('lens14Col').setValue(1.3,2)\nn.knob('lens14Blur').setValue(2)\nn.knob('lens14AxisPos').setValue(0.458)\nn.knob('lens14Polygon').setValue(0)\nn.knob('lens14Diaphragm').setValue(1)\nn.knob('lens14DiaphRot').setValue(0)\n\nn.knob('lens15Active').setValue(True)\nn.knob('lens15Size').setValue(1050)\nn.knob('lens15Col').setValue(80,0)\nn.knob('lens15Col').setValue(24,1)\nn.knob('lens15Col').setValue(49.19,2)\nn.knob('lens15Blur').setValue(0)\nn.knob('lens15AxisPos').setValue(0.8)\nn.knob('lens15Polygon').setValue(0)\nn.knob('lens15Diaphragm').setValue(1)\nn.knob('lens15DiaphRot').setValue(0)\n\nn.knob('lens16Active').setValue(True)\nn.knob('lens16Size').setValue(600)\nn.knob('lens16Col').setValue(30,0)\nn.knob('lens16Col').setValue(7.29,1)\nn.knob('lens16Col').setValue(12.7,2)\nn.knob('lens16Blur').setValue(0)\nn.knob('lens16AxisPos').setValue(-0.42)\nn.knob('lens16Polygon').setValue(0)\nn.knob('lens16Diaphragm').setValue(1)\nn.knob('lens16DiaphRot').setValue(0)\n\nn.knob('lens17Active').setValue(True)\nn.knob('lens17Size').setValue(600)\nn.knob('lens17Col').setValue(25,0)\nn.knob('lens17Col').setValue(7.5,1)\nn.knob('lens17Col').setValue(8.08,2)\nn.knob('lens17Blur').setValue(50)\nn.knob('lens17AxisPos').setValue(0.7)\nn.knob('lens17Polygon').setValue(0)\nn.knob('lens17Diaphragm').setValue(1)\nn.knob('lens17DiaphRot').setValue(0)\n\nn.knob('lens18Active').setValue(True)\nn.knob('lens18Size').setValue(270)\nn.knob('lens18Col').setValue(6.4,0)\nn.knob('lens18Col').setValue(3.69,1)\nn.knob('lens18Col').setValue(0.73,2)\nn.knob('lens18Blur').setValue(0)\nn.knob('lens18AxisPos').setValue(-0.36)\nn.knob('lens18Polygon').setValue(0)\nn.knob('lens18Diaphragm').setValue(1)\nn.knob('lens18DiaphRot').setValue(0)\n\nn.knob('lens19Active').setValue(True)\nn.knob('lens19Size').setValue(99)\nn.knob('lens19Col').setValue(5.249,0)\nn.knob('lens19Col').setValue(7.51,1)\nn.knob('lens19Col').setValue(40,2)\nn.knob('lens19Blur').setValue(20)\nn.knob('lens19AxisPos').setValue(-0.16)\nn.knob('lens19Polygon').setValue(0)\nn.knob('lens19Diaphragm').setValue(1)\nn.knob('lens19DiaphRot').setValue(0)\n\nn.knob('lens20Active').setValue(True)\nn.knob('lens20Size').setValue(9.4)\nn.knob('lens20Col').setValue(0.03,0)\nn.knob('lens20Col').setValue(0.006,1)\nn.knob('lens20Col').setValue(0.015,2)\nn.knob('lens20Blur').setValue(4)\nn.knob('lens20AxisPos').setValue(0.5)\nn.knob('lens20Polygon').setValue(0)\nn.knob('lens20Diaphragm').setValue(1)\nn.knob('lens20DiaphRot').setValue(0)\n\n\n" +STARTLINE}
addUserKnob {22 preset_06 l "Hexa Green Orange" T "n=nuke.toNode('_INPUT_CTRL')\n\nn.knob('lens1Active').setValue(True)\nn.knob('lens1Size').setValue(140)\nn.knob('lens1Col').setValue(0.918,0)\nn.knob('lens1Col').setValue(6.62,1)\nn.knob('lens1Col').setValue(7,2)\nn.knob('lens1Blur').setValue(12.9)\nn.knob('lens1AxisPos').setValue(-0.426)\nn.knob('lens1Polygon').setValue(0)\nn.knob('lens1Diaphragm').setValue(0.722)\nn.knob('lens1DiaphRot').setValue(26)\n\nn.knob('lens2Active').setValue(True)\nn.knob('lens2Size').setValue(140)\nn.knob('lens2Col').setValue(10.72,0)\nn.knob('lens2Col').setValue(13,1)\nn.knob('lens2Col').setValue(1.63,2)\nn.knob('lens2Blur').setValue(9.5)\nn.knob('lens2AxisPos').setValue(-0.358)\nn.knob('lens2Polygon').setValue(0)\nn.knob('lens2Diaphragm').setValue(0.656)\nn.knob('lens2DiaphRot').setValue(26)\n\nn.knob('lens3Active').setValue(True)\nn.knob('lens3Size').setValue(82)\nn.knob('lens3Col').setValue(3,0)\nn.knob('lens3Col').setValue(1.72,1)\nn.knob('lens3Col').setValue(0,2)\nn.knob('lens3Blur').setValue(5.4)\nn.knob('lens3AxisPos').setValue(-0.346)\nn.knob('lens3Polygon').setValue(0)\nn.knob('lens3Diaphragm').setValue(0.792)\nn.knob('lens3DiaphRot').setValue(26)\n\nn.knob('lens4Active').setValue(True)\nn.knob('lens4Size').setValue(230)\nn.knob('lens4Col').setValue(152,0)\nn.knob('lens4Col').setValue(41.01,1)\nn.knob('lens4Col').setValue(0,2)\nn.knob('lens4Blur').setValue(6.1)\nn.knob('lens4AxisPos').setValue(-0.634)\nn.knob('lens4Polygon').setValue(0)\nn.knob('lens4Diaphragm').setValue(0.566)\nn.knob('lens4DiaphRot').setValue(26)\n\nn.knob('lens5Active').setValue(True)\nn.knob('lens5Size').setValue(250)\nn.knob('lens5Col').setValue(23,0)\nn.knob('lens5Col').setValue(19,1)\nn.knob('lens5Col').setValue(0,2)\nn.knob('lens5Blur').setValue(60)\nn.knob('lens5AxisPos').setValue(-0.66)\nn.knob('lens5Polygon').setValue(0)\nn.knob('lens5Diaphragm').setValue(1)\nn.knob('lens5DiaphRot').setValue(26)\n\nn.knob('lens6Active').setValue(True)\nn.knob('lens6Size').setValue(520)\nn.knob('lens6Col').setValue(12,0)\nn.knob('lens6Col').setValue(-2.54,1)\nn.knob('lens6Col').setValue(-4.8,2)\nn.knob('lens6Blur').setValue(21)\nn.knob('lens6AxisPos').setValue(-1.06)\nn.knob('lens6Polygon').setValue(0)\nn.knob('lens6Diaphragm').setValue(0.446)\nn.knob('lens6DiaphRot').setValue(26)\n\nn.knob('lens7Active').setValue(True)\nn.knob('lens7Size').setValue(460)\nn.knob('lens7Col').setValue(2.46,0)\nn.knob('lens7Col').setValue(9,1)\nn.knob('lens7Col').setValue(0.9,2)\nn.knob('lens7Blur').setValue(50)\nn.knob('lens7AxisPos').setValue(-1.04)\nn.knob('lens7Polygon').setValue(0)\nn.knob('lens7Diaphragm').setValue(0.536)\nn.knob('lens7DiaphRot').setValue(26)\n\nn.knob('lens8Active').setValue(True)\nn.knob('lens8Size').setValue(110)\nn.knob('lens8Col').setValue(4,0)\nn.knob('lens8Col').setValue(2.44,1)\nn.knob('lens8Col').setValue(0,2)\nn.knob('lens8Blur').setValue(4.5)\nn.knob('lens8AxisPos').setValue(0.414)\nn.knob('lens8Polygon').setValue(0)\nn.knob('lens8Diaphragm').setValue(0.754)\nn.knob('lens8DiaphRot').setValue(26)\n\nn.knob('lens9Active').setValue(True)\nn.knob('lens9Size').setValue(50)\nn.knob('lens9Col').setValue(7,0)\nn.knob('lens9Col').setValue(4.89,1)\nn.knob('lens9Col').setValue(2.45,2)\nn.knob('lens9Blur').setValue(2.8)\nn.knob('lens9AxisPos').setValue(0.19)\nn.knob('lens9Polygon').setValue(0)\nn.knob('lens9Diaphragm').setValue(0.726)\nn.knob('lens9DiaphRot').setValue(26)\n\nn.knob('lens10Active').setValue(True)\nn.knob('lens10Size').setValue(40)\nn.knob('lens10Col').setValue(-0.32,0)\nn.knob('lens10Col').setValue(10,1)\nn.knob('lens10Col').setValue(-5,2)\nn.knob('lens10Blur').setValue(12.1)\nn.knob('lens10AxisPos').setValue(0.234)\nn.knob('lens10Polygon').setValue(0)\nn.knob('lens10Diaphragm').setValue(0.836)\nn.knob('lens10DiaphRot').setValue(26)\n\nn.knob('lens11Active').setValue(True)\nn.knob('lens11Size').setValue(57)\nn.knob('lens11Col').setValue(5.3,0)\nn.knob('lens11Col').setValue(10,1)\nn.knob('lens11Col').setValue(6.13,2)\nn.knob('lens11Blur').setValue(3)\nn.knob('lens11AxisPos').setValue(0.3)\nn.knob('lens11Polygon').setValue(0)\nn.knob('lens11Diaphragm').setValue(0.732)\nn.knob('lens11DiaphRot').setValue(26)\n\nn.knob('lens12Active').setValue(True)\nn.knob('lens12Size').setValue(70)\nn.knob('lens12Col').setValue(-9,0)\nn.knob('lens12Col').setValue(16,1)\nn.knob('lens12Col').setValue(20,2)\nn.knob('lens12Blur').setValue(4.6)\nn.knob('lens12AxisPos').setValue(0.216)\nn.knob('lens12Polygon').setValue(0)\nn.knob('lens12Diaphragm').setValue(1)\nn.knob('lens12DiaphRot').setValue(26)\n\nn.knob('lens13Active').setValue(True)\nn.knob('lens13Size').setValue(120)\nn.knob('lens13Col').setValue(10,0)\nn.knob('lens13Col').setValue(8.51,1)\nn.knob('lens13Col').setValue(1.19,2)\nn.knob('lens13Blur').setValue(5.6)\nn.knob('lens13AxisPos').setValue(0.242)\nn.knob('lens13Polygon').setValue(0)\nn.knob('lens13Diaphragm').setValue(0.363)\nn.knob('lens13DiaphRot').setValue(26)\n\nn.knob('lens14Active').setValue(True)\nn.knob('lens14Size').setValue(20)\nn.knob('lens14Col').setValue(5.5,0)\nn.knob('lens14Col').setValue(3.02,1)\nn.knob('lens14Col').setValue(0,2)\nn.knob('lens14Blur').setValue(1.7)\nn.knob('lens14AxisPos').setValue(0.18)\nn.knob('lens14Polygon').setValue(0)\nn.knob('lens14Diaphragm').setValue(0.532)\nn.knob('lens14DiaphRot').setValue(26)\n\nn.knob('lens15Active').setValue(True)\nn.knob('lens15Size').setValue(500)\nn.knob('lens15Col').setValue(50,0)\nn.knob('lens15Col').setValue(21.61,1)\nn.knob('lens15Col').setValue(-7.5,2)\nn.knob('lens15Blur').setValue(500)\nn.knob('lens15AxisPos').setValue(1.2)\nn.knob('lens15Polygon').setValue(0)\nn.knob('lens15Diaphragm').setValue(1)\nn.knob('lens15DiaphRot').setValue(0)\n\nn.knob('lens16Active').setValue(True)\nn.knob('lens16Size').setValue(30)\nn.knob('lens16Col').setValue(20,0)\nn.knob('lens16Col').setValue(16.7,1)\nn.knob('lens16Col').setValue(5,2)\nn.knob('lens16Blur').setValue(5)\nn.knob('lens16AxisPos').setValue(0.7)\nn.knob('lens16Polygon').setValue(0)\nn.knob('lens16Diaphragm').setValue(0.496)\nn.knob('lens16DiaphRot').setValue(26)\n\nn.knob('lens17Active').setValue(True)\nn.knob('lens17Size').setValue(10)\nn.knob('lens17Col').setValue(5,0)\nn.knob('lens17Col').setValue(2.31,1)\nn.knob('lens17Col').setValue(0.26,2)\nn.knob('lens17Blur').setValue(3.7)\nn.knob('lens17AxisPos').setValue(0.67)\nn.knob('lens17Polygon').setValue(0)\nn.knob('lens17Diaphragm').setValue(0.468)\nn.knob('lens17DiaphRot').setValue(26)\n\nn.knob('lens18Active').setValue(True)\nn.knob('lens18Size').setValue(200)\nn.knob('lens18Col').setValue(6.4,0)\nn.knob('lens18Col').setValue(0.86,1)\nn.knob('lens18Col').setValue(-0.64,2)\nn.knob('lens18Blur').setValue(70)\nn.knob('lens18AxisPos').setValue(0.75)\nn.knob('lens18Polygon').setValue(0)\nn.knob('lens18Diaphragm').setValue(0.624)\nn.knob('lens18DiaphRot').setValue(26)\n\nn.knob('lens19Active').setValue(True)\nn.knob('lens19Size').setValue(9)\nn.knob('lens19Col').setValue(0.3,0)\nn.knob('lens19Col').setValue(0.1,1)\nn.knob('lens19Col').setValue(0.284,2)\nn.knob('lens19Blur').setValue(9.4)\nn.knob('lens19AxisPos').setValue(0.64)\nn.knob('lens19Polygon').setValue(0)\nn.knob('lens19Diaphragm').setValue(1)\nn.knob('lens19DiaphRot').setValue(0)\n\nn.knob('lens20Active').setValue(True)\nn.knob('lens20Size').setValue(500)\nn.knob('lens20Col').setValue(500,0)\nn.knob('lens20Col').setValue(100,1)\nn.knob('lens20Col').setValue(250,2)\nn.knob('lens20Blur').setValue(100)\nn.knob('lens20AxisPos').setValue(-0.1)\nn.knob('lens20Polygon').setValue(0)\nn.knob('lens20Diaphragm').setValue(1)\nn.knob('lens20DiaphRot').setValue(26)\n\n\n" +STARTLINE}
addUserKnob {20 Lenses}
addUserKnob {6 showNumbers l "show numbers on lenses" +STARTLINE}
addUserKnob {26 ""}
addUserKnob {20 Lens1GRP l "lens 01" n 1}
Lens1GRP 0
addUserKnob {6 lens1Active l active +STARTLINE}
lens1Active true
addUserKnob {14 lens1Size l size R 0 100}
lens1Size 25.2
addUserKnob {18 lens1Col l color R 0 10}
lens1Col {0.97 2.927 18}
addUserKnob {6 lens1Col_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens1Col_panelDropped_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens1Col_panelDropped_1_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {7 lens1Blur l blur R 0 50}
addUserKnob {7 lens1AxisPos l "axis pos" R -3 3}
lens1AxisPos -0.11
addUserKnob {4 lens1Polygon l polygon M {Pentagon Hexagon Heptagon Octogon Nonagon Decagon Undecagon Dodecagon ""}}
addUserKnob {7 lens1Diaphragm l diaphragm}
lens1Diaphragm 0.8
addUserKnob {7 lens1DiaphRot l "diaph rotation" R -180 180}
addUserKnob {7 lens1grainOpacity l "grain opacity"}
lens1grainOpacity 1
addUserKnob {7 lens1grainSize l "grain size" R 0 1000}
lens1grainSize 100
addUserKnob {7 lens1grainGain l "grain gain" R 0 3}
lens1grainGain 1
addUserKnob {7 lens1reflectionOpacity l "refl opacity"}
lens1reflectionOpacity 1
addUserKnob {7 lens1reflectionRotation l "refl rotation" R 0 360}
addUserKnob {7 lens1reflWhitepoint l "refl whitepoint" R 0 2}
lens1reflWhitepoint 1
addUserKnob {18 lens1reflectionGamma l "refl gamma" R 0 5}
lens1reflectionGamma 1
addUserKnob {6 lens1reflectionGamma_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens1reflectionGamma_panelDropped_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens1reflectionGamma_panelDropped_1_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {7 lens1reflectionBlur l "refl blur" R 0 50}
addUserKnob {20 endGroup n -1}
addUserKnob {26 ""}
addUserKnob {20 lens2GRP l "lens 02" n 1}
lens2GRP 0
addUserKnob {6 lens2Active l active +STARTLINE}
lens2Active true
addUserKnob {14 lens2Size l size R 0 100}
lens2Size 4.8
addUserKnob {18 lens2Col l color R 0 10}
lens2Col {-2.3 6.32 15.39}
addUserKnob {6 lens2Col_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens2Col_panelDropped_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens2Col_panelDropped_1_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {7 lens2Blur l blur R 0 50}
addUserKnob {7 lens2AxisPos l "axis pos" R -3 3}
lens2AxisPos -0.082
addUserKnob {4 lens2Polygon l polygon M {Pentagon Hexagon Heptagon Octogon Nonagon Decagon Undecagon Dodecagon ""}}
addUserKnob {7 lens2Diaphragm l diaphragm}
lens2Diaphragm 1
addUserKnob {7 lens2DiaphRot l "diaph rotation" R -180 180}
addUserKnob {7 lens2grainOpacity l "grain opacity"}
lens2grainOpacity 1
addUserKnob {7 lens2grainSize l "grain size" R 0 1000}
lens2grainSize 100
addUserKnob {7 lens2grainGain l "grain gain" R 0 3}
lens2grainGain 1
addUserKnob {7 lens2reflectionOpacity l "refl opacity"}
lens2reflectionOpacity 1
addUserKnob {7 lens2reflectionRotation l "refl rotation" R 0 360}
addUserKnob {7 lens2reflWhitepoint l "refl whitepoint" R 0 2}
lens2reflWhitepoint 1
addUserKnob {18 lens2reflectionGamma l "refl gamma" R 0 5}
lens2reflectionGamma 1
addUserKnob {6 lens2reflectionGamma_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens2reflectionGamma_panelDropped_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens2reflectionGamma_panelDropped_1_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {7 lens2reflectionBlur l "refl blur" R 0 50}
addUserKnob {20 endGroup_1 l endGroup n -1}
addUserKnob {26 ""}
addUserKnob {20 lens3GRP l "lens 03" n 1}
lens3GRP 0
addUserKnob {6 lens3Active l active +STARTLINE}
lens3Active true
addUserKnob {14 lens3Size l size R 0 100}
lens3Size 13.5
addUserKnob {18 lens3Col l color R 0 10}
lens3Col {1.17 1.72 26}
addUserKnob {6 lens3Col_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens3Col_panelDropped_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens3Col_panelDropped_1_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {7 lens3Blur l blur R 0 50}
addUserKnob {7 lens3AxisPos l "axis pos" R -3 3}
lens3AxisPos -0.06
addUserKnob {4 lens3Polygon l polygon M {Pentagon Hexagon Heptagon Octogon Nonagon Decagon Undecagon Dodecagon ""}}
addUserKnob {7 lens3Diaphragm l diaphragm}
lens3Diaphragm 0.8
addUserKnob {7 lens3DiaphRot l "diaph rotation" R -180 180}
addUserKnob {7 lens3grainOpacity l "grain opacity"}
lens3grainOpacity 1
addUserKnob {7 lens3grainSize l "grain size" t "\t" R 0 1000}
lens3grainSize 100
addUserKnob {7 lens3grainGain l "grain gain" R 0 3}
lens3grainGain 1
addUserKnob {7 lens3reflectionOpacity l "refl opacity"}
lens3reflectionOpacity 1
addUserKnob {7 lens3reflectionRotation l "refl rotation" R 0 360}
addUserKnob {7 lens3reflWhitepoint l "refl whitepoint" R 0 2}
lens3reflWhitepoint 1
addUserKnob {18 lens3reflectionGamma l "refl gamma" R 0 5}
lens3reflectionGamma 1
addUserKnob {6 lens3reflectionGamma_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens3reflectionGamma_panelDropped_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens3reflectionGamma_panelDropped_1_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {7 lens3reflectionBlur l "refl blur" R 0 50}
addUserKnob {20 endGroup_2 l endGroup n -1}
addUserKnob {26 ""}
addUserKnob {20 lens4GRP l "lens 04" n 1}
lens4GRP 0
addUserKnob {6 lens4Active l active +STARTLINE}
lens4Active true
addUserKnob {14 lens4Size l size R 0 100}
lens4Size 2.05
addUserKnob {18 lens4Col l color R 0 10}
lens4Col {6.93 32 29.82}
addUserKnob {6 lens4Col_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens4Col_panelDropped_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens4Col_panelDropped_1_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {7 lens4Blur l blur R 0 50}
addUserKnob {7 lens4AxisPos l "axis pos" R -3 3}
lens4AxisPos 0.08
addUserKnob {4 lens4Polygon l polygon M {Pentagon Hexagon Heptagon Octogon Nonagon Decagon Undecagon Dodecagon ""}}
addUserKnob {7 lens4Diaphragm l diaphragm}
lens4Diaphragm 1
addUserKnob {7 lens4DiaphRot l "diaph rotation" R -180 180}
addUserKnob {7 lens4grainOpacity l "grain opacity"}
lens4grainOpacity 1
addUserKnob {7 lens4grainSize l "grain size" R 0 1000}
lens4grainSize 100
addUserKnob {7 lens4grainGain l "grain gain" R 0 3}
lens4grainGain 1
addUserKnob {7 lens4reflectionOpacity l "refl opacity"}
lens4reflectionOpacity 1
addUserKnob {7 lens4reflectionRotation l "refl rotation" R 0 360}
addUserKnob {7 lens4reflWhitepoint l "refl whitepoint" R 0 2}
lens4reflWhitepoint 1
addUserKnob {18 lens4reflectionGamma l "refl gamma" R 0 5}
lens4reflectionGamma 1
addUserKnob {6 lens4reflectionGamma_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens4reflectionGamma_panelDropped_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens4reflectionGamma_panelDropped_1_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {7 lens4reflectionBlur l "refl blur" R 0 50}
addUserKnob {20 endGroup_3 l endGroup n -1}
addUserKnob {26 ""}
addUserKnob {20 lens5GRP l "lens 05" n 1}
lens5GRP 0
addUserKnob {6 lens5Active l active +STARTLINE}
lens5Active true
addUserKnob {14 lens5Size l size R 0 100}
lens5Size 200
addUserKnob {18 lens5Col l color R 0 10}
lens5Col {1.09 1.14 8}
addUserKnob {6 lens5Col_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens5Col_panelDropped_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens5Col_panelDropped_1_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {7 lens5Blur l blur R 0 50}
addUserKnob {7 lens5AxisPos l "axis pos" R -3 3}
lens5AxisPos 0.27
addUserKnob {4 lens5Polygon l polygon M {Pentagon Hexagon Heptagon Octogon Nonagon Decagon Undecagon Dodecagon ""}}
addUserKnob {7 lens5Diaphragm l diaphragm}
lens5Diaphragm 1
addUserKnob {7 lens5DiaphRot l "diaph rotation" R -180 180}
addUserKnob {7 lens5grainOpacity l "grain opacity"}
lens5grainOpacity 1
addUserKnob {7 lens5grainSize l "grain size" R 0 1000}
lens5grainSize 100
addUserKnob {7 lens5grainGain l "grain gain" R 0 3}
lens5grainGain 1
addUserKnob {7 lens5reflectionOpacity l "refl opacity"}
lens5reflectionOpacity 1
addUserKnob {7 lens5reflectionRotation l "refl rotation" R 0 360}
addUserKnob {7 lens5reflWhitepoint l "refl whitepoint" R 0 2}
lens5reflWhitepoint 1
addUserKnob {18 lens5reflectionGamma l "refl gamma" R 0 5}
lens5reflectionGamma 1
addUserKnob {6 lens5reflectionGamma_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens5reflectionGamma_panelDropped_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens5reflectionGamma_panelDropped_1_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {7 lens5reflectionBlur l "refl blur" R 0 50}
addUserKnob {20 endGroup_4 l endGroup n -1}
addUserKnob {26 ""}
addUserKnob {20 lens6GRP l "lens 06" n 1}
lens6GRP 0
addUserKnob {6 lens6Active l active +STARTLINE}
lens6Active true
addUserKnob {14 lens6Size l size R 0 100}
lens6Size 1000
addUserKnob {18 lens6Col l color R 0 10}
lens6Col {50 6.38 0}
addUserKnob {6 lens6Col_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens6Col_panelDropped_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens6Col_panelDropped_1_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {7 lens6Blur l blur R 0 50}
addUserKnob {7 lens6AxisPos l "axis pos" R -3 3}
lens6AxisPos -1.08
addUserKnob {4 lens6Polygon l polygon M {Pentagon Hexagon Heptagon Octogon Nonagon Decagon Undecagon Dodecagon ""}}
addUserKnob {7 lens6Diaphragm l diaphragm}
lens6Diaphragm 1
addUserKnob {7 lens6DiaphRot l "diaph rotation" R -180 180}
addUserKnob {7 lens6grainOpacity l "grain opacity"}
lens6grainOpacity 1
addUserKnob {7 lens6grainSize l "grain size" R 0 1000}
lens6grainSize 100
addUserKnob {7 lens6grainGain l "grain gain" R 0 3}
lens6grainGain 1
addUserKnob {7 lens6reflectionOpacity l "refl opacity"}
lens6reflectionOpacity 1
addUserKnob {7 lens6reflectionRotation l "refl rotation" R 0 360}
addUserKnob {7 lens6reflWhitepoint l "refl whitepoint" R 0 2}
lens6reflWhitepoint 1
addUserKnob {18 lens6reflectionGamma l "refl gamma" R 0 5}
lens6reflectionGamma 1
addUserKnob {6 lens6reflectionGamma_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens6reflectionGamma_panelDropped_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens6reflectionGamma_panelDropped_1_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {7 lens6reflectionBlur l "refl blur" R 0 50}
addUserKnob {20 endGroup_5 l endGroup n -1}
addUserKnob {26 ""}
addUserKnob {20 lens7GRP l "lens 07" n 1}
lens7GRP 0
addUserKnob {6 lens7Active l active +STARTLINE}
lens7Active true
addUserKnob {14 lens7Size l size R 0 100}
lens7Size 460
addUserKnob {18 lens7Col l color R 0 10}
lens7Col {0 3.959999084 80}
addUserKnob {6 lens7Col_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens7Col_panelDropped_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens7Col_panelDropped_1_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {16 lens7Blur l blur}
addUserKnob {7 lens7AxisPos l "axis pos" R -3 3}
lens7AxisPos -0.88
addUserKnob {4 lens7Polygon l polygon M {Pentagon Hexagon Heptagon Octogon Nonagon Decagon Undecagon Dodecagon ""}}
addUserKnob {7 lens7Diaphragm l diaphragm}
lens7Diaphragm 1
addUserKnob {7 lens7DiaphRot l "diaph rotation" R -180 180}
addUserKnob {7 lens7grainOpacity l "grain opacity"}
lens7grainOpacity 1
addUserKnob {7 lens7grainSize l "grain size" R 0 1000}
lens7grainSize 100
addUserKnob {7 lens7grainGain l "grain gain" R 0 3}
lens7grainGain 1
addUserKnob {7 lens7reflectionOpacity l "refl opacity"}
lens7reflectionOpacity 1
addUserKnob {7 lens7reflectionRotation l "refl rotation" R 0 360}
addUserKnob {7 lens7reflWhitepoint l "refl whitepoint" R 0 2}
lens7reflWhitepoint 1
addUserKnob {18 lens7reflectionGamma l "refl gamma" R 0 5}
lens7reflectionGamma 1
addUserKnob {6 lens7reflectionGamma_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens7reflectionGamma_panelDropped_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens7reflectionGamma_panelDropped_1_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {7 lens7reflectionBlur l "refl blur" R 0 50}
addUserKnob {20 endGroup_6 l endGroup n -1}
addUserKnob {26 ""}
addUserKnob {20 lens8GRP l "lens 08" n 1}
lens8GRP 0
addUserKnob {6 lens8Active l active +STARTLINE}
lens8Active true
addUserKnob {14 lens8Size l size R 0 100}
lens8Size 450
addUserKnob {18 lens8Col l color R 0 10}
lens8Col {12 2.25 10.04}
addUserKnob {6 lens8Col_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens8Col_panelDropped_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens8Col_panelDropped_1_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {7 lens8Blur l blur R 0 10}
lens8Blur 9.9
addUserKnob {7 lens8AxisPos l "axis pos" R -3 3}
lens8AxisPos -0.69
addUserKnob {4 lens8Polygon l polygon M {Pentagon Hexagon Heptagon Octogon Nonagon Decagon Undecagon Dodecagon ""}}
addUserKnob {7 lens8Diaphragm l diaphragm}
lens8Diaphragm 1
addUserKnob {7 lens8DiaphRot l "diaph rotation" R -180 180}
addUserKnob {7 lens8grainOpacity l "grain opacity"}
lens8grainOpacity 1
addUserKnob {7 lens8grainSize l "grain size" R 0 1000}
lens8grainSize 100
addUserKnob {7 lens8grainGain l "grain gain" R 0 3}
lens8grainGain 1
addUserKnob {7 lens8reflectionOpacity l "refl opacity"}
lens8reflectionOpacity 1
addUserKnob {7 lens8reflectionRotation l "refl rotation" R 0 360}
addUserKnob {7 lens8reflWhitepoint l "refl whitepoint" R 0 2}
lens8reflWhitepoint 1
addUserKnob {18 lens8reflectionGamma l "refl gamma" R 0 5}
lens8reflectionGamma 1
addUserKnob {6 lens8reflectionGamma_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens8reflectionGamma_panelDropped_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens8reflectionGamma_panelDropped_1_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {7 lens8reflectionBlur l "refl blur" R 0 50}
addUserKnob {20 endGroup_7 l endGroup n -1}
addUserKnob {26 ""}
addUserKnob {20 lens9GRP l "lens 09" n 1}
lens9GRP 0
addUserKnob {6 lens9Active l active +STARTLINE}
lens9Active true
addUserKnob {14 lens9Size l size R 0 100}
lens9Size 50.4
addUserKnob {18 lens9Col l color R 0 10}
lens9Col {0.9 1.012 3}
addUserKnob {6 lens9Col_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens9Col_panelDropped_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens9Col_panelDropped_1_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {7 lens9Blur l blur R 0 50}
lens9Blur 2.8
addUserKnob {7 lens9AxisPos l "axis pos" R -3 3}
lens9AxisPos 0.34
addUserKnob {4 lens9Polygon l polygon M {Pentagon Hexagon Heptagon Octogon Nonagon Decagon Undecagon Dodecagon ""}}
addUserKnob {7 lens9Diaphragm l diaphragm}
lens9Diaphragm 1
addUserKnob {7 lens9DiaphRot l "diaph rotation" R -180 180}
addUserKnob {7 lens9grainOpacity l "grain opacity"}
lens9grainOpacity 1
addUserKnob {7 lens9grainSize l "grain size" R 0 1000}
lens9grainSize 100
addUserKnob {7 lens9grainGain l "grain gain" R 0 3}
lens9grainGain 1
addUserKnob {7 lens9reflectionOpacity l "refl opacity"}
lens9reflectionOpacity 1
addUserKnob {7 lens9reflectionRotation l "refl rotation" R 0 360}
addUserKnob {7 lens9reflWhitepoint l "refl whitepoint" R 0 2}
lens9reflWhitepoint 1
addUserKnob {18 lens9reflectionGamma l "refl gamma" R 0 5}
lens9reflectionGamma 1
addUserKnob {6 lens9reflectionGamma_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens9reflectionGamma_panelDropped_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens9reflectionGamma_panelDropped_1_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {7 lens9reflectionBlur l "refl blur" R 0 50}
addUserKnob {20 endGroup_8 l endGroup n -1}
addUserKnob {26 ""}
addUserKnob {20 lens10GRP l "lens 10" n 1}
lens10GRP 0
addUserKnob {6 lens10Active l active +STARTLINE}
lens10Active true
addUserKnob {14 lens10Size l size R 0 100}
lens10Size 85.6
addUserKnob {18 lens10Col l color R 0 10}
lens10Col {2.79 1.537 -2.6}
addUserKnob {6 lens10Col_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens10Col_panelDropped_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens10Col_panelDropped_1_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {7 lens10Blur l blur R 0 50}
lens10Blur 4.6
addUserKnob {7 lens10AxisPos l "axis pos" R -3 3}
lens10AxisPos 0.37
addUserKnob {4 lens10Polygon l polygon M {Pentagon Hexagon Heptagon Octogon Nonagon Decagon Undecagon Dodecagon ""}}
addUserKnob {7 lens10Diaphragm l diaphragm}
lens10Diaphragm 1
addUserKnob {7 lens10DiaphRot l "diaph rotation" R -180 180}
addUserKnob {7 lens10grainOpacity l "grain opacity"}
lens10grainOpacity 1
addUserKnob {7 lens10grainSize l "grain size" R 0 1000}
lens10grainSize 100
addUserKnob {7 lens10grainGain l "grain gain" R 0 3}
lens10grainGain 1
addUserKnob {7 lens10reflectionOpacity l "refl opacity"}
lens10reflectionOpacity 1
addUserKnob {7 lens10reflectionRotation l "refl rotation" R 0 360}
addUserKnob {7 lens10reflWhitepoint l "refl whitepoint" R 0 2}
lens10reflWhitepoint 1
addUserKnob {18 lens10reflectionGamma l "refl gamma" R 0 5}
lens10reflectionGamma 1
addUserKnob {6 lens10reflectionGamma_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens10reflectionGamma_panelDropped_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens10reflectionGamma_panelDropped_1_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {7 lens10reflectionBlur l "refl blur" R 0 50}
addUserKnob {20 endGroup_9 l endGroup n -1}
addUserKnob {26 ""}
addUserKnob {20 lens11GRP l "lens 11" n 1}
lens11GRP 0
addUserKnob {6 lens11Active l active +STARTLINE}
lens11Active true
addUserKnob {14 lens11Size l size R 0 100}
lens11Size 83.5
addUserKnob {18 lens11Col l color R 0 10}
lens11Col {0 4.86 30}
addUserKnob {6 lens11Col_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens11Col_panelDropped_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens11Col_panelDropped_1_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {7 lens11Blur l blur R 0 50}
addUserKnob {7 lens11AxisPos l "axis pos" R -3 3}
lens11AxisPos 0.15
addUserKnob {4 lens11Polygon l polygon M {Pentagon Hexagon Heptagon Octogon Nonagon Decagon Undecagon Dodecagon ""}}
addUserKnob {7 lens11Diaphragm l diaphragm}
lens11Diaphragm 1
addUserKnob {7 lens11DiaphRot l "diaph rotation" R -180 180}
addUserKnob {7 lens11grainOpacity l "grain opacity"}
lens11grainOpacity 1
addUserKnob {7 lens11grainSize l "grain size" R 0 1000}
lens11grainSize 100
addUserKnob {7 lens11grainGain l "grain gain" R 0 3}
lens11grainGain 1
addUserKnob {7 lens11reflectionOpacity l "refl opacity"}
lens11reflectionOpacity 1
addUserKnob {7 lens11reflectionRotation l "refl rotation" R 0 360}
addUserKnob {7 lens11reflWhitepoint l "refl whitepoint" R 0 2}
lens11reflWhitepoint 1
addUserKnob {18 lens11reflectionGamma l "refl gamma" R 0 5}
lens11reflectionGamma 1
addUserKnob {6 lens11reflectionGamma_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens11reflectionGamma_panelDropped_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens11reflectionGamma_panelDropped_1_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {7 lens11reflectionBlur l "refl blur" R 0 50}
addUserKnob {20 endGroup_10 l endGroup n -1}
addUserKnob {26 ""}
addUserKnob {20 lens12GRP l "lens 12" n 1}
lens12GRP 0
addUserKnob {6 lens12Active l active +STARTLINE}
lens12Active true
addUserKnob {14 lens12Size l size R 0 100}
lens12Size 40
addUserKnob {18 lens12Col l color R 0 10}
lens12Col {10 3.9 7.98}
addUserKnob {6 lens12Col_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens12Col_panelDropped_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens12Col_panelDropped_1_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {7 lens12Blur l blur R 0 10}
lens12Blur 4.6
addUserKnob {7 lens12AxisPos l "axis pos" R -3 3}
lens12AxisPos 0.44
addUserKnob {4 lens12Polygon l polygon M {Pentagon Hexagon Heptagon Octogon Nonagon Decagon Undecagon Dodecagon "" ""}}
addUserKnob {7 lens12Diaphragm l diaphragm}
lens12Diaphragm 1
addUserKnob {7 lens12DiaphRot l "diaph rotation" R -180 180}
addUserKnob {7 lens12grainOpacity l "grain opacity"}
lens12grainOpacity 1
addUserKnob {7 lens12grainSize l "grain size" R 0 1000}
lens12grainSize 100
addUserKnob {7 lens12grainGain l "grain gain" R 0 3}
lens12grainGain 1
addUserKnob {7 lens12reflectionOpacity l "refl opacity"}
lens12reflectionOpacity 1
addUserKnob {7 lens12reflectionRotation l "refl rotation" R 0 360}
addUserKnob {7 lens12reflWhitepoint l "refl whitepoint" R 0 2}
lens12reflWhitepoint 1
addUserKnob {18 lens12reflectionGamma l "refl gamma" R 0 5}
lens12reflectionGamma 1
addUserKnob {6 lens12reflectionGamma_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens12reflectionGamma_panelDropped_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens12reflectionGamma_panelDropped_1_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {7 lens12reflectionBlur l "refl blur" R 0 50}
addUserKnob {20 endGroup_11 l endGroup n -1}
addUserKnob {26 ""}
addUserKnob {20 len13GRP l "lens 13" n 1}
len13GRP 0
addUserKnob {6 lens13Active l active +STARTLINE}
lens13Active true
addUserKnob {14 lens13Size l size R 0 100}
lens13Size 1.4
addUserKnob {18 lens13Col l color R 0 10}
lens13Col {3.29 1.28 2.6}
addUserKnob {6 lens13Col_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens13Col_panelDropped_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens13Col_panelDropped_1_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {7 lens13Blur l blur R 0 50}
lens13Blur 5.6
addUserKnob {7 lens13AxisPos l "axis pos" R -3 3}
lens13AxisPos 0.45
addUserKnob {4 lens13Polygon l polygon M {Pentagon Hexagon Heptagon Octogon Nonagon Decagon Undecagon Dodecagon}}
addUserKnob {7 lens13Diaphragm l diaphragm}
lens13Diaphragm 1
addUserKnob {7 lens13DiaphRot l "diaph rotation" R -180 180}
addUserKnob {7 lens13grainOpacity l "grain opacity"}
lens13grainOpacity 1
addUserKnob {7 lens13grainSize l "grain size" R 0 1000}
lens13grainSize 100
addUserKnob {7 lens13grainGain l "grain gain" R 0 3}
lens13grainGain 1
addUserKnob {7 lens13reflectionOpacity l "refl opacity"}
lens13reflectionOpacity 1
addUserKnob {7 lens13reflectionRotation l "refl rotation" R 0 360}
addUserKnob {7 lens13reflWhitepoint l "refl whitepoint" R 0 2}
lens13reflWhitepoint 1
addUserKnob {18 lens13reflectionGamma l "refl gamma" R 0 5}
lens13reflectionGamma 1
addUserKnob {6 lens13reflectionGamma_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens13reflectionGamma_panelDropped_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens13reflectionGamma_panelDropped_1_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {7 lens13reflectionBlur l "refl blur" R 0 50}
addUserKnob {20 endGroup_12 l endGroup n -1}
addUserKnob {26 ""}
addUserKnob {20 lens14GRP l "lens 14" n 1}
lens14GRP 0
addUserKnob {6 lens14Active l active +STARTLINE}
lens14Active true
addUserKnob {14 lens14Size l size R 0 100}
lens14Size 1
addUserKnob {18 lens14Col l color R 0 10}
lens14Col {1.64 0.74 1.3}
addUserKnob {6 lens14Col_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens14Col_panelDropped_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens14Col_panelDropped_1_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {7 lens14Blur l blur R 0 50}
lens14Blur 2
addUserKnob {7 lens14AxisPos l "axis pos" R -3 3}
lens14AxisPos 0.458
addUserKnob {4 lens14Polygon l polygon M {Pentagon Hexagon Heptagon Octogon Nonagon Decagon Undecagon Dodecagon ""}}
addUserKnob {7 lens14Diaphragm l diaphragm}
lens14Diaphragm 1
addUserKnob {7 lens14DiaphRot l "diaph rotation" R -180 180}
addUserKnob {7 lens14grainOpacity l "grain opacity"}
lens14grainOpacity 1
addUserKnob {7 lens14grainSize l "grain size" R 0 1000}
lens14grainSize 100
addUserKnob {7 lens14grainGain l "grain gain" R 0 3}
lens14grainGain 1
addUserKnob {7 lens14reflectionOpacity l "refl opacity"}
lens14reflectionOpacity 1
addUserKnob {7 lens14reflectionRotation l "refl rotation" R 0 360}
addUserKnob {7 lens14reflWhitepoint l "refl whitepoint" R 0 2}
lens14reflWhitepoint 1
addUserKnob {18 lens14reflectionGamma l "refl gamma" R 0 5}
lens14reflectionGamma 1
addUserKnob {6 lens14reflectionGamma_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens14reflectionGamma_panelDropped_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens14reflectionGamma_panelDropped_1_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {7 lens14reflectionBlur l "refl blur" R 0 50}
addUserKnob {20 endGroup_13 l endGroup n -1}
addUserKnob {26 ""}
addUserKnob {20 lens15GRP l "lens 15" n 1}
lens15GRP 0
addUserKnob {6 lens15Active l active +STARTLINE}
lens15Active true
addUserKnob {14 lens15Size l size R 0 100}
lens15Size 1050
addUserKnob {18 lens15Col l color R 0 10}
lens15Col {80 24 49.19}
addUserKnob {6 lens15Col_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens15Col_panelDropped_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens15Col_panelDropped_1_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {7 lens15Blur l blur R 0 50}
addUserKnob {7 lens15AxisPos l "axis pos" R -3 3}
lens15AxisPos 0.8
addUserKnob {4 lens15Polygon l polygon M {Pentagon Hexagon Heptagon Octogon Nonagon Decagon Undecagon Dodecagon ""}}
addUserKnob {7 lens15Diaphragm l diaphragm}
lens15Diaphragm 1
addUserKnob {7 lens15DiaphRot l "diaph rotation" R -180 180}
addUserKnob {7 lens15grainOpacity l "grain opacity"}
lens15grainOpacity 1
addUserKnob {7 lens15grainSize l "grain size" R 0 1000}
lens15grainSize 100
addUserKnob {7 lens15grainGain l "grain gain" R 0 3}
lens15grainGain 1
addUserKnob {7 lens15reflectionOpacity l "refl opacity"}
lens15reflectionOpacity 1
addUserKnob {7 lens15reflectionRotation l "refl rotation" R 0 360}
addUserKnob {7 lens15reflWhitepoint l "refl whitepoint" R 0 2}
lens15reflWhitepoint 1
addUserKnob {18 lens15reflectionGamma l "refl gamma" R 0 5}
lens15reflectionGamma 1
addUserKnob {6 lens15reflectionGamma_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens15reflectionGamma_panelDropped_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens15reflectionGamma_panelDropped_1_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {7 lens15reflectionBlur l "refl blur" R 0 50}
addUserKnob {20 endGroup_14 l endGroup n -1}
addUserKnob {26 ""}
addUserKnob {20 lens16GRP l "lens 16" n 1}
lens16GRP 0
addUserKnob {6 lens16Active l active +STARTLINE}
lens16Active true
addUserKnob {14 lens16Size l size R 0 100}
lens16Size 600
addUserKnob {18 lens16Col l color R 0 10}
lens16Col {30 7.29 12.7}
addUserKnob {6 lens16Col_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens16Col_panelDropped_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens16Col_panelDropped_1_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {7 lens16Blur l blur R 0 50}
addUserKnob {7 lens16AxisPos l "axis pos" R -3 3}
lens16AxisPos -0.42
addUserKnob {4 lens16Polygon l polygon M {Pentagon Hexagon Heptagon Octogon Nonagon Decagon Undecagon Dodecagon ""}}
addUserKnob {7 lens16Diaphragm l diaphragm}
lens16Diaphragm 1
addUserKnob {7 lens16DiaphRot l "diaph rotation" R -180 180}
addUserKnob {7 lens16grainOpacity l "grain opacity"}
lens16grainOpacity 1
addUserKnob {7 lens16grainSize l "grain size" R 0 1000}
lens16grainSize 100
addUserKnob {7 lens16grainGain l "grain gain" R 0 3}
lens16grainGain 1
addUserKnob {7 lens16reflectionOpacity l "refl opacity"}
lens16reflectionOpacity 1
addUserKnob {7 lens16reflectionRotation l "refl rotation" R 0 360}
addUserKnob {7 lens16reflWhitepoint l "refl whitepoint" R 0 2}
lens16reflWhitepoint 1
addUserKnob {18 lens16reflectionGamma l "refl gamma" R 0 5}
lens16reflectionGamma 1
addUserKnob {6 lens16reflectionGamma_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens16reflectionGamma_panelDropped_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens16reflectionGamma_panelDropped_1_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {7 lens16reflectionBlur l "refl blur" R 0 50}
addUserKnob {20 endGroup_15 l endGroup n -1}
addUserKnob {26 ""}
addUserKnob {20 lens17GRP l "lens 17" n 1}
lens17GRP 0
addUserKnob {6 lens17Active l active +STARTLINE}
lens17Active true
addUserKnob {14 lens17Size l size R 0 100}
lens17Size 600
addUserKnob {18 lens17Col l color R 0 10}
lens17Col {25 7.5 8.08}
addUserKnob {6 lens17Col_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens17Col_panelDropped_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens17Col_panelDropped_1_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {7 lens17Blur l blur R 0 50}
lens17Blur 50
addUserKnob {7 lens17AxisPos l "axis pos" R -3 3}
lens17AxisPos 0.7
addUserKnob {4 lens17Polygon l polygon M {Pentagon Hexagon Heptagon Octogon Nonagon Decagon Undecagon Dodecagon ""}}
addUserKnob {7 lens17Diaphragm l diaphragm}
lens17Diaphragm 1
addUserKnob {7 lens17DiaphRot l "diaph rotation" R -180 180}
addUserKnob {7 lens17grainOpacity l "grain opacity"}
lens17grainOpacity 1
addUserKnob {7 lens17grainSize l "grain size" R 0 1000}
lens17grainSize 100
addUserKnob {7 lens17grainGain l "grain gain" R 0 3}
lens17grainGain 1
addUserKnob {7 lens17reflectionOpacity l "refl opacity"}
lens17reflectionOpacity 1
addUserKnob {7 lens17reflectionRotation l "refl rotation" R 0 360}
addUserKnob {7 lens17reflWhitepoint l "refl whitepoint" R 0 2}
lens17reflWhitepoint 1
addUserKnob {18 lens17reflectionGamma l "refl gamma" R 0 5}
lens17reflectionGamma 1
addUserKnob {6 lens17reflectionGamma_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens17reflectionGamma_panelDropped_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens17reflectionGamma_panelDropped_1_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {7 lens17reflectionBlur l "refl blur" R 0 50}
addUserKnob {20 endGroup_16 l endGroup n -1}
addUserKnob {26 ""}
addUserKnob {20 lens18GRP l "lens 18" n 1}
lens18GRP 0
addUserKnob {6 lens18Active l active +STARTLINE}
lens18Active true
addUserKnob {14 lens18Size l size R 0 100}
lens18Size 270
addUserKnob {18 lens18Col l color R 0 10}
lens18Col {6.4 3.69 0.73}
addUserKnob {6 lens18Col_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens18Col_panelDropped_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens18Col_panelDropped_1_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {7 lens18Blur l blur R 0 50}
addUserKnob {7 lens18AxisPos l "axis pos" R -3 3}
lens18AxisPos -0.36
addUserKnob {4 lens18Polygon l polygon M {Pentagon Hexagon Heptagon Octogon Nonagon Decagon Undecagon Dodecagon ""}}
addUserKnob {7 lens18Diaphragm l diaphragm}
lens18Diaphragm 1
addUserKnob {7 lens18DiaphRot l "diaph rotation" R -180 180}
addUserKnob {7 lens18grainOpacity l "grain opacity"}
lens18grainOpacity 1
addUserKnob {7 lens18grainSize l "grain size" R 0 1000}
lens18grainSize 100
addUserKnob {7 lens18grainGain l "grain gain" R 0 3}
lens18grainGain 1
addUserKnob {7 lens18reflectionOpacity l "refl opacity"}
lens18reflectionOpacity 1
addUserKnob {7 lens18reflectionRotation l "refl rotation" R 0 360}
addUserKnob {7 lens18reflWhitepoint l "refl whitepoint" R 0 2}
lens18reflWhitepoint 1
addUserKnob {18 lens18reflectionGamma l "refl gamma" R 0 5}
lens18reflectionGamma 1
addUserKnob {6 lens18reflectionGamma_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens18reflectionGamma_panelDropped_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens18reflectionGamma_panelDropped_1_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {7 lens18reflectionBlur l "refl blur" R 0 50}
addUserKnob {20 endGroup_17 l endGroup n -1}
addUserKnob {26 ""}
addUserKnob {20 lens19GRP l "lens 19" n 1}
lens19GRP 0
addUserKnob {6 lens19Active l active +STARTLINE}
lens19Active true
addUserKnob {14 lens19Size l size R 0 100}
lens19Size 99
addUserKnob {18 lens19Col l color R 0 10}
lens19Col {5.249 7.51 40}
addUserKnob {6 lens19Col_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens19Col_panelDropped_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens19Col_panelDropped_1_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {7 lens19Blur l blur R 0 50}
lens19Blur 20
addUserKnob {7 lens19AxisPos l "axis pos" R -3 3}
lens19AxisPos -0.16
addUserKnob {4 lens19Polygon l polygon M {Pentagon Hexagon Heptagon Octogon Nonagon Decagon Undecagon Dodecagon ""}}
addUserKnob {7 lens19Diaphragm l diaphragm}
lens19Diaphragm 1
addUserKnob {7 lens19DiaphRot l "diaph rotation" R -180 180}
addUserKnob {7 lens19grainOpacity l "grain opacity"}
lens19grainOpacity 1
addUserKnob {7 lens19grainSize l "grain size" R 0 1000}
lens19grainSize 100
addUserKnob {7 lens19grainGain l "grain gain" R 0 3}
lens19grainGain 1
addUserKnob {7 lens19reflectionOpacity l "refl opacity"}
lens19reflectionOpacity 1
addUserKnob {7 lens19reflectionRotation l "refl rotation" R 0 360}
addUserKnob {7 lens19reflWhitepoint l "refl whitepoint" R 0 2}
lens19reflWhitepoint 1
addUserKnob {18 lens19reflectionGamma l "refl gamma" R 0 5}
lens19reflectionGamma 1
addUserKnob {6 lens19reflectionGamma_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens19reflectionGamma_panelDropped_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens19reflectionGamma_panelDropped_1_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {7 lens19reflectionBlur l "refl blur" R 0 50}
addUserKnob {20 endGroup_18 l endGroup n -1}
addUserKnob {26 ""}
addUserKnob {20 lens20GRP l "lens 20" n 1}
lens20GRP 0
addUserKnob {6 lens20Active l active +STARTLINE}
lens20Active true
addUserKnob {14 lens20Size l size R 0 100}
lens20Size 9.4
addUserKnob {18 lens20Col l color R 0 10}
lens20Col {0.03 0.006 0.015}
addUserKnob {6 lens20Col_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens20Col_panelDropped_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens20Col_panelDropped_1_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {7 lens20Blur l blur R 0 50}
lens20Blur 4
addUserKnob {7 lens20AxisPos l "axis pos" R -3 3}
lens20AxisPos 0.5
addUserKnob {4 lens20Polygon l polygon M {Pentagon Hexagon Heptagon Octogon Nonagon Decagon Undecagon Dodecagon ""}}
addUserKnob {7 lens20Diaphragm l diaphragm}
lens20Diaphragm 1
addUserKnob {7 lens20DiaphRot l "diaph rotation" R -180 180}
addUserKnob {7 lens20grainOpacity l "grain opacity"}
lens20grainOpacity 1
addUserKnob {7 lens20grainSize l "grain size" R 0 1000}
lens20grainSize 100
addUserKnob {7 lens20grainGain l "grain gain" R 0 3}
lens20grainGain 1
addUserKnob {7 lens20reflectionOpacity l "refl opacity"}
lens20reflectionOpacity 1
addUserKnob {7 lens20reflectionRotation l "refl rotation" R 0 360}
addUserKnob {7 lens20reflWhitepoint l "refl whitepoint" R 0 2}
lens20reflWhitepoint 1
addUserKnob {18 lens20reflectionGamma l "refl gamma" R 0 5}
lens20reflectionGamma 1
addUserKnob {6 lens20reflectionGamma_panelDropped l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens20reflectionGamma_panelDropped_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {6 lens20reflectionGamma_panelDropped_1_1 l "panel dropped state" -STARTLINE +HIDDEN}
addUserKnob {7 lens20reflectionBlur l "refl blur" R 0 50}
addUserKnob {20 endGroup_19 l endGroup n -1}
}
set N49978760 [stack 0]
Dot {
name Dot21
xpos 274
ypos 566
}
SphericalTransform {
fix true
name _SphericalTransformLensALL
xpos 240
ypos 960
}
Reformat {
format "256 256 0 0 256 256 1 square_256"
resize distort
name _ReformatReflectionLensALL
xpos 240
ypos 1002
}
Shuffle {
alpha white
name _ShuffleCleanALensALL
xpos 240
ypos 1044
}
Dot {
name Dot26
xpos 274
ypos 1128
}
set N474c77c0 [stack 0]
Dot {
name Dot22
xpos 274
ypos 1560
}
set N3f716ff0 [stack 0]
Dot {
name Dot23
xpos 274
ypos 1992
}
set N4a48a940 [stack 0]
Dot {
name Dot24
xpos 274
ypos 2428
}
set N47423090 [stack 0]
Dot {
name Dot27
xpos 274
ypos 2889
}
set N3f719100 [stack 0]
Dot {
name Dot28
xpos 274
ypos 3335
}
set N4a6543b0 [stack 0]
Dot {
name Dot30
xpos 274
ypos 3791
}
set N4a469eb0 [stack 0]
Dot {
name Dot31
xpos 274
ypos 4338
}
set N676f4660 [stack 0]
Dot {
name Dot32
xpos 274
ypos 4811
}
set N4a6df9c0 [stack 0]
Dot {
name Dot33
xpos 274
ypos 5253
}
set N4a6925e0 [stack 0]
Dot {
name Dot29
xpos 274
ypos 5734
}
set N6662b930 [stack 0]
Dot {
name Dot34
xpos 274
ypos 6211
}
set N67043a20 [stack 0]
Dot {
name Dot35
xpos 274
ypos 6685
}
set N6d8e0a10 [stack 0]
Dot {
name Dot36
xpos 274
ypos 7163
}
set N4a2dc600 [stack 0]
Dot {
name Dot37
xpos 274
ypos 7632
}
set N474278a0 [stack 0]
Dot {
name Dot38
xpos 274
ypos 8100
}
set N4a542850 [stack 0]
Dot {
name Dot39
xpos 273
ypos 8578
}
set N4a541e20 [stack 0]
Dot {
name Dot40
xpos 273
ypos 9052
}
set N4a58cd50 [stack 0]
Dot {
name Dot41
xpos 273
ypos 9548
}
set N66a55920 [stack 0]
Dot {
name Dot25
xpos 273
ypos 10031
}
Grade {
whitepoint {{_INPUT_CTRL.lens1reflWhitepoint*_INPUT_CTRL.reflectionsWhitepointMult i}}
gamma {{_INPUT_CTRL.lens1reflectionGamma*_INPUT_CTRL.reflectionsGammaMult i}}
name _GradeReflectionLens20
xpos 402
ypos 10026
}
Transform {
rotate {{_INPUT_CTRL.reflectionsRotOffset+_INPUT_CTRL.lens1reflectionRotation i}}
center {128 128}
name _TransformReflectionLens20
xpos 402
ypos 10054
}
Blur {
size {{_INPUT_CTRL.lens1reflectionBlur+_INPUT_CTRL.reflectionsBlurAdd}}
name _BlurReflectionLens20
xpos 402
ypos 10082
}
Read {
inputs 0
file_type png
file <<<replace>>>/images/dodecagon.png
format "512 512 0 0 512 512 1 square_512"
origset true
name Read19
xpos 1735
ypos 632
}
Shuffle {
green red
blue red
alpha red
name Shuffle1
note_font_color 0xffffffff
xpos 1735
ypos 712
}
set N4a2244b0 [stack 0]
Read {
inputs 0
file_type png
file <<<replace>>>/images/undecagon.png
format "512 512 0 0 512 512 1 square_512"
origset true
name Read26
xpos 1649
ypos 632
}
Shuffle {
green red
blue red
alpha red
name Shuffle2
note_font_color 0xffffffff
xpos 1649
ypos 712
}
set N4a638510 [stack 0]
Read {
inputs 0
file_type png
file <<<replace>>>/images/decagon.png
format "512 512 0 0 512 512 1 square_512"
origset true
name Read3
xpos 1562
ypos 633
}
Shuffle {
green red
blue red
alpha red
name Shuffle3
note_font_color 0xffffffff
xpos 1562
ypos 713
}
set N6703bbe0 [stack 0]
Read {
inputs 0
file_type png
file <<<replace>>>/images/nonagon.png
format "512 512 0 0 512 512 1 square_512"
origset true
name Read22
xpos 1475
ypos 632
}
Shuffle {
green red
blue red
alpha red
name Shuffle4
note_font_color 0xffffffff
xpos 1475
ypos 712
}
set N4993c8b0 [stack 0]
Read {
inputs 0
file_type png
file <<<replace>>>/images/octogon.png
format "512 512 0 0 512 512 1 square_512"
origset true
name Read23
xpos 1388
ypos 632
}
Shuffle {
green red
blue red
alpha red
name Shuffle5
note_font_color 0xffffffff
xpos 1388
ypos 712
}
set N4a1d10d0 [stack 0]
Read {
inputs 0
file_type png
file <<<replace>>>/images/heptagon.png
format "512 512 0 0 512 512 1 square_512"
origset true
name Read20
xpos 1301
ypos 632
}
Shuffle {
green red
blue red
alpha red
name Shuffle8
note_font_color 0xffffffff
xpos 1301
ypos 712
}
set N4a055400 [stack 0]
Read {
inputs 0
file_type png
file <<<replace>>>/images/hexagon.png
format "512 512 0 0 512 512 1 square_512"
origset true
name Read21
xpos 1214
ypos 633
}
Shuffle {
green red
blue red
alpha red
name Shuffle6
note_font_color 0xffffffff
xpos 1214
ypos 713
}
set N4a07d0f0 [stack 0]
Read {
inputs 0
file_type png
file <<<replace>>>/images/pentagon.png
format "512 512 0 0 512 512 1 square_512"
origset true
name Read24
xpos 1128
ypos 633
}
Shuffle {
green red
blue red
alpha red
name Shuffle7
note_font_color 0xffffffff
xpos 1128
ypos 713
}
set N49b24150 [stack 0]
Switch {
inputs 8
which {{_INPUT_CTRL.lens20Polygon i}}
name _switchPolygon20
xpos 684
ypos 9983
}
Transform {
translate {-128 -128}
rotate {{_INPUT_CTRL.lens20DiaphRot i}}
scale {{_INPUT_CTRL.lens20Diaphragm*0.65 i}}
center {256 256}
name _transformPolygon20
xpos 684
ypos 10012
}
Noise {
opacity {{_INPUT_CTRL.lens7grainOpacity*_INPUT_CTRL.overallGrainOpacity}}
maskChannelInput rgba.red
size {{_INPUT_CTRL.lens1grainSize*_INPUT_CTRL.overallGrainSizeMult}}
octaves 4
lacunarity 5
gain {{_INPUT_CTRL.lens1grainGain*_INPUT_CTRL.overallGrainGainMult}}
gamma 1
center {640 360}
name _NoiseLens20
xpos 684
ypos 10040
}
Merge2 {
inputs 2
output rgb
maskChannelInput rgba.red
mix {{_INPUT_CTRL.lens1reflectionOpacity*_INPUT_CTRL.reflectionsOpacity}}
name _MergeReflectionLens20
xpos 684
ypos 10082
}
Read {
inputs 0
file_type png
file <<<replace>>>/images/twoCircle2.png
format "256 256 0 0 256 256 1 square_256"
origset true
name Read12
xpos 893
ypos 3398
}
set N49bb6c00 [stack 0]
Dot {
name Dot8
xpos 927
ypos 6783
}
set N49b4e340 [stack 0]
Dot {
name Dot13
xpos 927
ypos 8198
}
set N477b0ad0 [stack 0]
Dot {
name Dot16
xpos 927
ypos 10129
}
Merge2 {
inputs 2
operation multiply
name _multPolygon20
xpos 684
ypos 10124
}
Reformat {
format "256 256 0 0 256 256 1 square_256"
name _reformatPolyMask20
xpos 684
ypos 10153
}
Bezier {
replace true
points {{
{87.8 180.4}
{107.6 179.9}
{108.6 87.6}
{87.4 86.8}
{87.4 155.4}
{73.1 143.4}
{60.9 158.9}
}}
shape {}
center {128 128}
color 10
name _number30
xpos 574
ypos 10160
disable {{1-_INPUT_CTRL.showNumbers i}}
}
Bezier {
points {{
{123 89.3}
{123 102.5}
{161.3 104 7.1 0.64 14.9}
{169.1 124.7}
{127.3 123.1 15.2 2.59 16.7}
{114.3 159.5 19.5 1.33 18.5}
{170.4 176.6 19.5 -0.72 18.8}
{183.7 141.3}
{169.5 138}
{157 167.5 16.1 2.79 15.4}
{127.3 155.2 3.5 4.4 9.3}
{135.5 135.8 11.8 5.78 11}
{183.7 141.3}
{172.6 95.5 17.6 4.01 19.1}
}}
shape {}
center {128 128}
color 10
name _number31
xpos 574
ypos 10189
disable {{1-_INPUT_CTRL.showNumbers i}}
}
Reformat {
type scale
scale {{(_INPUT_CTRL.lens20Size.w*_INPUT_CTRL.quality*_INPUT_CTRL.overallLensScale/223)+0.01 i} {(_INPUT_CTRL.lens20Size.h*_INPUT_CTRL.quality*_INPUT_CTRL.overallLensScale/223)+0.01 i}}
name _bokehSize20
xpos 574
ypos 10218
}
push $N49978760
Dot {
name Dot1
xpos 72
ypos 528
}
Multiply {
value 0
name _mkBlack
xpos 38
ypos 701
}
set N49dbb260 [stack 0]
Dot {
name Dot12
xpos -149
ypos 713
}
set N49b99050 [stack 0]
Dot {
name Dot11
xpos -259
ypos 713
}
Add {
value 1
name _mkWhite
xpos -293
ypos 772
}
Clamp {
name _vignetteClamp
xpos -293
ypos 815
}
Crop {
box {{_INPUT_CTRL.width-((_INPUT_CTRL.width/2)+((_INPUT_CTRL.vignetteScale/2+0.5))*(_INPUT_CTRL.width/2)) i} {_INPUT_CTRL.height-((_INPUT_CTRL.width/2)+((_INPUT_CTRL.vignetteScale/2+0.5))*(_INPUT_CTRL.width/2)-(_INPUT_CTRL.width-_INPUT_CTRL.height)) i} {(_INPUT_CTRL.width/2)+((_INPUT_CTRL.vignetteScale/2+0.5))*(_INPUT_CTRL.width/2) i} {(_INPUT_CTRL.width/2)+((_INPUT_CTRL.vignetteScale/2+0.5))*(_INPUT_CTRL.width/2)-(_INPUT_CTRL.width-_INPUT_CTRL.height) i}}
name _cropVignette
xpos -293
ypos 858
}
push $N49b99050
Add {
value {{1-_INPUT_CTRL.vignetteDarkness i}}
name _vignetteDarkness
xpos -183
ypos 772
}
Merge2 {
inputs 2
name _compVignette
xpos -183
ypos 858
}
Blur {
size {{_cropVignette.box.x*0.8 i}}
name Blur2
xpos -183
ypos 887
}
push $N49978760
Clamp {
name _clampCol
xpos 310
ypos 516
}
Saturation {
saturation {{_INPUT_CTRL.sourceSat i}}
name _sourceSaturation
xpos 310
ypos 617
}
push $N49978760
Expression {
temp_name0 X
temp_expr0 (_INPUT_CTRL.brightspot/pow((_INPUT_CTRL.brightspot-_INPUT_CTRL.threshold),_INPUT_CTRL.gamma))*pow(((0.2126*r+0.7152*g+0.0722*b)-_INPUT_CTRL.threshold),(_INPUT_CTRL.gamma+0.000000001))
expr0 X
expr1 X
expr2 X
expr3 X
name _curvOp
xpos 153
ypos 610
}
Clamp {
minimum_enable false
maximum {{_INPUT_CTRL.brightspot i}}
MinClampTo_enable true
MaxClampTo {{_INPUT_CTRL.brightspot i}}
MaxClampTo_enable true
name _resultClamp
xpos 153
ypos 639
disable {{1-(_INPUT_CTRL.clampBright) i}}
}
Merge2 {
inputs 2
operation multiply
mix {{_INPUT_CTRL.sourceCol i}}
name _multCol
xpos 310
ypos 646
}
NoOp {
name _GAMMA_RESULT
xpos 310
ypos 674
}
set N499e6c00 [stack 0]
Merge2 {
inputs 2
operation multiply
name _multVignette
xpos 310
ypos 894
disable {{1-_INPUT_CTRL.vignetteActive i}}
}
set N67220f40 [stack 0]
NoOp {
name _inputToBokeh20
xpos 473
ypos 10218
}
Transform {
scale {{_INPUT_CTRL.lens20AxisPos*_INPUT_CTRL.overallLensDistance i}}
center {{_INPUT_CTRL.width/2 i} {_INPUT_CTRL.height/2 i}}
name _symSource20
xpos 473
ypos 10247
}
Convolve {
inputs 2
channels rgb
name _convolveLens20
xpos 574
ypos 10247
}
Multiply {
value {{_INPUT_CTRL.lens20Col.r i} {_INPUT_CTRL.lens20Col.g i} {_INPUT_CTRL.lens20Col.b i} 0}
name _colorLens20
xpos 574
ypos 10276
}
Blur {
size {{_INPUT_CTRL.lens20Blur*(1-_INPUT_CTRL.showNumbers) i}}
name _blurLens20
xpos 574
ypos 10319
}
push $N66a55920
Grade {
whitepoint {{_INPUT_CTRL.lens1reflWhitepoint*_INPUT_CTRL.reflectionsWhitepointMult i}}
gamma {{_INPUT_CTRL.lens1reflectionGamma*_INPUT_CTRL.reflectionsGammaMult i}}
name _GradeReflectionLens19
xpos 401
ypos 9543
}
Transform {
rotate {{_INPUT_CTRL.reflectionsRotOffset+_INPUT_CTRL.lens1reflectionRotation i}}
center {128 128}
name _TransformReflectionLens19
xpos 401
ypos 9571
}
Blur {
size {{_INPUT_CTRL.lens1reflectionBlur+_INPUT_CTRL.reflectionsBlurAdd}}
name _BlurReflectionLens19
xpos 401
ypos 9599
}
push $N4a2244b0
push $N4a638510
push $N6703bbe0
push $N4993c8b0
push $N4a1d10d0
push $N4a055400
push $N4a07d0f0
push $N49b24150
Switch {
inputs 8
which {{_INPUT_CTRL.lens19Polygon i}}
name _switchPolygon19
xpos 683
ypos 9500
}
Transform {
translate {-128 -128}
rotate {{_INPUT_CTRL.lens19DiaphRot i}}
scale {{_INPUT_CTRL.lens19Diaphragm*0.65 i}}
center {256 256}
name _transformPolygon19
xpos 683
ypos 9529
}
Noise {
opacity {{_INPUT_CTRL.lens7grainOpacity*_INPUT_CTRL.overallGrainOpacity}}
maskChannelInput rgba.red
size {{_INPUT_CTRL.lens1grainSize*_INPUT_CTRL.overallGrainSizeMult}}
octaves 4
lacunarity 5
gain {{_INPUT_CTRL.lens1grainGain*_INPUT_CTRL.overallGrainGainMult}}
gamma 1
center {640 360}
name _NoiseLens19
xpos 683
ypos 9557
}
Merge2 {
inputs 2
output rgb
maskChannelInput rgba.red
mix {{_INPUT_CTRL.lens1reflectionOpacity*_INPUT_CTRL.reflectionsOpacity}}
name _MergeReflectionLens19
xpos 683
ypos 9599
}
Read {
inputs 0
file_type png
file <<<replace>>>/images/circleNoise1.png
format "256 256 0 0 256 256 1 square_256"
origset true
name Read7
xpos 1110
ypos 2055
}
set N4996bc50 [stack 0]
Dot {
name Dot5
xpos 1144
ypos 5351
}
set N4995abf0 [stack 0]
Dot {
name Dot15
xpos 1143
ypos 9646
}
Merge2 {
inputs 2
operation multiply
name _multPolygon19
xpos 683
ypos 9641
}
Reformat {
format "256 256 0 0 256 256 1 square_256"
name _reformatPolyMask19
xpos 683
ypos 9670
}
Bezier {
replace true
points {{
{87.8 180.4}
{107.6 179.9}
{108.6 87.6}
{87.4 86.8}
{87.4 155.4}
{73.1 143.4}
{60.9 158.9}
}}
shape {}
center {128 128}
color 10
name _number28
xpos 573
ypos 9677
disable {{1-_INPUT_CTRL.showNumbers i}}
}
Bezier {
points {{
{123 89.3}
{123 102.5}
{161.3 104 7.1 0.64 14.9}
{169.1 124.7}
{127.3 123.1 15.2 2.59 16.7}
{114.3 159.5 19.5 1.33 18.5}
{170.4 176.6 19.5 -0.72 18.8}
{183.7 141.3}
{169.5 138}
{157 167.5 16.1 2.79 15.4}
{127.3 155.2 3.5 4.4 9.3}
{135.5 135.8 11.8 5.78 11}
{183.7 141.3}
{172.6 95.5 17.6 4.01 19.1}
}}
shape {}
center {128 128}
color 10
name _number29
xpos 573
ypos 9706
disable {{1-_INPUT_CTRL.showNumbers i}}
}
Reformat {
type scale
scale {{(_INPUT_CTRL.lens19Size.w*_INPUT_CTRL.quality*_INPUT_CTRL.overallLensScale/223)+0.01 i} {(_INPUT_CTRL.lens19Size.h*_INPUT_CTRL.quality*_INPUT_CTRL.overallLensScale/223)+0.01 i}}
name _bokehSize19
xpos 573
ypos 9735
}
push $N67220f40
NoOp {
name _inputToBokeh19
xpos 472
ypos 9735
}
Transform {
scale {{_INPUT_CTRL.lens19AxisPos*_INPUT_CTRL.overallLensDistance i}}
center {{_INPUT_CTRL.width/2 i} {_INPUT_CTRL.height/2 i}}
name _symSource19
xpos 472
ypos 9764
}
Convolve {
inputs 2
channels rgb
name _convolveLens19
xpos 573
ypos 9764
}
Multiply {
value {{_INPUT_CTRL.lens19Col.r i} {_INPUT_CTRL.lens19Col.g i} {_INPUT_CTRL.lens19Col.b i} 0}
name _colorLens19
xpos 573
ypos 9793
}
Blur {
size {{_INPUT_CTRL.lens19Blur*(1-_INPUT_CTRL.showNumbers) i}}
name _blurLens19
xpos 573
ypos 9836
}
push $N4a58cd50
Grade {
whitepoint {{_INPUT_CTRL.lens1reflWhitepoint*_INPUT_CTRL.reflectionsWhitepointMult i}}
gamma {{_INPUT_CTRL.lens1reflectionGamma*_INPUT_CTRL.reflectionsGammaMult i}}
name _GradeReflectionLens18
xpos 401
ypos 9047
}
Transform {
rotate {{_INPUT_CTRL.reflectionsRotOffset+_INPUT_CTRL.lens1reflectionRotation i}}
center {128 128}
name _TransformReflectionLens18
xpos 401
ypos 9075
}
Blur {
size {{_INPUT_CTRL.lens1reflectionBlur+_INPUT_CTRL.reflectionsBlurAdd}}
name _BlurReflectionLens18
xpos 401
ypos 9103
}
push $N4a2244b0
push $N4a638510
push $N6703bbe0
push $N4993c8b0
push $N4a1d10d0
push $N4a055400
push $N4a07d0f0
push $N49b24150
Switch {
inputs 8
which {{_INPUT_CTRL.lens18Polygon i}}
name _switchPolygon18
xpos 683
ypos 9004
}
Transform {
translate {-128 -128}
rotate {{_INPUT_CTRL.lens18DiaphRot i}}
scale {{_INPUT_CTRL.lens18Diaphragm*0.65 i}}
center {256 256}
name _transformPolygon18
xpos 683
ypos 9033
}
Noise {
opacity {{_INPUT_CTRL.lens7grainOpacity*_INPUT_CTRL.overallGrainOpacity}}
maskChannelInput rgba.red
size {{_INPUT_CTRL.lens1grainSize*_INPUT_CTRL.overallGrainSizeMult}}
octaves 4
lacunarity 5
gain {{_INPUT_CTRL.lens1grainGain*_INPUT_CTRL.overallGrainGainMult}}
gamma 1
center {640 360}
name _NoiseLens18
xpos 683
ypos 9061
}
Merge2 {
inputs 2
output rgb
maskChannelInput rgba.red
mix {{_INPUT_CTRL.lens1reflectionOpacity*_INPUT_CTRL.reflectionsOpacity}}
name _MergeReflectionLens18
xpos 683
ypos 9103
}
Read {
inputs 0
file_type png
file <<<replace>>>/images/circleHard1.png
format "256 256 0 0 256 256 1 square_256"
origset true
name Read14
xpos 817
ypos 3854
}
set N4a1f2640 [stack 0]
Dot {
name Dot9
xpos 851
ypos 7261
}
set N67230a50 [stack 0]
Dot {
name Dot10
xpos 851
ypos 7730
}
set N4a1df840 [stack 0]
Dot {
name Dot2
xpos 850
ypos 9150
}
Merge2 {
inputs 2
operation multiply
name _multPolygon18
xpos 683
ypos 9145
}
Reformat {
format "256 256 0 0 256 256 1 square_256"
name _reformatPolyMask18
xpos 683
ypos 9174
}
Bezier {
replace true
points {{
{87.8 180.4}
{107.6 179.9}
{108.6 87.6}
{87.4 86.8}
{87.4 155.4}
{73.1 143.4}
{60.9 158.9}
}}
shape {}
center {128 128}
color 10
name _number26
xpos 573
ypos 9181
disable {{1-_INPUT_CTRL.showNumbers i}}
}
Bezier {
points {{
{159.8 178.7 1.4 -1.72 4.3 1.7 0 0 0 0 0 1.7}
{159.4 167.3 4.7 -3.07 2.5 1.44 0 0 0 0 0 1.44}
{144.1 152.3 8.9 -1.57 13.4}
{157.2 136 6.1 0.68 2.9 -1.3 0 0 0 0 0 -1.3}
{173.6 153.5 11.3 -4.79 14}
{159.6 167.
gitextract_r8btb1q3/ ├── .gitattributes ├── .gitignore ├── CHANGELOG.md ├── DEVELOPMENT.md ├── LICENSE ├── NukeSurvivalToolkit/ │ ├── gizmos/ │ │ ├── NST_AdditiveKeyerPro.gizmo │ │ ├── NST_AnimationCurve.gizmo │ │ ├── NST_AntiAliasingFilter.gizmo │ │ ├── NST_AutoCropTool.gizmo │ │ ├── NST_AutoFlare2.gizmo │ │ ├── NST_BBoxToFormat.gizmo │ │ ├── NST_BeautifulSkin.gizmo │ │ ├── NST_BiasedSaturation.gizmo │ │ ├── NST_BinaryAlpha.gizmo │ │ ├── NST_BlacksExpon.gizmo │ │ ├── NST_BlacksMatch.gizmo │ │ ├── NST_BokehBuilder.gizmo │ │ ├── NST_C44Kernel.gizmo │ │ ├── NST_CProject.gizmo │ │ ├── NST_CProject2.gizmo │ │ ├── NST_CameraNormals.gizmo │ │ ├── NST_CardToTrack.gizmo │ │ ├── NST_CardToTrack2.gizmo │ │ ├── NST_CatsEyeDefocus.gizmo │ │ ├── NST_CellNoise.gizmo │ │ ├── NST_ChannelCombiner.gizmo │ │ ├── NST_ChannelControl.gizmo │ │ ├── NST_ChannelCreator.gizmo │ │ ├── NST_ChromaSmear.gizmo │ │ ├── NST_Chromatik.gizmo │ │ ├── NST_ColorCopy.gizmo │ │ ├── NST_ColorSampler.gizmo │ │ ├── NST_ColorSmear.gizmo │ │ ├── NST_ConstantPro.gizmo │ │ ├── NST_ContactSheetAuto.gizmo │ │ ├── NST_Contrast.gizmo │ │ ├── NST_ConvertPNZ.gizmo │ │ ├── NST_ConvolutionMatrix.gizmo │ │ ├── NST_CornerPin2D_Matrix.gizmo │ │ ├── NST_CrossProductVector2.gizmo │ │ ├── NST_CrossProductVector3.gizmo │ │ ├── NST_DVPColorCorrect.gizmo │ │ ├── NST_DVPToImage.gizmo │ │ ├── NST_DVP_Shader.gizmo │ │ ├── NST_DVP_ToonShader.gizmo │ │ ├── NST_DVPattern.gizmo │ │ ├── NST_DVPfresnel.gizmo │ │ ├── NST_DVPmatte.gizmo │ │ ├── NST_DVPortal.gizmo │ │ ├── NST_DVPrelight.gizmo │ │ ├── NST_DVPrelightPT.gizmo │ │ ├── NST_DVProjection.gizmo │ │ ├── NST_DVPscene.gizmo │ │ ├── NST_DVPsetLight.gizmo │ │ ├── NST_DasGrain.gizmo │ │ ├── NST_Deep2VP.gizmo │ │ ├── NST_Deep2VPosition.gizmo │ │ ├── NST_DeepBoolean.gizmo │ │ ├── NST_DeepCopyBBox.gizmo │ │ ├── NST_DeepCropSoft.gizmo │ │ ├── NST_DeepFromDepth.gizmo │ │ ├── NST_DeepFromPosition.gizmo │ │ ├── NST_DeepHoldoutSmoother.gizmo │ │ ├── NST_DeepKeyMix.gizmo │ │ ├── NST_DeepMerge_Advanced.gizmo │ │ ├── NST_DeepRecolorMatte.gizmo │ │ ├── NST_DeepSampleCount.gizmo │ │ ├── NST_DeepSer.gizmo │ │ ├── NST_DeflickerVelocity.gizmo │ │ ├── NST_DefocusSwirlyBokeh.gizmo │ │ ├── NST_DespillToColor.gizmo │ │ ├── NST_Diffusion.gizmo │ │ ├── NST_DirectionalBlur.gizmo │ │ ├── NST_Distance3D.gizmo │ │ ├── NST_DistanceBetween_CS.gizmo │ │ ├── NST_DotProductVector2.gizmo │ │ ├── NST_DotProductVector3.gizmo │ │ ├── NST_DummyCam.gizmo │ │ ├── NST_Edge.gizmo │ │ ├── NST_EdgeDetectAlias.gizmo │ │ ├── NST_EdgeDetectPRO.gizmo │ │ ├── NST_EdgeFromAlpha.gizmo │ │ ├── NST_Edge_Expand.gizmo │ │ ├── NST_Edge_RimLight.gizmo │ │ ├── NST_Emission.gizmo │ │ ├── NST_EnvReflect_BB.gizmo │ │ ├── NST_ErodeSmooth.gizmo │ │ ├── NST_Erode_Fine.gizmo │ │ ├── NST_ExponBlurSimple.gizmo │ │ ├── NST_ExponGlow.gizmo │ │ ├── NST_F_P_Project.gizmo │ │ ├── NST_F_P_Ramp.gizmo │ │ ├── NST_FastComplexityDistort.gizmo │ │ ├── NST_FillSampler.gizmo │ │ ├── NST_FlareSuperStar.gizmo │ │ ├── NST_FractalBlur.gizmo │ │ ├── NST_FrameFiller.gizmo │ │ ├── NST_FrameHoldSpecial.gizmo │ │ ├── NST_FrameMedian.gizmo │ │ ├── NST_GUI_Switch.gizmo │ │ ├── NST_GammaPlus.gizmo │ │ ├── NST_GenerateMatrix4.gizmo │ │ ├── NST_GenerateSTMap.gizmo │ │ ├── NST_GeoToPoints.gizmo │ │ ├── NST_Glass.gizmo │ │ ├── NST_Glow_Exponential.gizmo │ │ ├── NST_GlueP.gizmo │ │ ├── NST_GodRaysProjector.gizmo │ │ ├── NST_GradMagic.gizmo │ │ ├── NST_GradeLayerPass.gizmo │ │ ├── NST_Grain_Advanced.gizmo │ │ ├── NST_GuidedBlur.gizmo │ │ ├── NST_HSL_Tool.gizmo │ │ ├── NST_Halation.gizmo │ │ ├── NST_HeatWave.gizmo │ │ ├── NST_HexColor.gizmo │ │ ├── NST_HighPass.gizmo │ │ ├── NST_HighlightSuppress.gizmo │ │ ├── NST_ID_Extractor.gizmo │ │ ├── NST_IIDistort.gizmo │ │ ├── NST_ITransformU.gizmo │ │ ├── NST_ImagePlane3D.gizmo │ │ ├── NST_InjectMatteChannel.gizmo │ │ ├── NST_InverseMatrix33.gizmo │ │ ├── NST_InverseMatrix44.gizmo │ │ ├── NST_InvertAxis.gizmo │ │ ├── NST_InvertMatrix4.gizmo │ │ ├── NST_KeyChew.gizmo │ │ ├── NST_KeymixBBox.gizmo │ │ ├── NST_KillOutline.gizmo │ │ ├── NST_LabelFromRead.gizmo │ │ ├── NST_LensEngine.gizmo │ │ ├── NST_LightSwitch.gizmo │ │ ├── NST_LightWrapPro.gizmo │ │ ├── NST_Lightning3D.gizmo │ │ ├── NST_LineTool.gizmo │ │ ├── NST_Looper.gizmo │ │ ├── NST_LumaGrain.gizmo │ │ ├── NST_LumaKeyer.gizmo │ │ ├── NST_LumaToVector3.gizmo │ │ ├── NST_MECfiller.gizmo │ │ ├── NST_MagnitudeVector2.gizmo │ │ ├── NST_MagnitudeVector3.gizmo │ │ ├── NST_Matrix4x4Math.gizmo │ │ ├── NST_Matrix4x4_Inverse.gizmo │ │ ├── NST_MergeAll.gizmo │ │ ├── NST_MergeAtmos.gizmo │ │ ├── NST_MergeBlend.gizmo │ │ ├── NST_MirrorBorder.gizmo │ │ ├── NST_MirrorDimension.gizmo │ │ ├── NST_MonochromePlus.gizmo │ │ ├── NST_MorphDissolve.gizmo │ │ ├── NST_MotionBlurPaint.gizmo │ │ ├── NST_MultiplyVector3Matrix3.gizmo │ │ ├── NST_NAN_INF_Killer.gizmo │ │ ├── NST_N_Reflection.gizmo │ │ ├── NST_Noise3DTexture.gizmo │ │ ├── NST_Noise3D_spin.gizmo │ │ ├── NST_NoiseAdvanced.gizmo │ │ ├── NST_NormalizeVector2.gizmo │ │ ├── NST_NormalizeVector3.gizmo │ │ ├── NST_NormalsRotate.gizmo │ │ ├── NST_NukeZ.gizmo │ │ ├── NST_P2N.gizmo │ │ ├── NST_P2Z.gizmo │ │ ├── NST_P_Noise_Advanced.gizmo │ │ ├── NST_ParticleKiller.gizmo │ │ ├── NST_ParticleLights.gizmo │ │ ├── NST_PerspectiveGuide.gizmo │ │ ├── NST_PlanarProjection.gizmo │ │ ├── NST_PlotScanline.gizmo │ │ ├── NST_PointCloudKeyer.gizmo │ │ ├── NST_PosMatte_MJ.gizmo │ │ ├── NST_PosPattern_MJ.gizmo │ │ ├── NST_PosProjection_MJ.gizmo │ │ ├── NST_ProductMatrix4.gizmo │ │ ├── NST_Pyclopedia.gizmo │ │ ├── NST_Python_and_TCL.gizmo │ │ ├── NST_RP_Reformat.gizmo │ │ ├── NST_RadialAdvanced.gizmo │ │ ├── NST_RadialDilate.gizmo │ │ ├── NST_RainMaker.gizmo │ │ ├── NST_Randomizer.gizmo │ │ ├── NST_RankFilter.gizmo │ │ ├── NST_RayDeepAO.gizmo │ │ ├── NST_ReProject_3D.gizmo │ │ ├── NST_Reconcile3DFast.gizmo │ │ ├── NST_Relight_Simple.gizmo │ │ ├── NST_Relight_bb.gizmo │ │ ├── NST_Rings_of_Power.gizmo │ │ ├── NST_RotateMatrix4.gizmo │ │ ├── NST_RotateVector2.gizmo │ │ ├── NST_RotateVector3.gizmo │ │ ├── NST_RotoCentroid.gizmo │ │ ├── NST_RotoPaintTransform.gizmo │ │ ├── NST_RotoQC.gizmo │ │ ├── NST_SSMesh.gizmo │ │ ├── NST_STMapToVector2.gizmo │ │ ├── NST_STmapInverse.gizmo │ │ ├── NST_ScaleMatrix4.gizmo │ │ ├── NST_SceneDepthCalculator.gizmo │ │ ├── NST_ShadowMult.gizmo │ │ ├── NST_SimpleSSS.gizmo │ │ ├── NST_SkyMatte.gizmo │ │ ├── NST_SliceTool.gizmo │ │ ├── NST_Sparky.gizmo │ │ ├── NST_Spill_Correct.gizmo │ │ ├── NST_SpotFlare.gizmo │ │ ├── NST_SpotLight.gizmo │ │ ├── NST_Suppress_RGBCMY.gizmo │ │ ├── NST_Symmetry.gizmo │ │ ├── NST_TProject.gizmo │ │ ├── NST_TProject2.gizmo │ │ ├── NST_TimeMachine.gizmo │ │ ├── NST_TransformCutOut.gizmo │ │ ├── NST_TransformMatrix.gizmo │ │ ├── NST_TransformMatrix4.gizmo │ │ ├── NST_TransformMix.gizmo │ │ ├── NST_TransformVector2.gizmo │ │ ├── NST_TransformVector3.gizmo │ │ ├── NST_TranslateMatrix4.gizmo │ │ ├── NST_TransposeMatrix4.gizmo │ │ ├── NST_UVEditor.gizmo │ │ ├── NST_UV_Map.gizmo │ │ ├── NST_UV_Mapper.gizmo │ │ ├── NST_Unify3DCoordinate.gizmo │ │ ├── NST_Vector2ToSTMap.gizmo │ │ ├── NST_Vector3ToMatrix4.gizmo │ │ ├── NST_VectorExtendEdge.gizmo │ │ ├── NST_VectorTracker.gizmo │ │ ├── NST_Vectors_Direction.gizmo │ │ ├── NST_Vectors_to_Degrees.gizmo │ │ ├── NST_VoronoiGradient.gizmo │ │ ├── NST_WaterLens.gizmo │ │ ├── NST_WaveletBlur.gizmo │ │ ├── NST_WhiteBalance.gizmo │ │ ├── NST_WhiteSoftClip.gizmo │ │ ├── NST_X_Aton_Volumetrics.gizmo │ │ ├── NST_X_Denoise.gizmo │ │ ├── NST_X_Distort.gizmo │ │ ├── NST_X_Sharpen.gizmo │ │ ├── NST_X_Soften.gizmo │ │ ├── NST_X_Tesla.gizmo │ │ ├── NST_Z2N.gizmo │ │ ├── NST_Z2P.gizmo │ │ ├── NST_ZeroAxis.gizmo │ │ ├── NST_aPCard.gizmo │ │ ├── NST_aPMatte_v2.gizmo │ │ ├── NST_aeRefracTHOR.gizmo │ │ ├── NST_aeRelight2D.gizmo │ │ ├── NST_aeShadows.gizmo │ │ ├── NST_apChroma.gizmo │ │ ├── NST_apChromaBlurNew.gizmo │ │ ├── NST_apChromaMergeNew.gizmo │ │ ├── NST_apChromaPremult.gizmo │ │ ├── NST_apChromaTransformNew.gizmo │ │ ├── NST_apChromaUnpremult.gizmo │ │ ├── NST_apDespill.gizmo │ │ ├── NST_apDirLight.gizmo │ │ ├── NST_apEdgeCrush.gizmo │ │ ├── NST_apEdgePush.gizmo │ │ ├── NST_apFresnel.gizmo │ │ ├── NST_apLoop.gizmo │ │ ├── NST_apViewerBlocker.gizmo │ │ ├── NST_apVignette.gizmo │ │ ├── NST_apeGlow.gizmo │ │ ├── NST_apeScreenClean.gizmo │ │ ├── NST_apeScreenGrow.gizmo │ │ ├── NST_bm_CameraShake.gizmo │ │ ├── NST_bm_CurveRemapper.gizmo │ │ ├── NST_bm_MatteCheck.gizmo │ │ ├── NST_bm_NoiseGen.gizmo │ │ ├── NST_bm_OpticalGlow.gizmo │ │ ├── NST_bm_OpticalLightwrap.gizmo │ │ ├── NST_deHaze.gizmo │ │ ├── NST_fxT_ChromaticAberration.gizmo │ │ ├── NST_h_gradienteditor.gizmo │ │ ├── NST_h_silk.gizmo │ │ ├── NST_h_stickit.gizmo │ │ ├── NST_iBlurU.gizmo │ │ ├── NST_iConvolve.gizmo │ │ ├── NST_iErode.gizmo │ │ ├── NST_iMorph.gizmo │ │ ├── NST_iMorph_v2.gizmo │ │ ├── NST_iTransform_ae.gizmo │ │ ├── NST_mScatterGeo.gizmo │ │ ├── NST_origami.gizmo │ │ ├── NST_renameChannels.gizmo │ │ ├── NST_streamCart.gizmo │ │ ├── NST_vector3DMathExpression.gizmo │ │ ├── NST_viewer_render.gizmo │ │ ├── NST_waterSchmutz.gizmo │ │ ├── NST_waveCustom.gizmo │ │ ├── NST_waveGrade.gizmo │ │ ├── NST_waveMaker.gizmo │ │ ├── NST_waveMerge.gizmo │ │ └── NST_waveRetime.gizmo │ ├── init.py │ ├── menu.py │ ├── nk_files/ │ │ ├── C4x4.nk │ │ ├── GradientCorner.nk │ │ ├── IBKGizmo_Expression.nk │ │ ├── Lines_Horizontal.nk │ │ ├── Lines_Horizontal_Animated.nk │ │ ├── Lines_Vertical.nk │ │ ├── Lines_Vertical_Animated.nk │ │ ├── NST_AdvancedKeyingTemplate.nk │ │ ├── NST_AdvancedKeyingTemplate_Stamps.nk │ │ ├── NST_LightSwitchPuppet.nk │ │ ├── NST_Noise4D.nk │ │ ├── NST_ParticleLights_ExampleScript.nk │ │ ├── NST_SSMesh_demo.nk │ │ ├── NST_STMap_Keying_Setup.nk │ │ ├── NST_SparkyExampleScene.nk │ │ ├── NST_UVEditor_demo_clean.nk │ │ ├── NST_WaterLens_sampleScript.nk │ │ ├── NST_X_Aton_Examples.nk │ │ ├── Noise.nk │ │ ├── Random_colors.nk │ │ ├── Random_every_frame.nk │ │ ├── Random_every_pixel.nk │ │ ├── STMap_invert.nk │ │ ├── Trunc.nk │ │ ├── UV_to_Vector.nk │ │ ├── Vector_to_UV.nk │ │ ├── abs.nk │ │ ├── alpha_binary.nk │ │ ├── alpha_comparison.nk │ │ ├── alpha_exists.nk │ │ ├── alpha_sum.nk │ │ ├── bricks.nk │ │ ├── check_nan_inf.nk │ │ ├── check_negative.nk │ │ ├── circles.nk │ │ ├── circles_user.nk │ │ ├── coordinates.nk │ │ ├── create_inf.nk │ │ ├── create_nan.nk │ │ ├── deepThickness.nk │ │ ├── deepToDepth.nk │ │ ├── depth_normalize.nk │ │ ├── despill_blue.nk │ │ ├── despill_blue_list.nk │ │ ├── despill_green.nk │ │ ├── despill_green_list.nk │ │ ├── differenceKey.nk │ │ ├── fBm.nk │ │ ├── gradient_horizontal.nk │ │ ├── gradient_horizontal_invert.nk │ │ ├── gradient_vertical.nk │ │ ├── gradient_vertical_invert.nk │ │ ├── keying.nk │ │ ├── kill_inf.nk │ │ ├── kill_nan.nk │ │ ├── normalPass_relight.nk │ │ ├── points.nk │ │ ├── points_advanced.nk │ │ ├── radial.nk │ │ ├── radial_gradient.nk │ │ ├── radial_rays.nk │ │ ├── transform.nk │ │ ├── transform_advanced.nk │ │ ├── turbulence.nk │ │ └── twist.nk │ └── python/ │ ├── ColorGradientUi.py │ ├── GradientPresets.cfg │ ├── NST_ID_Extractor.py │ ├── NST_VectorTracker.py │ ├── NST_cardToTrack.py │ ├── NST_cardToTrack_v9.py │ ├── NST_helper.py │ └── NST_stickit.py └── README.md
SYMBOL INDEX (133 symbols across 8 files)
FILE: NukeSurvivalToolkit/menu.py
function nk_path (line 38) | def nk_path(filename, prefix=False):
function icon_path (line 43) | def icon_path(filename):
FILE: NukeSurvivalToolkit/python/ColorGradientUi.py
function saveTemplate (line 29) | def saveTemplate(_curves):
function setColorCurve (line 52) | def setColorCurve(node, colorlist, parent, _object):
function LoadCurveDataX (line 97) | def LoadCurveDataX(_curves):
class SectionPanel (line 140) | class SectionPanel(nukescripts.PythonPanel):
method __init__ (line 141) | def __init__(self):
class ColorValue (line 149) | class ColorValue:
method __init__ (line 150) | def __init__(self):
class GradientWidget (line 157) | class GradientWidget(QWidget):
method __init__ (line 158) | def __init__(self, parent=None, mainDiameter=138, outerRingWidth=10,my...
method initCurve (line 171) | def initCurve(self,fromNode=True,_data=""): #This function is used wh...
method sliderUpdate (line 187) | def sliderUpdate(self,_color):
method _update (line 194) | def _update(self):
method paintEvent (line 198) | def paintEvent(self, evt):
method setSelection (line 205) | def setSelection(self,_item):
method testPointsSetup (line 212) | def testPointsSetup(self): #DEPRICATED!!
method getColorAtOffset (line 219) | def getColorAtOffset(self,posx):
method drawRectangles (line 253) | def drawRectangles(self, painter):
method getNearestHandle (line 280) | def getNearestHandle(self,posx,posy,dc=False):
method mousePressEvent (line 325) | def mousePressEvent(self, evt):
method mouseReleaseEvent (line 334) | def mouseReleaseEvent(self,evt):
method mouseDoubleClickEvent (line 341) | def mouseDoubleClickEvent(self, evt):
method mouseMoveEvent (line 348) | def mouseMoveEvent(self, evt):
method colorNodeUpdate (line 361) | def colorNodeUpdate(self):
class GradientLabel (line 370) | class GradientLabel(QLabel):
method __init__ (line 372) | def __init__(self, _gradient="",name=""):
method mouseReleaseEvent (line 380) | def mouseReleaseEvent(self, ev):
method ExtractColorData (line 383) | def ExtractColorData(self):
method paintEvent (line 391) | def paintEvent(self, evt):
method drawRectangles (line 398) | def drawRectangles(self, painter):
class MyToolButton (line 412) | class MyToolButton(QToolButton):
method __init__ (line 413) | def __init__(self, *args):
method eventFilter (line 416) | def eventFilter(self, menu, event):
class Example (line 424) | class Example(QWidget):
method __init__ (line 425) | def __init__(self, parent=None,myNode="none"):
method gradientClicked (line 483) | def gradientClicked(self, values):
method addPreset (line 486) | def addPreset(self):
method removePreset (line 490) | def removePreset(self, section, preset_name):
method UpdatePresetList (line 503) | def UpdatePresetList(self):
method updateSlider (line 544) | def updateSlider(self,_color):
method sliderUpdate (line 549) | def sliderUpdate(self):
method updateValue (line 552) | def updateValue(self):
method UpdateStylesheet (line 555) | def UpdateStylesheet(self):
class ColorWheelKnob_GRADIENT (line 608) | class ColorWheelKnob_GRADIENT:
method __init__ (line 609) | def __init__( self ):
method makeUI (line 613) | def makeUI( self ):
FILE: NukeSurvivalToolkit/python/NST_ID_Extractor.py
function set (line 4) | def set():
function extractRed (line 30) | def extractRed():
function extractGreen (line 78) | def extractGreen():
function extractBlue (line 126) | def extractBlue():
function extractAll (line 174) | def extractAll():
function reset (line 207) | def reset():
FILE: NukeSurvivalToolkit/python/NST_VectorTracker.py
function allScriptNodes (line 9) | def allScriptNodes():
function J_VTT_Track (line 26) | def J_VTT_Track(first, last, pb = True):
function J_VTT_AddTracker (line 137) | def J_VTT_AddTracker():
function J_VTT_Export (line 172) | def J_VTT_Export():
FILE: NukeSurvivalToolkit/python/NST_cardToTrack.py
function setRefFrame (line 3) | def setRefFrame():
function stabilize (line 45) | def stabilize():
function consolidateAnimatedNodeTransforms (line 64) | def consolidateAnimatedNodeTransforms():
function happy (line 117) | def happy():
function go (line 129) | def go():
function objectOnly (line 674) | def objectOnly():
FILE: NukeSurvivalToolkit/python/NST_cardToTrack_v9.py
function _undo_disable (line 26) | def _undo_disable():
function _undo_enable (line 30) | def _undo_enable():
function set_anim_curve_from_data (line 38) | def set_anim_curve_from_data(knob, data_list_per_channel):
function kill_animation (line 72) | def kill_animation(knobs):
function offset_nodes (line 84) | def offset_nodes(x,y):
function check_first_last_frame (line 97) | def check_first_last_frame(C2Tgroup):
function check_curve (line 122) | def check_curve(knob,first,last,ref):
function fix_curves (line 139) | def fix_curves(one,first,last,ref):
function delete_tab (line 193) | def delete_tab():
function set_ref_frame (line 219) | def set_ref_frame():
function stabilize (line 269) | def stabilize():
function happy (line 292) | def happy():
function show_grid_axis (line 321) | def show_grid_axis():
function go (line 328) | def go():
function recalculate_camera (line 479) | def recalculate_camera():
function select_associated_nodes (line 507) | def select_associated_nodes():
function update_baked (line 530) | def update_baked():
function calculate_corner_pin (line 595) | def calculate_corner_pin(C2Tgroup,label,recalculate):
function calculate_translate (line 749) | def calculate_translate(C2Tgroup,label):
function calculate_matrix (line 796) | def calculate_matrix(C2Tgroup,label):
function card_code (line 853) | def card_code():
function corner_code (line 855) | def corner_code():
function transform_code (line 857) | def transform_code():
function roto_code (line 859) | def roto_code():
function _create_object_helper (line 862) | def _create_object_helper(type):
function _card_impl (line 868) | def _card_impl():
function _cp_impl (line 903) | def _cp_impl():
function _tr_impl (line 934) | def _tr_impl():
function _roto_impl (line 969) | def _roto_impl():
function object_only (line 1044) | def object_only():
function set_ref_frame_cp (line 1064) | def set_ref_frame_cp(frame, node):
function recurseUpSelect (line 1089) | def recurseUpSelect(node):
function toggle_matchmove_stabilise (line 1101) | def toggle_matchmove_stabilise(node):
function set_to_input_label_toggle (line 1170) | def set_to_input_label_toggle(ntn, unset):
function set_to_input_cp (line 1187) | def set_to_input_cp():
function knob_changed_cp (line 1198) | def knob_changed_cp():
FILE: NukeSurvivalToolkit/python/NST_helper.py
function filepathCreateNode (line 29) | def filepathCreateNode(gizmoName):
function _toolkit_root (line 58) | def _toolkit_root():
function find_offline_index (line 62) | def find_offline_index():
function find_pdf_doc (line 71) | def find_pdf_doc():
class _ReusableThreadingTCPServer (line 87) | class _ReusableThreadingTCPServer(socketserver.ThreadingTCPServer):
class _QuietStaticHTTPRequestHandler (line 91) | class _QuietStaticHTTPRequestHandler(http.server.SimpleHTTPRequestHandler):
method log_message (line 94) | def log_message(self, format, *args):
function _shutdown_offline_http_server (line 98) | def _shutdown_offline_http_server():
function _ensure_local_http_server (line 116) | def _ensure_local_http_server(root):
function _open_url_in_browser_async (line 138) | def _open_url_in_browser_async(url):
function _open_offline_index_in_browser (line 153) | def _open_offline_index_in_browser(offline_index):
function is_online_wiki_reachable (line 165) | def is_online_wiki_reachable(timeout=None):
function openNSTDocumentationDefault (line 199) | def openNSTDocumentationDefault():
function openNSTDocumentationOnline (line 224) | def openNSTDocumentationOnline():
function openNSTDocumentationOffline (line 236) | def openNSTDocumentationOffline():
function openNSTDocumentationPDF (line 250) | def openNSTDocumentationPDF():
FILE: NukeSurvivalToolkit/python/NST_stickit.py
function CreateWarpPinPair (line 86) | def CreateWarpPinPair(myNode,pointlist,refframe):
function ExportCameraTrack (line 156) | def ExportCameraTrack(myNode):
function GetAnimtionList (line 238) | def GetAnimtionList(myList,nestedPoints,myFrame,_rev=False,_ofs=False):
function GetNearestPoints (line 270) | def GetNearestPoints(refpoint,pointList,_rev=False):
function GrabListData (line 321) | def GrabListData():
function median (line 340) | def median(lst):
class rangeKeeper (line 352) | class rangeKeeper():
method __init__ (line 353) | def __init__(self,_type):
method initvalues (line 361) | def initvalues(self):
function KeyframeReducer (line 392) | def KeyframeReducer(knob):
function CalculatePositionDelta (line 423) | def CalculatePositionDelta(_method,_refpointList,temp_pos=[0,0]):
function Solve2DTransform (line 479) | def Solve2DTransform(_node):
function SolveCornerpin (line 569) | def SolveCornerpin(_node):
function SolveCurves (line 628) | def SolveCurves(_node,_isSplineWarp=False):
function Solve2DTracker (line 686) | def Solve2DTracker(_node):
function Initializer (line 737) | def Initializer(_method):
function ResolveSelectedNodes (line 749) | def ResolveSelectedNodes():
function StickIT (line 796) | def StickIT():
Condensed preview — 373 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (9,307K chars).
[
{
"path": ".gitattributes",
"chars": 66,
"preview": "# Auto detect text files and perform LF normalization\n* text=auto\n"
},
{
"path": ".gitignore",
"chars": 2303,
"preview": "# Byte-compiled / optimized / DLL files\n__pycache__/\n*.py[cod]\n*$py.class\n\n## Mac ignore\n\n# General\n.DS_Store\n.AppleDoub"
},
{
"path": "CHANGELOG.md",
"chars": 10388,
"preview": "# Changelog\n\nAll notable changes to the Nuke Survival Toolkit are documented in this file.\n\nThe format is based on [Keep"
},
{
"path": "DEVELOPMENT.md",
"chars": 11949,
"preview": "# NukeSurvivalToolkit Development Notes\n\nThis document captures key learnings, architecture decisions, and development k"
},
{
"path": "LICENSE",
"chars": 1070,
"preview": "MIT License\n\nCopyright (c) 2020 CreativeLyons\n\nPermission is hereby granted, free of charge, to any person obtaining a c"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_AdditiveKeyerPro.gizmo",
"chars": 14164,
"preview": "Group {\n name AdditiveKeyerPro\n tile_color 0x5200ff\n note_font \"Verdana Bold\"\n note_font_color 0xffffffff\n selected true"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_AnimationCurve.gizmo",
"chars": 13509,
"preview": "Group {\n name ANIMATION_CURVES\n inputs 0\n knobChanged \"nk = nuke.thisNode()\\nk = nuke.thisKnob()\\nif ('active_translate'"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_AntiAliasingFilter.gizmo",
"chars": 4498,
"preview": "Group {\n name AntialiasingFilter\n inputs 2\n tile_color 0xc17a4aff\n label \"(\\[value antialiasing])\"\n note_font \"Verdana B"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_AutoCropTool.gizmo",
"chars": 8028,
"preview": "Group {\n name AutoCropTool\n tile_color 0xa57aaaff\n note_font \"Bitstream Vera Sans Bold\"\n note_font_color 0xffffffff\n sel"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_AutoFlare2.gizmo",
"chars": 192104,
"preview": "Group {\n name AutoFlare\n selected true\n lock_connections true\n addUserKnob {20 User l Controls}\n addUserKnob {41 effectO"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_BBoxToFormat.gizmo",
"chars": 4577,
"preview": "Group {\n name BBoxToFormat\n onCreate \"n = nuke.thisNode()\\ninputFormat = n.knob(\\\"inputFormat\\\")\\ninputBBox = n.knob(\\\"i"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_BeautifulSkin.gizmo",
"chars": 3018,
"preview": "Group {\n name BeautifulSkin\n tile_color 0xb2776dff\n note_font \"Verdana Bold\"\n note_font_color 0xffffffff\n selected true\n"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_BiasedSaturation.gizmo",
"chars": 3992,
"preview": "Group {\n name BiasedSaturation\n tile_color 0x5c7fc0ff\n note_font \"Verdana Bold\"\n note_font_color 0xffffffff\n selected tr"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_BinaryAlpha.gizmo",
"chars": 1167,
"preview": "Group {\n name BinaryAlpha\n tile_color 0x2a2a2aff\n label \"(\\[value an] --> \\[value output1])\"\n note_font Verdana\n note_fo"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_BlacksExpon.gizmo",
"chars": 47135,
"preview": "Group {\nname BlacksExpon\nknobChanged \"n = nuke.thisNode()\\nk = nuke.thisKnob()\\n\\nif k.name() == \\\"steps\\\": \\n s ="
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_BlacksMatch.gizmo",
"chars": 27028,
"preview": "set cut_paste_input [stack 0]\npush $cut_paste_input\nGroup {\n name BlacksMatch\n help \"Choose a black point color or plug "
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_BokehBuilder.gizmo",
"chars": 471244,
"preview": "Group {\n inputs 0\n name BokehBuilder\n tile_color 0x242424ff\n note_font_color 0x91d5ffff\n selected true\n addUserKnob {20 "
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_C44Kernel.gizmo",
"chars": 4001,
"preview": "Group {\n name C44Kernel\n help \"C44Kernel v1.0 by Adrian Pueyo\\n\\nMultiply the rgb or rgba colors by an arbitrary 4x4 Mat"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_CProject.gizmo",
"chars": 5039,
"preview": "Group {\nname CProject\nhelp \"it is just cornerpin tracked\\nnothing fancy at all\\nhave fun!\"\nknobChanged \"nn = nuke.thisNo"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_CProject2.gizmo",
"chars": 9072,
"preview": "Group {\n name CProject\n help \"it is just cornerpin tracked\\nnothing fancy at all\\nhave fun!\"\n knobChanged \"nn = nuke.thi"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_CameraNormals.gizmo",
"chars": 9490,
"preview": "add_layer {N N.red N.green N.blue N.alpha}\nadd_layer {P P.red P.green P.blue P.alpha}\nGroup {\n name CameraNormals\n knobC"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_CardToTrack.gizmo",
"chars": 49552,
"preview": "Group {\n name CardToTrack\n onCreate \"#nuke.thisNode()\\['picker'].setValue(\\[nuke.toNode(\\\"root\\\")\\['format'].value().wid"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_CardToTrack2.gizmo",
"chars": 83483,
"preview": "Group {\n name CardToTrack_v9_\n inputs 3\n help \"This group helps to find position of 3d point in space, extract this posi"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_CatsEyeDefocus.gizmo",
"chars": 10773,
"preview": "Group {\n inputs 2\n name CatsEyeDefocus\n tile_color 0xb16f43ff\n addUserKnob {20 CtrlTab l \"Cat's Eye Defocus\"}\n addUserKn"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_CellNoise.gizmo",
"chars": 38180,
"preview": "Group {\nname CellNoise\nonCreate \"n = nuke.thisNode()\\nif n is not None:\\n w = n.format().width()/2\\n h = n.format("
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_ChannelCombiner.gizmo",
"chars": 3221,
"preview": "Group {\n name ChannelCombiner\n tile_color 0x9e3c63ff\n note_font \"Verdana Bold Bold Bold Bold Bold Bold Bold Bold Bold Bo"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_ChannelControl.gizmo",
"chars": 3014,
"preview": "Group {\n name ChannelControl\n help \"Mix the ratio of Red, Green, Blue, Alpha Channels and choose a Merge operation.\\nRes"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_ChannelCreator.gizmo",
"chars": 3968,
"preview": "Group {\n name ChannelCreator\n tile_color 0x9e3c63ff\n label \"\\n\"\n note_font \"Verdana Bold\"\n note_font_color 0xffffffff\n s"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_ChromaSmear.gizmo",
"chars": 6974,
"preview": "Group {\nname ChromaSmear\ntile_color 0xd26524ff\nnote_font \"Bitstream Vera Sans Bold\"\nnote_font_color 0xffffffff\nselected "
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_Chromatik.gizmo",
"chars": 13723,
"preview": "Group {\n name Chromatik\n help \"Chromatic aberration node using a real spectral gradient.\"\n addUserKnob {20 User l Chroma"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_ColorCopy.gizmo",
"chars": 9373,
"preview": "set cut_paste_input [stack 0]\npush $cut_paste_input\npush 0\nGroup {\n inputs 2\n name ColorCopy\n knobChanged \"n = nuke.this"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_ColorSampler.gizmo",
"chars": 26601,
"preview": "Group {\n name apColorSampler\n help \"ColorSampler BETA v0.7 by Adrian Pueyo\\n\\nTool to calculate the average color of a t"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_ColorSmear.gizmo",
"chars": 10585,
"preview": "set cut_paste_input [stack 0]\npush $cut_paste_input\nGroup {\n name ColorSmear\n note_font Verdana\n selected true\n addUserK"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_ConstantPro.gizmo",
"chars": 13155,
"preview": "Group {\n name ConstantPro\n knobChanged \"n = nuke.thisNode()\\nk = nuke.thisKnob()\\n\\nif k.name() in \\[\\\"hue\\\", \\\"saturati"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_ContactSheetAuto.gizmo",
"chars": 643,
"preview": "ContactSheet {\nwidth {{input.width*columns*resMult}}\nheight {{input.height*rows*resMult}}\nrows {{\"\\[expr \\{int( (sqrt( \\"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_Contrast.gizmo",
"chars": 2756,
"preview": "Group {\n name Contrast\n tile_color 0x6a93ddff\n note_font \"DejaVu LGC Sans Bold\"\n note_font_color 0xffffffff\n selected tr"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_ConvertPNZ.gizmo",
"chars": 22350,
"preview": "Group {\n name ConvertPNZ\n onCreate \"\\nthisGRP = nuke.thisGroup()\\nif not thisGRP\\['disable_error'].getValue() :\\n imp"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_ConvolutionMatrix.gizmo",
"chars": 9756,
"preview": "Group {\n name ConvolutionMatrix\n inputs 2\n autolabel \"nuke.thisNode().name() + \\\"\\\\n\\\" + '(' + str(nuke.thisNode()\\['mat"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_CornerPin2D_Matrix.gizmo",
"chars": 4051,
"preview": "Group {\n name CornerPin2D_Matrix\n tile_color 0xa57aaa00\n selected true\n addUserKnob {20 CornerPin2D}\n addUserKnob {26 \"\""
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_CrossProductVector2.gizmo",
"chars": 1546,
"preview": "Group {\n name CrossProductVector2_\n help \"Calculates the cross product of 2 Vector2 inputs.\"\n addUserKnob {20 main_tab l"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_CrossProductVector3.gizmo",
"chars": 1579,
"preview": "Group {\n name CrossProductVector3_\n help \"Calculates the cross product of 2 Vector3 inputs.\"\n addUserKnob {20 main_tab l"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_DVPColorCorrect.gizmo",
"chars": 11679,
"preview": "Group {\n name DVPColorCorrect\n onCreate \"\\nthisGRP = nuke.thisGroup()\\nfor knob in thisGRP.knobs() :\\n try :\\n "
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_DVPToImage.gizmo",
"chars": 6196,
"preview": "Group {\n name DVPToImage\n onCreate \"\\nnver = nuke.NUKE_VERSION_MAJOR\\nthisGRP = nuke.thisGroup()\\nif nver >= 11 :\\n t"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_DVP_Shader.gizmo",
"chars": 12692,
"preview": "Group {\n inputs 0\n name DVP_Shader\n onCreate \"\\nthisGRP = nuke.thisGroup()\\nfor knob in thisGRP.knobs() :\\n try :\\n "
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_DVP_ToonShader.gizmo",
"chars": 11758,
"preview": "Group {\n inputs 0\n name DVP_ToonShader\n onCreate \"\\nthisGRP = nuke.thisGroup()\\nfor knob in thisGRP.knobs() :\\n try :"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_DVPattern.gizmo",
"chars": 26454,
"preview": "Group {\n name DVPattern\n tile_color 0x597fff\n label \"node type : \\[value node_type]\\noperation : \\[value matte_op]\\n<fon"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_DVPfresnel.gizmo",
"chars": 13167,
"preview": "Group {\n name DVPfresnel\n onCreate \"\\nthisGRP = nuke.thisGroup()\\nfor knob in thisGRP.knobs() :\\n try :\\n if t"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_DVPmatte.gizmo",
"chars": 32739,
"preview": "Group {\n name DVPmatte\n tile_color 0x597fff\n label \"node type : \\[value node_type]\\noperation : \\[value matte_op]\\n<font"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_DVPortal.gizmo",
"chars": 5920,
"preview": "Group {\n name DVPortal\n tile_color 0x4d00ccff\n label \"<img src='Camera.png'> info\"\n note_font \"MS Shell Dlg 2\"\n addUserK"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_DVPrelight.gizmo",
"chars": 53066,
"preview": "Group {\n name DVPrelight\n onCreate \"\\nthisGRP = nuke.thisGroup()\\nfor knob in thisGRP.knobs() :\\n try :\\n if t"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_DVPrelightPT.gizmo",
"chars": 59325,
"preview": "Group {\n name DVPrelightPT\n onCreate \"\\nthisGRP = nuke.thisGroup()\\nfor knob in thisGRP.knobs() :\\n try :\\n if"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_DVProjection.gizmo",
"chars": 35801,
"preview": "Group {\n name DVProjection\n tile_color 0x597fff\n label \"<font color=cyan>2D image Output</font>\"\n addUserKnob {20 tab_ge"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_DVPscene.gizmo",
"chars": 18201,
"preview": "Group {\n name DVPscene\n onCreate \"\\nthisGRP = nuke.thisGroup()\\nfor knob in thisGRP.knobs() :\\n try :\\n if thi"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_DVPsetLight.gizmo",
"chars": 4039,
"preview": "Group {\n name DVPsetLight\n tile_color 0x597fff\n label \"<font color=cyan>Deep Output</font>\"\n addUserKnob {20 t_VERSION l"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_DasGrain.gizmo",
"chars": 48458,
"preview": "Group {\n name DasGrain\n help \"DasGrain makes regraining as simple as clicking a few buttons.\\n\\nFollow the steps in the "
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_Deep2VP.gizmo",
"chars": 41340,
"preview": "Group {\n name Deep2VP\n tile_color 0x2866ff\n label \"<font color=cyan>Deep Output</font>\"\n addUserKnob {20 tab_general l G"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_Deep2VPosition.gizmo",
"chars": 16059,
"preview": "Group {\n name Deep2VPosition\n tile_color 0x2866ff\n label \"<font color=cyan>Deep Output</font>\"\n addUserKnob {20 tab_gene"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_DeepBoolean.gizmo",
"chars": 22011,
"preview": "Group {\n name DeepBoolean\n tile_color 0x597fff\n label \"mode : \\[value mode]\\n<font color=cyan>Deep Output</font>\"\n addUs"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_DeepCopyBBox.gizmo",
"chars": 561,
"preview": "Group {\n name DeepCopyBBox\n tile_color 0x5fff\n addUserKnob {20 D_DeepCopyBBox}\n addUserKnob {26 \"\" +STARTLINE}\n addUserK"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_DeepCropSoft.gizmo",
"chars": 11382,
"preview": "Group {\n name DeepCropSoft\n tile_color 0x6000\n selected true\n addUserKnob {20 deepCropSoftTab l DeepCropSoft}\n addUserKn"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_DeepFromDepth.gizmo",
"chars": 842,
"preview": "Group {\n name DeepFromDepth\n tile_color 0x66ff\n selected true\n addUserKnob {20 User}\n addUserKnob {41 in l z T Shuffle21"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_DeepFromPosition.gizmo",
"chars": 2659,
"preview": "Group {\n name DeepFromPosition\n tile_color 0x145bff\n label \"<font color=cyan>Deep Output</font>\"\n selected true\n addUser"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_DeepHoldoutSmoother.gizmo",
"chars": 7798,
"preview": "Group {\n name DeepHoldoutSmoother\n help \"DeepAntialias creates an antialiased Deep edge by adding adjacent slices of the"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_DeepKeyMix.gizmo",
"chars": 4055,
"preview": "Group {\n inputs 2\n name DeepKeyMix\n tile_color 0x59ff\n addUserKnob {20 User l DeepKeyMix}\n addUserKnob {26 \"\"}\n addUserK"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_DeepMerge_Advanced.gizmo",
"chars": 2289,
"preview": "Group {\n name DeepMergeAdvanced\n help \"- Merges all channels from A and B in deep. - Fixes issue with DeepMerge's holdou"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_DeepRecolorMatte.gizmo",
"chars": 6045,
"preview": "Group {\n inputs 2\n name DeepRecolorMatte\n help \"this node creates a new single channel\\n<NewChannelName>.red and injects"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_DeepSampleCount.gizmo",
"chars": 24256,
"preview": "Group {\n name DeepSampleCount\n onCreate \"\\nthisGRP = nuke.thisGroup()\\nfor knob in thisGRP.knobs() :\\n if knob\\[0:6] "
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_DeepSer.gizmo",
"chars": 16688,
"preview": "Group {\n name DeepSer\n onCreate \"\\nnver = nuke.NUKE_VERSION_MAJOR\\nthisGRP = nuke.thisGroup()\\nif nver >= 11 :\\n\\t thisG"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_DeflickerVelocity.gizmo",
"chars": 15830,
"preview": "Group {\n name DeflickerVelocity\n tile_color 0x7f00ffff\n note_font Verdana\n selected true\n mapsize {0.15 0.15}\n addUserKn"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_DefocusSwirlyBokeh.gizmo",
"chars": 11666,
"preview": "set cut_paste_input [stack 0]\npush $cut_paste_input\nGroup {\n name DefocusSwirlyBokeh\n tile_color 0xb16f43ff\n selected tr"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_DespillToColor.gizmo",
"chars": 7353,
"preview": "set cut_paste_input [stack 0]\npush $cut_paste_input\nGroup {\n name DespillToColor\n tile_color 0x475247ff\n note_font \"Bits"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_Diffusion.gizmo",
"chars": 2861,
"preview": "Group {\n name Diffusion\n onCreate \"n = nuke.thisNode()\\nn.knob('size').setRange(0, 300)\"\n tile_color 0xcc804eff\n note_fo"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_DirectionalBlur.gizmo",
"chars": 8312,
"preview": "set cut_paste_input [stack 0]\npush $cut_paste_input\nGroup {\n name DirectionalBlur\n tile_color 0xcc804eff\n note_font \"Luc"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_Distance3D.gizmo",
"chars": 1330,
"preview": "set cut_paste_input [stack 0]\npush $cut_paste_input\nGroup {\nname Distance3d\nselected true\naddUserKnob {20 distance3D}\nad"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_DistanceBetween_CS.gizmo",
"chars": 1955,
"preview": "Group {\n name DistanceBetween_CS\n tile_color 0x9c0000ff\n label \"Distance2D: \\[value Distance2D]\\nDistance3D: \\[value Dis"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_DotProductVector2.gizmo",
"chars": 1584,
"preview": "Group {\n name DotProductVector2_\n help \"Calculates the dot product of 2 Vector2 inputs.\"\n addUserKnob {20 main_tab l \"Do"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_DotProductVector3.gizmo",
"chars": 1590,
"preview": "Group {\n name DotProductVector3_\n help \"Calculates the dot product of 2 Vector3 inputs.\"\n addUserKnob {20 main_tab l \"Do"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_DummyCam.gizmo",
"chars": 4218,
"preview": "Camera {\n projection_mode {{\"\\[expression \\[value the_cam]projection_mode(\\[value the_frame])]\"}}\n focal {{\"\\[expression"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_Edge.gizmo",
"chars": 27125,
"preview": "Group {\n name Edge\n help \"Edge allows you to extend the proper color out over transparent edges or areas with a lot of m"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_EdgeDetectAlias.gizmo",
"chars": 2041,
"preview": "Group {\n name EdgeDetectAlias\n tile_color 0xcc804eff\n note_font \"Bitstream Vera Sans Bold Bold\"\n note_font_color 0xfffff"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_EdgeDetectPRO.gizmo",
"chars": 8353,
"preview": "Group {\n name EdgeDetectPRO\n tile_color 0xcc804e00\n addUserKnob {20 EdgeDetect}\n addUserKnob {41 channels T CTRL.channel"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_EdgeFromAlpha.gizmo",
"chars": 2240,
"preview": "set cut_paste_input [stack 0]\npush $cut_paste_input\nGroup {\n name EdgeFromAlpha\n note_font Verdana\n selected true\n mapsi"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_Edge_Expand.gizmo",
"chars": 31912,
"preview": "Group {\n name Edge_Expand\n inputs 2\n help \"Expand edges to fix fringing on keys.\\nUse after a premult is preferred, but "
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_Edge_RimLight.gizmo",
"chars": 6257,
"preview": "Group {\n name Edge_RimLight\n autolabel nuke.thisNode().name()\n tile_color 0xff6e00ff\n note_font \"Verdana Bold Bold\"\n not"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_Emission.gizmo",
"chars": 34458,
"preview": "Group {\n name Emission\n knobChanged \"def add_input(group, prefix):\\n with group:\\n fullname = group.fullName()"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_EnvReflect_BB.gizmo",
"chars": 4140,
"preview": "set cut_paste_input [stack 0]\npush $cut_paste_input\nGroup {\n name EnvReflect_Bb_\n help \"Fake Env reflections using a nor"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_ErodeSmooth.gizmo",
"chars": 2085,
"preview": "set cut_paste_input [stack 0]\npush $cut_paste_input\nGroup {\n name ErodeSmooth\n tile_color 0xcc804eff\n selected true\n add"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_Erode_Fine.gizmo",
"chars": 10501,
"preview": "Group {\n name Erode_Fine\n inputs 2\n help \"Erode an image with fine controls, as opposed to Nuke's default erode node.\"\n "
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_ExponBlurSimple.gizmo",
"chars": 20300,
"preview": "Group {\n name ExponBlurSimple\n onCreate \"n = nuke.thisNode()\\nn.knob('size').setRange(-100, 100)\\nn.knob('adjustBBoxPixe"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_ExponGlow.gizmo",
"chars": 32634,
"preview": "Group {\n name ExponGlow\n onCreate \"n = nuke.thisNode()\\nn.knob('size').setRange(0, 5)\\nn.knob('exp').setRange(0, 4)\\nn.k"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_F_P_Project.gizmo",
"chars": 10025,
"preview": "Group {\n name P_Project\n help \"Position Project\\n\\nCamera Project using only the render of the Position pass and the Cam"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_F_P_Ramp.gizmo",
"chars": 19316,
"preview": "Group {\n name P_Ramp\n help \"P_Ramp\\n\\nCreate a ramp in the alpha channel using the render of the Position pass.\\n\\nThe r"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_FastComplexityDistort.gizmo",
"chars": 8095,
"preview": "Group {\n name FastComplexity_Distort\n tile_color 0xa57aaaff\n selected true\n addUserKnob {20 User}\n addUserKnob {26 text "
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_FillSampler.gizmo",
"chars": 43939,
"preview": "set cut_paste_input [stack 0]\npush $cut_paste_input\nGroup {\n name FillSampler\n selected true\n addUserKnob {20 User}\n add"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_FlareSuperStar.gizmo",
"chars": 30110,
"preview": "Group {\n name FlareSuperStar\n selected true\n addUserKnob {20 User l \"Shape Controls\"}\n addUserKnob {26 \"\"}\n addUserKnob "
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_FractalBlur.gizmo",
"chars": 4532,
"preview": "set cut_paste_input [stack 0]\npush $cut_paste_input\nGroup {\n name FractalBlur\n selected true\n addUserKnob {20 User}\n add"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_FrameFiller.gizmo",
"chars": 12502,
"preview": "Group {\n name FrameFiller\n onCreate \"\\nthisGRP = nuke.thisGroup()\\nlogKnobs = \\['vectorDetailLocal','smoothnessLocal','v"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_FrameHoldSpecial.gizmo",
"chars": 4083,
"preview": "Group {\n name FrameHold_special\n knobChanged \"\\nnk = nuke.thisNode()\\nk = nuke.thisKnob()\\ntype=nk\\['type']\\npause=nk\\['"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_FrameMedian.gizmo",
"chars": 12079,
"preview": "Group {\n name FrameMedian\n tile_color 0x2f66ff\n selected true\n addUserKnob {20 FrameMedian}\n addUserKnob {26 \"\"}\n addUse"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_GUI_Switch.gizmo",
"chars": 1241,
"preview": "Group {\n name GUI_Switch\n knobChanged \"n = nuke.thisNode()\\nk = nuke.thisKnob()\\n\\nif k.name() == \\\"disable\\\":\\n if k"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_GammaPlus.gizmo",
"chars": 7929,
"preview": "Group {\n name GammaPlus\n onCreate \"\\nthisGRP = nuke.thisGroup()\\nfor knob in thisGRP.knobs() :\\n if thisGRP\\[knob].la"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_GenerateMatrix4.gizmo",
"chars": 3981,
"preview": "Group {\n name GenerateMatrix4_\n help \"Generate a Matrix4 based on a Matrix Knob. (Defaults to an identity matrix)\"\n knob"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_GenerateSTMap.gizmo",
"chars": 1045,
"preview": "Group {\n inputs 0\n name GenerateSTMap\n postage_stamp true\n addUserKnob {20 STMap l \"ST Map\"}\n addUserKnob {41 format l F"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_GeoToPoints.gizmo",
"chars": 3167,
"preview": "Group {\n name GeoToPoints\n tile_color 0x807291ff\n selected true\n addUserKnob {20 User}\n addUserKnob {26 info l \"\" +START"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_Glass.gizmo",
"chars": 6295,
"preview": "Group {\nname Glass\ntile_color 0xcc804eff\nnote_font \"Bitstream Vera Sans Bold\"\nnote_font_color 0xffffffff\nselected true\na"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_Glow_Exponential.gizmo",
"chars": 10867,
"preview": "Group {\n name Glow_Exponential\n inputs 2\n help \"Exponential Glow node, with options to recolor and adjust falloff.\"\n kno"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_GlueP.gizmo",
"chars": 14547,
"preview": "Group {\n name Ls_GlueP\n help \"GlueP - glues an image to a position pass, by projecting on it.\\n\\nInputs:\\n Image to pro"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_GodRaysProjector.gizmo",
"chars": 64684,
"preview": "Group {\n name GodRaysProjector\n tile_color 0xcc804eff\n selected true\n addUserKnob {20 User}\n addUserKnob {41 \"Local GPU:"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_GradMagic.gizmo",
"chars": 48075,
"preview": "Group {\n name GradMagic\n help \"Creates a 4 point gradient that samples corners from the input. Ability to bake color res"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_GradeLayerPass.gizmo",
"chars": 3960,
"preview": "Group {\n name GradeLayerPass\n help \"Select a lighting pass layer to minus from CG beauty input, do your color correction"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_Grain_Advanced.gizmo",
"chars": 5874,
"preview": "set cut_paste_input [stack 0]\npush $cut_paste_input\nGroup {\n name GrainAdvanced\n help \"Adds synthetic grain. \\n\\nThe def"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_GuidedBlur.gizmo",
"chars": 13302,
"preview": "Group {\n inputs 2\n name GuidedBlur\n help \"Description:\\n\\nThe guided filter is an edge-preserving blur,\\nuseful to add d"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_HSL_Tool.gizmo",
"chars": 3162,
"preview": "Group {\n name HSL_Tool\n tile_color 0xe2f1ff\n selected true\n addUserKnob {20 hue}\n addUserKnob {41 lut l \"\" -STARTLINE T "
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_Halation.gizmo",
"chars": 4805,
"preview": "Group {\n name Halation\n tile_color 0xcc804eff\n note_font \"Verdana Bold\"\n note_font_color 0xffffffff\n selected true\n addU"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_HeatWave.gizmo",
"chars": 19706,
"preview": "Group {\n name HeatWave\n knobChanged \"n = nuke.thisNode()\\n\\nif n.input(2) !=None :\\n n\\['evolutionspeed'].setEnabled("
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_HexColor.gizmo",
"chars": 5590,
"preview": "Group {\n inputs 0\n name HexColor\n knobChanged \"\\ndef int2hex(x):\\n val = hex(x)\\[2:]\\n val = \\\"0\\\"+val if len(val)"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_HighPass.gizmo",
"chars": 4068,
"preview": "Group {\n name HighPass\n knobChanged \"n = nuke.thisNode()\\nk = nuke.thisKnob()\\n\\nif k.name() == 'output1':\\n if n.kno"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_HighlightSuppress.gizmo",
"chars": 4827,
"preview": "Group {\n name HighlightSuppress\n tile_color 0x5c7fc0ff\n note_font \"Verdana Bold\"\n note_font_color 0xffffffff\n selected t"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_ID_Extractor.gizmo",
"chars": 2532,
"preview": "Group {\n name ID_Extractor\n tile_color 0x3d3d3dff\n label \"<big><font color=\\\"white\\\">\\[value Achannels]\\n<font color=\\\"R"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_IIDistort.gizmo",
"chars": 3603,
"preview": "Group {\n inputs 2\n name IIDistort\n help \"Recursuve IDistort Node, the vectors advect themselves multiple times, creating"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_ITransformU.gizmo",
"chars": 6066,
"preview": "Group {\n name ITransformU\n tile_color 0xa57aaaff\n selected true\n addUserKnob {20 \"\" l Transform}\n addUserKnob {14 AdjBBo"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_ImagePlane3D.gizmo",
"chars": 41493,
"preview": "Group {\n name ImagePlane3D\n knobChanged \"n = nuke.thisNode()\\nk = nuke.thisKnob()\\n\\nif k.name() == 'inputChange':\\n "
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_InjectMatteChannel.gizmo",
"chars": 5647,
"preview": "Group {\n name InjectMatteChannel\n help \"this node creates a new single channel\\n<NewChannelName>.red and injects it into"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_InverseMatrix33.gizmo",
"chars": 3931,
"preview": "Group {\n inputs 0\n name InverseMatrix33_\n tile_color 0x337f4cff\n addUserKnob {20 tab_general l General}\n addUserKnob {1 "
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_InverseMatrix44.gizmo",
"chars": 17592,
"preview": "Group {\n inputs 0\n name InverseMatrix44_\n tile_color 0x337f4cff\n addUserKnob {20 tab_general l General}\n addUserKnob {1 "
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_InvertAxis.gizmo",
"chars": 8176,
"preview": "Group {\n name InvertAxis\n help \"Inverts an input Axis\"\n tile_color 0x9c0000ff\n addUserKnob {20 InvertAxis l \"Invert Axis"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_InvertMatrix4.gizmo",
"chars": 11503,
"preview": "Group {\n name InvertMatrix4_\n help \"Invert a pixel based Matrix4 (Defined as layers matrix0, matrix1, matrix2 and matrix"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_KeyChew.gizmo",
"chars": 2486,
"preview": "Group {\n name KeyChew\n help \"Cheaply dilates and erodes a matte\"\n onCreate \"n = nuke.thisNode()\\nn.knob(\\\"shrinkDilate\\\""
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_KeymixBBox.gizmo",
"chars": 1220,
"preview": "set cut_paste_input [stack 0]\npush $cut_paste_input\nGroup {\n inputs 3\n name KeymixBBox\n tile_color 0x4b5ec6ff\n selected "
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_KillOutline.gizmo",
"chars": 13127,
"preview": "Group {\n name KillOutline\n help \"KillOutline reduces unwanted outlines from keyed footage.\\n\\nerode controls: erode the "
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_LabelFromRead.gizmo",
"chars": 5956,
"preview": "Group {\n name LabelFromRead\n tile_color 0x1f1f1fff\n label \"\\[ expr \\{ \\[value splitPath] ? \\[value finalFilePath] : \\[] "
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_LensEngine.gizmo",
"chars": 1639524,
"preview": "Group {\n name LensEngine\n selected true\n addUserKnob {20 mainTab l main}\n addUserKnob {26 headline l \"\" +STARTLINE T \"<f"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_LightSwitch.gizmo",
"chars": 31114,
"preview": "add_layer {LG01 LG01.red LG01.green LG01.blue LG01.alpha}\nadd_layer {LG02 LG02.red LG02.green LG02.blue LG02.alpha}\nadd_"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_LightWrapPro.gizmo",
"chars": 60115,
"preview": "Group {\n name LightWrapPro\n help \"Adds exponentially blurred lightwrap\\n\\nAdds a bright highlight wrap and an overall wr"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_Lightning3D.gizmo",
"chars": 50764,
"preview": "set cut_paste_input [stack 0]\nGroup {\n inputs 0\n name Lightning3D\n tile_color 0x131b56ff\n note_font \"Bitstream Vera Sans"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_LineTool.gizmo",
"chars": 3263,
"preview": "Group {\n name LineTool\n tile_color 0xc4f8cff\n note_font \"Verdana Bold Bold Bold\"\n note_font_color 0xffd199ff\n selected t"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_Looper.gizmo",
"chars": 7958,
"preview": "Group {\n name Looper\n inputs 2\n knobChanged \"n = nuke.thisNode()\\nk = nuke.thisKnob()\\n\\nclipendtrue = str(n\\['avoidclip"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_LumaGrain.gizmo",
"chars": 9350,
"preview": "Group {\n name LumaGrain\n help \"<b><u>L_Grain_v04\\t</b></u>\\t\\nAdded functionality to Nuke's default grain node.\\n \\n<b>\\"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_LumaKeyer.gizmo",
"chars": 4817,
"preview": "set cut_paste_input [stack 0]\npush $cut_paste_input\nGroup {\n name LumaKeyer\n onCreate \"n = nuke.thisNode()\\nn.knob('blac"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_LumaToVector3.gizmo",
"chars": 4371,
"preview": "Group {\n name LumaToVector3_\n help \"Performs a Sobel filter on the Luminance channel of an image to extract an approxima"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_MECfiller.gizmo",
"chars": 84741,
"preview": "Group {\n inputs 0\n name MECfiller\n tile_color 0xff00ffff\n addUserKnob {20 User}\n addUserKnob {26 name_1 l \"\" +STARTLINE "
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_MagnitudeVector2.gizmo",
"chars": 1214,
"preview": "Group {\n name MagnitudeVector2_\n help \"Calculate the magnitude (scalar) of an input Vector2.\"\n addUserKnob {20 main_tab "
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_MagnitudeVector3.gizmo",
"chars": 1221,
"preview": "Group {\n name Magnitude_Vector3_\n help \"Calculate the magnitude (scalar) of an input Vector3.\"\n addUserKnob {20 main_tab"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_Matrix4x4Math.gizmo",
"chars": 8874,
"preview": "set cut_paste_input [stack 0]\npush $cut_paste_input\nGroup {\n inputs 2\n name Matrix4x4Math\n tile_color 0x9c0000ff\n select"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_Matrix4x4_Inverse.gizmo",
"chars": 23866,
"preview": "Group {\nname Matrix4x4_Inverse\ntile_color 0x9c0000ff\nselected true\naddUserKnob {20 MatrixInverse}\naddUserKnob {4 inputMa"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_MergeAll.gizmo",
"chars": 3092,
"preview": "set cut_paste_input [stack 0]\npush $cut_paste_input\npush 0\nGroup {\n inputs 2\n name MergeAll\n help \"MergeAll v1.0\\n\\nMerg"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_MergeAtmos.gizmo",
"chars": 2677,
"preview": "set cut_paste_input [stack 0]\npush $cut_paste_input\npush 0\nGroup {\n inputs 2\n name MergeAtmos\n tile_color 0x4b5ec6ff\n no"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_MergeBlend.gizmo",
"chars": 2461,
"preview": "Group {\n inputs 2\n name MergeBlend\n tile_color 0x4b5ec6ff\n label \"\\[value merge1] | \\[value merge2]\"\n note_font \"Verdana"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_MirrorBorder.gizmo",
"chars": 14182,
"preview": "Group {\n name MirrorBorder\n onCreate \"n = nuke.thisNode()\\nsize = n.knob(\\\"size\\\")\\n\\nsize.setRange(0, 500)\"\n tile_color"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_MirrorDimension.gizmo",
"chars": 20802,
"preview": "Group {\n name MirrorDimension\n tile_color 0x9c0000ff\n note_font_color 0xffffffff\n selected true\n addUserKnob {20 MirrorD"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_MonochromePlus.gizmo",
"chars": 3688,
"preview": "Group {\n name MonochromePlus\n tile_color 0x7aa9ffff\n note_font \"Bitstream Vera Sans\"\n selected true\n addUserKnob {20 Mon"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_MorphDissolve.gizmo",
"chars": 8296,
"preview": "Group {\n name MorphDissolve\n help \"Allows to morph between two moving plates automatically, or can be used to improve ma"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_MotionBlurPaint.gizmo",
"chars": 8073,
"preview": "Group {\n name MotionBlurPaint\n onCreate \"n = nuke.thisNode()\\nn\\['format'].setFlag(nuke.DISABLED)\"\n tile_color 0xcc804e0"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_MultiplyVector3Matrix3.gizmo",
"chars": 3430,
"preview": "Group {\n name MultiplyVector3Matrix3_\n help \"Multiply (transform) a Vector3 by a Matrix3. This is the equivalent of appl"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_NAN_INF_Killer.gizmo",
"chars": 9239,
"preview": "Group {\n name NAN_INF_Killer\n tile_color 0xff6200ff\n label \"\\[value which]\"\n note_font \"Bitstream Vera Sans Bold Bold\"\n "
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_N_Reflection.gizmo",
"chars": 2147,
"preview": "Group {\n name N_Reflection\n tile_color 0x417c3eff\n note_font Verdana\n note_font_color 0xffffffff\n selected true\n addUser"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_Noise3DTexture.gizmo",
"chars": 6130,
"preview": "Group {\n name Noise3DTexture\n tile_color 0x303030ff\n note_font_color 0x99ffffff\n selected true\n addUserKnob {20 User}\n a"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_Noise3D_spin.gizmo",
"chars": 16293,
"preview": "Group {\n name Noise3D\n inputs 2\n help \"Generate Noise in 3D space based on Position passes. It includes pre-made Positio"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_NoiseAdvanced.gizmo",
"chars": 5588,
"preview": "Group {\n name NoiseAdvanced\n help \"Noise node with various time sliders. Can quickly create animated noise.\\n\\nAdded an"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_NormalizeVector2.gizmo",
"chars": 1452,
"preview": "Group {\n name NormalizeVector2_\n help \"Normalize the magnitude of a Vector2 (to be of magnitude 1)\"\n addUserKnob {20 mai"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_NormalizeVector3.gizmo",
"chars": 1558,
"preview": "Group {\n name NormalizeVector3_\n help \"Normalize the magnitude of a Vector3 (to be of magnitude 1)\"\n addUserKnob {20 mai"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_NormalsRotate.gizmo",
"chars": 7301,
"preview": "Group {\n name NormalsRotate\n onCreate \"\\nn=nuke.thisNode()\\nn\\['mblack'].setFlag(0x0000000000000004)\\nn\\['mgain'].setFla"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_NukeZ.gizmo",
"chars": 17432,
"preview": "Group {\n name NukeZ\n inputs 0\n tile_color 0xffc900ff\n label \"<center><img src='PoissonMesh.png'></center>\"\n note_font \"D"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_P2N.gizmo",
"chars": 19224,
"preview": "Group {\n name P2N\n onCreate \"\\nthisGRP = nuke.thisGroup()\\nif not thisGRP\\['disable_error'].getValue() :\\n import os\\"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_P2Z.gizmo",
"chars": 17325,
"preview": "Group {\n name P2Z\n onCreate \"\\nthisGRP = nuke.thisGroup()\\nif not thisGRP\\['disable_error'].getValue() :\\n import os\\"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_P_Noise_Advanced.gizmo",
"chars": 35578,
"preview": "Group {\n name P_Noise_Advanced\n knobChanged \"\\nn = nuke.thisNode()\\ntype = n\\['noisetype'].value()\\nblock = n\\['Trunc']."
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_ParticleKiller.gizmo",
"chars": 2153,
"preview": "Group {\nname ParticleKiller\ntile_color 0x101010ff\nselected true\naddUserKnob {20 particleKillerTab l ParticleKiller}\naddU"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_ParticleLights.gizmo",
"chars": 9985,
"preview": "Group {\n name ParticleLights\n selected true\n addUserKnob {20 User}\n addUserKnob {26 info1 l \"\" +STARTLINE T \"Particle Li"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_PerspectiveGuide.gizmo",
"chars": 22252,
"preview": "Group {\n name PerspectiveGuide_BB\n tile_color 0x566d6dff\n note_font Verdana\n selected true\n mapsize {0.15 0.15}\n addUser"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_PlanarProjection.gizmo",
"chars": 82829,
"preview": "Group {\n name PlanarProjection\n help \"<b>Planar Projection</b>\\nGenerates 2D coordinates for points in 3D space. Type in"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_PlotScanline.gizmo",
"chars": 4026,
"preview": "Group {\nname PlotScanline\ntile_color 0x9c0000ff\nselected true\naddUserKnob {20 Controls}\naddUserKnob {4 mode l \"Sampling "
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_PointCloudKeyer.gizmo",
"chars": 8709,
"preview": "Group {\n name PointCloudKeyer\n onCreate \"try: \\n n = nuke.thisNode()\\n n\\['translate'].setFlag(0x0000002000000000)"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_PosMatte_MJ.gizmo",
"chars": 15783,
"preview": "Group {\n name PosMatte\n tile_color 0x5f3f7fff\n addUserKnob {20 tab_general l General}\n addUserKnob {41 geo_select T geoC"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_PosPattern_MJ.gizmo",
"chars": 12127,
"preview": "Group {\n name PosPattern\n tile_color 0x5f3f7fff\n addUserKnob {20 tab_general l General}\n addUserKnob {41 position l \"wor"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_PosProjection_MJ.gizmo",
"chars": 19719,
"preview": "Group {\n name PosProjection\n tile_color 0x5f3f7fff\n addUserKnob {20 tab_general l General}\n addUserKnob {41 position l \""
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_ProductMatrix4.gizmo",
"chars": 3939,
"preview": "Group {\n name ProductMatrix4_\n help \"Multiply two pixel based Matrix4 (Defined as layers matrix0, matrix1, matrix2 and m"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_Pyclopedia.gizmo",
"chars": 12841,
"preview": "Group {\n inputs 0\n name Pyclopedia\n onCreate \"\\nimport os, pydoc, re\\n\\n##########\\n\\ndef pyclopediaLoadField( _thisG ) "
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_Python_and_TCL.gizmo",
"chars": 58300,
"preview": "Group {\n inputs 0\n name Python_and_TCL\n knobChanged \"\\nnk = nuke.thisNode()\\nk = nuke.thisKnob()\\n\\nif ('operation' in k"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_RP_Reformat.gizmo",
"chars": 11310,
"preview": "Group {\n name RP_Reformat\n onCreate \"\\nnuke.thisGroup()\\['old_pixel_aspect'].setFlag(0x00000100)\\nnuke.thisGroup()\\['new"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_RadialAdvanced.gizmo",
"chars": 4605,
"preview": "Group {\n name RadialAdvanced\n tile_color 0x5f5f5fff\n note_font \"Verdana Bold Bold Bold Bold Bold Bold Bold Bold Bold Bol"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_RadialDilate.gizmo",
"chars": 3500,
"preview": "Group {\n name RadialDilate\n tile_color 0xcc804eff\n note_font_color 0xffffffff\n addUserKnob {20 RadialDilate}\n addUserKno"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_RainMaker.gizmo",
"chars": 19870,
"preview": "Group {\n name RainMaker\n selected true\n addUserKnob {20 User l RainMaker}\n addUserKnob {6 rainonly l \"Rain only (No comp"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_Randomizer.gizmo",
"chars": 5253,
"preview": "Group {\n name Randomizer\n tile_color 0x5f5f5fff\n label \"\\[value type]\"\n note_font \"Verdana Bold Bold Bold Bold Bold Bold"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_RankFilter.gizmo",
"chars": 3773,
"preview": "Group {\n inputs 0\n name RankFilter\n tile_color 0x168696ff\n addUserKnob {20 RankFilter}\n addUserKnob {41 \"Local GPU: \" T "
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_RayDeepAO.gizmo",
"chars": 4815,
"preview": "Group {\n name RayDeepAO\n onCreate \"\\nthisGRP = nuke.thisGroup()\\nfor knob in thisGRP.knobs() :\\n try :\\n if kn"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_ReProject_3D.gizmo",
"chars": 8702,
"preview": "Group {\n name Reproject_3D\n help \"This gizmo does camera projection using the STMap node to remap all the layers in the "
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_Reconcile3DFast.gizmo",
"chars": 10403,
"preview": "Group {\n inputs 3\n name reconcile3DFast\n tile_color 0x421010ff\n addUserKnob {20 PlanarProjection l reconcile3DFast}\n add"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_Relight_Simple.gizmo",
"chars": 5407,
"preview": "Group {\n name Relight_Simple\n help \"Simpliflied relight node.\\nOnly requires a normal map to get started.\\n\\nThis node w"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_Relight_bb.gizmo",
"chars": 12890,
"preview": "Group {\n name Relight_BB\n help \"2D tool to help relight 3d renders with help of a normals pass\\n\\nFeed it with a normals"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_Rings_of_Power.gizmo",
"chars": 19582,
"preview": "Group {\n name Rings_of_Power\n onCreate \"n = nuke.thisNode()\\nn.knob('outerRadius').setRange(0, 2)\\nn.knob('innerRadius')"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_RotateMatrix4.gizmo",
"chars": 78273,
"preview": "Group {\n name RotateMatrix4_\n addUserKnob {20 Matrix4x4_Rotate}\n addUserKnob {4 rotation_unit l \"rotation unit\" M {radia"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_RotateVector2.gizmo",
"chars": 2785,
"preview": "Group {\n name RotateVector2_\n help \"Rotate a 2D vector on the same 2D plane.\"\n knobChanged \"\\nnode = nuke.thisNode()\\nkn"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_RotateVector3.gizmo",
"chars": 9509,
"preview": "Group {\n name RotateVector3_\n help \"Rotate a Vector3 in 3 dimensions.\"\n knobChanged \"node = nuke.thisNode()\\nknob = nuke"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_RotoCentroid.gizmo",
"chars": 2511,
"preview": "Group {\n name RotoCentroid\n tile_color 0x70ff66ff\n selected true\n addUserKnob {20 RotoCentroid}\n addUserKnob {12 centroi"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_RotoPaintTransform.gizmo",
"chars": 9783,
"preview": "Group {\n name RotoPaint_Transform\n onCreate \"n = nuke.thisNode()\\nn\\['format'].setFlag(nuke.DISABLED)\"\n knobChanged \"n ="
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_RotoQC.gizmo",
"chars": 12492,
"preview": "set cut_paste_input [stack 0]\npush 0\npush $cut_paste_input\nGroup {\n inputs 2\n name RotoQC\n help \"matte QC tool for check"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_SSMesh.gizmo",
"chars": 35196,
"preview": "Group {\n name SSMesh\n tile_color 0x5c9e83ff\n label \"<font color=cyan>Geo Output</font>\"\n addUserKnob {20 tab_general l G"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_STMapToVector2.gizmo",
"chars": 1034,
"preview": "Group {\n name STMapToVector2_\n help \"Transforms a distorted UV Map to Motion Vectors corresponding to the distortion.\"\n "
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_STmapInverse.gizmo",
"chars": 2384,
"preview": "Group {\n name STMapInverse\n tile_color 0x196654ff\n selected true\n addUserKnob {20 InverseSTMap}\n addUserKnob {41 in l ch"
},
{
"path": "NukeSurvivalToolkit/gizmos/NST_ScaleMatrix4.gizmo",
"chars": 1330,
"preview": "Group {\n name ScaleMatrix4_\n help \"Scale a matrix4 using a control channel (rgb from vector input) for which each channe"
}
]
// ... and 173 more files (download for full content)
About this extraction
This page contains the full source code of the CreativeLyons/NukeSurvivalToolkit_publicRelease GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 373 files (8.4 MB), approximately 2.2M tokens, and a symbol index with 133 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.