Katana provides APIs for creating plugins. There are numerous types, but the most commonly-needed plugins are to create scene graph locations (Ops, or the deprecated ScenegraphGenerator plugins), inspect the scene graph (ScenegraphIterator plugins), modify attributes (Ops, or the deprecated AttributeModifier plugins), and provide asset system support (Asset plugins). Katana ships with an Alembic plugin, and so it should be immediately useful. Solid Angle has written a simple OBJ ScenegraphGenerator plugin as a way to expand some basic compatibility with other packages for internal testing. Katana also ships with some example plugins for asset management, etc. Many studios use common geometry formats, but many also have their own geometry cache formats that will require Op or ScenegraphGenerator plugins to be written for Katana, or else switch to Alembic to take advantage of the standard.
PrimitiveCreate node can also generate various types of geometry that you can use to get started. If you want to have some fun, let Katana set up an interesting one for you by going to the python tab, and type exactly "i want a pony" without the quotes into the bottom text entry, select the text and hit ctrl+enter. Try it, as it will help you get familiar with the
KtoA comes with additional nodes that help create common scene setups, such as ArnoldOpenVDBVolume and ArnoldYeti. Volumes and renderer procedurals can be created manually, but the user must carefully craft these setups to get the attributes set properly.
node: where actions take place modifying the scene in some way, and each node can touch any part of the scene; e.g.,
CameraCreate, Merge, MaterialAssign, etc.
node graph: all of the nodes taken together, connected to each other to direct the flow and order of changes in the scene.
parameter: a piece of data on a node telling the node how to operate; parameters may be organized hierarchically inside of a node; e.g., intensity assigned to a light that is being created, a CEL expression saying what scene graph locations to touch, etc.
scene graph: all of the scene graph locations together, organized hierarchically, with special categories for cameras, geometry, lights, materials and procedurals.
scene graph location: a particular point in the scene graph that has a name, type, and various other attributes, which by convention will have a minimal set of attributes that match the type; e.g.,
polymesh, subdmesh, light, camera, group, material, etc.
attribute: a piece of data on a scene graph location; attributes are organized hierarchically within the location, and may be arrays of substantial amounts of data, e.g.,
material (assigned material), P (vertex positions), N (surface normals), etc.
CEL: a pattern that matches locations in the scene graph; this is used by nodes to decide what parts of the scene graph to operate on.
monitor: the area displaying the results of renders.
viewer: the area displaying a simple preview of the geometric data requested by the user.
args file: an XML file describing how to present node parameters to the user.
procedural: for renderers, this is a program/script that can be run during render time to load more data (so not all data is required to be given up-front). Katana itself interacts with renderers by inserting a Katana procedural into the render, but other procedurals can be inserted by Katana such as a hair instantiation procedural, a crowd instancer, a custom geometry format procedural, etc.
op: an operation on a location in the scene graph; these are usually what actually does the work for nodes in the node graph.