Katana Developer Guide ====================== **Welcome to the Katana Developer Guide!** This collection of pages aims to provide you with an API reference, examples, and guidelines for developing scripts and plug-ins for Katana using Python, Lua, and C++. You can learn how to automate and customize workflows, processes, and the user interface, and how to integrate Katana with your pipeline. If you're new to Katana, you may want to have a look at the `Glossary of Katana Terms `_ first, to familiarize yourself with Katana-specific terminology. We hope you'll find what you're looking for. If you have any questions, you can reach out to us via our `Support `_ website, the `Foundry Community `_ forums, or you can head over to the independently-hosted `Katana Community `_ Discord server. Katana in a Nutshell -------------------- Katana is a node-based application, and provides a *recipe*-based approach to look development and lighting. Katana project files store the descriptions of *nodes* and their *parameters* and *ports*, which are connected to form *node graphs*. Katana node graphs are *synced* to create and configure graphs of operators (*Ops*) and their arguments (*Op Args*). Ops are *cooked* using Katana's *Geolib* to create *locations* and *attributes* of 3D scenes in a *scene graph*, ready for viewing and rendering. In the end, *It's all just a bunch of Attributes*. .. toctree:: :caption: Application :maxdepth: 1 CEL AttributeConventions/index EnvironmentVariables ArgsFiles/index ExternalSoftware Licenses/index .. toctree:: :caption: Parameter Expressions :maxdepth: 1 Overview ParameterExpressions/PythonExpressions ParameterExpressions/ReferenceExpressions .. toctree:: :caption: Scripting in Katana :maxdepth: 1 Scripting/WorkingWithProjects Scripting/WorkingWithNodes/index Scripting/CustomizingNodeTypes/index Scripting/CustomizingUserInterface/index Scripting/RenderingAScene/index Scripting/CookingAScene/index Scripting/CallbacksAndEvents .. toctree:: :caption: Ops and OpScript :maxdepth: 1 OpsAndOpScript/AssetAPI/index OpsAndOpScript/Attributes/index OpsAndOpScript/AttributeFunctions/index OpsAndOpScript/BuiltinOpTypes.rst OpsAndOpScript/Configuration/index OpsAndOpScript/CookInterface/index OpsAndOpScript/CookInterfaceUtilities/index OpsAndOpScript/Hints/index OpsAndOpScript/LookFiles/index OpsAndOpScript/MaterialResolve/index OpsAndOpScript/OpArgsBuilders/index OpsAndOpScript/Paths/index OpsAndOpScript/Resolutions/index OpsAndOpScript/Transformations/index OpsAndOpScript/ExpressionMath/index OpsAndOpScript/Imath/index OpsAndOpScript/Pystring/index OpsAndOpScript/OpWrite.rst .. toctree:: :caption: Writing Plug-ins :maxdepth: 1 Plugins/PluginSystem.rst Plugins/Compatibility.rst Plugins/Asset/index Plugins/DisplayDriver Plugins/Renderer/index Plugins/DefaultAttributeProducer Plugins/Utilities/index Plugins/Viewer/index Plugins/HydraRenderDelegates/index Plugins/KatanaUSDPlugins/index Plugins/LookFileBakeAPI.rst Plugins/MaterialSolo.rst Plugins/FarmAPI.rst .. toctree:: :caption: Performance :maxdepth: 1 Performance/ProfileResults.rst .. toctree:: :caption: Performance Optimization Guide :maxdepth: 1 PerformanceOptimizationGuide/StartHere.rst PerformanceOptimizationGuide/NodeGraph.rst PerformanceOptimizationGuide/Ops.rst PerformanceOptimizationGuide/Concurrency.rst PerformanceOptimizationGuide/OpScript.rst .. toctree:: :caption: USD Processing Engine :maxdepth: 1 UsdProcessingEngine/API.rst UsdProcessingEngine/APIUsage.rst UsdProcessingEngine/UsgPythonAPI.rst UsdProcessingEngine/UsdPythonWrite.rst .. toctree:: :caption: API Reference :maxdepth: 1 cpp-index * `Python Module Index `__ * `Lua Module Index `__