Lua API (Version 2026.2)

Modules Overview

modulesProvides functionality to access Octane external modules.
rendercloudmanagerProvides functionality for interacting with cloud rendering services.
matrixProvides functionality for operations on 3x4 matrices. 3x4 matrices are stored in row-major order as a table of 3 rows, specified as 4-arrays each.
vecProvides functionality for operations on 3D vectors. 3D vectors are stored and handled as 3D arrays.
utilProvides various handy utility functions.
jsonRead and write JSON
octaneGlobal module that contains the Lua API for OctaneRender.
livedbLive DB API
settingsgroupDefine a group of settings which can be shown and edited in a dialog window.
projectFunctionality to manage Octane projects. Scripted graphs loaded as part of a project will always return properties from the project which is being loaded. When importing a node graph into the current project, the referenced project will still be the current project
geometryexporterThis module allows you to construct exporters which can write animated geometry to an Alembic file.
fileProvides portable file system functionality.
packageProvides a way to inspect assets in a package.
storageThis module gives access to permanent storage of settings and data. Depending on how a script is run it may contain one or more tables whose content is persistent between subsequent executions of a script. To have persistent storage available the script must declare a script id in the header as follows: -- @script-id The script ID can be any text string, but it should be unlikely that other scripts use the same ID. The data types which can be stored permanently in these tables are the following: Keys can be numbers and strings; values can be numbers, booleans, strings and tables. Tables stored as values are subject to the same limitations.
packagefileA packagefile references a file inside a package which is opened for reading. It has the same interface as the objects returned by io.open().
scriptgraphThis module contains functions specific to scripted node graphs. It is only available to the scripts embedded in such graphs. A script in a scripted graph must return a Lua table. The scripted graph keeps a reference to this table until the graph is destroyed, or until it loads a new script. The table may contain callback functions to update the node graph contents in response to changes in the inputs of the graph. You define callbacks by putting a function with the name of the callback in the returned table. The API will assign a meta table referencing this module to the returned table, so in the callbacks you can use the short form self:someFunction(...) to call functions in this module. The API will also put additional values into the returned table. To ensure future updates won't break your script, you should not use the following keys for your own purposes: - any key starting with "on", followed by a capital letter (reserved for callbacks); - any key starting with an underscore "_" (the API may overwrite those). A couple of functions take pin infos. You can define a pin info in two ways: - Specify the type directly: The "type" (pin type ID) and "label" (string) keys are required. Pin infos can be customized by setting properties as described in PROPS_BOOL_PIN_INFO, PROPS_ENUM_PIN_INFO, PROPS_FLOAT_PIN_INFO, PROPS_INT_PIN_INFO, PROPS_STRING_PIN_INFO, PROPS_TEXTURE_PIN_INFO, PROPS_TRANSFORM_PIN_INFO. - Use an info of an existing node: "label" (string), "fromNodeType" (node type ID) and "fromPinId" (pin ID) keys are required. This is an example script showing the basic concepts: local MyGraphScript = {} -- variables declared in the script scope are visible for all functions in our -- script for as long as the scripted graph is not deleted or reloaded (in -- programming terms, our two functions become "closures"). local inputs, tex -- onInit function, this is called once in the beginning. function MyGraphScript.onInit(self, graph) -- input and output infos local inputInfos = { {type=octane.PT_TEXTURE, label="RGB", defaultNodeType=octane.NT_TEX_RGB} } local outputInfos = { {type=octane.PT_TEXTURE, label="RGB"} } -- use these functions to set up input and output linkers. This will keep -- existing linkers so existing connections in the parent graph are kept. inputs = graph:setInputLinkers(inputInfos) local outputs = graph:setOutputLinkers(outputInfos) -- set up a node to give the graph some output value tex = octane.node.create{ type=octane.NT_TEX_RGB, name="color", graphOwner=graph } outputs[1]:connectTo("input", tex) end -- this function is called every time the value of an input linker changes function MyGraphScript.onEvaluate(self, graph) -- the scriptgraph object has a special function to read input values local rgb = self:getInputValue(inputs[1]) -- set some output value. (for example, rotate the RGB channels) tex:setAttribute("value", {rgb[3], rgb[1], rgb[2]}) end -- default name MyGraphScript._name = "Example" -- In lua, a script is run as if the script defines a function body, so -- like in a function you may return a value return MyGraphScript
nodegraphProvides functionality to manipulate Octane's node graphs.
helpProvides help functionality while developing Lua scripts for Octane.
changemanagerProvides functionality to listen to changes in Octane's node system or force an update after making a set of changes. An observer can be used to observe either item changes or time changes. The observer must be in scope to receive the events. Example usage: -- Create a new observer. myObserver = createObserver({itemChangeCallback = myCallback}). -- Start observing an item. octane.changemanager.observeItem(item, myObserver, eventMask) -- Observe a second item, using the same callback. octane.changemanager.observeItem(otherItem, myObserver, eventMask) -- Stop observing a particular item. octane.changemanager.stopItemObserver(myObserver, item) -- Stop observing all items. octane.changemanager.stopItemObserver(myObserver)
nodeProvides functionality to manipulate Octane's node system.
apimaterialxProvides functionality relating to MaterialX support in Octane and for integrations
imageProvides functionality to create and manipulate images.
cachesFunction to interact with the Octane file caches, e.g. the meshlet cache.
guiProvides functionality to create user interfaces on top of Octane. This module cannot be used by scripted graphs.
apiinfoProvides functionality to get information about the API.
mt1993732-bit Mersenne Twister 19937 pseudo-random number generator functions. Use this for a consistent cross-platform engine instead of the built-in math.random()..
OverviewThere are currently 3 ways to write Lua code in OctaneRender: In a Lua script, in a Lua script graph and in a render job graph. You will find more details about those below. In general, you can use all functionality of the Lua language (OctaneRender uses currently version 5.3) as well as additional functions provided by OctaneRender to interact with Octane, the project and rendering. The Lua documentation portal can be found under the URL: https://www.lua.org/docs.html And the Lua 5.3 reference manual can be found here: https://www.lua.org/manual/5.3 The Lua API of OctaneRender is documented in the Lua API browser (which you are using right now). Another source of information are the Lua scripts and render jobs distributed with the Standalone. And last but not least you can find a lot of valuable information and exisiting scripts on our dedicated Lua scripting forum: https://render.otoy.com/forum/viewforum.php?f=73 === LUA SCRIPTS === Lua scripts can be either written directly in the Lua script editor and run from there. Or you create a file with suffix .lua in the Lua script directory that is set in the application preferences. All scripts in that directory will appear in the script menu. To run a Lua script you either select it from the script menu or you select it in the Lua script editor and click on the run button. Alternatively you can assign a keyboard shortcut via the metadata section (see below) and run the script this way. === LUA SCRIPT GRAPHS === Lua script graphs allow you to add new functionality to the node system of OctaneRender. Examples would be a script graph that allows you to switch between multiple inputs or a script graph that moves a camera along a circle. Fundamentally a Lua script graph consists of a special node graph with an assigned Lua script. This script can then create inputs and outputs of the node graph and any other node items it needs. Then whenever the time or its inputs are changed it can update the content of the node graph. For more information about writing a Lua script graph please read the documentation of the module "scriptgraph" in the Lua API browser. To create a new Lua script graph, select "Other" -> "Scripted graph" in the item dropdown menu of the node graph editor. Then start writing the Lua code. To reuse finished Lua script graphs you can either export it into a ORBX package or store it in the Local DB. Alternatively, you can add a defined category in the metadata (see below) of the Lua script and save the Lua script in the Lua script directory. After re-scanning the folder, the Lua script graph will appear as an option in the new item context menu. === RENDER JOB GRAPHS === Render job graphs are a Lua script graphs with additional callbacks so that they can be integrated into the render job render flow. For more information please consult the documentation of the module "renderjobgraph" or check out the examples we distribute with the Standalone. === METADATA === In the header of a Lua script you can define additional metadata to help the user and allow a better integration of the Lua script in the OctaneRender user interface. These are the possible fields you can define: @author - Author(s) of the script. @description - Short description of the script and what it does. @version - Version of the script. @script-id - A string unique to this script, used to identify stored script settings and data. See storage module for more details. Not valid for Lua script graphs and render job graphs. @shortcut - Shortcut key to execute the script. The shortcut should specify a key plus an optional modifier, e.g "ALT + S". The list of assigned shortcuts can be found in tab "Shortcuts" of the OctaneRender application preferences. Not valid for Lua script graphs and render job graphs. @node-registry-category - Category under which a Lua script graph registers in the node registry. Must start with "|" followed by any categories and the name under which the script graph should appear in the node graph context menu. For example, "|My script graphs|Awesome graphs|Make movie" will appear in the category "My script graphs" -> "Awesome graphs" with the menu entry "Make movie". Valid only for Lua script graphs.
timerCall functions after certain time-outs. Timers can't run while other Lua code is running. Setting a timer is meaningful in these situations: - standalone scripts can receive timer events during blocking function calls (such as octane.render.start or window:showWindow()); - scripted graphs can receive timer events between onEvaluate calls.
renderjobgraphThe render job graph is a special type of script graph, with additional features to support us with the render functions(Eg: Batch render). The main purpose of this render job will be that the render settings can be saved with the project. The render job graph will also allow us with additional options like creating multiple render job nodes for different settings Batch render job, Daylight animation job, Turntable animation job scripts are shipped with OctaneRender. These render job graphs can be created from the node graph editor context menu. Script: Please read the script graph to find out, how to use Lua script in the script graph. The attributes of the render job graph listed under GT_RENDER_JOB, this can be viewed in the items window. Two important attributes of the render job graph are described below. 1. A_TOTAL_FRAMES (write) : The script has to specify a total number of the frames exists in this render job. The number should be grand total count of all the render target animation frames (ie if animation frames = 30 and input render target count is 3 then total frames for this render job is 90) Eg: graph:setAttribute(octane.A_TOTAL_FRAMES, 90) 2. A_OUTPUT_DIRECTORY (read) : Location on the disk where we need to save the rendered files. This is set from the render job user interface. Eg: graph:getAttribute(octane.A_OUTPUT_DIRECTORY) Additional callbacks: In addition to the script graph OnInit(), onEvaluate(), OnShutdown(), this render job graph has four additional callback functions. onIterate, onSaveRenderedFrame, onStartIteration, onFinishIteration For detailed description, please click on the callbacks names listed in the members window
renderProvides functionality to do rendering: configuring render devices (GPUs), modifying the clay mode, starting and stopping the render engine and saving render results as images to disk.
gridlayoutArranges its child components into a resizable grid layout. The grid itself is not visible. The grid arranges cells in rows or columns. Cells can be empty or components can occupy multiple grid cells. Cells can also contain nested grids. The grid can stretch beyond its initial size but it cannot shrink beyond its initial size. You should setup the grid with the minimum initial size of the components. A grid layout can only be added to a window via the gridLayout property. Here's a usage example of the grid layout: local layout = octane.gridlayout.create() layout:startSetup() local row = 1 local title = octane.gui.create{ type=octane.componentType.TITLE_COMPONENT, text="Settings" } layout:add(title, 1, row) row = row + 1 local button1 = octane.gui.create{ type=octane.componentType.BUTTON, text="First button" } layout:add(button1, 1, row) row = row + 1 local button2 = octane.gui.create{ type=octane.componentType.BUTTON, text="Second button" } layout:add(button2, 1, row) row = row + 1 layout:setElasticityForAllRows(0) layout:endSetup() local window = octane.gui.create { type = octane.gui.componentType.WINDOW, text = "Grid layout", gridLayout = layout, -- grid is resized to fit the window width = 480, height = 640, } window:showWindow()
commonProvides common functionality used everywhere in scripts.

Module modules

Provides functionality to access Octane external modules.

Functions

octane.modules.getCommandModulesReturns a table with the IDs of available external command modules.
octane.modules.getDirectoryReturns the current directory from where Octane loads external modules.
octane.modules.getModuleInfoReturns module information for the passed module Id.
octane.modules.getNodegraphModulesReturns a table with the IDs of available external node graph modules.
octane.modules.runCommandModuleExecute a command module
octane.modules.setDirectoryA directory from which modules will be loaded. The alternate method is to get the application preferences node and set the path in the A_MODULES_DIRECTORY attribute. NOTE: Modules are only loaded during application start. If a new path is set you will have to restart Octane in order to load the new modules.

Properties

octane.modules.PROPS_MODULE_INFOProperties of an Octane module.

Module rendercloudmanager

Provides functionality for interacting with cloud rendering services.

Functions

octane.rendercloudmanager.newRenderTaskOpens a Web UI for creating a new render task. Has no effect if no user is currently logged in.
octane.rendercloudmanager.uploadCurrentProjectUploads the current project to the server. The project name on the server will be the name of the root node graph of the project. Has no effect if no user is currently logged in. If passing in a function to missingFileCallback, the signature is: proceed = onUpdateCallback(percent) - percent (number): current upload percent from 0 to 100; - proceed (bool): whether the upload must continue after the callback returns.
octane.rendercloudmanager.uploadRootNodeGraphUploads a root node graph together with the current project settings to the server. The project name on the server will be the name of the root node graph of the project. Has no effect if no user is currently logged in. If passing in a function to missingFileCallback, the signature is: proceed = onUpdateCallback(percent) - percent (number): current upload percentage from 0 to 100; - proceed (bool): whether the upload must continue after the callback returns.
octane.rendercloudmanager.userSubscriptionInfoPopulates the provided table with the information for the current user's subscription.

Properties

octane.rendercloudmanager.PROPS_RENDER_CLOUD_UPLOAD_RESULTSUpload results returned by octane.rendercloudmanager.uploadCurrentProject and octane.rendercloudmanager.uploadRootNodeGraph.
octane.rendercloudmanager.PROPS_RENDER_CLOUD_USER_SUBSCRIPTION_INFO_RESULTSData provided by the server about the current user's subscription status.

Module matrix

Provides functionality for operations on 3x4 matrices. 3x4 matrices are stored in row-major order as a table of 3 rows, specified as 4-arrays each.

Functions

octane.matrix.addReturns the sum of 2 matrices.
octane.matrix.divScalarDivides each element of the matrix with the scalar value.
octane.matrix.getIdentityReturns the identity matrix.
octane.matrix.inverseReturns the inverse of the matrix.
octane.matrix.isSingularCheck if this matrix is singular.
octane.matrix.lerpInterpolates the values of the matrices with the weight t. (e.g Rij = (1 - t ) * Aij + t * Bij)
octane.matrix.make2dTransformationCreates a 2d transformation matrix.
octane.matrix.make3dTransformationCreates a 3d transformation matrix.
octane.matrix.makeRotXCreates a rotation matrix of a rotation around the X axis.
octane.matrix.makeRotYCreates a rotation matrix of a rotation around the Y axis.
octane.matrix.makeRotZCreates a rotation matrix of a rotation around the Z axis.
octane.matrix.makeRotationCreates a rotation matrix for Euler angles.
octane.matrix.makeScaleCreates a scale matrix.
octane.matrix.makeTranslationCreates a translation matrix.
octane.matrix.mulReturns the product of 2 matrices.
octane.matrix.mulPReturns the product of a matrix and a vec, applying translation to the vec.
octane.matrix.mulScalarMultiplies each element of the matrix with the scalar value.
octane.matrix.mulVReturns the product of a matrix and a vec, not applying translation to the vec.
octane.matrix.scaleApplies a scale to the matrix.
octane.matrix.splitConverts a matrix into rotation/scale/translation. Only orthogonal matrices can be represented (more or less) exactly by these 3 vectors. If the matrix is not orthogonal, we try to make a best guess, depending on the rotation order: We will keep the axis of the rightmost rotation operation and the plane of the axis' of the leftmost and the rightmost rotation operations, e.g.: If the rotation order is ROT_XYZ, we keep the Z axis and the X and Z axis' stay in their original plane.
octane.matrix.subReturns the difference of 2 matrices.
octane.matrix.translateApplies a translation to the matrix.
octane.matrix.transposeReturns the transpose of the matrix.

Constants

octane.matrix.rotationOrderRotation orders for matrix rotations. The rotationsare interpreted as intrinsic rotations, i.e. subsequent rotations happen in the rotated coordinate system.

Module vec

Provides functionality for operations on 3D vectors. 3D vectors are stored and handled as 3D arrays.

Functions

octane.vec.addReturns the sum of 2 vectors.
octane.vec.crossReturns the cross product of 2 vectors.
octane.vec.dotReturns the dot product of 2 vectors.
octane.vec.lengthReturns the length of a vector.
octane.vec.lerpInterpolates the values of the vectors with the weight t. (e.g result.x = (1 - t ) * v.x + t * w.x)
octane.vec.normalizedReturns a normalized vector.
octane.vec.rotateRotates a vector around an axis. (The axis must be normalized.)
octane.vec.scaleReturns a vector multiplied with a scalar.
octane.vec.subReturns the difference of 2 vectors.

Module util

Provides various handy utility functions.

Functions

octane.util.boxPointerBoxes a pointer from LuaJIT. The pointer will be boxed in a light user data. The way to to this is pass in the results of tonumber(ffi.cast('intptr_t', ffi.cast('void*', ptr))).
octane.util.crashMe
octane.util.floatRangeReturns a range for float inputs. If any of the inputs is nil it is substituted with respectively a large negative or large positive value which is normally the default for a pin range.
octane.util.generateUidGenerates a 16 byte unique identifier.
octane.util.getCurrentMillisReturns the elapse milliseconds since a fixed event (the semantics of the fixed event is system dependent -- usually this is system startup). The accuracy of this timer is system dependent.
octane.util.intRangeReturns a range for integer inputs. If any of the inputs is nil it is substituted with respectively a large negative or large positive value which is normally the default for a pin range.
octane.util.updateFlagUpdates a runtime flag with the provided value.

Properties

octane.util.PROPS_C_ARRAYTable wrapping a C-Array.

Module json

Read and write JSON

Functions

octane.json.decodeParse a JSON string Limitations: - Lua uses the same representation for empty objects and empty arrays. - Lua does not represent nil values in tables. Such key/value pairs will be lost. - Due to the above, if an array contains null elements, the resulting Lua table will not be a sequence.
octane.json.encodeSerialize a Lua value to a JSON string

Module octane

Global module that contains the Lua API for OctaneRender.

Functions

Constants

octane.octane.analyticLightTypeThe type of analytic lights.
octane.octane.animationTimeTransformTypeThe type of the time transform
octane.octane.animationTypeType of animation used
octane.octane.asPixelGroupModeAdaptive Sampling mode for grouping nearest pixels
octane.octane.attributeIdIDs for attributes available.
octane.octane.attributeTypeTypes of attributes available.
octane.octane.bakingTextureTypeTexture type for baking texture nodes.
octane.octane.binaryOperationBinary math operations for nodes NT_TEX_MATH_BINARY and NT_FLOAT_MATH_BINARY.
octane.octane.blendModeBlend modes for composite textures and composite AOVs.
octane.octane.blendRegionMaskFlags to control which parts of a background and foreground image to include when blending two images together.
octane.octane.borderModeThe different border modes supported by the image texture nodes. The value is set by the enum pins P_BORDER_MODE_U and P_BORDER_MODE_V.
octane.octane.brdfModelTODO: to be removed
octane.octane.builtinGraphIdBuiltin graph IDs.
octane.octane.bxDFDiffuseModelDiffuse BxDF models supported by Octane
octane.octane.bxDFSheenModelSheen BxDF models supported by Octane
octane.octane.bxDFSpecularModelSpecular BxDF models supported by Octane
octane.octane.bxDFTranmissionTypeBxDF transmission types
octane.octane.bxDFUniversalModelBxDF selection by Universal Material
octane.octane.cacheStatusDescribes the status of a file cache
octane.octane.changeEventTypeThe various node system event we have. For events, exactly one of these flags will be set.
octane.octane.channelGroups
octane.octane.channelMappingThe channel mappings supported by NT_TEX_IMAGE_ADJUSTMENT.
octane.octane.channelsDescribes how an image should be loaded.
octane.octane.cinema4dNoiseTypeTypes of Cinema4D noise
octane.octane.clayModeThe different clay modes we currerntly support.
octane.octane.colorChannelTypeColor channel types used for channel selection.
octane.octane.colorPickerBoxDisplayDisplay in the color box
octane.octane.colorPickerSpaceColor space used for color picking. Used in the application preferences.
octane.octane.colorSpaceConversionColor space conversions. Different subsets are supported by NT_TEX_COLOR_SPACE_CONVERSION, NT_TEX_CHANNEL_MERGE, and NT_TEX_CHANNEL_PICK.
octane.octane.colorSpaceCurveTypeCurve types that different color spaces can have. This does not fully specify the exact transfer function, but gives an indication as to the general purpose of curve.
octane.octane.comparisonOperationComparison operations supported by the Comparison texture node (NT_TEX_COMPARE), Comparison composite texture layer (NT_TEX_COMPOSITE_LAYER_COMPARISON), and value nodes NT_{FLOAT,INT}_RELATIONAL_OPERATOR.
octane.octane.compilationResultResult of compiling code
octane.octane.componentPickerOperationComponent picker operation types supported by NT_{FLOAT,INT}_COMPONENT_PICKER.
octane.octane.componentTypeGUI widget types.
octane.octane.compositeAlphaOperationTypes of alpha operation available for composite system.
octane.octane.compositeOperationThe Porter-Duff composite operations with some additional variations.
octane.octane.coordinateAxisCoordinate system axes used by NT_TEX_WAVE_PATTERN.
octane.octane.coordinateSystemCoordinate spaces used by NT_TEX_POSITION, NT_TEX_RAY_DIRECTION and NT_TEX_NORMAL.
octane.octane.cryptomatteTypeTypes of cryptomatte we can render.
octane.octane.curvatureModesThe mode for the various curvature components used in curvature texture node
octane.octane.customAovIDs we use to identify custom AOVs.
octane.octane.customAovChannelThe custom AOV channel we can write to.
octane.octane.customAovSecondaryRayVisibilityThe options we have for secondary rays.
octane.octane.customCurveModeThe different ways we can apply a custom curve to an RGB color.
octane.octane.daylightModelThe different models we support in the daylight environment node. The value is set by the enum pin P_MODEL.
octane.octane.decalTextureIndex
octane.octane.denoiserQualitySupported denoiser quality settings. These are currently only used with the Open Image Denoise library.
octane.octane.denoiserType
octane.octane.dialogIconTypeIcon types for dialogs.
octane.octane.dialogTypeDialog types.
octane.octane.directLightModeGlobal illumination modes of the direct lighting kernel.
octane.octane.dispersionModelDispersion models
octane.octane.displacementDirectionThe direction used to displace the surface
octane.octane.displacementLodThe levels of details we currently support in displacement mapping.
octane.octane.displacementMapTypeVertex displacement texture type
octane.octane.displacementQualityQuality of the displacement mapping. Normal corresponds to the legacy displacement.
octane.octane.displacementTextureAxesVertex displacement map axes
octane.octane.displacementTextureSpaceVertex displacement texture space
octane.octane.distanceModeDistance mode used by NT_TEX_RELATIVE_DISTANCE.
octane.octane.eventTypeGUI event types.
octane.octane.expandContractRgbModeRGB mode used by NT_OUTPUT_AOV_LAYER_EXPAND_CONTRACT. This determines how to how to treat the RGB channels (the alpha channel is always treated as a mask).
octane.octane.exportAovsTypeThe types of render passes export.
octane.octane.exportStateStates a scene export can be.
octane.octane.exrCompressionTypeCompression type for OpenEXR file export.
octane.octane.falloffTextureModeThe various modes we support in the falloff texture.
octane.octane.filterTypeSupported filter types
octane.octane.fractalNoiseModeThe noise modes for NT_TEX_FRACTAL_NOISE.
octane.octane.gaussianSplatClipModeThe way Gaussian splat clouds are clipped
octane.octane.gaussianSplatLightingModeThe way Gaussian splats interact with lights
octane.octane.geometryExportFormatExport formats we support
octane.octane.geometryImportObjectLayersSpecifies how objects in a mesh node should be treated on import. value is set in the A_GEOIMP_OBJECT_LAYER_IMPORT attribute of the NT_GEO_MESH node.
octane.octane.geometryImportScaleThe various units we support during the geometry import. It's basically the unit used during the export of the geometry. Used in the import preference attribute A_GEOIMP_SCALE_UNIT_TYPE.
octane.octane.globalLightIdMaskActionAvailable actions on the global light IDs mask.
octane.octane.globalTexAvoIDs we use to identify global texture AOVs.
octane.octane.gradientGeneratorTypeGradient types supported by the 'Gradient generator' texture node (NT_TEX_GRADIENT_GENERATOR).
octane.octane.gradientInterpColorSpaceGradient interpolation color spaces that we support.
octane.octane.gradientInterpTypeGradient interpolation methods that we support.
octane.octane.graphTypeTypes of node graphs available.
octane.octane.hairInterpolationTypeHair gradient interpolation types. These specify how the hair segment W coordinates are calculated to fetch the actual value in the gradient texture.
octane.octane.hairMaterialBaseColorModeHair material base color modes.
octane.octane.iesPhotometryModeIES photometry modes
octane.octane.imageChannelTypeImage channel types.
octane.octane.imageColorTypeImage color types.
octane.octane.imageFilterTypeFilter types to use when resampling an image.
octane.octane.imageMaskSourceWays to get a mask value from an RGBA color in the output AOV compositor and composite texture.
octane.octane.imageSaveFormatThe supported image file formats for saving render results.
octane.octane.imageSaveType@deprecated Use ImageSaveFormat and/or NamedColorSpace instead.
octane.octane.imageTypeThe various image types we support in the image texture node. Used in the image texture node attribute A_TYPE.
octane.octane.importRestAttributesModeWays to import the rest attributes for fbx and alembic files
octane.octane.infoChannelSamplingModeModes for deciding whether or not to do pixel filtering for most info passes.
octane.octane.infoChannelTypeThe types of data the info channels kernel can render
octane.octane.inputActionInput actions for nodes with attribute A_INPUT_ACTION. The attribute is of type AT_INT2. The first component identifies the action and the second the index of the movable input which specifies the input (position) this action should be applied to. Be aware that a movable input can consist of multiple pins. The number can be fetched from @ref ApiNodeInfo::mMovableInputPinCount.
octane.octane.interpolationTypeInterpolation types for NT_TEX_RANGE and NT_FLOAT_RANGE.
octane.octane.itemDbOriginAll the places that a DB item can come from.
octane.octane.lightAovIDs to identify light AOVs.
octane.octane.lightPassMaskThe flags used in emission masks.
octane.octane.lightSamplerThe types of light sampler we use for rendering
octane.octane.liveDbThumbnailViewThe available views for thumbnails of liveDB material and texture macros.
octane.octane.logicalOperatorLogical operators supported by NT_BOOL_LOGIC_OPERATOR.
octane.octane.luaScriptTypeType of the script
octane.octane.memoryLocationMemory locations of the resources
octane.octane.metallicReflectionModeSpecify how to calculate the reflectance on metallic materials
octane.octane.modifierKeyList of possible modifier keys.
octane.octane.moduleTypeThe different module types supported in the standalone.
octane.octane.moireMosaicShapeThe shapes supported by NT_TEX_MOIRE_MOSAIC.
octane.octane.mouseButtonAll the different buttons on a mouse.
octane.octane.movableInputFormatThe different pin structures that can be moved between nodes that have movable inputs. Movable inputs can be moved from one node to another if and only if both nodes have the same movable input format.
octane.octane.namedColorSpaceSpecific color spaces that Octane knows about.
octane.octane.nodeTypeTypes of nodes available.
octane.octane.noiseTypeTypes of noise used by the noise texture node (NT_TEX_NOISE)
octane.octane.noiseTypeOslNoise types defined in OSL and used by the random map texture (NT_TEX_RANDOM_MAP)
octane.octane.normalTypeNormal types used by the Normal texture node (NT_TEX_NORMAL).
octane.octane.objImportColorSpaceThe RGB color space that should be used during the import of MTL files. Used in the OBJ import preference attribute A_OBJIMP_COLOR_SPACE.
octane.octane.objectIncludeModeThe include object mode for various texture nodes
octane.octane.octaneLiveCategoryCategories available in the liveDB.
octane.octane.outputColorSpaceTypeOutput color space specification types.
octane.octane.panoramicCameraModeThe different modes we currently support in the panoramic camera. The value is set in the pin P_CAMERA_MODE of the node NT_CAM_PANORAMIC.
octane.octane.pinIdIDs for input pins available.
octane.octane.pinTypeTypes of node input pins available.
octane.octane.positionTypeChoose between global space or object space addressing for textures.
octane.octane.prePassTypePre-pass types (for works before integration).
octane.octane.preferencesTabIdIDs of the tabs in the preferences window.
octane.octane.premultipliedAlphaTypeTypes of premultiplied alpha in a rendered image.
octane.octane.previewTypeShape used for texture/material preview mode.
octane.octane.primitiveTypeThe primitive types we know about outside of the render core.
octane.octane.proceduralEffectTypeThe types of procedural effects supported by NT_TEX_PROCEDURAL_EFFECTS.
octane.octane.referenceAABBDisplayWhen the AABB should be displayed in the reference graph
octane.octane.renderDeviceStateState of a discrete render device.
octane.octane.renderErrorThe different error types we may report from render threads.
octane.octane.renderJobActionRender job action.
octane.octane.renderJobStatusRender job status.
octane.octane.renderLayerModeThe render layer render modes we currently support.
octane.octane.renderPassGroupIdRender pass groups
octane.octane.renderPassIdIds for the render passes available in Octane.
octane.octane.renderStateThe state the render target can be in.
octane.octane.resourceCategoryCategories of a resource allocation
octane.octane.responseCurveIdAll film response curves currently supported.
octane.octane.roundEdgesModeRound edges modes.
octane.octane.roundingModeRounding modes supported by NT_FLOAT_TO_INT.
octane.octane.samplerTypeThe sampler types we currently provide.
octane.octane.scatterSurfaceHairModeScatter modes supported for scattering on hairs in the Scatter on surface node.
octane.octane.scatterSurfaceOrientationPriorityOrientation priority used for orienting scattered instances on a surface when their up and front vectors are not orthogonal.
octane.octane.scatterSurfaceParticleModeScatter modes supported for scattering on particles in the Scatter on surface node.
octane.octane.scatterSurfacePolygonModeScatter modes supported for scattering on polygons in the Scatter on surface node.
octane.octane.scatterSurfaceReferenceTypeType of reference data used to orient instances up or front vectors when scattering on a surface.
octane.octane.scatterSurfaceSelectionModeSelection strategy used when scattering multiple source objects on a surface.
octane.octane.scatterSurfaceTransformTypeType of transform applied to instances scattered on surfaces.
octane.octane.scatterVolumeOrientationPriorityOrientation priority used for orienting scattered instances when their up and front vectors are not orthogonal.
octane.octane.scatterVolumeReferenceTypeType of reference data used to orient instances up or front vectors when scattering.
octane.octane.scatterVolumeSelectionModeSelection strategy used when scattering multiple source objects in a volume.
octane.octane.scatterVolumeShapeShaping function used to sculpt the dense grid of instances for scatter in volume.
octane.octane.scatterVolumeTransformTypeType of transform applied to instances scattered on surfaces.
octane.octane.scriptExecuteTypeChoose what to execute in a scripted graph
octane.octane.scrollWheelActionBehaviour of the mouse's scroll wheel.
octane.octane.sharedSurfaceTypeType of a graphics API surface shared with Octane for input/output.
octane.octane.shutterIntervalAlignmentHow to align the shutter interval to the current time stamp
octane.octane.shutterTimeDisplayDisplay mode of shutter time
octane.octane.simulatedLensSimulated lenses
octane.octane.spotlightOrientationSettings for spotlight orientation
octane.octane.stereoModeDifferent stereo rendering modes we support for the thinlens camera.
octane.octane.stereoOutputThe output for stereo rendering.
octane.octane.subDivFVarInterpolateBoundaryFace-varying interpolation rules used by the openSubdiv library. see http://graphics.pixar.com/opensubdiv/docs/subdivision_surfaces.html#face-varying-interpolation-rules The weird mapping of SubDivInterpolateBoundary values is a consequence of the different handling between openSubdiv 2.x and 3.x see http://graphics.pixar.com/opensubdiv/docs/compatibility.html#compatibility-with-opensubdiv-2-x
octane.octane.subDivInterpolateBoundaryPer-vertex interpolation rules used by the openSubdiv library. see http://graphics.pixar.com/opensubdiv/docs/subdivision_surfaces.html#boundary-interpolation-rules openSubdiv 2.x used the same enum for face-varying interpolation options, 3.x uses a separate enum. See SubDivFVarInterpolateBoundary.
octane.octane.subDivSchemeTypeBoundary interpolation rules used by the openSubdiv library. see http://graphics.pixar.com/opensubdiv/docs/subdivision_surfaces.html#boundary-interpolation-rules
octane.octane.subSampleModeThe subsampling modes we currently support.
octane.octane.texelTypeThe element type of a runtime texture.
octane.octane.textureNodeTypeModeDetermine if and how the node can change its texture inputs/output value types
octane.octane.texturePinValueTypeModeDetermine if and how a texture pin gains a value type
octane.octane.textureValueTypeThe different OSL types that are supported as texture value types for texture pins
octane.octane.tiffCompressionTypeCompression type for TIFF file export.
octane.octane.tilePatternTypeThe tile patterns supported by NT_TEX_TILE_PATTERNS.
octane.octane.timeDisplayDisplay mode of time line
octane.octane.timeEventTypeThe different types of time events.
octane.octane.tonemapBufferTypeThe different tonemap result buffer formats we support.
octane.octane.tonemapOrderThe different orders by which camera response curve, gamma and custom LUT are applied.
octane.octane.tonemapType@deprecated Use TonemapBufferType and/or NamedColorSpace instead.
octane.octane.toonLightModeLighting modes for toon materials
octane.octane.traceSetBounceTypeThe types of light path bounce that can occur at a geometry object for the purposes of updating the set of trace sets that are visible for future hits in the path. These values are used as bit indices for bit masks in NT_TRACE_SET_VISIBILITY_RULE nodes.
octane.octane.traceSetFutureHitsThe types of geometry hit that can occur in a light path after a bounce that updated the set of visible trace sets. These values are used as bit indices for bit masks in NT_TRACE_SET_VISIBILITY_RULE nodes.
octane.octane.uIOperationsFlagUI general operation flags
octane.octane.unaryOperationUnary math operations for nodes NT_TEX_MATH_UNARY and NT_FLOAT_MATH_UNARY.
octane.octane.unblendExtractModeBlend inputs that the unblend output AOV layer mode can extract.
octane.octane.unblendOutputColorRangeOutput color ranges for the unblend and reblend output AOV layers.
octane.octane.universalCamApertureShapeThe aperture shapes available for the universal camera.
octane.octane.universalCamCubemapLayoutThe cubemap layouts available for the universal camera.
octane.octane.universalCamFisheyeProjectionThe projection types available for the universal camera fisheye.
octane.octane.universalCamFisheyeTypeThe fisheye types available for the universal camera.
octane.octane.universalCamModeThe modes of the universal camera.
octane.octane.upSampleModeThe upsampling modes we currently support.
octane.octane.upSampleSourcePercentageUp sample's source percentage (per side).
octane.octane.upSamplerTypeSupported up sampler types.
octane.octane.usdDisplayPurposeThe types of USD display purposes.
octane.octane.vdbGridIdsGrid channels that can be read from a VDB
octane.octane.vectronCircleTypeCircle type for Vectron cylinder and sphere.
octane.octane.vectronEdgeTypeEdge type for SDF primitives.
octane.octane.virtualTexturingModeVirtual texturing modes
octane.octane.volumeEmissionTypeStandard volume emission types.
octane.octane.volumeInterpolationTypeVolume voxel data interpolation modes.
octane.octane.volumeSamplingVolume sampling methods.
octane.octane.wCoordinateBorderModeThe different border modes supported by the 'W coordinate' texture node (NT_TEX_W). The value is set by the enum pin P_BORDER_MODE_W_COORD.
octane.octane.waveformWaveforms supported by NT_TEX_WAVE_PATTERN.
octane.octane.whiteLightSpectrumDifferent light spectra that can be considered "white" inside the rendering engine.
octane.octane.windingOrderPolygon winding order.

Module livedb

Live DB API

Functions

octane.livedb.downloadMaterialDownloads a material from the LiveDB. This will add the material's nodegraph to the project's scenegraph. This function fetches online and might take a while.
octane.livedb.getCategoriesReturns an array PROPS_LIVE_DB_CATEGORY. This will fetch the categories online so it might take a while.
octane.livedb.getMaterialsReturns an array of PROPS_LIVE_DB_MATERIAL for the materials in a category. fetches online so it might take a while.

Properties

octane.livedb.PROPS_LIVE_DB_CATEGORYTable with information about a live db category
octane.livedb.PROPS_LIVE_DB_MATERIALTable with info about a live db material

Module settingsgroup

Define a group of settings which can be shown and edited in a dialog window.

Functions

octane.settingsgroup.addRowAdd a row to a settings component Keys in the settings table are: - type: the data type, can be "float", "integer", "bool", "colour", "string", "file", "directory", "enum". The type determines which kind of component is created. - key: what key in the data table to use - label: The label shown in front of the component. Can be either a string or a component. - labelEnabled: true or false, will turn the label into a checkbox with the given default value. Will add an extra key in the data table with name key.."Enabled" - component: if given, must be a component which is added to the grid. Any other keys are ignored - default: initial value if the key in the data table is not yet set - enum: table representing the enum, should be a sequence of value/name pairs, eg. { {1, "Small"}, {5, "Medium"}, {10, "Large"} } or a sequence of strings. In the latter case the index in the sequence will be the value. - forSaving, wildcards: used for files or directories - various other keys are used depending on the data type, as defined in the various octane.gui.PROPS_GUI_COMPONENT variants, eg. for sliders: step, minValue and maxValue may be specified to set data ranges, callback can be specified to get additional GUI callbacks. Some scripts also operate on nodes or graphs, for this case the component can contain a combo box to let the user select the nodes. Use the following keys: - key: what key in the data table to use. This key is set to the selected node or graph. A second key, key.."Name" is used to store the node name. - type: set to "node" - items: sequence of node items to show in the dropdown. If not set, scan a node graph for items - parentGraph: which node graph to scan for matching nodes for the dropdown, if nil the project scene graph is used. - nodeTypes: limit selection to the given node types and graph types - graphTypes: see above - outputType: if set, limit selection to node items with the given output type
octane.settingsgroup.beginGroupBegin a new group
octane.settingsgroup.createCreates a group of settings which can be shown as a component. The list argument is a table with following keys: - data: the table, created with octane.gui.createPropertyTable, containing the settings to edit. Keys in this table will be bound to the components using octane.gui.bind. - width: the initial width for this component - labelWidth: the initial width of the label column - callback (optional): callback function, see octane.gui.bind - debug: set to true to draw debugging outlines in group components See settingsgroup for a list of functions you can call on this object.
octane.settingsgroup.showDialogShows these settings in a dialog window
octane.settingsgroup.toComponentCreate a component with these settings

Module project

Functionality to manage Octane projects. Scripted graphs loaded as part of a project will always return properties from the project which is being loaded. When importing a node graph into the current project, the referenced project will still be the current project

Functions

octane.project.clearSelectionClears the current selection.
octane.project.deselectRemoves an item from the current selection.
octane.project.getCurrentProjectReturns the absolute path of the current project.
octane.project.getMaterialBallReturns the mesh node (NT_GEO_MESH) representing the material ball.
octane.project.getPreferencesReturns the application preferences node (NT_LOCAL_APP_PREFS).
octane.project.getPreviewRenderTargetReturns the project's preview render target.
octane.project.getProjectSettingsReturns the project settings node (NT_PROJECT_SETTINGS).
octane.project.getSceneGraphReturns the scene graph of the project (root graph).
octane.project.getSelectionReturns the items currently selected in the project.
octane.project.loadLoads an Octane project from a file. If passing in a function to missingFileCallback, the signature is: fileToUse = missingFileCallback(filename) - filename (string): value of the "filename" attribute of the node being loaded; - fileToUse (string): absolute filename, or nil if we don't have a file.
octane.project.loadedFromPackageChecks if the current project was loaded from a package.
octane.project.resetResets an Octane project (starts off with a new project.). If there are unsaved changes, it will ask the user what to do.
octane.project.saveSaves the current project on disk.
octane.project.saveAsSaves the loaded Octane project on disk. The project can be saved either as a regular ocs file or as a package file (.orbx). Procedurally generated geometry is saved as OBJ so justregular polygonal geometry will be exported ignoring hair and particle primitives.
octane.project.saveAsReferencePackageSaves the loaded Octane project into a package (.orbx). The resulting package will include extra data with animated bounding boxes of the scene geometry which can be later visualized when the package is loaded in GT_REFERENCE node graph. Procedurally generated geometry is saved as OBJ so just regular polygonal geometry will be exported ignoring hair and particle primitives.
octane.project.selectAdds an item to the current selection.
octane.project.setSelectionClears the current selection, and select all the given nodes and pins.
octane.project.unpackPackageUnpacks a package into the provided directory. If no package path is specified, the package of the current project will unpacked. Obviously, the latter will work only if the project was loaded from a package (This will NOT switch the current loaded package to the unpacked package).

Properties

octane.project.PROPS_REFERENCE_PACKAGE_EXPORT_INFOTable with information about reference package export settings

Module geometryexporter

This module allows you to construct exporters which can write animated geometry to an Alembic file.

Functions

octane.geometryexporter.__gcGC callback.
octane.geometryexporter.__tostringConverts value to string.
octane.geometryexporter.addItemAdds another item to export in the next frame.
octane.geometryexporter.closeCloses the exported file. The file will eventually be closed by the garbage collector if you don't call this function, but until then it will be unreadable for other applications.
octane.geometryexporter.createCreate a geometry exporter. This function may raise an error if we can't create the exporter
octane.geometryexporter.makeGraphcreateNodeGraph
octane.geometryexporter.setTimeSamplingOverride the time sampling written to the file. By default it is inferred from the time values from the items when frames are exported.
octane.geometryexporter.writeFrameAdds another item to export in the next frame.

Properties

octane.geometryexporter.PROPS_GEOMETRY_EXPORTERTable with information to construct a geometry exporter.

Module file

Provides portable file system functionality.

Functions

octane.file.checksumCalculates a checksum based on the file's contents.
octane.file.copyCopies a file to a different location. See octane.file.copyDirectory to copy directories.
octane.file.copyDirectoryTries to copy an entire directory, recursively. If source isn't a directory or if any target files cannot be created, this will fail.
octane.file.createDirectoryCreates a directory. This will also create the parent directories to complete the full path.
octane.file.createFileCreates an empty file
octane.file.existsChecks if an absolute path exists on the system.
octane.file.fopenOpens a file. If the passed in file name refers to a file on disk, io.open will be called. If the passed in file refers to a file in a package, octane.package.fopen will be called.
octane.file.getCreationTimeReturns the creation time of a file. If a file is in a package, then returns the creation time of the package.
octane.file.getCurrentWorkingDirectoryGet the current working directory.
octane.file.getFileExtensionReturns the extension. (e.g. /foo/bar.txt would return .txt)
octane.file.getFileNameReturns the last section of a path name. (e.g. /foo/bar.txt would return bar.txt and /foo/bar would return bar.
octane.file.getFileNameWithoutExtensionReturns the last part of the filename, without the extension. (e.g. /foo/bar.txt returns bar).
octane.file.getFileSizeReturns the size of a file.
octane.file.getLinkTargetIf the path is a link, returns the path the link points to. Otherwise the path itself is returned.
octane.file.getModifiedTimeReturns the last modification time of a file. If a file is in a package, then returns the last modification time of the package.
octane.file.getParentDirectoryReturns the directory the parent path of a path.
octane.file.getSpecialDirectoriesReturns a table with full paths to common directories on the user's system.
octane.file.hasWriteAccessChecks if a path to a file is writable or can be created.
octane.file.isAbsoluteChecks if this string is an absolute path.
octane.file.isDirectoryChecks if the path is a directory. Although packages allow you to look up a file using a relative path they don't support directory access. So unlike isFile, isDirectory only works for file names
octane.file.isFileChecks if an absolute path exists on the system and is not a directory.
octane.file.isHiddenChecks if a file is a hidden file (platform specific).
octane.file.joinJoins the file paths in the arguments together. Any relative path is appended to the previous paths, an absolute path replaces the previous paths
octane.file.listDirectoryReturns a list with the contents of a directory.
octane.file.makeRelativeToMakes file name relative to the specified path. The filename and the path must either both be absolute (having the same root) or both relative. If both are relative, it's assumed that they are both starting at the same working directory.
octane.file.moveMoves a file to a different location. If the destination already exists, this will try to delete the destination first, and will fail if this cannot be done.
octane.file.removeRemoves a file or a directory and all its subdirectories.
octane.file.resolveTemplateCreates a filename from a template with embedded placeholders. Placeholders are single letters prefixed with a % sign. When the placeholder cannot be resolved, it's kept in the string. You can freely choose the placeholders but some of them are reserved: %e - maps to the file extension %t - maps to a timestamp in hh_mm_ss format %% - maps to the percentage sign

Properties

octane.file.PROPS_PACKAGE_PATHTable with an absolute path to a file in a package or the file system
octane.file.PROPS_SPECIAL_DIRECTORIESTable with the absolute paths to special directories on the user's system

Module package

Provides a way to inspect assets in a package.

Functions

octane.package.__gcGC metamethod
octane.package.__tostringConverts value to string.
octane.package.closeClose a package handle.
octane.package.createPathConvert the inputs to a package path. You may pass in following combinations of arguments: 1. (string, string): The first argument points to the package (either an absolute path or a package handle) and the second argument is a relative path to the file inside the package 2. (string): Points to a file in the file system. 3. (PROPS_PACKAGE_PATH): Package path property table. In this case that table will be returned.
octane.package.fexistsCheck if a file exists. Synonym for octane.file.exists(package:getChildFile(path))
octane.package.fopenOpens a file inside a package for reading. The interface of the returned object conforms to the interface of standard lua files. If path is not a relative path an error will be raised. If the file doesn't exist, or an error occurs while opening the file, returns nil and an error message. See also octane.file.fopen() which automatically will open either a file in a package or a file in the file system.
octane.package.getChildFileCreates a package path referencing a file in this package.
octane.package.getFileListReturns a sequence of all files stored in the package.
octane.package.openExplicitly open a package for reading. This will keep the package open until close() is called. By default any file operation on a file inside a package will implicitly open that package, and keep it open until the script finishes or until another package is accessed, or in case of scripted graphs, until the callback finishes. If necessary, open() and close() may be used for more control over when packages are opened and closed.

Module storage

This module gives access to permanent storage of settings and data. Depending on how a script is run it may contain one or more tables whose content is persistent between subsequent executions of a script. To have persistent storage available the script must declare a script id in the header as follows: -- @script-id The script ID can be any text string, but it should be unlikely that other scripts use the same ID. The data types which can be stored permanently in these tables are the following: Keys can be numbers and strings; values can be numbers, booleans, strings and tables. Tables stored as values are subject to the same limitations.

Functions

Module packagefile

A packagefile references a file inside a package which is opened for reading. It has the same interface as the objects returned by io.open().

Functions

octane.packagefile.__gcGC metamethod
octane.packagefile.__tostringConverts value to string.
octane.packagefile.closeClose file
octane.packagefile.flush(unsupported)
octane.packagefile.linesReturns an iterator function which returns a new line from the file when called.
octane.packagefile.readReads from a file. The meaning of the arguments is the same as file:read().
octane.packagefile.seekSeeks to a new position in a file. For files opened in text mode, the value for offset must be: - if whence is "pos": a value returned by this function; - otherwise: zero, to get the current position or seek to the end of the file.
octane.packagefile.setvbuf(unsupported)
octane.packagefile.write(unsupported)

Module scriptgraph

This module contains functions specific to scripted node graphs. It is only available to the scripts embedded in such graphs. A script in a scripted graph must return a Lua table. The scripted graph keeps a reference to this table until the graph is destroyed, or until it loads a new script. The table may contain callback functions to update the node graph contents in response to changes in the inputs of the graph. You define callbacks by putting a function with the name of the callback in the returned table. The API will assign a meta table referencing this module to the returned table, so in the callbacks you can use the short form self:someFunction(...) to call functions in this module. The API will also put additional values into the returned table. To ensure future updates won't break your script, you should not use the following keys for your own purposes: - any key starting with "on", followed by a capital letter (reserved for callbacks); - any key starting with an underscore "_" (the API may overwrite those). A couple of functions take pin infos. You can define a pin info in two ways: - Specify the type directly: The "type" (pin type ID) and "label" (string) keys are required. Pin infos can be customized by setting properties as described in PROPS_BOOL_PIN_INFO, PROPS_ENUM_PIN_INFO, PROPS_FLOAT_PIN_INFO, PROPS_INT_PIN_INFO, PROPS_STRING_PIN_INFO, PROPS_TEXTURE_PIN_INFO, PROPS_TRANSFORM_PIN_INFO. - Use an info of an existing node: "label" (string), "fromNodeType" (node type ID) and "fromPinId" (pin ID) keys are required. This is an example script showing the basic concepts: local MyGraphScript = {} -- variables declared in the script scope are visible for all functions in our -- script for as long as the scripted graph is not deleted or reloaded (in -- programming terms, our two functions become "closures"). local inputs, tex -- onInit function, this is called once in the beginning. function MyGraphScript.onInit(self, graph) -- input and output infos local inputInfos = { {type=octane.PT_TEXTURE, label="RGB", defaultNodeType=octane.NT_TEX_RGB} } local outputInfos = { {type=octane.PT_TEXTURE, label="RGB"} } -- use these functions to set up input and output linkers. This will keep -- existing linkers so existing connections in the parent graph are kept. inputs = graph:setInputLinkers(inputInfos) local outputs = graph:setOutputLinkers(outputInfos) -- set up a node to give the graph some output value tex = octane.node.create{ type=octane.NT_TEX_RGB, name="color", graphOwner=graph } outputs[1]:connectTo("input", tex) end -- this function is called every time the value of an input linker changes function MyGraphScript.onEvaluate(self, graph) -- the scriptgraph object has a special function to read input values local rgb = self:getInputValue(inputs[1]) -- set some output value. (for example, rotate the RGB channels) tex:setAttribute("value", {rgb[3], rgb[1], rgb[2]}) end -- default name MyGraphScript._name = "Example" -- In lua, a script is run as if the script defines a function body, so -- like in a function you may return a value return MyGraphScript

Functions

octane.scriptgraph.__tostringConverts value to string.
octane.scriptgraph.appendAssetAdds an asset to the graph
octane.scriptgraph.getAssetgets an asset from the graph
octane.scriptgraph.getAssetCountReturns size of the asset array
octane.scriptgraph.getInputValueGets the A_VALUE attribute of the input node connected to the linker node, which can't be done directly using the input pin of the linker.
octane.scriptgraph.inputWasChangedTells if an input was changed since the last evaluation. This is only meaningful when called from the evaluate function. If this is the first evaluation after loading the script, this. function returns false.
octane.scriptgraph.insertInputLinkersInserts input linkers to the script graph.
octane.scriptgraph.onEvaluateCallback which is called when the connected value of one of the input linker nodes changes. Can be overridden in your script object. The graph is not cleared before this callback runs, all nodes created by previous calls to init and evaluate will still be there. If onEvaluate raises an error, onShutdown will be called and no further callbacks will be received.
octane.scriptgraph.onInitCallback which is called after initializing the scripted graph. Can be overridden in your script object. This callback will be run once after updating the script and before the call to evaluate. The graph will be cleared of all nodes except the linker nodes and the special input node before this call.
octane.scriptgraph.onShutdownCallback which is called before the scripted graph is destroyed, or before the script is reloaded. Can be overridden in your script object. If the onInit callback didn't raise an error this callback will be called once before destroying the object. You should release any external resources used by the script in this function. You should not interact with the node graph contents during this function as the nodes connected to the inputs may have been deleted at this point, and saving the project has happened before this call.
octane.scriptgraph.onTriggerCallback which is called when the trigger button has been clicked. The trigger button will be displayed in the node inspector if onTrigger() is provided in the script object. The graph is not cleared before this callback runs, all nodes created by previous calls to init and evaluate will still be there. If onTrigger() raises an error, onShutdown() will be called and no further callbacks will be received.
octane.scriptgraph.removeAllAssetsremoves all the assets
octane.scriptgraph.removeAssetremoves an asset from the graph. This will shift all subsequent assets one down.
octane.scriptgraph.removeInputLinkersremoves input linkers from the script graph
octane.scriptgraph.resetResets the node graph contents to the initial state, as it would be just before init was called. This state will always still contain all linker nodes and may contain some other nodes which are internally created and used by the scripted node graph. Any other nodes added by the script will be deleted.
octane.scriptgraph.setEvaluateTimeChangesChoose if the onEvaluate function gets called after time updates, regardless of whether or not any animated nodes are connected to the inputs. This function call doesn't affect the behaviour of animated items inside the graph
octane.scriptgraph.setIconSets a custom icon for this scripted graph.
octane.scriptgraph.setInputInfoAssigns a new node pin info to an input linker node. Must be called only from the init or evaluate function, and can't be called for an input which was changed before this evaluate call. The given pin type must match the type of the existing linker node.
octane.scriptgraph.setInputLinkersAssigns a new node pin info to an input linker node. This version accepts more information in the pin info tables (see the octane.scriptgraph.setInputInfo documentation). As with octane.nodegraph.setInputLinkers you may pad this table with elements set to false (boolean) for linkers you don't want to touch. This is important if you want to change the linkers due to an input change. See also insertInputLinkers and removeInputLinkers.
octane.scriptgraph.setInputValueSets the input value of a linker node, which can't be done directly using the input pin of the linker.
octane.scriptgraph.timeWasChangedReturns TRUE if the time was changed since the last evaluation. This is only meaningful when called from the evaluate function, if the evaluation of time changes has been enabled via setEvaluateTimeChanges(). If this is the first evaluation after loading the script, this function returns FALSE.

Properties

octane.scriptgraph.PROPS_BIT_MASK_PIN_INFOTable with information about a scripted graph bit mask pin.
octane.scriptgraph.PROPS_BOOL_PIN_INFOTable with information about a scripted graph bool pin.
octane.scriptgraph.PROPS_ENUM_PIN_INFOTable with information about a scripted graph enum pin.
octane.scriptgraph.PROPS_FLOAT_PIN_INFOTable with information about a scripted graph float pin.
octane.scriptgraph.PROPS_INT_PIN_INFOTable with information about a scripted graph int pin.
octane.scriptgraph.PROPS_OCIO_COLOR_SPACE_PIN_INFOTable with information about a scripted graph OCIO color space pin.
octane.scriptgraph.PROPS_OCIO_LOOK_PIN_INFOTable with information about a scripted graph OCIO look pin.
octane.scriptgraph.PROPS_OCIO_VIEW_PIN_INFOTable with information about a scripted graph OCIO view pin.
octane.scriptgraph.PROPS_PROJECTION_PIN_INFOTable with information about a scripted graph projection pin.
octane.scriptgraph.PROPS_STRING_PIN_INFOTable with information about a scripted graph string pin.
octane.scriptgraph.PROPS_TEXTURE_PIN_INFOTable with information about a scripted graph texture pin.
octane.scriptgraph.PROPS_TRANSFORM_PIN_INFOTable with information about a scripted graph transform pin.

Module nodegraph

Provides functionality to manipulate Octane's node graphs.

Functions

octane.nodegraph.__eqTests 2 graphs for equality (g1 == g2).
octane.nodegraph.__indexFetch a property of a node item.
octane.nodegraph.__newindexUpdates a property of a node item.
octane.nodegraph.__tostringConverts value to string.
octane.nodegraph.clearAnimatorClears the animator of an attribute.
octane.nodegraph.clearAnimatorIxClears the animator of an attribute.
octane.nodegraph.clearAttributeClears an attribute to its default value.
octane.nodegraph.clearAttributeIxClears an attribute to its default value.
octane.nodegraph.clearTimeTransformRemoves animation time transformation from the graph
octane.nodegraph.collapseCollapses this node graph down into all destination pins. To do this all of its inputs will be collapsed as well. If the node graph doesn't have exactly 1 output linker node or the output linker is not connected to any destination pin only the inputs of the node graph will be collapsed but not the graph itself and false is returned.
octane.nodegraph.copyAttributeFromCopies an attribute value from another node or graph.
octane.nodegraph.copyAttributeFromIxCopies an attribute value from another node or graph.
octane.nodegraph.copyFromCopies the items in the list into the destination graph.
octane.nodegraph.copyFromGraphCopies the items owned by the source graph into the destination graph. When an optional list of original items is provided, the function returns a list with their respective copies.
octane.nodegraph.copyItemTreeCopies the full tree that has item as root into the destination graph.
octane.nodegraph.createCreates a new node graph.
octane.nodegraph.createRootGraphCreates a root graph. Root graphs are graphs without owners. When they're not destroyed by the script, they are destroyed when the script ends.
octane.nodegraph.deleteOwnedItemsDeletes all child items from this graph. Clears all the items if the filter argument is nil.
octane.nodegraph.deleteUnconnectedItemsIf this node graph is owned by another node graph, this function will remove all items owned by the parent node graph that are not directly/indirectly connected with this graph.
octane.nodegraph.destroyDestroys an existing graph.
octane.nodegraph.evaluateEvaluates the attributes of a graph after making changes to the graph's attribute.
octane.nodegraph.expandExpands all items owned by the input linkers of the node graph.
octane.nodegraph.expandOutOfPinExpands the node graph out of its owner pin - if it is actually owned by a pin. If the owner pin belongs to a node that is also owned by a pin, that node will be expanded out of the owning pin as well. This continues until we find a node that is not owned by a pin anymore.
octane.nodegraph.exportToFileExports the provided root graph into a file (.orbx or .ocs).
octane.nodegraph.exportToStringExports the provided root graph into a string (.ocs xml format).
octane.nodegraph.findFirstNodeReturns the first node in the graph that matches the type.
octane.nodegraph.findFirstOutputNodeReturns the first output node in the graph that matches the type.
octane.nodegraph.findItemsByNameReturns the list of items in the graph that have the given name.
octane.nodegraph.findNodesReturns the nodes in the graph of the provided type.
octane.nodegraph.getAnimationTimeSpanReturns the total time span for all animations in this graph. This only works on root graphs.
octane.nodegraph.getAnimatorReturns the animator of the graph's attribute. Nothing is returned when the attribute isn't animated.
octane.nodegraph.getAnimatorIxReturns the animator of the graph's attribute. Nothing is returned when the attribute isn't animated.
octane.nodegraph.getAttributeReturns the graph's attribute value.
octane.nodegraph.getAttributeCountReturns the number of attributes.
octane.nodegraph.getAttributeInfoReturns the info of an attribute on this graph.
octane.nodegraph.getAttributeInfoIxReturns the info of an attribute on this graph (found via index).
octane.nodegraph.getAttributeIxReturns the graph's attribute value, based on its index.
octane.nodegraph.getInputNodesReturns the input linker nodes of this graph.
octane.nodegraph.getNodeGraphInfoReturns the static information about a graph.
octane.nodegraph.getOutputNodesReturns the output linker nodes of this graph.
octane.nodegraph.getOwnedItemsReturns the items (graphs and nodes) owned by this graph.
octane.nodegraph.getPropertiesReturns the properties of a graph.
octane.nodegraph.getRawArrayAttributeReturns a handle to the internal C-array. This handle is strictly read-only.
octane.nodegraph.getRawArrayAttributeIxReturns a handle to the internal C-array. This handle is strictly read-only.
octane.nodegraph.getTimeTransformReturns current time transform of the graph or nil.
octane.nodegraph.groupReplace a list of node items with a nodegraph containing a copy of these items. Any connections coming from other nodes are copied through linker nodes.
octane.nodegraph.hasAttributeFunction to find out whether a attribute exists in a node graph.
octane.nodegraph.importFromFileImports an .ocs or .orbx file into the provided root nodegraph.
octane.nodegraph.importFromStringImports an .ocs string into the provided root graph.
octane.nodegraph.insertInputLinkersInserts input linkers to the node graph. If this node graph is a scripted graph the inputList argument can contain more information as specified in octane.scriptgraph.setInputLinkers.
octane.nodegraph.isAnimatedFunction to find whether an attribute is animated.
octane.nodegraph.isAnimatedIxFunction to find whether an attribute is animated.
octane.nodegraph.loadAllReferencesLoads all top-level reference graphs in the provided root graph.
octane.nodegraph.referenceGraphCountReturns the number of reference graphs in the provided root graph.
octane.nodegraph.removeInputLinkersremoves input linkers from the node graph
octane.nodegraph.setAnimatorSets an animator on an attribute of this graph. Only attributes of type AT_BOOL, AT_FLOAT, AT_MATRIX, AT_FILENAME, AT_STRING can have animators. An animator is an array of times and an array of corresponding attribute values.
octane.nodegraph.setAnimatorIxSets an animator on an attribute of this graph. Only attributes of type AT_BOOL, AT_FLOAT, AT_MATRIX, AT_FILENAME, AT_STRING can have animators. An animator is an array of times and an array of corresponding attribute values.
octane.nodegraph.setArrayAnimatorSets an animator on an array attribute of this node. Only attributes of AT_FLOAT and AT_MATRIX can have an animator. An animator is an array of times and an array of corresponding attribute values.
octane.nodegraph.setArrayAnimatorIxSets an animator on an array attribute of this node. Only attributes of AT_FLOAT and AT_MATRIX can have an animator. An animator is an array of times and an array of corresponding attribute values.
octane.nodegraph.setAttributeSets an attribute of a graph.
octane.nodegraph.setAttributeIxSets an attribute of a graph based on the attribute index.
octane.nodegraph.setInputLinkersUpdates the input linker nodes of this node graph. This function takes an array of tables containing information of which linker nodes should be present. For every table it either uses an existing linker node or it creates a new one, with the name specified in the table. Any linker node not on this list will be destroyed. Use this function to modify the list of linkers in a graph while retaining connections with outside nodes as much as possible. If some values in the list are set to false (boolean) instead of a table, linkers at this index will not be touched. Do not use nil as this will terminate the list. If this node graph is a scripted graph the inputList argument can contain more information as specified in octane.scriptgraph.setInputLinkers, and it can only be called from within its evaluate function.
octane.nodegraph.setLinearTimeTransformCan be used to offset or scale the animation playback.
octane.nodegraph.setOutputLinkersUpdates the input output nodes of this node graph. This function an array of tables containing information of which linker nodes should be present. For every table it either uses an existing linker node or it creates a new one, with the name specified in the table. Any linker node not on this list will be destroyed. Use this function to modify the list of linkers in a graph while retaining connections with outside nodes as much as possible.
octane.nodegraph.setRawArrayAttributeSets an attribute of a graph based on the attribute index. The attribute value is fetched via a raw CArray handle. The memory pointed to in the handle must be valid until this function returns.
octane.nodegraph.setRawArrayAttributeIxSets an attribute of a graph based on the attribute index. The attribute value is fetched via a raw CArray handle. The memory pointed to in the handle must be valid until this function returns.
octane.nodegraph.unfoldUnfolds the node graph spaghetti if the graph is inspectable.
octane.nodegraph.ungroupReplaces a nodegraph with a copy of its content in the parent node graph.
octane.nodegraph.unloadAllReferencesUnloads all top-level reference graphs in the provided root graph.
octane.nodegraph.updatePropertiesUpdates the properties of a graph.
octane.nodegraph.updateTimeUpdates the current time in the graph. Works only for root graphs.

Properties

octane.nodegraph.PROPS_ATTRIBUTE_INFOTable with information about an attribute.
octane.nodegraph.PROPS_GRAPH_INFOTable with (static) information about a graph.
octane.nodegraph.PROPS_NODE_ITEMTable with (dynamic) information about a graph.
octane.nodegraph.PROPS_TIMETRANSFORM_LINEARTable with information about linear time transform. type equals to octane.animationTimeTransformType.LINEAR

Module help

Provides help functionality while developing Lua scripts for Octane.

Functions

octane.help.addFunctionAdds a user-defined Lua function to the API registry. Call this function before adding function documentation.
octane.help.addFunctionDocAdds documentation to a user-defined Lua function.
octane.help.addModuleAdds a user-defined Lua module to the API registry. Call this function before adding functions to the module.
octane.help.constantDocReturns a table with a description and the values defined for an enumeration.
octane.help.constantsReturns a table with the names of all the constants defined in a module.
octane.help.functionDocReturns a table with documentation about a function.
octane.help.functionsReturns a table with the names of all the functions defined in a module.
octane.help.helpDisplays help about an Octane Lua API function
octane.help.modulesReturns a table with the available modules. The key is the module name and the value is a descriptive string.
octane.help.propertiesReturns a table with the names of all the properties defined in a module.
octane.help.propertiesDocReturns a table with a description of certain properties.
octane.help.variableDocReturns a table with a description of certain variables.
octane.help.variablesReturns a table with the names of all the variables defined in a module. These are usually fields in the module, or fields in the objects created by the module.

Module changemanager

Provides functionality to listen to changes in Octane's node system or force an update after making a set of changes. An observer can be used to observe either item changes or time changes. The observer must be in scope to receive the events. Example usage: -- Create a new observer. myObserver = createObserver({itemChangeCallback = myCallback}). -- Start observing an item. octane.changemanager.observeItem(item, myObserver, eventMask) -- Observe a second item, using the same callback. octane.changemanager.observeItem(otherItem, myObserver, eventMask) -- Stop observing a particular item. octane.changemanager.stopItemObserver(myObserver, item) -- Stop observing all items. octane.changemanager.stopItemObserver(myObserver)

Functions

octane.changemanager.__eqTests 2 observers for equality (c1 == c2).
octane.changemanager.__gcGC metamethod
octane.changemanager.__indexReturns a property value of the observer.
octane.changemanager.__newindexUpdates a property of an observer.
octane.changemanager.__tostringConverts value to string.
octane.changemanager.createObserverCreates a change observer.
octane.changemanager.observeItemRegisters a callback for receiving change events for an item. If the callback is already registered, the flags from the given event mask will be added to the existing event mask.
octane.changemanager.observeTimeRegisters a callback for receiving time change events that are emitted for the specified root node graph. Time observers will receive all events listed in octane.timeEventType. Note : All observers will receive the TimeEventType::FRAME_RATE_CHANGED event regardless of the root node graph they are observing.
octane.changemanager.stopItemObserverStops observing change events for an item. This function doesn't do anything if the observer wasn't registered with observeItem.
octane.changemanager.stopTimeObserverStops observing time events.
octane.changemanager.updateUpdates all previous changes. When making changes in nodes it's necessary to call this function to propagate the changes in Octane. Doing this allows to modify multiple nodes and propagate the changes only once.

Properties

octane.changemanager.PROPS_CHANGEMANAGER_OBSERVERProperties for an observer.
octane.changemanager.PROPS_ITEM_CHANGE_EVENTProperties for an item change event.
octane.changemanager.PROPS_TIME_CHANGE_EVENTProperties for a time change event.

Module node

Provides functionality to manipulate Octane's node system.

Functions

octane.node.__eqTests 2 nodes for equality (n1 == n2).
octane.node.__indexFetch a property of a node item.
octane.node.__newindexUpdates a property of a node item.
octane.node.__tostringConverts value to string.
octane.node.canConnectToChecks if a source node can be connected with to a pin on a destination node.
octane.node.canConnectToIxChecks if a source node can be connected with to a pin (identified by index) on a destination node.
octane.node.clearAnimatorClears the animator of an attribute.
octane.node.clearAnimatorIxClears the animator of an attribute.
octane.node.clearAttributeClears an attribute to its default value.
octane.node.clearAttributeIxClears an attribute to its default value.
octane.node.collapseCollapses this node down into all destination pins. To do this all of its inputs will be collapsed as well. If the node is an input linker or it's already owned by a pin, false is returned. If the node doesn't have any destination pins, the inputs will be collapsed but not the node itself and false is returned.
octane.node.configureEmptyPinsCreates default nodes for empty/unconnected pins that have a default node defined.
octane.node.connectToConnects source node to a pin on destination node.
octane.node.connectToIxConnects source node to a pin on destination node (identifies the pin via idx).
octane.node.copyAttributeFromCopies an attribute value from another node or graph.
octane.node.copyAttributeFromIxCopies an attribute value from another node or graph.
octane.node.copyFromCopies an item into a pin or does nothing if the item can't be copied into the pin because the item is a node with the incorrect type.
octane.node.copyFromIxCopies an item into a pin or does nothing if the item can't be copied into the pin because the item is a node with the incorrect type. Identifies the pin via index.
octane.node.createCreates a new node.
octane.node.deleteUnconnectedItemsIf this node is owned by a node graph, this function will remove all items owned by the parent node graph that are not directly/indirectly connected with this node.
octane.node.destroyDestroys an existing node.
octane.node.disconnectDisconnects the source node from a pin on the destination node.
octane.node.disconnectIxDisconnects the source node from a pin on the destination node.
octane.node.dumpAttributesDump all attributes of this item to a text file.
octane.node.evaluateEvaluates the attributes of a node after making changes to the node's attribute. For complex nodes like meshes and textures you have to set up the node first and afterwards call node:evaluate()
octane.node.expandExpands all items owned by the pins of the node.
octane.node.expandOutOfPinExpands the node out of its owner pin - if it is actually owned by a pin. If the owner pin belongs to a node that is also owned by a pin, that node will be expanded out of the owning pin as well. This continues until we find a node that is not owned by a pin anymore.
octane.node.exportToFileExports a node's raw data to a file (only mesh nodes and textures support this). The full path is determined by Octane and can be found in the A_FILENAME attribute after exporting (e.g. directory/geometry/myNode.obj).
octane.node.getAnimatorReturns the animator of the node's attribute. Nothing is returned when the attribute isn't animated.
octane.node.getAnimatorIxReturns the animator of the node's attribute. Nothing is returned when the attribute isn't animated.
octane.node.getAttributeReturns the node's attribute value.
octane.node.getAttributeCountReturns the number of attributes.
octane.node.getAttributeInfoReturns the info of an attribute on this node.
octane.node.getAttributeInfoIxReturns the info of an attribute on this node (found via index).
octane.node.getAttributeIxReturns the node's attribute value, based on its index.
octane.node.getConnectedNodeReturns the node connected to a pin.
octane.node.getConnectedNodeIxReturns the node connected to a pin (identifies pin via index).
octane.node.getDestinationNodesReturns a table with with the destination. Each element is a table with a key "node" (to access the destination node) and a key "pin" to access the name of the destination pin.
octane.node.getInputNodeReturns the input node of a pin (skipping linker nodes).
octane.node.getInputNodeIxReturns the input node of a pin (skipping linker nodes).
octane.node.getNodeInfoReturns the static information about a node.
octane.node.getOutputTextureValueTypeIdRetrieves the id of the type of texture value of the node's texture output
octane.node.getOutputTextureValueTypeNameThe name of the type of texture value of the node's texture output
octane.node.getOwnedItemReturns the item owned by a pin.
octane.node.getOwnedItemIxReturns the item owned by a pin (identifies pin via index).
octane.node.getPinCountReturns the number of pins of this node.
octane.node.getPinInfoReturns the info of a pin on this node (static or dynamic).
octane.node.getPinInfoIxReturns the info of a pin on this node (static or dynamic).
octane.node.getPinTextureValueTypeRetrieves the texture value type of a node's pin given a pin id or pin name
octane.node.getPinTextureValueTypeIxRetrieves the texture value type of a node's pin given a pin id or pin name
octane.node.getPinTextureValueTypeNameRetrieves the name of the texture value type of a node's pin given a pin id or pin name
octane.node.getPinTextureValueTypeNameIxRetrieves the name of the texture value type of a node's pin given a pin index
octane.node.getPinValueReturns the value of a value node (skipping linker nodes) connected to the pin. When the pin isn't connected, the default value for the pin is returned. This function doesn't work for the input pin of a linker node.
octane.node.getPinValueIxReturns the value of a value node (skipping linker nodes) connected to the pin.When the pin isn't connected, the default value for the pin is returned. The pin is identified by index. This function doesn't work for the input pin of a linker node.
octane.node.getPropertiesReturns the properties of a node.
octane.node.getRawArrayAttributeReturns a handle to the internal C-array. This handle is strictly read-only.
octane.node.getRawArrayAttributeIxReturns a handle to the internal C-array. This handle is strictly read-only.
octane.node.getTextureTypeConfigurationGet the current typed texture node's type configuration
octane.node.hasAttributeFunction to find out whether a attribute exists in a node graph.
octane.node.hasPinFunction to find out whether a pin exists in a node.
octane.node.isAnimatedFunction to find whether an attribute is animated.
octane.node.isAnimatedIxFunction to find whether an attribute is animated.
octane.node.setAnimatorSets an animator on an attribute of this node. Only attributes of AT_FLOAT, AT_MATRIX AT_BOOL, AT_FILENAME and AT_STRING can have an animator. An animator is an array of times and an array of corresponding attribute values.
octane.node.setAnimatorIxSets an animator on an attribute by index on this node. Only attributes of AT_FLOAT, AT_MATRIX AT_BOOL, AT_FILENAME and AT_STRING can have an animator. An animator is an array of times and an array of corresponding attribute values.
octane.node.setArrayAnimatorSets an animator on an array attribute of this node. Only attributes of AT_FLOAT, AT_MATRIX AT_BOOL, AT_FILENAME and AT_STRING can have an animator. An animator is an array of times and an array of corresponding attribute values.
octane.node.setArrayAnimatorIxSets an animator on an array attribute of this node. Only attributes of AT_FLOAT, AT_MATRIX AT_BOOL, AT_FILENAME and AT_STRING can have an animator. An animator is an array of times and an array of corresponding attribute values.
octane.node.setAttributeSets an attribute of a node.
octane.node.setAttributeIxSets an attribute of a node based on the attribute index.
octane.node.setPinValueSets the value attribute of a connected node through the pin. This means that the value is clamped in the range of the pin (if applicable). This function doesn't work for the input pin of a linker node.
octane.node.setPinValueIxSets the value attribute of a connected node through the pin. This means that the value is clamped in the range of the pin (if applicable). The pin is identified via its index. This function doesn't work for the input pin of a linker node.
octane.node.setRawArrayAttributeSets an attribute of a node based on the attribute index. The attribute value is fetched via a raw CArray handle. The memory pointed to in the handle must be valid until this function returns.
octane.node.setRawArrayAttributeIxSets an attribute of a node based on the attribute index. The attribute value is fetched via a raw CArray handle. The memory pointed to in the handle must be valid until this function returns.
octane.node.setTextureTypeConfigurationSet the typed texture node to use a configuration given configuration parameters
octane.node.updatePropertiesUpdates the properties of a node.

Properties

octane.node.PROPS_ATTRIBUTE_INFOTable with information about an attribute.
octane.node.PROPS_BIT_MASK_PIN_INFOTable with info about a bit mask pin.
octane.node.PROPS_BOOL_PIN_INFOTable with info about a bool type pin.
octane.node.PROPS_ENUM_PIN_INFOTable with info about an enum type pin.
octane.node.PROPS_FLOAT_PIN_INFOTable with info about a float type pin.
octane.node.PROPS_INT_PIN_INFOTable with info about an int type pin.
octane.node.PROPS_NODE_INFOTable with (static) information about a node.
octane.node.PROPS_NODE_ITEMTable with (dynamic) information about a node.
octane.node.PROPS_OCIO_COLOR_SPACE_PIN_INFOTable with info about an OCIO color space type pin.
octane.node.PROPS_OCIO_LOOK_PIN_INFOTable with info about an OCIO look type pin.
octane.node.PROPS_OCIO_VIEW_PIN_INFOTable with info about an OCIO view type pin.
octane.node.PROPS_PIN_IDENTIFIERIdentifies a pin on a node. Only one of id, name and index should be set.
octane.node.PROPS_PIN_INFOTable with information about a nodepin.
octane.node.PROPS_PROJECTION_PIN_INFOTable with info about a projection type pin.
octane.node.PROPS_STRING_PIN_INFOTable with info about a string type pin.
octane.node.PROPS_TEXTURE_PIN_INFOTable with info about a texture type pin.
octane.node.PROPS_TRANSFORM_PIN_INFOTable with info about a transform type pin.

Module apimaterialx

Provides functionality relating to MaterialX support in Octane and for integrations

Functions

octane.apimaterialx.findConfigurationFind a typed texture node configuration corresponding to a given inputs and output type interface.
octane.apimaterialx.findConfigurationByNamesFind a typed texture node configuration corresponding to a given inputs and output type interface (specified as MaterialX input names and value types).
octane.apimaterialx.getAllMxNodeCategoriesGet all MaterialX node categories that are supported.
octane.apimaterialx.getGraphMxInputNamesGet the names of inputs of a MaterialX node category represented as an Octane node graph. Graphs have dynamic pins, so there will be no pin ids. Instead, the input names are provided as an array of strings in the order they appear in the node graph. Each input name's placement in the array corresponds to the index of the input in the graph.
octane.apimaterialx.getGraphMxOutputNamesGet the names of outputs of a MaterialX node category represented as an Octane node graph. Graphs have dynamic pins, so there will be no pin ids. Instead, the output names are provided as an array of strings in the order they appear in the node graph. Each input name's placement in the array corresponds to the index of the output in the graph.
octane.apimaterialx.getGraphTypeGet the Octane graph type representing a MaterialX node category.
octane.apimaterialx.getMxInputNamesAndPinIdsGet the MaterialX input names and their respective Octane pin ids and pin indices for a given node type
octane.apimaterialx.getMxNodeCategoryGet the MaterialX node category represented by a given node type.
octane.apimaterialx.getMxNodeCategoryOfGraphTypeGet the MaterialX node category represented by a given graph type.
octane.apimaterialx.getMxValueTypeGet the MaterialX value type represented by a texture value type.
octane.apimaterialx.getNodeTypesGet the Octane node types representing a MaterialX node category.
octane.apimaterialx.getTextureValueTypeGet the texture value type representing a MaterialX value type.
octane.apimaterialx.importMaterialXFileImport a MaterialX file (`.mtlx`) as a node graph with material outputs, into a given parent graph (defaults to root). Each material output is internally connected to a separate sub-graph for each material in the MaterialX file. There can be further nesting of sub graphs based on the topology of the original material graphs in the source file. Importing has 2 modes: - Native: Uses dedicated node types for MaterialX that follow the specification - Octane: Uses pre-existing Octane node types to emulate the behaviour of the MaterialX material

Module image

Provides functionality to create and manipulate images.

Functions

octane.image.__gcGC metamethod
octane.image.__indexReturns a property value of the image.
octane.image.__tostringConverts value to string.
octane.image.applyBoxFilterApplies Box filter to the image. A faster algorithm than gaussian filter.
octane.image.applyGaussianFilterApplies gaussian filter to the image.
octane.image.applyLevelsApplies level correction to the image.
octane.image.calculateMeanSquareErrorCompares this image to another image, and calculates the mean square error for it.
octane.image.compareValuesCompares this image to another image, and puts the difference in this image.
octane.image.compressCompress the given image. May use a different compression type if the given type cannot represent the current image channels. Compression will fail if the image is a 2-channel YA image. Raises an error when compression fails. Otherwise the image is compressed in place.
octane.image.convertConvert to a different type of image. This call is always synchronous, and is potentially slow if destinationType is a compressed format. If specifying a compressed image type that cannot represent the current image channels a different compressed type may be used. Converting to a compressed type will fail if the source image is a 2-channel YA image.
octane.image.copyRegionCopies a region of an image to another image.
octane.image.createCreates an image with all pixels set to 0.
octane.image.createFromNodeCreate an image from an image texture node (NT_TEX_IMAGE or similar).
octane.image.fillFills a rectangle with a color.
octane.image.fillImageNodeFills the passed in NT_TEX_IMAGE node with the data from this image.
octane.image.fromBase64Loads an image from a base64-encoded string as a bitmap, which allows you to embed small images in a script.
octane.image.getImageInfoGets the information on the given image file.
octane.image.getLayerInfoGets the information on the given image file.
octane.image.getPixelReturns the value of a pixel in the image. The pixel value (1, 1) is in the top-left corner of the image, x points to the right and y points down.
octane.image.getPropertiesReturns the image's properties.
octane.image.getRawPixelsReturns the pixels of this image as a C-array. This is only a raw byte array and it's up to the called how to interpret these bytes based on the image type. This array is valid until the image is garbage collected.
octane.image.loadLoads an image from a file as a bitmap.
octane.image.saveSaves an image to disk. Compressed images are saved as DDS, and regular HDR images are saved as EXR, LDR images are saved as PNG. The correct extension is added to the path (if it didn't exist yet).
octane.image.saveAsyncStarts saving an image to disk on a background thread. HDR images are saved as exr, LDR images are saved as png. The correct extension is added to the path (if it didn't exist yet).
octane.image.setPixelSets the value of a pixel in the image. The pixel value (1, 1) is in the top-left corner of the image, x points to the right and y points down.

Properties

octane.image.INFOS_IMAGEInformation of an image.
octane.image.INFOS_LAYERInformation of an image layer.
octane.image.PROPS_EXR_SAVEOptions for saving EXR files.
octane.image.PROPS_IMAGEProperties of an image.
octane.image.PROPS_JPEG_SAVEOptions for saving JPEG files.
octane.image.PROPS_TIFF_SAVEOptions for saving TIFF files.

Module caches

Function to interact with the Octane file caches, e.g. the meshlet cache.

Functions

octane.caches.checkMeshletBuildStatusChecks the status of the cached meshlet mesh for the given mesh node. This should be run *after* the mesh node got evaluated and any meshlet data was loaded or its build was started.
octane.caches.checkVirtualTextureStatusCheck the status of the cached virtual texture corresponding to the settings contained in the given node. If node is nullptr, does not present a type that supports virtual textures, or if the settings don't result in a virtual texture being used, returns cacheStatus.NONE. Otherwise returns one of the other constants in CacheStatus.
octane.caches.clearMeshletCacheDeletes all meshlet cache files that are currently not in use.
octane.caches.clearMeshletCacheFileForNodeDeletes the meshlet cache file of the given node if the file isn't used anywhere else. This can be called before or after evaluation of the mesh node.
octane.caches.clearMeshletCacheFilesForIdDeletes all meshlet cache files for a given meshlet mesh ID that are currently not in use anywhere.
octane.caches.clearVirtualTextureCacheForNodeClears the cache entry matching the settings contained in the given node item. This call succeeds only if there are no other node items referencing the same file, and if the build for the given cache entry is not currently in progress. The item is left in an intermediate state, evaluating the item after this call may rebuild the cache for the item. If a build is in progress, the build may be cancelled by this call, resulting in the file being deleted some indeterminate time after this call.
octane.caches.getMeshletCacheFileNameGets the file name of the meshlet cache file if the mesh node has an associated meshlet cache file or an empty string if it does not. A meshlet cache file is only assigned to a mesh node if A_CONVERT_TO_MESHLETS is set to true and the mesh node either has been evaluated or hasMeshletCacheFile() has been called with this node.
octane.caches.getMeshletCacheSizeReturns the maximum size of the meshlet cache size as specified in the application preferences.
octane.caches.getMeshletCacheUsedSizeReturns the sum of all meshlet cache files that are currently in the meshlet cache.
octane.caches.getVirtualTextureCacheSizeReturns the maximum size of the virtual texture cache size as specified in the application preferences.
octane.caches.getVirtualTextureCacheUsedSizeReturns the sum of all virtual texture cache files that are currently in the virtual texture cache.
octane.caches.hasMeshletCacheFileChecks if a cache file can be found for the given geometry import preferences and filename / meshlet ID attribute. If a meshlet cache file exists it will be opened and kept open by the mesh node. This function can be used before or after the mesh node is evaluated. When you call it before evaluation you don't have to populate the actual geometry attributes yet. This allows you to check whether you need to populate the geometry data or not and thus save a bit of memory and time. If the meshlet cache file exists and the node was not evaluated yet you still have to evaluate the mesh node to populate the material / object layer names and pins and bring the node into a consistent state. If the meshlet cache file does not exist you will have to completely populate the geometry attributes and then evaluate the mesh node. This will then kick off the meshlet build in the background. You can check the state of that build using checkMeshletBuildStatus().
octane.caches.pruneVirtualTextureCacheShrinks the virtual texture cache size by deleting virtual texture cache files that are currently not in use.

Module gui

Provides functionality to create user interfaces on top of Octane. This module cannot be used by scripted graphs.

Functions

octane.gui.__eqTests 2 components for equality (c1 == c2).
octane.gui.__indexFetches a property value.
octane.gui.__newindexUpdates a property of a component.
octane.gui.__tostringConverts value to string.
octane.gui.bindBinds a component's property to data in the property table. When a component's property and data are bound, updating the data value updates the property and updating the component updates the data value. A callback is called when the data value is updated from the user interface. This function will throw an error when the property is not bindable or doesn't exist. Initially, the value in the table gets the value of the component's property.
octane.gui.browseForAssetSelect a file for reading or saving an asset. The path to the file will be saved in the preferences, as with the dialogs shown by Octane.
octane.gui.closeWindowCloses the window. This function must be called in the window event callback. Calling this function makes showWindow return.
octane.gui.createCreates a GUI component.
octane.gui.createButtonCreates a button component.
octane.gui.createCheckBoxCreates a checkbox component.
octane.gui.createComboBoxCreates a combo box component.
octane.gui.createGroupCreates a group component.
octane.gui.createLabelCreates a label component.
octane.gui.createNumericBoxCreates a numeric box component.
octane.gui.createOcioColorSpaceComboBoxCreates an OCIO color space combo box component.
octane.gui.createOcioLookComboBoxCreates an OCIO look combo box component.
octane.gui.createOcioViewComboBoxCreates an OCIO view combo box component.
octane.gui.createParameterCreates a label and numeric box set and returns it.
octane.gui.createProgressBarCreates a progress bar component.
octane.gui.createPropertyTableCreates a table holding data values that are bound to component's properties. When the values in this table are updated, the component is updated. When the component is updated, the values in the table are updated accordingly. The values must first be bound with a call to octane.gui.bind.
octane.gui.createSliderCreates a slider component.
octane.gui.createTextEditorCreates a text editor component.
octane.gui.createWindowCreates a window component.
octane.gui.dispatchGuiEventsDispatches GUI events until the given time has elapsed. This can be used to make the GUI appear responsive while doing heavy work. The timeout should be small, in most cases it can be less than 100 milliseconds. This function should be used with care. You may receive callbacks while this function is running, like GUI callbacks, render callbacks or timer callbacks. If any of these callbacks open a dialog window, this function will not return until that window is closed, regardless of the timeout. Due to the complications above, this function should not be used to run code after a set delay, use octane.timer instead.
octane.gui.getPropertiesReturns the component's properties.
octane.gui.showDialogShows a dialog window. This function will block until the dialog is closed.
octane.gui.showErrorShows an error.
octane.gui.showWindowMakes this window visible, this function blocks until closeWindow is called on the window. Use the event callback function to react to UI events.
octane.gui.updatePropertiesUpdates the component's properties.
octane.gui.updateStatusUpdates the status of the lua script. This will display a status bar and a status message in the status bar of OctaneRender Standalone.

Properties

octane.gui.PROPS_BUTTON_DIALOGProperties for a button dialog.
octane.gui.PROPS_DIALOGGeneric properties applicable to every dialog.
octane.gui.PROPS_FILE_DIALOGProperties for a file dialog.
octane.gui.PROPS_GUI_BITMAPProperties for a bitmap.
octane.gui.PROPS_GUI_BUTTONProperties for a button.
octane.gui.PROPS_GUI_CHECK_BOXProperties for a check box.
octane.gui.PROPS_GUI_COLOUR_SWATCHProperties for a color swatch.
octane.gui.PROPS_GUI_COMBO_BOXProperties for a combo box.
octane.gui.PROPS_GUI_COMPONENTGeneric properties that are valid for each component.
octane.gui.PROPS_GUI_GROUPProperties for a group.
octane.gui.PROPS_GUI_LABELProperties for a label.
octane.gui.PROPS_GUI_OCIO_COLOR_SPACE_COMBO_BOXProperties for an OCIO color space combo box.
octane.gui.PROPS_GUI_OCIO_LOOK_COMBO_BOXProperties for an OCIO look combo box.
octane.gui.PROPS_GUI_OCIO_VIEW_COMBO_BOXProperties for an OCIO view combo box.
octane.gui.PROPS_GUI_PANEL_STACKProperties for a panel stack.
octane.gui.PROPS_GUI_PROGRESS_BARProperties for a progress bar.
octane.gui.PROPS_GUI_SLIDERProperties for a slider.
octane.gui.PROPS_GUI_TABLEProperties for a table.
octane.gui.PROPS_GUI_TABSProperties for a tabbed component.
octane.gui.PROPS_GUI_WINDOWProperties for a window.
octane.gui.PROPS_NUMERIC_BOXProperties for a numeric box.
octane.gui.PROPS_TEXT_EDITORProperties for a text editor.

Constants

octane.gui.componentTypeTypes of components that can be created in a gui.
octane.gui.dialogIconTypes of icons displayed on dialogs
octane.gui.dialogTypeTypes of dialogs that can be shown in the user interface.
octane.gui.eventTypeTypes of events that can be fired from a gui component.

Module apiinfo

Provides functionality to get information about the API.

Functions

octane.apiinfo.findConfigurationByInterfaceFind the configuration that has the given node interface of texture value types of output and inputs
octane.apiinfo.findConfigurationByParametersFind the configuration that the typed texture node would switch to when set to given configuration parameters
octane.apiinfo.getAttributeIdReturns the ID for an attribute name.
octane.apiinfo.getAttributeIdNameReturns the attribute ID as string specified as ID or name.
octane.apiinfo.getAttributeNameReturns the name for an attribute ID.
octane.apiinfo.getAttributeTypeNameReturns the name for an attribute type.
octane.apiinfo.getCompatibleTypesReturns the graphs and nodes compatible with the output type.
octane.apiinfo.getGraphAttributeInfoReturns info about an attribute available on graphs of a given type.
octane.apiinfo.getGraphInfoReturns info about a graph type.
octane.apiinfo.getGraphTypeNameReturns the name for a graph type.
octane.apiinfo.getGraphTypesFetches all registered node graph types.
octane.apiinfo.getNodeAttributeInfoReturns info about an attribute available on nodes of a given type.
octane.apiinfo.getNodeInfoReturns info about a node type.
octane.apiinfo.getNodeTypeNameReturns the name for a node type.
octane.apiinfo.getNodeTypesFetches all registered node types.
octane.apiinfo.getPinIdReturns the ID of a pin based on its name.
octane.apiinfo.getPinIdNameReturns the pin ID as string specified as ID or name.
octane.apiinfo.getPinInfoReturns info about a pin available on nodes of a given type (static pins only).
octane.apiinfo.getPinNameReturns the name of a pin based on its pin ID.
octane.apiinfo.getPinTypeNameReturns the name for a pin type.
octane.apiinfo.getSystemInfoReturns a table with info about the system.
octane.apiinfo.getTextureValueTypeNameGets the OSL value type name string of an octane.textureValueType
octane.apiinfo.isDeprecatedReturns true if a given pin info or attribute info is deprecated in the current version.

Properties

octane.apiinfo.PROPS_ATTR_INFOTable with info about an attribute.
octane.apiinfo.PROPS_BIT_MASK_PIN_INFOTable with info about a bit mask pin.
octane.apiinfo.PROPS_BOOL_PIN_INFOTable with info about a bool type pin.
octane.apiinfo.PROPS_ENUM_PIN_INFOTable with info about an enum type pin.
octane.apiinfo.PROPS_FLOAT_PIN_INFOTable with info about a float type pin.
octane.apiinfo.PROPS_GRAPH_INFOTable with info about a graph type.
octane.apiinfo.PROPS_INT_PIN_INFOTable with info about an int type pin.
octane.apiinfo.PROPS_NODE_CONFIGURATIONA specific configuration of value types of a texture node's output and texture inputs
octane.apiinfo.PROPS_NODE_CONFIGURATION_INTERFACEThe resolved texture value types of the node's output and texture inputs in the configuration
octane.apiinfo.PROPS_NODE_CONFIGURATION_PARAMETERSParameters that control what the texture types of output and inputs are resolved to in the configuration
octane.apiinfo.PROPS_NODE_INFOTable with info about a node type.
octane.apiinfo.PROPS_OCIO_COLOR_SPACE_PIN_INFOTable with info about an OCIO color space type pin.
octane.apiinfo.PROPS_OCIO_LOOK_PIN_INFOTable with info about an OCIO look type pin.
octane.apiinfo.PROPS_OCIO_VIEW_PIN_INFOTable with info about an OCIO view type pin.
octane.apiinfo.PROPS_PIN_INFOTable with info about a pin.
octane.apiinfo.PROPS_PROJECTION_PIN_INFOTable with info about a projection type pin.
octane.apiinfo.PROPS_STRING_PIN_INFOTable with info about a string type pin.
octane.apiinfo.PROPS_SYSTEM_INFOTable with info about the user's system.
octane.apiinfo.PROPS_TEXTURE_NODE_TYPE_INFOMetadata related to texture nodes with typed texture inputs and/or output
octane.apiinfo.PROPS_TEXTURE_PIN_INFOTable with info about a texture type pin.
octane.apiinfo.PROPS_TRANSFORM_PIN_INFOTable with info about a transform type pin.

Module mt19937

32-bit Mersenne Twister 19937 pseudo-random number generator functions. Use this for a consistent cross-platform engine instead of the built-in math.random()..

Functions

octane.mt19937.maxGets the largest possible value in the output range.
octane.mt19937.randomAdvances the engine's state and returns the generated value.
octane.mt19937.random01Advances the engine's state and returns the generated value in the [0, 1] range.
octane.mt19937.seedSets the current state of the engine.

Module Overview

There are currently 3 ways to write Lua code in OctaneRender: In a Lua script, in a Lua script graph and in a render job graph. You will find more details about those below. In general, you can use all functionality of the Lua language (OctaneRender uses currently version 5.3) as well as additional functions provided by OctaneRender to interact with Octane, the project and rendering. The Lua documentation portal can be found under the URL: https://www.lua.org/docs.html And the Lua 5.3 reference manual can be found here: https://www.lua.org/manual/5.3 The Lua API of OctaneRender is documented in the Lua API browser (which you are using right now). Another source of information are the Lua scripts and render jobs distributed with the Standalone. And last but not least you can find a lot of valuable information and exisiting scripts on our dedicated Lua scripting forum: https://render.otoy.com/forum/viewforum.php?f=73 === LUA SCRIPTS === Lua scripts can be either written directly in the Lua script editor and run from there. Or you create a file with suffix .lua in the Lua script directory that is set in the application preferences. All scripts in that directory will appear in the script menu. To run a Lua script you either select it from the script menu or you select it in the Lua script editor and click on the run button. Alternatively you can assign a keyboard shortcut via the metadata section (see below) and run the script this way. === LUA SCRIPT GRAPHS === Lua script graphs allow you to add new functionality to the node system of OctaneRender. Examples would be a script graph that allows you to switch between multiple inputs or a script graph that moves a camera along a circle. Fundamentally a Lua script graph consists of a special node graph with an assigned Lua script. This script can then create inputs and outputs of the node graph and any other node items it needs. Then whenever the time or its inputs are changed it can update the content of the node graph. For more information about writing a Lua script graph please read the documentation of the module "scriptgraph" in the Lua API browser. To create a new Lua script graph, select "Other" -> "Scripted graph" in the item dropdown menu of the node graph editor. Then start writing the Lua code. To reuse finished Lua script graphs you can either export it into a ORBX package or store it in the Local DB. Alternatively, you can add a defined category in the metadata (see below) of the Lua script and save the Lua script in the Lua script directory. After re-scanning the folder, the Lua script graph will appear as an option in the new item context menu. === RENDER JOB GRAPHS === Render job graphs are a Lua script graphs with additional callbacks so that they can be integrated into the render job render flow. For more information please consult the documentation of the module "renderjobgraph" or check out the examples we distribute with the Standalone. === METADATA === In the header of a Lua script you can define additional metadata to help the user and allow a better integration of the Lua script in the OctaneRender user interface. These are the possible fields you can define: @author - Author(s) of the script. @description - Short description of the script and what it does. @version - Version of the script. @script-id - A string unique to this script, used to identify stored script settings and data. See storage module for more details. Not valid for Lua script graphs and render job graphs. @shortcut - Shortcut key to execute the script. The shortcut should specify a key plus an optional modifier, e.g "ALT + S". The list of assigned shortcuts can be found in tab "Shortcuts" of the OctaneRender application preferences. Not valid for Lua script graphs and render job graphs. @node-registry-category - Category under which a Lua script graph registers in the node registry. Must start with "|" followed by any categories and the name under which the script graph should appear in the node graph context menu. For example, "|My script graphs|Awesome graphs|Make movie" will appear in the category "My script graphs" -> "Awesome graphs" with the menu entry "Make movie". Valid only for Lua script graphs.

Functions

Module timer

Call functions after certain time-outs. Timers can't run while other Lua code is running. Setting a timer is meaningful in these situations: - standalone scripts can receive timer events during blocking function calls (such as octane.render.start or window:showWindow()); - scripted graphs can receive timer events between onEvaluate calls.

Functions

octane.timer.__gcGC callback.
octane.timer.__tostringConverts value to string.
octane.timer.createCauses a function to be executed on a regular interval.
octane.timer.startStarts a timer, or change the interval of a running timer.
octane.timer.stopStop a timer.

Module renderjobgraph

The render job graph is a special type of script graph, with additional features to support us with the render functions(Eg: Batch render). The main purpose of this render job will be that the render settings can be saved with the project. The render job graph will also allow us with additional options like creating multiple render job nodes for different settings Batch render job, Daylight animation job, Turntable animation job scripts are shipped with OctaneRender. These render job graphs can be created from the node graph editor context menu. Script: Please read the script graph to find out, how to use Lua script in the script graph. The attributes of the render job graph listed under GT_RENDER_JOB, this can be viewed in the items window. Two important attributes of the render job graph are described below. 1. A_TOTAL_FRAMES (write) : The script has to specify a total number of the frames exists in this render job. The number should be grand total count of all the render target animation frames (ie if animation frames = 30 and input render target count is 3 then total frames for this render job is 90) Eg: graph:setAttribute(octane.A_TOTAL_FRAMES, 90) 2. A_OUTPUT_DIRECTORY (read) : Location on the disk where we need to save the rendered files. This is set from the render job user interface. Eg: graph:getAttribute(octane.A_OUTPUT_DIRECTORY) Additional callbacks: In addition to the script graph OnInit(), onEvaluate(), OnShutdown(), this render job graph has four additional callback functions. onIterate, onSaveRenderedFrame, onStartIteration, onFinishIteration For detailed description, please click on the callbacks names listed in the members window

Functions

octane.renderjobgraph.onFinishIterationThis callback function is called once at the end of the iteration. It can be used to release anything upon the completion of rendering.
octane.renderjobgraph.onIterateCallback function, This is the main render loop callback function, which will be called for A_TOTAL_FRAMES times. Then this callback can tell octane viewport, which render target has to be rendered.
octane.renderjobgraph.onSaveRenderedFrameThis callback function will be called when the rendering of current frame has been completed.
octane.renderjobgraph.onStartIterationThis callback function is called once on the start of the iteration. The function can be used to initialize before the start of rendering.

Module render

Provides functionality to do rendering: configuring render devices (GPUs), modifying the clay mode, starting and stopping the render engine and saving render results as images to disk.

Functions

octane.render.callbackStopStops the rendering. Calling this function pauses the render and unblocks octane.render.start.
octane.render.canSaveDeepImageChecks if we can the current render as a deep image. Renders can only be saved as deep images when deep image rendering is enabled and enough deep 'seed' samples are calculated.
octane.render.clearStops rendering and clears the render target. Calling this while a call to start() is running will raise an error. Use callbackStop() instead.
octane.render.continueContinues rendering, if paused. Calling this while a call to start() is running will raise an error.
octane.render.deepImageEnabledChecks if deep image rendering is enabled.
octane.render.deepPassesEnabledChecks if deep image rendering and deep render AOVs are enabled.
octane.render.getAllRenderPassIdsReturns a table with the IDs of all the render AOVs available in Octane.
octane.render.getChangeLevelReturns the change level of the render engine. The change level is a number tracked in the engine. It's incremented every time a change is made in the render engine.
octane.render.getClayModeReturns the current clay mode.
octane.render.getDeviceCountReturns the number of devices (GPUs)
octane.render.getDevicePropertiesReturns the properties and memory usage statistics of the rendering device.
octane.render.getDisplayRenderPassIdReturns the id of the render pass that is displayed, returned from the render callback.
octane.render.getEnabledAovsReturns a table with the IDs of all render AOVs and composite AOVs that are enabled in the specified render target node.
octane.render.getGeometryStatisticsReturns the geometry statistics
octane.render.getMemoryUsageReturns memory usage on the device in MB.
octane.render.getPreviewRenderTargetNodeReturns the preview render target node.
octane.render.getRenderPassInfoReturns the information for a render pass.
octane.render.getRenderRegionReturns the current render region. The coordinate system is the same as for the render results.
octane.render.getRenderResultStatisticsReturns the statistics for the latest render result. When no result was rendered yet, the result will be zeroed out.
octane.render.getRenderTargetNodeReturns the render target node that's currently rendering. Returns nil if there isn't one.
octane.render.getSubSampleModeReturns the current sub-sampling mode
octane.render.grabRenderResultGets the render result.
octane.render.isPausedChecks if rendering is currently paused.
octane.render.loadRenderStateLoads an .OCR render state.
octane.render.pausePauses the current render. Behaves the same as the pause button in the standalone. Calling this while a call to start() is running will raise an error.
octane.render.previewRenders a preview of the given material
octane.render.previewHdrDeprecated: Use previewHdr2 instead. Renders an HDR preview of the given material
octane.render.previewHdr2Renders an HDR preview of the given material
octane.render.resetResets the render engine. Calling this while a call to start() is running will raise an error. Use callbackStop() instead.
octane.render.restartRestarts rendering. Behaves the same as the restart button in the standalone. Calling this while a call to start() is running will raise an error.
octane.render.saveDeepImageDeprecated: Use saveDeepImage2 instead. Saves the raw XYZ buffers in a multi layer EXR.
octane.render.saveDeepImage2Saves the current render as a deep image. The output format is OpenEXR.
octane.render.saveImageDeprecated: Use saveImage3 instead. Saves out the current render to file. When render passes are enabled, this will only save the render pass that is currently displayed in the render viewport.
octane.render.saveImage2Deprecated: Use saveImage3 instead. Saves out the current render to file. When render passes are enabled, this will only save the render pass that is currently displayed in the render viewport.
octane.render.saveImage3Saves out the current render to file. When render passes are enabled, this will only save the render pass that is currently displayed in the render viewport.
octane.render.saveRenderPassDeprecated: Use saveRenderPass3 instead. Saves out a render pass to file only when the render pass is enabled
octane.render.saveRenderPass2Deprecated: Use saveRenderPass3 instead. Saves out a render pass to file only when the render pass is enabled
octane.render.saveRenderPass3Saves out a render pass to file only when the render pass is enabled
octane.render.saveRenderPassesDeprecated: Use saveRenderPasses3 instead. Saves the result of all the render passes in multiple files. Only render passes that are already started by the render engine are saved out to file.
octane.render.saveRenderPasses2Deprecated: Use saveRenderPasses3 instead. Saves the result of all the render passes in multiple files. Only render passes that are already started by the render engine are saved out to file.
octane.render.saveRenderPasses3Saves the result of all the render passes in multiple files. Only render passes that are already started by the render engine are saved out to file.
octane.render.saveRenderPassesDeepExrDeprecated: Use saveRenderPassesDeepExr2 instead. Saves a set of render passes into a deep pixel OpenEXR file. Only render passes that are already started in the engine are included in the result. (This applies to info render passes which are started independently from the beauty render passes.). If deep render passes is not enabled in the kernel settings, only RENDER_PASS_BEAUTY can be exported.
octane.render.saveRenderPassesDeepExr2Saves a set of render passes into a deep pixel OpenEXR file. Only render passes that are already started in the engine are included in the result. (This applies to info render passes which are started independently from the beauty render passes.). If deep render passes is not enabled in the kernel settings, only RENDER_PASS_BEAUTY can be exported.
octane.render.saveRenderPassesMultiExrDeprecated: Use saveRenderPassesMultiExr3 instead. Saves a set of render passes into a multi-layer OpenEXR file. Only render passes that are already started in the engine are included in the result. (This applies to info render passes which are started independently from the beauty render passes.)
octane.render.saveRenderPassesMultiExr2Deprecated: Use saveRenderPassesMultiExr3 instead. Saves a set of render passes into a multi-layer OpenEXR file. Only render passes that are already started in the engine are included in the result. (This applies to info render passes which are started independently from the beauty render passes.)
octane.render.saveRenderPassesMultiExr3Saves a set of render passes into a multi-layer OpenEXR file. Only render passes that are already started in the engine are included in the result. (This applies to info render passes which are started independently from the beauty render passes.)
octane.render.saveRenderStateSaves the render state as .OCR.
octane.render.setClayModeSets the current clay mode.
octane.render.setDevicesActivitySets the render device active for rendering.
octane.render.setDisplayRenderPassIdSets the displayed render pass. This is the render pass displayed in the Octane viewport and the result returned from the render callback. This function will throw an error when rendering hasn't started yet or when the render pass is not enabled in the node.
octane.render.setRenderRegionSets the render region. Both min and max will be clamped at the actual resolution. The coordinate system is the same as for render results.
octane.render.setSubSampleModeSets the current sub-sampling mode.
octane.render.startStarts rendering. This function will block until rendering is finished and returns the final render results. To get intermediate results, it's possible to add a callback function. After rendering finished the render engine will be paused. You can continue it yourself via octane.render.continue if you want. This function returns when octane.render.callbackStop is called from the callback, when the requested samples are reached or when the max render time is exceeded.
octane.render.synchronousTonemapDeprecated: Use synchronousTonemap3 instead. Tonemap one or more render passes. This is a fairly slow operation and should not be called often. See also setDisplayRenderPassId(), which determines which render pass you receive via the render callback. When a list of render pass IDs is given, any duplicates, and any passes which are disabled will be omitted from the results.
octane.render.synchronousTonemap2Deprecated: Use synchronousTonemap3 instead. Tonemap one or more render passes. This is a fairly slow operation and should not be called often. See also setDisplayRenderPassId(), which determines which render pass you receive via the render callback. When a list of render pass IDs is given, any duplicates, and any passes which are disabled will be omitted from the results.
octane.render.synchronousTonemap3Tonemap one or more render passes. This is a fairly slow operation and should not be called often. See also setDisplayRenderPassId(), which determines which render pass you receive via the render callback. When a list of render pass IDs is given, any duplicates, and any passes which are disabled will be omitted from the results.

Properties

octane.render.PROPS_RENDER_COLOR_SPACE_INFOTable with properties about the color space to render to. The type property determines which other properties are relevant: octane.outputColorSpaceType.KNOWN_COLOR_SPACE: colorSpace, forceToneMapping octane.outputColorSpaceType.OCIO_COLOR_SPACE: ocioColorSpaceName, ocioLookName, forceToneMapping, ocioColorSpaceCurveType octane.outputColorSpaceType.OCIO_VIEW: ocioDisplayName, ocioViewName, ocioUseViewLook, ocioLookName, forceToneMapping, ocioColorSpaceCurveType octane.outputColorSpaceType.USE_IMAGER_SETTINGS: colorSpace
octane.render.PROPS_RENDER_DEVICETable with properties of a render device.
octane.render.PROPS_RENDER_GEOM_STATSTable with the geometry statistics.
octane.render.PROPS_RENDER_MEM_USAGETable with the memory usage.
octane.render.PROPS_RENDER_PASS_EXPORTTable with render pass export information.
octane.render.PROPS_RENDER_PASS_INFOTable with information about a render pass.
octane.render.PROPS_RENDER_PREVIEWTable with properties to render a material preview.
octane.render.PROPS_RENDER_REGIONTable representing a render region.
octane.render.PROPS_RENDER_RESULTTable with a render result.
octane.render.PROPS_RENDER_RESULT_STATISTICSTable with render statistics.
octane.render.PROPS_RENDER_STARTTable with properties to start a render.

Module gridlayout

Arranges its child components into a resizable grid layout. The grid itself is not visible. The grid arranges cells in rows or columns. Cells can be empty or components can occupy multiple grid cells. Cells can also contain nested grids. The grid can stretch beyond its initial size but it cannot shrink beyond its initial size. You should setup the grid with the minimum initial size of the components. A grid layout can only be added to a window via the gridLayout property. Here's a usage example of the grid layout: local layout = octane.gridlayout.create() layout:startSetup() local row = 1 local title = octane.gui.create{ type=octane.componentType.TITLE_COMPONENT, text="Settings" } layout:add(title, 1, row) row = row + 1 local button1 = octane.gui.create{ type=octane.componentType.BUTTON, text="First button" } layout:add(button1, 1, row) row = row + 1 local button2 = octane.gui.create{ type=octane.componentType.BUTTON, text="Second button" } layout:add(button2, 1, row) row = row + 1 layout:setElasticityForAllRows(0) layout:endSetup() local window = octane.gui.create { type = octane.gui.componentType.WINDOW, text = "Grid layout", gridLayout = layout, -- grid is resized to fit the window width = 480, height = 640, } window:showWindow()

Functions

octane.gridlayout.__index__index meta-method for gridlayout.
octane.gridlayout.__tostringConverts value to string.
octane.gridlayout.addAdds a new component to a grid cell.
octane.gridlayout.addEmptyAdd a new empty grid cell. This will make sure that the dimensions of the grid are extended to fit this cell.
octane.gridlayout.addSpanAdds a new component spanning multiple cells of the grid.
octane.gridlayout.createCreates a new grid layout.
octane.gridlayout.endNestedGridFinishes the current nested grid and switches the context back to the parent grid.
octane.gridlayout.endSetupCreates the initial layout and resizes the parent component accordingly. After that, no components can be added anymore.
octane.gridlayout.getHeightReturns the current height of the grid in pixels.
octane.gridlayout.getWidthReturns the current width of the grid in pixels.
octane.gridlayout.inSetupPhaseReturns true if the grid is in the setup phase. The setup phase means that octane.gridlayout.startSetup() was called but not yet octane.gridlayout.endSetup().
octane.gridlayout.setColElasticitySets the stretch factor of a column.
octane.gridlayout.setElasticityForAllColsSets the elasticity for all the cols in the grid (which is the current active grid, i.e. this can be a sub-grid).
octane.gridlayout.setElasticityForAllRowsSets the elasticity for all the rows in the grid (which is the current active grid, i.e. this can be a sub-grid).
octane.gridlayout.setRowElasticitySets the stretch factor of a row.
octane.gridlayout.startNestedGridStarts a new nested grid. All components that will be added after startNestedGrid() will go into the nest grid until endNestedGrid() has been called.
octane.gridlayout.startSetupStarts the set up phase, where components can be added to the grid. Setting up the grid layout should be done only once.

Properties

octane.gridlayout.PROPS_GRID_LAYOUTProperties of a grid layout.

Module common

Provides common functionality used everywhere in scripts.

Functions

octane.common.printPrints a value, value can be of type (number, boolean, table, string, function, thread, nil).
octane.common.timeReturns the current time as reported by your system. This value can be compared to values returned from octane.file.getModifiedTime() and similar functions. Precision depends on the system, but it should be more precise than os.time() which returns whole seconds.

Function Overview

octane.modules.getCommandModules

Description
Returns a table with the IDs of available external command modules.
Return Values
Name Type Description
moduleIds table Table with the IDs of available external command modules.
Synopsis
moduleIds = octane.modules.getCommandModules( )

octane.modules.getDirectory

Description
Returns the current directory from where Octane loads external modules.
Return Values
Name Type Description
path string Absolute path to Octane's external modules directory.
Synopsis
path = octane.modules.getDirectory( )

octane.modules.getModuleInfo

Description
Returns module information for the passed module Id.
Parameters
Name Type Description
moduleId integer The module id.
Return Values
Name Type Description
PROPS_MODULE_INFO table Table with the module's properties.
Synopsis
PROPS_MODULE_INFO = octane.modules.getModuleInfo( moduleId )

octane.modules.getNodegraphModules

Description
Returns a table with the IDs of available external node graph modules.
Return Values
Name Type Description
moduleIds table Table with the IDs of available external node graph modules.
Synopsis
moduleIds = octane.modules.getNodegraphModules( )

octane.modules.runCommandModule

Description
Execute a command module
Parameters
Name Type Description
moduleId number The command module Id.
Return Values
Name Type Description
success boolean TRUE if the command was successfully executed. Otherwise FALSE.
Synopsis
success = octane.modules.runCommandModule( moduleId )

octane.modules.setDirectory

Description
A directory from which modules will be loaded. The alternate method is to get the application preferences node and set the path in the A_MODULES_DIRECTORY attribute. NOTE: Modules are only loaded during application start. If a new path is set you will have to restart Octane in order to load the new modules.
Parameters
Name Type Description
path string The new modules directory.
Return Values
Name Type Description
success boolean TRUE if the directory is set successfully. Otherwise FALSE.
Synopsis
success = octane.modules.setDirectory( path )

octane.rendercloudmanager.newRenderTask

Description
Opens a Web UI for creating a new render task. Has no effect if no user is currently logged in.
Parameters
Name Type Description
sceneGuid string GUID of the scene to be rendered.
Synopsis
octane.rendercloudmanager.newRenderTask( sceneGuid )

octane.rendercloudmanager.uploadCurrentProject

Description
Uploads the current project to the server. The project name on the server will be the name of the root node graph of the project. Has no effect if no user is currently logged in. If passing in a function to missingFileCallback, the signature is: proceed = onUpdateCallback(percent) - percent (number): current upload percent from 0 to 100; - proceed (bool): whether the upload must continue after the callback returns.
Parameters
Name Type Description
rootGuid string (optional) Scene's root version GUID on the server (this will be ignored if the project settings graph already contains versioning information).
onUpdateCallback function (optional) Upload progress update callback. It will report the total upload progress.If the callback returns FALSE the whole upload will be canceled.
Return Values
Name Type Description
PROPS_RENDER_CLOUD_UPLOAD_RESULTS table Table containing the upload results.
Synopsis
PROPS_RENDER_CLOUD_UPLOAD_RESULTS = octane.rendercloudmanager.uploadCurrentProject( rootGuid, onUpdateCallback )

octane.rendercloudmanager.uploadRootNodeGraph

Description
Uploads a root node graph together with the current project settings to the server. The project name on the server will be the name of the root node graph of the project. Has no effect if no user is currently logged in. If passing in a function to missingFileCallback, the signature is: proceed = onUpdateCallback(percent) - percent (number): current upload percentage from 0 to 100; - proceed (bool): whether the upload must continue after the callback returns.
Parameters
Name Type Description
rootNodeGraph graph The root node graph to upload. The name of the root node graph will be used as project name on the server.
rootGuid string (optional) Scene's root version GUID on the server (this will be ignored if the project settings graph already contains versioning information).
onUpdateCallback function (optional) Upload progress update callback. It will report the total upload progress.If the callback returns FALSE the whole upload will be canceled.
Return Values
Name Type Description
PROPS_RENDER_CLOUD_UPLOAD_RESULTS table Table containing the upload results.
Synopsis
PROPS_RENDER_CLOUD_UPLOAD_RESULTS = octane.rendercloudmanager.uploadRootNodeGraph( rootNodeGraph, rootGuid, onUpdateCallback )

octane.rendercloudmanager.userSubscriptionInfo

Description
Populates the provided table with the information for the current user's subscription.
Return Values
Name Type Description
PROPS_RENDER_CLOUD_USER_SUBSCRIPTION_INFO_RESULTS table User subscription data.
Synopsis
PROPS_RENDER_CLOUD_USER_SUBSCRIPTION_INFO_RESULTS = octane.rendercloudmanager.userSubscriptionInfo( )

octane.matrix.add

Description
Returns the sum of 2 matrices.
Parameters
Name Type Description
m matrix matrix.
n matrix matrix.
Return Values
Name Type Description
sum matrix The sum of the 2 matrices.
Synopsis
sum = octane.matrix.add( m, n )

octane.matrix.divScalar

Description
Divides each element of the matrix with the scalar value.
Parameters
Name Type Description
m matrix matrix.
s matrix scalar.
Return Values
Name Type Description
prod matrix matrix
Synopsis
prod = octane.matrix.divScalar( m, s )

octane.matrix.getIdentity

Description
Returns the identity matrix.
Return Values
Name Type Description
identity matrix The identity matrix.
Synopsis
identity = octane.matrix.getIdentity( )

octane.matrix.inverse

Description
Returns the inverse of the matrix.
Parameters
Name Type Description
matrix matrix Matrix which we'd like to invert.
Return Values
Name Type Description
inverse matrix The inverse of the input matrix.
Synopsis
inverse = octane.matrix.inverse( matrix )

octane.matrix.isSingular

Description
Check if this matrix is singular.
Parameters
Name Type Description
matrix matrix The matrix to check.
Return Values
Name Type Description
singular bool TRUE if this matrix is singular.
Synopsis
singular = octane.matrix.isSingular( matrix )

octane.matrix.lerp

Description
Interpolates the values of the matrices with the weight t. (e.g Rij = (1 - t ) * Aij + t * Bij)
Parameters
Name Type Description
m matrix matrix.
n matrix matrix.
t number interpolation weight between 0 and 1.
Return Values
Name Type Description
result matrix matrix
Synopsis
result = octane.matrix.lerp( m, n, t )

octane.matrix.make2dTransformation

Description
Creates a 2d transformation matrix.
Parameters
Name Type Description
rotationZ number Rotation around the Z axis in radians.
scale vec Scale vector.
translation vec Translation vector.
Return Values
Name Type Description
matrix matrix The transformation matrix.
Synopsis
matrix = octane.matrix.make2dTransformation( rotationZ, scale, translation )

octane.matrix.make3dTransformation

Description
Creates a 3d transformation matrix.
Parameters
Name Type Description
rotation vec Rotation XYZ angles in radians.
scale vec Scale vector.
translation vec Translation vector.
order number Rotation order.
Return Values
Name Type Description
matrix matrix The transformation matrix.
Synopsis
matrix = octane.matrix.make3dTransformation( rotation, scale, translation, order )

octane.matrix.makeRotX

Description
Creates a rotation matrix of a rotation around the X axis.
Parameters
Name Type Description
angle number Rotation angle in radians.
Return Values
Name Type Description
matrix matrix The rotation matrix.
Synopsis
matrix = octane.matrix.makeRotX( angle )

octane.matrix.makeRotY

Description
Creates a rotation matrix of a rotation around the Y axis.
Parameters
Name Type Description
angle number Rotation angle in radians.
Return Values
Name Type Description
matrix matrix The rotation matrix.
Synopsis
matrix = octane.matrix.makeRotY( angle )

octane.matrix.makeRotZ

Description
Creates a rotation matrix of a rotation around the Z axis.
Parameters
Name Type Description
angle number Rotation angle in radians.
Return Values
Name Type Description
matrix matrix The rotation matrix.
Synopsis
matrix = octane.matrix.makeRotZ( angle )

octane.matrix.makeRotation

Description
Creates a rotation matrix for Euler angles.
Parameters
Name Type Description
angles vec Rotation XYZ angles in radians.
order number Rotation order.
Return Values
Name Type Description
matrix matrix The rotation matrix.
Synopsis
matrix = octane.matrix.makeRotation( angles, order )

octane.matrix.makeScale

Description
Creates a scale matrix.
Parameters
Name Type Description
scale vec The scale components.
Return Values
Name Type Description
matrix matrix The translation matrix.
Synopsis
matrix = octane.matrix.makeScale( scale )

octane.matrix.makeTranslation

Description
Creates a translation matrix.
Parameters
Name Type Description
translation vec The translation direction.
Return Values
Name Type Description
matrix matrix The translation matrix.
Synopsis
matrix = octane.matrix.makeTranslation( translation )

octane.matrix.mul

Description
Returns the product of 2 matrices.
Parameters
Name Type Description
m matrix matrix.
n matrix matrix.
Return Values
Name Type Description
prod matrix The product of the 2 matrices.
Synopsis
prod = octane.matrix.mul( m, n )

octane.matrix.mulP

Description
Returns the product of a matrix and a vec, applying translation to the vec.
Parameters
Name Type Description
m matrix matrix.
v vec vector.
Return Values
Name Type Description
w vec Product of the matrix and the vector.
Synopsis
w = octane.matrix.mulP( m, v )

octane.matrix.mulScalar

Description
Multiplies each element of the matrix with the scalar value.
Parameters
Name Type Description
m matrix matrix.
s matrix scalar.
Return Values
Name Type Description
prod matrix matrix
Synopsis
prod = octane.matrix.mulScalar( m, s )

octane.matrix.mulV

Description
Returns the product of a matrix and a vec, not applying translation to the vec.
Parameters
Name Type Description
m matrix matrix.
v vec vector.
Return Values
Name Type Description
w vec Product of the matrix and the vector.
Synopsis
w = octane.matrix.mulV( m, v )

octane.matrix.scale

Description
Applies a scale to the matrix.
Parameters
Name Type Description
matrix matrix Matrix on which we apply the scaling.
scale vec Scale to apply.
Return Values
Name Type Description
scaled matrix Matrix after applying the scaling.
Synopsis
scaled = octane.matrix.scale( matrix, scale )

octane.matrix.split

Description
Converts a matrix into rotation/scale/translation. Only orthogonal matrices can be represented (more or less) exactly by these 3 vectors. If the matrix is not orthogonal, we try to make a best guess, depending on the rotation order: We will keep the axis of the rightmost rotation operation and the plane of the axis' of the leftmost and the rightmost rotation operations, e.g.: If the rotation order is ROT_XYZ, we keep the Z axis and the X and Z axis' stay in their original plane.
Parameters
Name Type Description
matrix matrix Transformation matrix to split.
rotationOrder number Rotation order.
Return Values
Name Type Description
rotation vec Rotation vector.
scale vec Scale vector.
translation vec Translation vector.
Synopsis
rotation, scale, translation = octane.matrix.split( matrix, rotationOrder )

octane.matrix.sub

Description
Returns the difference of 2 matrices.
Parameters
Name Type Description
m matrix matrix.
n matrix matrix.
Return Values
Name Type Description
diff matrix The difference of the 2 matrices.
Synopsis
diff = octane.matrix.sub( m, n )

octane.matrix.translate

Description
Applies a translation to the matrix.
Parameters
Name Type Description
matrix matrix Matrix on which we apply the translation.
translation vec Translation to apply.
Return Values
Name Type Description
translated matrix Matrix after applying the translation.
Synopsis
translated = octane.matrix.translate( matrix, translation )

octane.matrix.transpose

Description
Returns the transpose of the matrix.
Parameters
Name Type Description
matrix matrix Matrix which we'd like to transpose.
Return Values
Name Type Description
transposed matrix The transpose of the input matrix.
Synopsis
transposed = octane.matrix.transpose( matrix )

octane.vec.add

Description
Returns the sum of 2 vectors.
Parameters
Name Type Description
vec0 vec 1st vector (array of 3 numbers).
vec1 vec 2nd vector (array of 3 numbers).
Return Values
Name Type Description
sum vec Sum of the vectors.
Synopsis
sum = octane.vec.add( vec0, vec1 )

octane.vec.cross

Description
Returns the cross product of 2 vectors.
Parameters
Name Type Description
v vec 1st vector (array of 3 numbers).
w vec 2nd vector (array of 3 numbers).
Return Values
Name Type Description
cross vec The cross product of the vectors.
Synopsis
cross = octane.vec.cross( v, w )

octane.vec.dot

Description
Returns the dot product of 2 vectors.
Parameters
Name Type Description
v vec 1st vector (array of 3 numbers).
w vec 2nd vector (array of 3 numbers).
Return Values
Name Type Description
dot number The dot product of the vectors.
Synopsis
dot = octane.vec.dot( v, w )

octane.vec.length

Description
Returns the length of a vector.
Parameters
Name Type Description
v vec A vector (array of 3 numbers).
Return Values
Name Type Description
length number The length of the vector.
Synopsis
length = octane.vec.length( v )

octane.vec.lerp

Description
Interpolates the values of the vectors with the weight t. (e.g result.x = (1 - t ) * v.x + t * w.x)
Parameters
Name Type Description
v vec vector
w vec vector
t number interpolation weight between 0 and 1.
Return Values
Name Type Description
result vec vector
Synopsis
result = octane.vec.lerp( v, w, t )

octane.vec.normalized

Description
Returns a normalized vector.
Parameters
Name Type Description
v vec A vector (array of 3 numbers).
Return Values
Name Type Description
normalized vec The normalized vector.
Synopsis
normalized = octane.vec.normalized( v )

octane.vec.rotate

Description
Rotates a vector around an axis. (The axis must be normalized.)
Parameters
Name Type Description
vec vec A vector (array of 3 numbers).
axis vec Axis of rotation (normalized).
radians number Angle of rotation in radians.
Return Values
Name Type Description
rotated vec A rotated vector.
Synopsis
rotated = octane.vec.rotate( vec, axis, radians )

octane.vec.scale

Description
Returns a vector multiplied with a scalar.
Parameters
Name Type Description
vec vec A vector (array of 3 numbers).
scalar number A scalar value.
Return Values
Name Type Description
scaled vec Scaled vector.
Synopsis
scaled = octane.vec.scale( vec, scalar )

octane.vec.sub

Description
Returns the difference of 2 vectors.
Parameters
Name Type Description
vec0 vec 1st vector (array of 3 numbers).
vec1 vec 2nd vector (array of 3 numbers).
Return Values
Name Type Description
diff vec Difference of the vectors.
Synopsis
diff = octane.vec.sub( vec0, vec1 )

octane.util.boxPointer

Description
Boxes a pointer from LuaJIT. The pointer will be boxed in a light user data. The way to to this is pass in the results of tonumber(ffi.cast('intptr_t', ffi.cast('void*', ptr))).
Parameters
Name Type Description
number number pointer wrapped in a number
Return Values
Name Type Description
pointer pointer pointer wrapped in Lua light user data
Synopsis
pointer = octane.util.boxPointer( number )

octane.util.crashMe

Description
Parameters
Name Type Description
delay number seconds
Synopsis
octane.util.crashMe( delay )

octane.util.floatRange

Description
Returns a range for float inputs. If any of the inputs is nil it is substituted with respectively a large negative or large positive value which is normally the default for a pin range.
Parameters
Name Type Description
min number minimum value
max number maximum value
Return Values
Name Type Description
range table sequence of 2 numbers {min, max}
Synopsis
range = octane.util.floatRange( min, max )

octane.util.generateUid

Description
Generates a 16 byte unique identifier.
Return Values
Name Type Description
uid string 16-byte unique identifier
Synopsis
uid = octane.util.generateUid( )

octane.util.getCurrentMillis

Description
Returns the elapse milliseconds since a fixed event (the semantics of the fixed event is system dependent -- usually this is system startup). The accuracy of this timer is system dependent.
Return Values
Name Type Description
millisecons number milliseconds elapsed since fixed event
Synopsis
millisecons = octane.util.getCurrentMillis( )

octane.util.intRange

Description
Returns a range for integer inputs. If any of the inputs is nil it is substituted with respectively a large negative or large positive value which is normally the default for a pin range.
Parameters
Name Type Description
min number minimum value
max number maximum value
Return Values
Name Type Description
range table sequence of 2 numbers {min, max}
Synopsis
range = octane.util.intRange( min, max )

octane.util.updateFlag

Description
Updates a runtime flag with the provided value.
Parameters
Name Type Description
name string Name of the flag to update.
value number Numerical value the flag will be updated to.
Return Values
Name Type Description
oldValue number Numerical value the flag used to have before.
Synopsis
oldValue = octane.util.updateFlag( name, value )

octane.json.decode

Description
Parse a JSON string Limitations: - Lua uses the same representation for empty objects and empty arrays. - Lua does not represent nil values in tables. Such key/value pairs will be lost. - Due to the above, if an array contains null elements, the resulting Lua table will not be a sequence.
Parameters
Name Type Description
jsonString string A string containing JSON
Return Values
Name Type Description
data table The parsed data
Synopsis
data = octane.json.decode( jsonString )

octane.json.encode

Description
Serialize a Lua value to a JSON string
Parameters
Name Type Description
data table The data to serialize. Limitations: - JSON only represents string keys for objects. Keys in a table which is not a sequence will be converted to strings. - If any key in a table is not a string, number or bool, an error will be raised. - Lua tables cannot contain nil values, and sequences cannot have 'holes'. - The empty table is serialized as an empty object ({}). This supports bool, integer, number and string values. Tables which are sequences will be serialized to arrays. Other tables will be serialized as objects.
Return Values
Name Type Description
jsonString string A string containing JSON
Synopsis
jsonString = octane.json.encode( data )

octane.livedb.downloadMaterial

Description
Downloads a material from the LiveDB. This will add the material's nodegraph to the project's scenegraph. This function fetches online and might take a while.
Parameters
Name Type Description
materialId number id of the material to download
destGraph graph destination graph for the downloaded material graph
Return Values
Name Type Description
output node output linker node of the graph
Synopsis
output = octane.livedb.downloadMaterial( materialId, destGraph )

octane.livedb.getCategories

Description
Returns an array PROPS_LIVE_DB_CATEGORY. This will fetch the categories online so it might take a while.
Return Values
Name Type Description
cats table Array of PROPS_LIVE_DB_CATEGORY elements.
Synopsis
cats = octane.livedb.getCategories( )

octane.livedb.getMaterials

Description
Returns an array of PROPS_LIVE_DB_MATERIAL for the materials in a category. fetches online so it might take a while.
Parameters
Name Type Description
category number category id
Return Values
Name Type Description
materials table Array of PROPS_LIVE_DB_MATERIAL elements.
Synopsis
materials = octane.livedb.getMaterials( category )

octane.settingsgroup.addRow

Description
Add a row to a settings component Keys in the settings table are: - type: the data type, can be "float", "integer", "bool", "colour", "string", "file", "directory", "enum". The type determines which kind of component is created. - key: what key in the data table to use - label: The label shown in front of the component. Can be either a string or a component. - labelEnabled: true or false, will turn the label into a checkbox with the given default value. Will add an extra key in the data table with name key.."Enabled" - component: if given, must be a component which is added to the grid. Any other keys are ignored - default: initial value if the key in the data table is not yet set - enum: table representing the enum, should be a sequence of value/name pairs, eg. { {1, "Small"}, {5, "Medium"}, {10, "Large"} } or a sequence of strings. In the latter case the index in the sequence will be the value. - forSaving, wildcards: used for files or directories - various other keys are used depending on the data type, as defined in the various octane.gui.PROPS_GUI_COMPONENT variants, eg. for sliders: step, minValue and maxValue may be specified to set data ranges, callback can be specified to get additional GUI callbacks. Some scripts also operate on nodes or graphs, for this case the component can contain a combo box to let the user select the nodes. Use the following keys: - key: what key in the data table to use. This key is set to the selected node or graph. A second key, key.."Name" is used to store the node name. - type: set to "node" - items: sequence of node items to show in the dropdown. If not set, scan a node graph for items - parentGraph: which node graph to scan for matching nodes for the dropdown, if nil the project scene graph is used. - nodeTypes: limit selection to the given node types and graph types - graphTypes: see above - outputType: if set, limit selection to node items with the given output type
Parameters
Name Type Description
self settingsgroup Settings component.
settings table Table describing the row to add
Synopsis
octane.settingsgroup.addRow( self, settings )

octane.settingsgroup.beginGroup

Description
Begin a new group
Parameters
Name Type Description
self settingsgroup Settings component.
name string The name of the group to add
open bool Wether or not this group should be open by default
Synopsis
octane.settingsgroup.beginGroup( self, name, open )

octane.settingsgroup.create

Description
Creates a group of settings which can be shown as a component. The list argument is a table with following keys: - data: the table, created with octane.gui.createPropertyTable, containing the settings to edit. Keys in this table will be bound to the components using octane.gui.bind. - width: the initial width for this component - labelWidth: the initial width of the label column - callback (optional): callback function, see octane.gui.bind - debug: set to true to draw debugging outlines in group components See settingsgroup for a list of functions you can call on this object.
Parameters
Name Type Description
list table The table describing the settings.
Return Values
Name Type Description
group component The component to be displayed
Synopsis
group = octane.settingsgroup.create( list )

octane.settingsgroup.showDialog

Description
Shows these settings in a dialog window
Parameters
Name Type Description
self settingsgroup Settings component.
title string The dialog title
buttons table sequence of text strings, these are shown as buttons below the settings. Default value is {"OK"}
callback function Function to be called when one of the buttons is clicked. Signature is callback(window, button_index). Default value is octane.gui.closeWindow
Return Values
Name Type Description
values multi The return values depend on the callback, more specifically these are the values passed to octane.gui.closeWindow. With the default callback, returns the index of the button clicked, and nil when the dialog was closed with the close button in the title bar
Synopsis
values = octane.settingsgroup.showDialog( self, title, buttons, callback )

octane.settingsgroup.toComponent

Description
Create a component with these settings
Parameters
Name Type Description
self settingsgroup Settings component.
Return Values
Name Type Description
component component A component, which can be added to a window or a group component.
Synopsis
component = octane.settingsgroup.toComponent( self )

octane.project.clearSelection

Description
Clears the current selection.
Synopsis
octane.project.clearSelection( )

octane.project.deselect

Description
Removes an item from the current selection.
Parameters
Name Type Description
item multi Graph or node to remove from the current selection.
Synopsis
octane.project.deselect( item )

octane.project.getCurrentProject

Description
Returns the absolute path of the current project.
Return Values
Name Type Description
filePath string Absolute path to the Octane project file. Empty string if the project wasn't saved yet.
Synopsis
filePath = octane.project.getCurrentProject( )

octane.project.getMaterialBall

Description
Returns the mesh node (NT_GEO_MESH) representing the material ball.
Return Values
Name Type Description
materialBall node material ball mesh node
Synopsis
materialBall = octane.project.getMaterialBall( )

octane.project.getPreferences

Description
Returns the application preferences node (NT_LOCAL_APP_PREFS).
Return Values
Name Type Description
prefs node Node containing the application preferences.
Synopsis
prefs = octane.project.getPreferences( )

octane.project.getPreviewRenderTarget

Description
Returns the project's preview render target.
Return Values
Name Type Description
renderTarget node preview render target
Synopsis
renderTarget = octane.project.getPreviewRenderTarget( )

octane.project.getProjectSettings

Description
Returns the project settings node (NT_PROJECT_SETTINGS).
Return Values
Name Type Description
prefs node Node containing the current project settings.
Synopsis
prefs = octane.project.getProjectSettings( )

octane.project.getSceneGraph

Description
Returns the scene graph of the project (root graph).
Return Values
Name Type Description
sceneGraph graph scene graph of the project
Synopsis
sceneGraph = octane.project.getSceneGraph( )

octane.project.getSelection

Description
Returns the items currently selected in the project.
Return Values
Name Type Description
selection table Table with all items selected in the project.
Synopsis
selection = octane.project.getSelection( )

octane.project.load

Description
Loads an Octane project from a file. If passing in a function to missingFileCallback, the signature is: fileToUse = missingFileCallback(filename) - filename (string): value of the "filename" attribute of the node being loaded; - fileToUse (string): absolute filename, or nil if we don't have a file.
Parameters
Name Type Description
filePath string Absolute path to the Octane project file.
missingFileCallback function Function to handle missing asset files. If nil, missing assets will be resolved interactively. (nil by default)
Return Values
Name Type Description
success boolean true if the project was loaded successfully.
Synopsis
success = octane.project.load( filePath, missingFileCallback )

octane.project.loadedFromPackage

Description
Checks if the current project was loaded from a package.
Return Values
Name Type Description
fromPackage boolean true if the project was loaded from a package
Synopsis
fromPackage = octane.project.loadedFromPackage( )

octane.project.reset

Description
Resets an Octane project (starts off with a new project.). If there are unsaved changes, it will ask the user what to do.
Return Values
Name Type Description
success boolean true if the project was reset successfully.
Synopsis
success = octane.project.reset( )

octane.project.save

Description
Saves the current project on disk.
Return Values
Name Type Description
success boolean true if the project was saved successfully.
Synopsis
success = octane.project.save( )

octane.project.saveAs

Description
Saves the loaded Octane project on disk. The project can be saved either as a regular ocs file or as a package file (.orbx). Procedurally generated geometry is saved as OBJ so justregular polygonal geometry will be exported ignoring hair and particle primitives.
Parameters
Name Type Description
path string Absolute path to the ocs file (.ocs) or the package file (.orbx).
Return Values
Name Type Description
success boolean true if the project was saved successfully.
Synopsis
success = octane.project.saveAs( path )

octane.project.saveAsReferencePackage

Description
Saves the loaded Octane project into a package (.orbx). The resulting package will include extra data with animated bounding boxes of the scene geometry which can be later visualized when the package is loaded in GT_REFERENCE node graph. Procedurally generated geometry is saved as OBJ so just regular polygonal geometry will be exported ignoring hair and particle primitives.
Parameters
Name Type Description
path string Absolute path to the package file (.orbx).
PROPS_REFERENCE_PACKAGE_EXPORT_INFO table Table with reference package export settings.
Return Values
Name Type Description
success boolean true if the project was saved successfully.
Synopsis
success = octane.project.saveAsReferencePackage( path, PROPS_REFERENCE_PACKAGE_EXPORT_INFO )

octane.project.select

Description
Adds an item to the current selection.
Parameters
Name Type Description
item multi Graph or node to add to the current selection.
Synopsis
octane.project.select( item )

octane.project.setSelection

Description
Clears the current selection, and select all the given nodes and pins.
Parameters
Name Type Description
items table List of node items to select.
pins table List of node pins to select. See PROPS_PIN_IDENTIFIER.
selectDestination boolean Mark all destination pins of the given items as selected (true by default).
Synopsis
octane.project.setSelection( items, pins, selectDestination )

octane.project.unpackPackage

Description
Unpacks a package into the provided directory. If no package path is specified, the package of the current project will unpacked. Obviously, the latter will work only if the project was loaded from a package (This will NOT switch the current loaded package to the unpacked package).
Parameters
Name Type Description
unpackDir string Absolute path to the unpack directory.
packagePath string (optional) Absolute path to the package file. If not specified, the package of current project will be unpacked.
fileToUnpack string (optional) Relative path to the asset in the file to unpack only a single asset instead of the whole package.
Return Values
Name Type Description
success boolean true if the package was unpacked successfully.
Synopsis
success = octane.project.unpackPackage( unpackDir, packagePath, fileToUnpack )

octane.geometryexporter.__gc

Description
GC callback.
Parameters
Name Type Description
exporter geometryexporter the exporter
Synopsis
octane.geometryexporter.__gc( exporter )

octane.geometryexporter.__tostring

Description
Converts value to string.
Parameters
Name Type Description
exporter geometryexporter the exporter
Return Values
Name Type Description
s string string representation
Synopsis
s = octane.geometryexporter.__tostring( exporter )

octane.geometryexporter.addItem

Description
Adds another item to export in the next frame.
Parameters
Name Type Description
exporter geometryexporter the exporter
item item new item to add
Synopsis
octane.geometryexporter.addItem( exporter, item )

octane.geometryexporter.close

Description
Closes the exported file. The file will eventually be closed by the garbage collector if you don't call this function, but until then it will be unreadable for other applications.
Parameters
Name Type Description
exporter geometryexporter the exporter
Synopsis
octane.geometryexporter.close( exporter )

octane.geometryexporter.create

Description
Create a geometry exporter. This function may raise an error if we can't create the exporter
Parameters
Name Type Description
PROPS_GEOMETRY_EXPORTER table Arguments for creating the exporter.
Return Values
Name Type Description
exporter geometryexporter The exporter.
Synopsis
exporter = octane.geometryexporter.create( PROPS_GEOMETRY_EXPORTER )

octane.geometryexporter.makeGraph

Description
createNodeGraph
Parameters
Name Type Description
exporter geometryexporter the exporter
nodegraph table Parent node graph.
makeObjectLayers number Specify if the returned graph should have object layer inputs.
Return Values
Name Type Description
graph nodegraph The created node graph. Currently this will be a geometry archive.
Synopsis
graph = octane.geometryexporter.makeGraph( exporter, nodegraph, makeObjectLayers )

octane.geometryexporter.setTimeSampling

Description
Override the time sampling written to the file. By default it is inferred from the time values from the items when frames are exported.
Parameters
Name Type Description
exporter geometryexporter the exporter
times table Array with times. This array must be sorted ascending.
period number Period in seconds , if the period > 0 then the time pattern is repeated every period seconds. The time difference between the time of the last and first sample must be less than the period (if period > 0) (times[#times] - times[1]) < period.
Synopsis
octane.geometryexporter.setTimeSampling( exporter, times, period )

octane.geometryexporter.writeFrame

Description
Adds another item to export in the next frame.
Parameters
Name Type Description
exporter geometryexporter the exporter
interval table (optional) time interval to inspect. This will be used to export subframes for fast animations.
Synopsis
octane.geometryexporter.writeFrame( exporter, interval )

octane.file.checksum

Description
Calculates a checksum based on the file's contents.
Parameters
Name Type Description
path string Absolute path to the file, or PROPS_PACKAGE_PATH.
Return Values
Name Type Description
hash number Checksum calculated on the file.
Synopsis
hash = octane.file.checksum( path )

octane.file.copy

Description
Copies a file to a different location. See octane.file.copyDirectory to copy directories.
Parameters
Name Type Description
src string Absolute path to the source file.
dst string Absolute path to the destination file.
Return Values
Name Type Description
result boolean true if the file was copied.
Synopsis
result = octane.file.copy( src, dst )

octane.file.copyDirectory

Description
Tries to copy an entire directory, recursively. If source isn't a directory or if any target files cannot be created, this will fail.
Parameters
Name Type Description
src string Absolute path to the source directory.
dst string Absolute path to the destination directory. This is the name of the actual directory to create, not the directory into which the new one should be placed. Any files inside will be overwritten by files with the same name that are copied.
Return Values
Name Type Description
result boolean true if the directory was copied.
Synopsis
result = octane.file.copyDirectory( src, dst )

octane.file.createDirectory

Description
Creates a directory. This will also create the parent directories to complete the full path.
Parameters
Name Type Description
path string Absolute path to the new directory.
Return Values
Name Type Description
result boolean true if the directory was created
Synopsis
result = octane.file.createDirectory( path )

octane.file.createFile

Description
Creates an empty file
Parameters
Name Type Description
path string Absolute path to the new file.
Return Values
Name Type Description
result boolean true if the file was created
Synopsis
result = octane.file.createFile( path )

octane.file.exists

Description
Checks if an absolute path exists on the system.
Parameters
Name Type Description
path string Absolute path or PROPS_PACKAGE_PATH.
Return Values
Name Type Description
exists boolean true if the path exists.
Synopsis
exists = octane.file.exists( path )

octane.file.fopen

Description
Opens a file. If the passed in file name refers to a file on disk, io.open will be called. If the passed in file refers to a file in a package, octane.package.fopen will be called.
Parameters
Name Type Description
path string Absolute path to the file, or PROPS_PACKAGE_PATH.
mode string The read or write mode, as specified by io.open().
Return Values
Name Type Description
handle multi A file handle. The exact type depends on the type of file.
Synopsis
handle = octane.file.fopen( path, mode )

octane.file.getCreationTime

Description
Returns the creation time of a file. If a file is in a package, then returns the creation time of the package.
Parameters
Name Type Description
path string Absolute path to a file or PROPS_PACKAGE_PATH.
Return Values
Name Type Description
time number Creation time (milliseconds since midnight Jan 1st 1970 UTC)
Synopsis
time = octane.file.getCreationTime( path )

octane.file.getCurrentWorkingDirectory

Description
Get the current working directory.
Return Values
Name Type Description
cwd string Current working directory
Synopsis
cwd = octane.file.getCurrentWorkingDirectory( )

octane.file.getFileExtension

Description
Returns the extension. (e.g. /foo/bar.txt would return .txt)
Parameters
Name Type Description
path string Relative or absolute path, or PROPS_PACKAGE_PATH
Return Values
Name Type Description
fileName string The file extension.
Synopsis
fileName = octane.file.getFileExtension( path )

octane.file.getFileName

Description
Returns the last section of a path name. (e.g. /foo/bar.txt would return bar.txt and /foo/bar would return bar.
Parameters
Name Type Description
path string Relative or absolute path, or PROPS_PACKAGE_PATH
Return Values
Name Type Description
fileName string The last component of the path (e.g. the filename)
Synopsis
fileName = octane.file.getFileName( path )

octane.file.getFileNameWithoutExtension

Description
Returns the last part of the filename, without the extension. (e.g. /foo/bar.txt returns bar).
Parameters
Name Type Description
path string Relative or absolute path, or PROPS_PACKAGE_PATH
Return Values
Name Type Description
fileName string The filename without extension.
Synopsis
fileName = octane.file.getFileNameWithoutExtension( path )

octane.file.getFileSize

Description
Returns the size of a file.
Parameters
Name Type Description
path string Absolute path to a file or PROPS_PACKAGE_PATH.
Return Values
Name Type Description
size number Size of the file in bytes
Synopsis
size = octane.file.getFileSize( path )

octane.file.getLinkTarget

Description
If the path is a link, returns the path the link points to. Otherwise the path itself is returned.
Parameters
Name Type Description
path string Absolute path to a link.
Return Values
Name Type Description
target string link target
Synopsis
target = octane.file.getLinkTarget( path )

octane.file.getModifiedTime

Description
Returns the last modification time of a file. If a file is in a package, then returns the last modification time of the package.
Parameters
Name Type Description
path string Absolute path to a file or PROPS_PACKAGE_PATH.
Return Values
Name Type Description
time number Modification time (milliseconds since midnight Jan 1st 1970 UTC)
Synopsis
time = octane.file.getModifiedTime( path )

octane.file.getParentDirectory

Description
Returns the directory the parent path of a path.
Parameters
Name Type Description
path string Relative or absolute path
Return Values
Name Type Description
fileName string Parent directory of the file.
Synopsis
fileName = octane.file.getParentDirectory( path )

octane.file.getSpecialDirectories

Description
Returns a table with full paths to common directories on the user's system.
Return Values
Name Type Description
PROPS_SPECIAL_DIRECTORIES table List of the special directories on the system.
Synopsis
PROPS_SPECIAL_DIRECTORIES = octane.file.getSpecialDirectories( )

octane.file.hasWriteAccess

Description
Checks if a path to a file is writable or can be created.
Parameters
Name Type Description
path string Absolute path to a file or PROPS_PACKAGE_PATH.
Return Values
Name Type Description
writable boolean True if the path is writable or can be created. For a path in a package this is always false.
Synopsis
writable = octane.file.hasWriteAccess( path )

octane.file.isAbsolute

Description
Checks if this string is an absolute path.
Parameters
Name Type Description
path string A string to test.
Return Values
Name Type Description
isAbsolute boolean true if the path is an absolute path.
Synopsis
isAbsolute = octane.file.isAbsolute( path )

octane.file.isDirectory

Description
Checks if the path is a directory. Although packages allow you to look up a file using a relative path they don't support directory access. So unlike isFile, isDirectory only works for file names
Parameters
Name Type Description
path string Absolute path.
Return Values
Name Type Description
exists boolean true if the path is a directory.
Synopsis
exists = octane.file.isDirectory( path )

octane.file.isFile

Description
Checks if an absolute path exists on the system and is not a directory.
Parameters
Name Type Description
path string Absolute path or PROPS_PACKAGE_PATH.
Return Values
Name Type Description
exists boolean true if the path exists and is a file.
Synopsis
exists = octane.file.isFile( path )

octane.file.isHidden

Description
Checks if a file is a hidden file (platform specific).
Parameters
Name Type Description
path string Absolute path to a file.
Return Values
Name Type Description
writable boolean true if the file is hidden
Synopsis
writable = octane.file.isHidden( path )

octane.file.join

Description
Joins the file paths in the arguments together. Any relative path is appended to the previous paths, an absolute path replaces the previous paths
Parameters
Name Type Description
path string The path components to add together (this function can take any number of arguments).
Return Values
Name Type Description
fileName string The combined path.
Synopsis
fileName = octane.file.join( path )

octane.file.listDirectory

Description
Returns a list with the contents of a directory.
Parameters
Name Type Description
path string Absolute path to the directory to list.
files boolean true to return the files.
dirs boolean true to return the directories.
noHidden boolean true to ignore the hidden files
recursive boolean true to recurse in all the subdirectories.
pattern string (optional) Wildcard patterns to search for, separated by semicolons. (e.g. "*.png;*.jpg").
Return Values
Name Type Description
content table table with the content of the directory.
Synopsis
content = octane.file.listDirectory( path, files, dirs, noHidden, recursive, pattern )

octane.file.makeRelativeTo

Description
Makes file name relative to the specified path. The filename and the path must either both be absolute (having the same root) or both relative. If both are relative, it's assumed that they are both starting at the same working directory.
Parameters
Name Type Description
fileName string The file name
path string The path relative to which the filename will be afterwards. NOTE: This file name is interpreted to be a directory only.
Return Values
Name Type Description
newFileName string The new relative filename. nil if it was not possible to make the file name relative to the path
Synopsis
newFileName = octane.file.makeRelativeTo( fileName, path )

octane.file.move

Description
Moves a file to a different location. If the destination already exists, this will try to delete the destination first, and will fail if this cannot be done.
Parameters
Name Type Description
src string Absolute path to the source file.
dst string Absolute path to the destination file.
Return Values
Name Type Description
result boolean true if the file was moved.
Synopsis
result = octane.file.move( src, dst )

octane.file.remove

Description
Removes a file or a directory and all its subdirectories.
Parameters
Name Type Description
path string Absolute path to remove.
Return Values
Name Type Description
result boolean true if the file or directory was removed
Synopsis
result = octane.file.remove( path )

octane.file.resolveTemplate

Description
Creates a filename from a template with embedded placeholders. Placeholders are single letters prefixed with a % sign. When the placeholder cannot be resolved, it's kept in the string. You can freely choose the placeholders but some of them are reserved: %e - maps to the file extension %t - maps to a timestamp in hh_mm_ss format %% - maps to the percentage sign
Parameters
Name Type Description
template string the template string to resolve
resolver table resolution table with single letters as key and the target value as value
Return Values
Name Type Description
string string resolved string
Synopsis
string = octane.file.resolveTemplate( template, resolver )

octane.package.__gc

Description
GC metamethod
Parameters
Name Type Description
package package The package handle.
Synopsis
octane.package.__gc( package )

octane.package.__tostring

Description
Converts value to string.
Parameters
Name Type Description
package Package The package handle.
Return Values
Name Type Description
s string string representation
Synopsis
s = octane.package.__tostring( package )

octane.package.close

Description
Close a package handle.
Parameters
Name Type Description
package package The package handle.
Synopsis
octane.package.close( package )

octane.package.createPath

Description
Convert the inputs to a package path. You may pass in following combinations of arguments: 1. (string, string): The first argument points to the package (either an absolute path or a package handle) and the second argument is a relative path to the file inside the package 2. (string): Points to a file in the file system. 3. (PROPS_PACKAGE_PATH): Package path property table. In this case that table will be returned.
Parameters
Name Type Description
args multi 1 or 2 arguments.
Return Values
Name Type Description
PROPS_PACKAGE_PATH table The resulting packagepath.
Synopsis
PROPS_PACKAGE_PATH = octane.package.createPath( args )

octane.package.fexists

Description
Check if a file exists. Synonym for octane.file.exists(package:getChildFile(path))
Parameters
Name Type Description
package package The package handle.
path string The path to the child file, must be a relative path.
Return Values
Name Type Description
exists boolean true if the package contains a file with that path.
Synopsis
exists = octane.package.fexists( package, path )

octane.package.fopen

Description
Opens a file inside a package for reading. The interface of the returned object conforms to the interface of standard lua files. If path is not a relative path an error will be raised. If the file doesn't exist, or an error occurs while opening the file, returns nil and an error message. See also octane.file.fopen() which automatically will open either a file in a package or a file in the file system.
Parameters
Name Type Description
package package The package handle.
path string The filename of the subfile.
mode string File open mode. For packages only "r" and "rb" are supported. The default is "r"
Return Values
Name Type Description
packagefile packagefile The file handle.
Synopsis
packagefile = octane.package.fopen( package, path, mode )

octane.package.getChildFile

Description
Creates a package path referencing a file in this package.
Parameters
Name Type Description
package package The package handle.
path string The path to the child file, must be a relative path.
Return Values
Name Type Description
PROPS_PACKAGE_PATH table The resulting packagepath.
Synopsis
PROPS_PACKAGE_PATH = octane.package.getChildFile( package, path )

octane.package.getFileList

Description
Returns a sequence of all files stored in the package.
Parameters
Name Type Description
package Package The package handle.
Return Values
Name Type Description
table table A sequence of the files stored in the package.
Synopsis
table = octane.package.getFileList( package )

octane.package.open

Description
Explicitly open a package for reading. This will keep the package open until close() is called. By default any file operation on a file inside a package will implicitly open that package, and keep it open until the script finishes or until another package is accessed, or in case of scripted graphs, until the callback finishes. If necessary, open() and close() may be used for more control over when packages are opened and closed.
Parameters
Name Type Description
path string The package file name.
Return Values
Name Type Description
newFileName package A package handle. A program can open multiple handles to a package. The package will stay open (and locked) until all handles are closed.
Synopsis
newFileName = octane.package.open( path )

octane.packagefile.__gc

Description
GC metamethod
Parameters
Name Type Description
package package The package handle.
Synopsis
octane.packagefile.__gc( package )

octane.packagefile.__tostring

Description
Converts value to string.
Parameters
Name Type Description
packagefile packagefile The file handle.
Return Values
Name Type Description
s string string representation
Synopsis
s = octane.packagefile.__tostring( packagefile )

octane.packagefile.close

Description
Close file
Parameters
Name Type Description
packagefile packagefile The file handle.
Synopsis
octane.packagefile.close( packagefile )

octane.packagefile.flush

Description
(unsupported)
Parameters
Name Type Description
packagefile packagefile The file handle.
Return Values
Name Type Description
result boolean nil on failure
Synopsis
result = octane.packagefile.flush( packagefile )

octane.packagefile.lines

Description
Returns an iterator function which returns a new line from the file when called.
Parameters
Name Type Description
packagefile packagefile The file handle.
Return Values
Name Type Description
result boolean nil on failure
Synopsis
result = octane.packagefile.lines( packagefile )

octane.packagefile.read

Description
Reads from a file. The meaning of the arguments is the same as file:read().
Parameters
Name Type Description
packagefile packagefile The file handle.
format multi format specifiers. Supported formats are integer numbers, and the following strings: "a", "l", "L" and "n" (and their old synonyms like "*l" and "*line").
Return Values
Name Type Description
result boolean Returns one value for each format specifier. On failure, this will be nil. Additionally the (number) and "*l" formats return nil when called on a handle which is at EOF.
Synopsis
result = octane.packagefile.read( packagefile, format )

octane.packagefile.seek

Description
Seeks to a new position in a file. For files opened in text mode, the value for offset must be: - if whence is "pos": a value returned by this function; - otherwise: zero, to get the current position or seek to the end of the file.
Parameters
Name Type Description
packagefile packagefile The file handle.
whence string "set", "cur" or "end". This specifies the base from where the offset is calculated. The default value is "cur".
offset number The offset. The default value is 0.
Return Values
Name Type Description
result number Returns the offset relative to the start of the file, or nil and an error message on failure. The returned offset is always measured in bytes.
Synopsis
result = octane.packagefile.seek( packagefile, whence, offset )

octane.packagefile.setvbuf

Description
(unsupported)
Parameters
Name Type Description
packagefile packagefile The file handle.
Return Values
Name Type Description
result boolean nil on failure
Synopsis
result = octane.packagefile.setvbuf( packagefile )

octane.packagefile.write

Description
(unsupported)
Parameters
Name Type Description
packagefile packagefile The file handle.
Return Values
Name Type Description
result boolean nil on failure
Synopsis
result = octane.packagefile.write( packagefile )

octane.scriptgraph.__tostring

Description
Converts value to string.
Parameters
Name Type Description
self script The script object.
Return Values
Name Type Description
s string string representation
Synopsis
s = octane.scriptgraph.__tostring( self )

octane.scriptgraph.appendAsset

Description
Adds an asset to the graph
Parameters
Name Type Description
self script The script object.
asset string Asset path (filename or PROPS_PACKAGE_PATH)
Return Values
Name Type Description
index number The index of this asset
Synopsis
index = octane.scriptgraph.appendAsset( self, asset )

octane.scriptgraph.getAsset

Description
gets an asset from the graph
Parameters
Name Type Description
self script The script object.
ix number The index of the asset in the array
Return Values
Name Type Description
path PROPS_PACKAGE_PATH The asset file path, or nil if the index is out of range
Synopsis
path = octane.scriptgraph.getAsset( self, ix )

octane.scriptgraph.getAssetCount

Description
Returns size of the asset array
Parameters
Name Type Description
self script The script object.
Return Values
Name Type Description
count number size
Synopsis
count = octane.scriptgraph.getAssetCount( self )

octane.scriptgraph.getInputValue

Description
Gets the A_VALUE attribute of the input node connected to the linker node, which can't be done directly using the input pin of the linker.
Parameters
Name Type Description
self script The script object.
node linker An input linker node of the graph.
Return Values
Name Type Description
multi value The value connected to the input pin of the linker node.
Synopsis
multi = octane.scriptgraph.getInputValue( self, node )

octane.scriptgraph.inputWasChanged

Description
Tells if an input was changed since the last evaluation. This is only meaningful when called from the evaluate function. If this is the first evaluation after loading the script, this. function returns false.
Parameters
Name Type Description
self script The script object.
node linker An input linker node of the graph.
Return Values
Name Type Description
boolean changed true if the input was changed.
Synopsis
boolean = octane.scriptgraph.inputWasChanged( self, node )

octane.scriptgraph.insertInputLinkers

Description
Inserts input linkers to the script graph.
Parameters
Name Type Description
self script The script object.
inputList table List of input pin infos. See the module overview for how to specify input pin infos.
ix index (optional) Position in the list where the linkers are inserted if nil then linkers are inserted at the end of the list
Return Values
Name Type Description
inputs table The input linkers list which has been created.
Synopsis
inputs = octane.scriptgraph.insertInputLinkers( self, inputList, ix )

octane.scriptgraph.onEvaluate

Description
Callback which is called when the connected value of one of the input linker nodes changes. Can be overridden in your script object. The graph is not cleared before this callback runs, all nodes created by previous calls to init and evaluate will still be there. If onEvaluate raises an error, onShutdown will be called and no further callbacks will be received.
Parameters
Name Type Description
self script The script object.
graph graph The scripted node graph.
Synopsis
octane.scriptgraph.onEvaluate( self, graph )

octane.scriptgraph.onInit

Description
Callback which is called after initializing the scripted graph. Can be overridden in your script object. This callback will be run once after updating the script and before the call to evaluate. The graph will be cleared of all nodes except the linker nodes and the special input node before this call.
Parameters
Name Type Description
self script The script object.
graph graph The scripted node graph.
Return Values
Name Type Description
success boolean true if the initialization finished without errors.
Synopsis
success = octane.scriptgraph.onInit( self, graph )

octane.scriptgraph.onShutdown

Description
Callback which is called before the scripted graph is destroyed, or before the script is reloaded. Can be overridden in your script object. If the onInit callback didn't raise an error this callback will be called once before destroying the object. You should release any external resources used by the script in this function. You should not interact with the node graph contents during this function as the nodes connected to the inputs may have been deleted at this point, and saving the project has happened before this call.
Parameters
Name Type Description
self script The script object.
graph graph The scripted node graph.
Synopsis
octane.scriptgraph.onShutdown( self, graph )

octane.scriptgraph.onTrigger

Description
Callback which is called when the trigger button has been clicked. The trigger button will be displayed in the node inspector if onTrigger() is provided in the script object. The graph is not cleared before this callback runs, all nodes created by previous calls to init and evaluate will still be there. If onTrigger() raises an error, onShutdown() will be called and no further callbacks will be received.
Parameters
Name Type Description
self script The script object.
graph graph The scripted node graph.
Synopsis
octane.scriptgraph.onTrigger( self, graph )

octane.scriptgraph.removeAllAssets

Description
removes all the assets
Parameters
Name Type Description
self script The script object.
Synopsis
octane.scriptgraph.removeAllAssets( self )

octane.scriptgraph.removeAsset

Description
removes an asset from the graph. This will shift all subsequent assets one down.
Parameters
Name Type Description
self script The script object.
ix number The index of the asset in the array. If out of bounds an error is raised
Synopsis
octane.scriptgraph.removeAsset( self, ix )

octane.scriptgraph.removeInputLinkers

Description
removes input linkers from the script graph
Parameters
Name Type Description
self script The script object.
range vec (optional) the linker in this range will be deleted and removed from the listif nil nothing is touched, set x and y same value to remove one linker
Synopsis
octane.scriptgraph.removeInputLinkers( self, range )

octane.scriptgraph.reset

Description
Resets the node graph contents to the initial state, as it would be just before init was called. This state will always still contain all linker nodes and may contain some other nodes which are internally created and used by the scripted node graph. Any other nodes added by the script will be deleted.
Parameters
Name Type Description
self script The script object.
Synopsis
octane.scriptgraph.reset( self )

octane.scriptgraph.setEvaluateTimeChanges

Description
Choose if the onEvaluate function gets called after time updates, regardless of whether or not any animated nodes are connected to the inputs. This function call doesn't affect the behaviour of animated items inside the graph
Parameters
Name Type Description
self script The script object.
shouldEvaluate boolean true if the graph should be evaluated after time changes.
interval vec (optional) animation interval. This only affects the calculation of the total animation interval of the graph, the onEvaluate function will always be called after any time change.
Synopsis
octane.scriptgraph.setEvaluateTimeChanges( self, shouldEvaluate, interval )

octane.scriptgraph.setIcon

Description
Sets a custom icon for this scripted graph.
Parameters
Name Type Description
self script The script object.
icon image The icon image. This must be a RGBA image with low dynamic range. If nil, the icon is reverted to the default icon.
Synopsis
octane.scriptgraph.setIcon( self, icon )

octane.scriptgraph.setInputInfo

Description
Assigns a new node pin info to an input linker node. Must be called only from the init or evaluate function, and can't be called for an input which was changed before this evaluate call. The given pin type must match the type of the existing linker node.
Parameters
Name Type Description
self script The script object.
node linker An input linker node of the graph.
PROPS_PIN_INFO table A table with pin info. See the module overview for how to specify input pin infos.
Synopsis
octane.scriptgraph.setInputInfo( self, node, PROPS_PIN_INFO )

octane.scriptgraph.setInputLinkers

Description
Assigns a new node pin info to an input linker node. This version accepts more information in the pin info tables (see the octane.scriptgraph.setInputInfo documentation). As with octane.nodegraph.setInputLinkers you may pad this table with elements set to false (boolean) for linkers you don't want to touch. This is important if you want to change the linkers due to an input change. See also insertInputLinkers and removeInputLinkers.
Parameters
Name Type Description
self script The script object.
inputList table List of input pin infos. See the module overview for how to specify input pin infos.
range vec (optional) The range of linker node indices to replace. (array of 2 numbers). If nil, all linkers are replaced.
Return Values
Name Type Description
inputs table The input linkers list which has been created.
Synopsis
inputs = octane.scriptgraph.setInputLinkers( self, inputList, range )

octane.scriptgraph.setInputValue

Description
Sets the input value of a linker node, which can't be done directly using the input pin of the linker.
Parameters
Name Type Description
self script The script object.
node linker An input linker node of the graph.
value multi value of the attribute.
evaluate boolean (optional) whether or not to immediately evaluate the connected node's attributes. Default value is true.
Synopsis
octane.scriptgraph.setInputValue( self, node, value, evaluate )

octane.scriptgraph.timeWasChanged

Description
Returns TRUE if the time was changed since the last evaluation. This is only meaningful when called from the evaluate function, if the evaluation of time changes has been enabled via setEvaluateTimeChanges(). If this is the first evaluation after loading the script, this function returns FALSE.
Parameters
Name Type Description
self script The script object.
Return Values
Name Type Description
boolean changed TRUE if the time was changed.
Synopsis
boolean = octane.scriptgraph.timeWasChanged( self )

octane.nodegraph.__eq

Description
Tests 2 graphs for equality (g1 == g2).
Parameters
Name Type Description
g1 node the first graph
g2 node the second graph
Return Values
Name Type Description
equal boolean true if they're equal , false otherwise
Synopsis
equal = octane.nodegraph.__eq( g1, g2 )

octane.nodegraph.__index

Description
Fetch a property of a node item.
Parameters
Name Type Description
n1 node item
name string property name
Return Values
Name Type Description
equal boolean the value, or nil if no such value
Synopsis
equal = octane.nodegraph.__index( n1, name )

octane.nodegraph.__newindex

Description
Updates a property of a node item.
Parameters
Name Type Description
n1 node item
name string property name
value boolean the value to set
Synopsis
octane.nodegraph.__newindex( n1, name, value )

octane.nodegraph.__tostring

Description
Converts value to string.
Parameters
Name Type Description
n node item
Return Values
Name Type Description
s string string representation
Synopsis
s = octane.nodegraph.__tostring( n )

octane.nodegraph.clearAnimator

Description
Clears the animator of an attribute.
Parameters
Name Type Description
graph graph The graph.
attribute multi Id or name of the attribute to clear.
evaluate boolean (optional) whether or not to immediately evaluate the graph's attributes. Default value is true.
Synopsis
octane.nodegraph.clearAnimator( graph, attribute, evaluate )

octane.nodegraph.clearAnimatorIx

Description
Clears the animator of an attribute.
Parameters
Name Type Description
graph graph The graph.
attrIx number Index of the attribute.
evaluate boolean (optional) whether or not to immediately evaluate the graph's attributes. Default value is true.
Synopsis
octane.nodegraph.clearAnimatorIx( graph, attrIx, evaluate )

octane.nodegraph.clearAttribute

Description
Clears an attribute to its default value.
Parameters
Name Type Description
graph graph The graph.
attribute multi Name of the attribute or id of the attribute
evaluate boolean (optional) whether or not to immediately evaluate the graph's attributes. Default value is true.
Synopsis
octane.nodegraph.clearAttribute( graph, attribute, evaluate )

octane.nodegraph.clearAttributeIx

Description
Clears an attribute to its default value.
Parameters
Name Type Description
graph graph The graph.
index number Index of the attribute to clear.
evaluate boolean (optional) whether or not to immediately evaluate the graph's attributes. Default value is true.
Synopsis
octane.nodegraph.clearAttributeIx( graph, index, evaluate )

octane.nodegraph.clearTimeTransform

Description
Removes animation time transformation from the graph
Parameters
Name Type Description
graph graph The graph to remove the transformation.
Synopsis
octane.nodegraph.clearTimeTransform( graph )

octane.nodegraph.collapse

Description
Collapses this node graph down into all destination pins. To do this all of its inputs will be collapsed as well. If the node graph doesn't have exactly 1 output linker node or the output linker is not connected to any destination pin only the inputs of the node graph will be collapsed but not the graph itself and false is returned.
Parameters
Name Type Description
graph graph The node graph which will be collapsed.
Return Values
Name Type Description
collapsed boolean Returns true if this graph has been collapsed, otherwise false.
Synopsis
collapsed = octane.nodegraph.collapse( graph )

octane.nodegraph.copyAttributeFrom

Description
Copies an attribute value from another node or graph.
Parameters
Name Type Description
dstGraph graph The destination graph.
destAttrId number The ID of the destination attribute.
srcItem multi The source item (node or nodegraph).
srcAttr multi Name or ID of the source attribute.
evaluate boolean (optional) whether or not to immediately evaluate the destination node's attributes. The default value is true.
Synopsis
octane.nodegraph.copyAttributeFrom( dstGraph, destAttrId, srcItem, srcAttr, evaluate )

octane.nodegraph.copyAttributeFromIx

Description
Copies an attribute value from another node or graph.
Parameters
Name Type Description
dstGraph graph The destination node.
destAttrId multi Name or ID of the destination attribute.
srcItem multi The source item (node or nodegraph).
srcAttrIx number Index of the source attribute.
evaluate boolean (optional) whether or not to immediately evaluate the destination node's attributes. The default value is true.
Synopsis
octane.nodegraph.copyAttributeFromIx( dstGraph, destAttrId, srcItem, srcAttrIx, evaluate )

octane.nodegraph.copyFrom

Description
Copies the items in the list into the destination graph.
Parameters
Name Type Description
destGraph graph The graph we copy into.
sourceItems table List of items (nodes/graphs) to copy into the graph. The items must have the same owner.
origItems table Optional list of items for which we want to identify the copies
Return Values
Name Type Description
sourceCopies table List of the copied items in the same order as the source items.
origCopies table List of the copies of the items in origItems list in the same order. Returned only if origItems is given.
Synopsis
sourceCopies, origCopies = octane.nodegraph.copyFrom( destGraph, sourceItems, origItems )

octane.nodegraph.copyFromGraph

Description
Copies the items owned by the source graph into the destination graph. When an optional list of original items is provided, the function returns a list with their respective copies.
Parameters
Name Type Description
destGraph graph The graph we copy into.
sourceGraph graph The graph from which we copy the owned items.
origItems table Optional list of items for which we want to identify the copies
Return Values
Name Type Description
copiedItems table List of the copies of the items in origItems list in the same order.
Synopsis
copiedItems = octane.nodegraph.copyFromGraph( destGraph, sourceGraph, origItems )

octane.nodegraph.copyItemTree

Description
Copies the full tree that has item as root into the destination graph.
Parameters
Name Type Description
destGraph graph The graph we copy into.
rootItem item Item at the root of our tree (should have an owner)
Return Values
Name Type Description
copy item Copy of the root item.
Synopsis
copy = octane.nodegraph.copyItemTree( destGraph, rootItem )

octane.nodegraph.create

Description
Creates a new node graph.
Parameters
Name Type Description
PROPS_NODE_ITEM table Table with properties for the graph.
Return Values
Name Type Description
graph graph The freshly created graph.
Synopsis
graph = octane.nodegraph.create( PROPS_NODE_ITEM )

octane.nodegraph.createRootGraph

Description
Creates a root graph. Root graphs are graphs without owners. When they're not destroyed by the script, they are destroyed when the script ends.
Parameters
Name Type Description
name string Optional name for the root graph.
Return Values
Name Type Description
rootgraph graph The freshly created root graph.
Synopsis
rootgraph = octane.nodegraph.createRootGraph( name )

octane.nodegraph.deleteOwnedItems

Description
Deletes all child items from this graph. Clears all the items if the filter argument is nil.
Parameters
Name Type Description
graph graph The node graph to delete the items from.
filter multi Optional filter function to apply. This function should take one argument, the item, and should return true if this item should be deleted.
Synopsis
octane.nodegraph.deleteOwnedItems( graph, filter )

octane.nodegraph.deleteUnconnectedItems

Description
If this node graph is owned by another node graph, this function will remove all items owned by the parent node graph that are not directly/indirectly connected with this graph.
Parameters
Name Type Description
graph graph The node graph for which we check what is connected and what not.
Synopsis
octane.nodegraph.deleteUnconnectedItems( graph )

octane.nodegraph.destroy

Description
Destroys an existing graph.
Parameters
Name Type Description
graph graph The graph to destroy.
Synopsis
octane.nodegraph.destroy( graph )

octane.nodegraph.evaluate

Description
Evaluates the attributes of a graph after making changes to the graph's attribute.
Parameters
Name Type Description
graph graph The graph to evaluate.
Synopsis
octane.nodegraph.evaluate( graph )

octane.nodegraph.expand

Description
Expands all items owned by the input linkers of the node graph.
Parameters
Name Type Description
graph graph The node graph of which the inputs will be expanded.
Synopsis
octane.nodegraph.expand( graph )

octane.nodegraph.expandOutOfPin

Description
Expands the node graph out of its owner pin - if it is actually owned by a pin. If the owner pin belongs to a node that is also owned by a pin, that node will be expanded out of the owning pin as well. This continues until we find a node that is not owned by a pin anymore.
Parameters
Name Type Description
graph graph The node graph which will be expanded out of a pin.
Return Values
Name Type Description
itselfOrCopy graph Returns itself, if the graph is not owned by any pin or a copy of itself, if it is.
Synopsis
itselfOrCopy = octane.nodegraph.expandOutOfPin( graph )

octane.nodegraph.exportToFile

Description
Exports the provided root graph into a file (.orbx or .ocs).
Parameters
Name Type Description
graph rootgraph Root graph that we'll export to file.
path path Absolute path to the file to export (.ocs or .orbx).
ocsRelativePaths boolean True to store relative paths to assets if saving an .ocs file, false to store absolute paths. Optional; the default value is true. Ignored if saving an .orbx file.
Synopsis
octane.nodegraph.exportToFile( graph, path, ocsRelativePaths )

octane.nodegraph.exportToString

Description
Exports the provided root graph into a string (.ocs xml format).
Parameters
Name Type Description
graph rootgraph root graph which we'll export to a string.
Return Values
Name Type Description
xml path .ocs xml string
Synopsis
xml = octane.nodegraph.exportToString( graph )

octane.nodegraph.findFirstNode

Description
Returns the first node in the graph that matches the type.
Parameters
Name Type Description
graph graph The graph to search.
nodeType number The node type to search for.
Return Values
Name Type Description
node node Node that matches the provided type.
Synopsis
node = octane.nodegraph.findFirstNode( graph, nodeType )

octane.nodegraph.findFirstOutputNode

Description
Returns the first output node in the graph that matches the type.
Parameters
Name Type Description
graph graph The graph to search.
pinType number The pin type to search for.
Return Values
Name Type Description
node node Node that matches the provided type.
Synopsis
node = octane.nodegraph.findFirstOutputNode( graph, pinType )

octane.nodegraph.findItemsByName

Description
Returns the list of items in the graph that have the given name.
Parameters
Name Type Description
graph graph The graph to search.
name string The name to search for.
recurse boolean true to recurses in embedded graphs (default is false).
Return Values
Name Type Description
items table Items that match the provided name.
Synopsis
items = octane.nodegraph.findItemsByName( graph, name, recurse )

octane.nodegraph.findNodes

Description
Returns the nodes in the graph of the provided type.
Parameters
Name Type Description
graph graph The graph to search.
nodeType number The node type to search for.
recurse boolean true to recurses in embedded graphs (default is false).
Return Values
Name Type Description
nodes table Nodes that match the provided type.
Synopsis
nodes = octane.nodegraph.findNodes( graph, nodeType, recurse )

octane.nodegraph.getAnimationTimeSpan

Description
Returns the total time span for all animations in this graph. This only works on root graphs.
Parameters
Name Type Description
rootGraph graph The root graph.
Return Values
Name Type Description
timespan table table with the minimum and maximum time.
Synopsis
timespan = octane.nodegraph.getAnimationTimeSpan( rootGraph )

octane.nodegraph.getAnimator

Description
Returns the animator of the graph's attribute. Nothing is returned when the attribute isn't animated.
Parameters
Name Type Description
graph graph The graph
attribute multi ID or name of the attribute.
Return Values
Name Type Description
times table Array with the time values.
period number Period of the time values.
values multi Array with values. For an array attributes, the values are grouped per array element (e.g. for array values a, b, c, d, e animated over 3 time stamps we would return a1, a2, a3, b1, b2, b3, c1, c2, c3, d1, d2, d3, e1, e2, e3.
isArray boolean TRUE if this the attribute is an array attribute.
numTimes number Number of time values for each array element, if the attribute is an array attribute, 0 otherwise. In the example above numTimes would be 3.
Synopsis
times, period, values, isArray, numTimes = octane.nodegraph.getAnimator( graph, attribute )

octane.nodegraph.getAnimatorIx

Description
Returns the animator of the graph's attribute. Nothing is returned when the attribute isn't animated.
Parameters
Name Type Description
graph graph The graph
attributeIx number Index of the attribute.
Return Values
Name Type Description
times table Array with the time values.
period number Period of the time values.
values multi Array with values. For an array attributes, the values are grouped per array element (e.g. for array values a, b, c, d, e animated over 3 time stamps we would return a1, a2, a3, b1, b2, b3, c1, c2, c3, d1, d2, d3, e1, e2, e3.
isArray boolean TRUE if this the attribute is an array attribute.
numTimes number Number of time values for each array element, if the attribute is an array attribute, 0 otherwise. In the example above numTimes would be 3.
Synopsis
times, period, values, isArray, numTimes = octane.nodegraph.getAnimatorIx( graph, attributeIx )

octane.nodegraph.getAttribute

Description
Returns the graph's attribute value.
Parameters
Name Type Description
graph graph The graph.
attribute multi Name of the attribute or id of the attribute
Return Values
Name Type Description
value multi Value of the attribute.
Synopsis
value = octane.nodegraph.getAttribute( graph, attribute )

octane.nodegraph.getAttributeCount

Description
Returns the number of attributes.
Parameters
Name Type Description
graph graph The graph.
Return Values
Name Type Description
count number Number of attributes on this graph.
Synopsis
count = octane.nodegraph.getAttributeCount( graph )

octane.nodegraph.getAttributeInfo

Description
Returns the info of an attribute on this graph.
Parameters
Name Type Description
graph graph The graph.
attribute multi Name of the attribute or id of the attribute.
Return Values
Name Type Description
PROPS_ATTRIBUTE_INFO table Table with the info of the attribute.
Synopsis
PROPS_ATTRIBUTE_INFO = octane.nodegraph.getAttributeInfo( graph, attribute )

octane.nodegraph.getAttributeInfoIx

Description
Returns the info of an attribute on this graph (found via index).
Parameters
Name Type Description
graph graph The graph.
attributeIndex number Index of the attribute.
Return Values
Name Type Description
PROPS_ATTRIBUTE_INFO table Table with the info of the attribute.
Synopsis
PROPS_ATTRIBUTE_INFO = octane.nodegraph.getAttributeInfoIx( graph, attributeIndex )

octane.nodegraph.getAttributeIx

Description
Returns the graph's attribute value, based on its index.
Parameters
Name Type Description
graph number The graph.
index number Optional index of the attribute, when omitted, the first attribute is returned.
Return Values
Name Type Description
value multi Value of the graph's attribute.
Synopsis
value = octane.nodegraph.getAttributeIx( graph, index )

octane.nodegraph.getInputNodes

Description
Returns the input linker nodes of this graph.
Parameters
Name Type Description
graph graph The graph.
Return Values
Name Type Description
inputNodes table Table with the input linker nodes of the graph.
Synopsis
inputNodes = octane.nodegraph.getInputNodes( graph )

octane.nodegraph.getNodeGraphInfo

Description
Returns the static information about a graph.
Parameters
Name Type Description
graph graph Graph from which we'd like to get the info.
Return Values
Name Type Description
PROPS_GRAPH_INFO table Table with the info of the graph.
Synopsis
PROPS_GRAPH_INFO = octane.nodegraph.getNodeGraphInfo( graph )

octane.nodegraph.getOutputNodes

Description
Returns the output linker nodes of this graph.
Parameters
Name Type Description
graph graph The graph.
Return Values
Name Type Description
outputNodes table Table with the output linker nodes of the graph.
Synopsis
outputNodes = octane.nodegraph.getOutputNodes( graph )

octane.nodegraph.getOwnedItems

Description
Returns the items (graphs and nodes) owned by this graph.
Parameters
Name Type Description
graph graph The graph.
Return Values
Name Type Description
ownedItems table Table with the items the graph owns.
Synopsis
ownedItems = octane.nodegraph.getOwnedItems( graph )

octane.nodegraph.getProperties

Description
Returns the properties of a graph.
Parameters
Name Type Description
graph graph Graph from which we'd like to get the properties.
Return Values
Name Type Description
PROPS_NODE_ITEM table Table with the properties of the graph.
Synopsis
PROPS_NODE_ITEM = octane.nodegraph.getProperties( graph )

octane.nodegraph.getRawArrayAttribute

Description
Returns a handle to the internal C-array. This handle is strictly read-only.
Parameters
Name Type Description
graph graph The graph.
attribute multi Name of the attribute or id of the attribute
Return Values
Name Type Description
handle octane.util.PROPS_C_ARRAY Handle to the attribute array.
Synopsis
handle = octane.nodegraph.getRawArrayAttribute( graph, attribute )

octane.nodegraph.getRawArrayAttributeIx

Description
Returns a handle to the internal C-array. This handle is strictly read-only.
Parameters
Name Type Description
graph graph The graph.
index number Optional index of the attribute, when omitted, the first attribute is returned.
Return Values
Name Type Description
handle octane.util.PROPS_C_ARRAY Handle to the attribute array.
Synopsis
handle = octane.nodegraph.getRawArrayAttributeIx( graph, index )

octane.nodegraph.getTimeTransform

Description
Returns current time transform of the graph or nil.
Parameters
Name Type Description
graph graph The graph to get the time transform.
Return Values
Name Type Description
timeTransformProps table Time transform properties. If not nil, use the "type" property (octane.animationTimeTransformType) to check the time transform type. Currently only PROPS_TIMETRANSFORM_LINEAR is supported.
Synopsis
timeTransformProps = octane.nodegraph.getTimeTransform( graph )

octane.nodegraph.group

Description
Replace a list of node items with a nodegraph containing a copy of these items. Any connections coming from other nodes are copied through linker nodes.
Parameters
Name Type Description
owner graph graph owning the items to group
items table list of items to group (these items are destroyed)
Return Values
Name Type Description
grouped graph graph containing copies of the original items
Synopsis
grouped = octane.nodegraph.group( owner, items )

octane.nodegraph.hasAttribute

Description
Function to find out whether a attribute exists in a node graph.
Parameters
Name Type Description
graph graph The node graph we check.
attribute multi Name of the attribute or id of the attribute
Return Values
Name Type Description
value boolean TRUE if the attribute exists. Otherwise FALSE
Synopsis
value = octane.nodegraph.hasAttribute( graph, attribute )

octane.nodegraph.importFromFile

Description
Imports an .ocs or .orbx file into the provided root nodegraph.
Parameters
Name Type Description
graph rootgraph root graph in which we import the file
path path absolute path to the file to import
Return Values
Name Type Description
version number version of Octane the file was saved with
Synopsis
version = octane.nodegraph.importFromFile( graph, path )

octane.nodegraph.importFromString

Description
Imports an .ocs string into the provided root graph.
Parameters
Name Type Description
graph rootgraph root graph in which we import the file
xml string String with the ocs-xml content.
baseDir string base directory for asset resolution
Return Values
Name Type Description
version number Version of Octane the ocs file was written in.
Synopsis
version = octane.nodegraph.importFromString( graph, xml, baseDir )

octane.nodegraph.insertInputLinkers

Description
Inserts input linkers to the node graph. If this node graph is a scripted graph the inputList argument can contain more information as specified in octane.scriptgraph.setInputLinkers.
Parameters
Name Type Description
graph graph The node graph.
inputList table List of input pin infos. Every element is a table containing with keys like: "label", the name of the linker node and "type", a pin type, like octane.PT_FLOAT (see PROPS_PIN_INFO properties for full list).
ix index (optional) Position in the list where the linkers are inserted if nil then linkers are inserted at the end of the list
Return Values
Name Type Description
inputs table The input linkers list which has been created.
Synopsis
inputs = octane.nodegraph.insertInputLinkers( graph, inputList, ix )

octane.nodegraph.isAnimated

Description
Function to find whether an attribute is animated.
Parameters
Name Type Description
graph graph The node graph of which we check the attribute.
attribute multi ID or name of the attribute to clear.
Return Values
Name Type Description
animated boolean Returns TRUE if the attribute has an animator assigned to it.
Synopsis
animated = octane.nodegraph.isAnimated( graph, attribute )

octane.nodegraph.isAnimatedIx

Description
Function to find whether an attribute is animated.
Parameters
Name Type Description
graph graph The node graph of which we check the attribute.
attrIx number Index of the attribute.
Synopsis
octane.nodegraph.isAnimatedIx( graph, attrIx )

octane.nodegraph.loadAllReferences

Description
Loads all top-level reference graphs in the provided root graph.
Parameters
Name Type Description
rootGraph graph The root graph.
Synopsis
octane.nodegraph.loadAllReferences( rootGraph )

octane.nodegraph.referenceGraphCount

Description
Returns the number of reference graphs in the provided root graph.
Parameters
Name Type Description
rootGraph graph The root graph.
Return Values
Name Type Description
count number The count of reference graphs that exist in the provided root graph.
Synopsis
count = octane.nodegraph.referenceGraphCount( rootGraph )

octane.nodegraph.removeInputLinkers

Description
removes input linkers from the node graph
Parameters
Name Type Description
graph graph The node graph.
range vec (optional) the linker in this range will be deleted and removed from the listif nil nothing is touched, set x and y same value to remove one linker
Synopsis
octane.nodegraph.removeInputLinkers( graph, range )

octane.nodegraph.setAnimator

Description
Sets an animator on an attribute of this graph. Only attributes of type AT_BOOL, AT_FLOAT, AT_MATRIX, AT_FILENAME, AT_STRING can have animators. An animator is an array of times and an array of corresponding attribute values.
Parameters
Name Type Description
graph graph The graph.
attribute multi Id or name of the attribute to animate.
times table Array with times. This array must be sorted ascending.
values table Array with values each value corresponds to a time in the times array. It must have the same length as the times array and the values must have the same type as the attribute type.
period number Period in seconds , if the period > 0 then the time pattern is repeated every period seconds. The time difference between the time of the last and first sample must be less than the period (if period > 0) (times[#times] - times[1] < period)
evaluate boolean (optional) whether or not to immediately evaluate the graph's attributes. Default value is true.
Synopsis
octane.nodegraph.setAnimator( graph, attribute, times, values, period, evaluate )

octane.nodegraph.setAnimatorIx

Description
Sets an animator on an attribute of this graph. Only attributes of type AT_BOOL, AT_FLOAT, AT_MATRIX, AT_FILENAME, AT_STRING can have animators. An animator is an array of times and an array of corresponding attribute values.
Parameters
Name Type Description
graph graph The graph.
attributeIx multi Index of the attribute to animate.
times table Array with times. This array must be sorted ascending.
values table Array with values each value corresponds to a time in the times array. It must have the same length as the times array and the values must have the same type as the attribute type.
period number Period in seconds , if the period > 0 then the time pattern is repeated every period seconds. The time difference between the time of the last and first sample must be less than the period (times[#times] - times[1] < period)
evaluate boolean (optional) whether or not to immediately evaluate the graph's attributes. Default value is true.
Synopsis
octane.nodegraph.setAnimatorIx( graph, attributeIx, times, values, period, evaluate )

octane.nodegraph.setArrayAnimator

Description
Sets an animator on an array attribute of this node. Only attributes of AT_FLOAT and AT_MATRIX can have an animator. An animator is an array of times and an array of corresponding attribute values.
Parameters
Name Type Description
graph graph The graph.
attribute multi Id or name of the attribute to animate.
times table Array with times. This array must be sorted ascending.
values table Array with values. The array first contains all the animated values for the first element, then for the second element, and so on.
numTimes number The number of time stamps in the value array.
period number Period in seconds , if the period > 0 then the time pattern is repeated every period seconds. The time difference between the time of the last and first sample must be less than the period (if period > 0) (times[#times] - times[1]) < period.
Synopsis
octane.nodegraph.setArrayAnimator( graph, attribute, times, values, numTimes, period )

octane.nodegraph.setArrayAnimatorIx

Description
Sets an animator on an array attribute of this node. Only attributes of AT_FLOAT and AT_MATRIX can have an animator. An animator is an array of times and an array of corresponding attribute values.
Parameters
Name Type Description
graph graph The graph.
attributeIx multi Index of the attribute to animate.
times table Array with times. This array must be sorted ascending.
values table Array with values. The array first contains all the animated values for the first element, then for the second element, and so on.
numTimes number The number of time stamps in the value array.
period number Period in seconds , if the period > 0 then the time pattern is repeated every period seconds. The time difference between the time of the last and first sample must be less than the period (times[#times] - times[1] < period)
Synopsis
octane.nodegraph.setArrayAnimatorIx( graph, attributeIx, times, values, numTimes, period )

octane.nodegraph.setAttribute

Description
Sets an attribute of a graph.
Parameters
Name Type Description
graph graph The graph.
attribute multi Name of the attribute or id of the attribute
value multi value of the attribute.
evaluate boolean (optional) whether or not to immediately evaluate the graph's attributes. Default value is true.
Synopsis
octane.nodegraph.setAttribute( graph, attribute, value, evaluate )

octane.nodegraph.setAttributeIx

Description
Sets an attribute of a graph based on the attribute index.
Parameters
Name Type Description
graph graph The graph.
index number Index of the attribute to set.
value multi value of the attribute.
evaluate boolean (optional) whether or not to immediately evaluate the graph's attributes. Default value is true.
Synopsis
octane.nodegraph.setAttributeIx( graph, index, value, evaluate )

octane.nodegraph.setInputLinkers

Description
Updates the input linker nodes of this node graph. This function takes an array of tables containing information of which linker nodes should be present. For every table it either uses an existing linker node or it creates a new one, with the name specified in the table. Any linker node not on this list will be destroyed. Use this function to modify the list of linkers in a graph while retaining connections with outside nodes as much as possible. If some values in the list are set to false (boolean) instead of a table, linkers at this index will not be touched. Do not use nil as this will terminate the list. If this node graph is a scripted graph the inputList argument can contain more information as specified in octane.scriptgraph.setInputLinkers, and it can only be called from within its evaluate function.
Parameters
Name Type Description
graph graph The node graph.
inputList table List of input pin infos. Every element is a table containing these keys: "label" (name of the linker node), and "type" (a pin type, like octane.PT_FLOAT. See PROPS_PIN_INFO properties).
range vec (optional) The range of linker node indices to replace. (array of 2 numbers). If nil, all linkers are replaced.
Return Values
Name Type Description
inputs table The input linkers list which has been created.
Synopsis
inputs = octane.nodegraph.setInputLinkers( graph, inputList, range )

octane.nodegraph.setLinearTimeTransform

Description
Can be used to offset or scale the animation playback.
Parameters
Name Type Description
graph graph The graph to set the transformation.
delay number The delay of the animation start time in seconds.
speedUp number The scale of the animation playback speed (default is 1).
customInterval vec (optional) Start and end time (in seconds) of the untransformed time of the animation that should be played. The animation outside this interval will be cut out. E.g. if the start time is 2s and the delay is 0s, then the transformed animation at time 0 will be that of the untransformed animation at time 2s.
Synopsis
octane.nodegraph.setLinearTimeTransform( graph, delay, speedUp, customInterval )

octane.nodegraph.setOutputLinkers

Description
Updates the input output nodes of this node graph. This function an array of tables containing information of which linker nodes should be present. For every table it either uses an existing linker node or it creates a new one, with the name specified in the table. Any linker node not on this list will be destroyed. Use this function to modify the list of linkers in a graph while retaining connections with outside nodes as much as possible.
Parameters
Name Type Description
graph graph The node graph.
inputList table List of input pin infos. Every element is a table containing these two keys: "label", the name of the linker node and "type", a pin type, like octane.PT_FLOAT (see PROPS_PIN_INFO properties).
range vec (optional) The range of linker node indices to replace. (array of 2 numbers). If nil, all linkers are replaced.
Return Values
Name Type Description
inputs table The input linkers list which has been created.
Synopsis
inputs = octane.nodegraph.setOutputLinkers( graph, inputList, range )

octane.nodegraph.setRawArrayAttribute

Description
Sets an attribute of a graph based on the attribute index. The attribute value is fetched via a raw CArray handle. The memory pointed to in the handle must be valid until this function returns.
Parameters
Name Type Description
graph graph The graph.
attribute multi Name of the attribute or id of the attribute
handle octane.util.PROPS_C_ARRAY Raw handle to the attribute.
evaluate boolean (optional) whether or not to immediately evaluate the node's attributes. Default value is true.
Synopsis
octane.nodegraph.setRawArrayAttribute( graph, attribute, handle, evaluate )

octane.nodegraph.setRawArrayAttributeIx

Description
Sets an attribute of a graph based on the attribute index. The attribute value is fetched via a raw CArray handle. The memory pointed to in the handle must be valid until this function returns.
Parameters
Name Type Description
graph graph The graph.
index number Index of the attribute to set.
handle octane.util.PROPS_C_ARRAY Raw handle to the attribute.
evaluate boolean (optional) whether or not to immediately evaluate the node's attributes. Default value is true.
Synopsis
octane.nodegraph.setRawArrayAttributeIx( graph, index, handle, evaluate )

octane.nodegraph.unfold

Description
Unfolds the node graph spaghetti if the graph is inspectable.
Parameters
Name Type Description
destGraph graph The graph we want to unfold.
recursive boolean Enables the unfolding of all nested graphs (optional, default=false).
Synopsis
octane.nodegraph.unfold( destGraph, recursive )

octane.nodegraph.ungroup

Description
Replaces a nodegraph with a copy of its content in the parent node graph.
Parameters
Name Type Description
graph graph graph to ungroup (this graph is destroyed)
Return Values
Name Type Description
ungrouped table list containing the ungrouped items
Synopsis
ungrouped = octane.nodegraph.ungroup( graph )

octane.nodegraph.unloadAllReferences

Description
Unloads all top-level reference graphs in the provided root graph.
Parameters
Name Type Description
rootGraph graph The root graph.
Synopsis
octane.nodegraph.unloadAllReferences( rootGraph )

octane.nodegraph.updateProperties

Description
Updates the properties of a graph.
Parameters
Name Type Description
graph graph The graph to update.
PROPS_NODE_ITEM table Table with properties to update.
Synopsis
octane.nodegraph.updateProperties( graph, PROPS_NODE_ITEM )

octane.nodegraph.updateTime

Description
Updates the current time in the graph. Works only for root graphs.
Parameters
Name Type Description
rootGraph graph The root graph.
time number The new time value.
sendUpdate boolean Optional flag to update the render data, the default is true.
Synopsis
octane.nodegraph.updateTime( rootGraph, time, sendUpdate )

octane.help.addFunction

Description
Adds a user-defined Lua function to the API registry. Call this function before adding function documentation.
Parameters
Name Type Description
module string Name of the module to register the function in.
function string Name of the function to register.
Synopsis
octane.help.addFunction( module, function )

octane.help.addFunctionDoc

Description
Adds documentation to a user-defined Lua function.
Parameters
Name Type Description
module string Name of the module the Lua function is in.
functionName string Name of Lua function to document.
description string Description of Lua function.
args table Table with arguments. Eg. { name = "width", type = "string",description = "Width of screen." }
returns table Table with return parameters. Eg. { name = "success", type = "boolean",description = "Whether the operation succeeded." }
Synopsis
octane.help.addFunctionDoc( module, functionName, description, args, returns )

octane.help.addModule

Description
Adds a user-defined Lua module to the API registry. Call this function before adding functions to the module.
Parameters
Name Type Description
module string Name of the module.
description string Description of the module.
Synopsis
octane.help.addModule( module, description )

octane.help.constantDoc

Description
Returns a table with a description and the values defined for an enumeration.
Parameters
Name Type Description
module string Name of the module.
enumName string Name of the enumeration.
Return Values
Name Type Description
doc table Table with the documentation, structured as follows: {description, values={ [i]={name, value, description, deprecated} } }.
Synopsis
doc = octane.help.constantDoc( module, enumName )

octane.help.constants

Description
Returns a table with the names of all the constants defined in a module.
Parameters
Name Type Description
module string Name of the module.
Return Values
Name Type Description
constants table Table with all the constants defined in the module.
Synopsis
constants = octane.help.constants( module )

octane.help.functionDoc

Description
Returns a table with documentation about a function.
Parameters
Name Type Description
moduleName string Name of the API module.
functionName string Name of the function in the module.
Return Values
Name Type Description
doc table Table documentation about the function.
Synopsis
doc = octane.help.functionDoc( moduleName, functionName )

octane.help.functions

Description
Returns a table with the names of all the functions defined in a module.
Parameters
Name Type Description
module string Name of the module.
Return Values
Name Type Description
functions table Table with all the functions defined in the module.
Synopsis
functions = octane.help.functions( module )

octane.help.help

Description
Displays help about an Octane Lua API function
Parameters
Name Type Description
function function Lua Octane API function
Synopsis
octane.help.help( function )

octane.help.modules

Description
Returns a table with the available modules. The key is the module name and the value is a descriptive string.
Return Values
Name Type Description
modules table Table with all the modules.
Synopsis
modules = octane.help.modules( )

octane.help.properties

Description
Returns a table with the names of all the properties defined in a module.
Parameters
Name Type Description
module string Name of the module.
Return Values
Name Type Description
properties table Table with all the properties relevant in the module.
Synopsis
properties = octane.help.properties( module )

octane.help.propertiesDoc

Description
Returns a table with a description of certain properties.
Parameters
Name Type Description
module string Name of the module.
properties string Name of the properties.
Return Values
Name Type Description
doc table Table with info about the properties.
Synopsis
doc = octane.help.propertiesDoc( module, properties )

octane.help.variableDoc

Description
Returns a table with a description of certain variables.
Parameters
Name Type Description
module string Name of the module.
variable string Name of the variable.
Return Values
Name Type Description
doc table Table with info about the properties.
Synopsis
doc = octane.help.variableDoc( module, variable )

octane.help.variables

Description
Returns a table with the names of all the variables defined in a module. These are usually fields in the module, or fields in the objects created by the module.
Parameters
Name Type Description
module string Name of the module.
Return Values
Name Type Description
properties table Table with all the variables relevant in the module.
Synopsis
properties = octane.help.variables( module )

octane.changemanager.__eq

Description
Tests 2 observers for equality (c1 == c2).
Parameters
Name Type Description
o1 observer the first observer
o2 observer the second observer
Return Values
Name Type Description
equal boolean true if they're equal, false otherwise
Synopsis
equal = octane.changemanager.__eq( o1, o2 )

octane.changemanager.__gc

Description
GC metamethod
Parameters
Name Type Description
observer observer the observer
Synopsis
octane.changemanager.__gc( observer )

octane.changemanager.__index

Description
Returns a property value of the observer.
Parameters
Name Type Description
observer observer the observer
propertyName string name of the property
Return Values
Name Type Description
propertyValue multi the value of the property or nil if there is no such property
Synopsis
propertyValue = octane.changemanager.__index( observer, propertyName )

octane.changemanager.__newindex

Description
Updates a property of an observer.
Parameters
Name Type Description
n1 observer observer
name string property name
value boolean the value to set
Synopsis
octane.changemanager.__newindex( n1, name, value )

octane.changemanager.__tostring

Description
Converts value to string.
Parameters
Name Type Description
observer observer the observer
Return Values
Name Type Description
s string string representation
Synopsis
s = octane.changemanager.__tostring( observer )

octane.changemanager.createObserver

Description
Creates a change observer.
Parameters
Name Type Description
PROPS_CHANGEMANAGER_OBSERVER table Table with properties for the observer.
Return Values
Name Type Description
observer observer The freshly created observer.
Synopsis
observer = octane.changemanager.createObserver( PROPS_CHANGEMANAGER_OBSERVER )

octane.changemanager.observeItem

Description
Registers a callback for receiving change events for an item. If the callback is already registered, the flags from the given event mask will be added to the existing event mask.
Parameters
Name Type Description
item item The item that should be observed. It must be a valid node or nodegraph.
observer observer The observer interested in receiving change events.
eventMask int A bitmask of octane.changeEventType flags corresponding to the events the observer wants to receive.
Synopsis
octane.changemanager.observeItem( item, observer, eventMask )

octane.changemanager.observeTime

Description
Registers a callback for receiving time change events that are emitted for the specified root node graph. Time observers will receive all events listed in octane.timeEventType. Note : All observers will receive the TimeEventType::FRAME_RATE_CHANGED event regardless of the root node graph they are observing.
Parameters
Name Type Description
observer observer The observer interested in changes.
rootNodeGraph graph; The root node graph that should be observed.
Synopsis
octane.changemanager.observeTime( observer, rootNodeGraph )

octane.changemanager.stopItemObserver

Description
Stops observing change events for an item. This function doesn't do anything if the observer wasn't registered with observeItem.
Parameters
Name Type Description
observer observer The observer that wants to stop observing.
item item (optional) The item to stop observing. If this is nil the observer stops observing all the items it was observing.
Synopsis
octane.changemanager.stopItemObserver( observer, item )

octane.changemanager.stopTimeObserver

Description
Stops observing time events.
Parameters
Name Type Description
observer observer The observer that wants to stop observing.
rootNodeGraph graph (optional) The root node graph to stop observing. If this is nil the change manager will stop the observer observing from all root node graphs it was observing.
Synopsis
octane.changemanager.stopTimeObserver( observer, rootNodeGraph )

octane.changemanager.update

Description
Updates all previous changes. When making changes in nodes it's necessary to call this function to propagate the changes in Octane. Doing this allows to modify multiple nodes and propagate the changes only once.
Synopsis
octane.changemanager.update( )

octane.node.__eq

Description
Tests 2 nodes for equality (n1 == n2).
Parameters
Name Type Description
n1 node the first node
n2 node the second node
Return Values
Name Type Description
equal boolean true if they're equal , false otherwise
Synopsis
equal = octane.node.__eq( n1, n2 )

octane.node.__index

Description
Fetch a property of a node item.
Parameters
Name Type Description
n1 node item
name string property name
Return Values
Name Type Description
equal boolean the value, or nil if no such value
Synopsis
equal = octane.node.__index( n1, name )

octane.node.__newindex

Description
Updates a property of a node item.
Parameters
Name Type Description
n1 node item
name string property name
value boolean the value to set
Synopsis
octane.node.__newindex( n1, name, value )

octane.node.__tostring

Description
Converts value to string.
Parameters
Name Type Description
n node item
Return Values
Name Type Description
s string string representation
Synopsis
s = octane.node.__tostring( n )

octane.node.canConnectTo

Description
Checks if a source node can be connected with to a pin on a destination node.
Parameters
Name Type Description
destinationNode node The destination node.
pin multi Name or ID of the pin.
sourceNode node The source node.
doCycleCheck boolean Set to TRUE if you want to do a check for graph cycles. Default is FALSE. Octane doesn't allow cycles in the node graph, but this check can be fairly expensive.
Return Values
Name Type Description
value boolean TRUE if the node can be connected to the pin, FALSE if not.
Synopsis
value = octane.node.canConnectTo( destinationNode, pin, sourceNode, doCycleCheck )

octane.node.canConnectToIx

Description
Checks if a source node can be connected with to a pin (identified by index) on a destination node.
Parameters
Name Type Description
destinationNode node The destination node.
pinIdx number Index of the pin.
sourceNode node The source node.
doCycleCheck boolean Set to TRUE if you want to do a check for graph cycles. Default is FALSE.Octane doesn't allow cycles in the node graph, but this check can be fairly expensive.
Return Values
Name Type Description
value boolean TRUE if the node can be connected to the pin, FALSE if not.
Synopsis
value = octane.node.canConnectToIx( destinationNode, pinIdx, sourceNode, doCycleCheck )

octane.node.clearAnimator

Description
Clears the animator of an attribute.
Parameters
Name Type Description
node node The node.
attribute multi Id or name of the attribute to clear.
Synopsis
octane.node.clearAnimator( node, attribute )

octane.node.clearAnimatorIx

Description
Clears the animator of an attribute.
Parameters
Name Type Description
node node The node.
attrIx number Index of the attribute.
Synopsis
octane.node.clearAnimatorIx( node, attrIx )

octane.node.clearAttribute

Description
Clears an attribute to its default value.
Parameters
Name Type Description
node node The node.
attribute multi Name of the attribute or id of the attribute
evaluate boolean (optional) whether or not to immediately evaluate the node's attributes. Default value is true.
Synopsis
octane.node.clearAttribute( node, attribute, evaluate )

octane.node.clearAttributeIx

Description
Clears an attribute to its default value.
Parameters
Name Type Description
node node The node.
index number Index of the attribute to clear.
evaluate boolean (optional) whether or not to immediately evaluate the node's attributes. Default value is true.
Synopsis
octane.node.clearAttributeIx( node, index, evaluate )

octane.node.collapse

Description
Collapses this node down into all destination pins. To do this all of its inputs will be collapsed as well. If the node is an input linker or it's already owned by a pin, false is returned. If the node doesn't have any destination pins, the inputs will be collapsed but not the node itself and false is returned.
Parameters
Name Type Description
node node The node which will be collapsed.
Return Values
Name Type Description
collapsed boolean Returns true if this node has been collapsed, otherwise false.
Synopsis
collapsed = octane.node.collapse( node )

octane.node.configureEmptyPins

Description
Creates default nodes for empty/unconnected pins that have a default node defined.
Parameters
Name Type Description
node node The node to configure.
Synopsis
octane.node.configureEmptyPins( node )

octane.node.connectTo

Description
Connects source node to a pin on destination node.
Parameters
Name Type Description
destinationNode node The destination node.
pin multi Name of the pin or id of the pin.
sourceNode node The source node.
evaluate boolean (optional) whether or not to immediately evaluate the destination node's attributes. The default value is true.
Synopsis
octane.node.connectTo( destinationNode, pin, sourceNode, evaluate )

octane.node.connectToIx

Description
Connects source node to a pin on destination node (identifies the pin via idx).
Parameters
Name Type Description
destinationNode node The destination node.
pinIdx number Index of the pin.
sourceNode node The source node.
evaluate boolean (optional) whether or not to immediately evaluate the destination node's attributes. The default value is true.
Synopsis
octane.node.connectToIx( destinationNode, pinIdx, sourceNode, evaluate )

octane.node.copyAttributeFrom

Description
Copies an attribute value from another node or graph.
Parameters
Name Type Description
dstNode node The destination node.
destAttrId multi Name or id of the destination attribute.
srcItem multi The source item (node or nodegraph).
srcAttr multi Name or id of the source attribute.
evaluate boolean (optional) whether or not to immediately evaluate the destination node's attributes. The default value is true.
Synopsis
octane.node.copyAttributeFrom( dstNode, destAttrId, srcItem, srcAttr, evaluate )

octane.node.copyAttributeFromIx

Description
Copies an attribute value from another node or graph.
Parameters
Name Type Description
dstNode node The destination node.
destAttrId multi Name or id of the destination attribute.
srcItem multi The source item (node or nodegraph).
srcAttrIx number Index of the source attribute.
evaluate boolean (optional) whether or not to immediately evaluate the destination node's attributes. The default value is true.
Synopsis
octane.node.copyAttributeFromIx( dstNode, destAttrId, srcItem, srcAttrIx, evaluate )

octane.node.copyFrom

Description
Copies an item into a pin or does nothing if the item can't be copied into the pin because the item is a node with the incorrect type.
Parameters
Name Type Description
node node The parent node of the destination pin.
pin multi Name or id of the destination pin.
item multi Item we'd like to copy in the pin.
evaluate boolean (optional) whether or not to immediately evaluate the node. Default value is true.
Return Values
Name Type Description
copy multi The newly created item or nil if copying failed.
Synopsis
copy = octane.node.copyFrom( node, pin, item, evaluate )

octane.node.copyFromIx

Description
Copies an item into a pin or does nothing if the item can't be copied into the pin because the item is a node with the incorrect type. Identifies the pin via index.
Parameters
Name Type Description
node node The parent node of the destination pin.
index number Index of the destination pin.
item multi Item we'd like to copy in the pin.
evaluate boolean (optional) whether or not to immediately evaluate the node. Default value is true.
Return Values
Name Type Description
copy multi The newly created item or nil if copying failed.
Synopsis
copy = octane.node.copyFromIx( node, index, item, evaluate )

octane.node.create

Description
Creates a new node.
Parameters
Name Type Description
PROPS_NODE_ITEM table Table with properties for the node.
Return Values
Name Type Description
node node The freshly created node.
Synopsis
node = octane.node.create( PROPS_NODE_ITEM )

octane.node.deleteUnconnectedItems

Description
If this node is owned by a node graph, this function will remove all items owned by the parent node graph that are not directly/indirectly connected with this node.
Parameters
Name Type Description
node node The node for which we check what is connected and what not.
Synopsis
octane.node.deleteUnconnectedItems( node )

octane.node.destroy

Description
Destroys an existing node.
Parameters
Name Type Description
node node The node to destroy.
Synopsis
octane.node.destroy( node )

octane.node.disconnect

Description
Disconnects the source node from a pin on the destination node.
Parameters
Name Type Description
node node The destination node.
pin multi Name of the pin or id of the pin.
evaluate boolean (optional) whether or not to immediately evaluate the destination node's attributes. The default value is true.
Synopsis
octane.node.disconnect( node, pin, evaluate )

octane.node.disconnectIx

Description
Disconnects the source node from a pin on the destination node.
Parameters
Name Type Description
node node The destination node.
pinIx number index of the pin to disconnect.
evaluate boolean (optional) whether or not to immediately evaluate the destination node's attributes. The default value is true.
Synopsis
octane.node.disconnectIx( node, pinIx, evaluate )

octane.node.dumpAttributes

Description
Dump all attributes of this item to a text file.
Parameters
Name Type Description
node node The node.
directory string (optional)Full path to a directory where the file will be written. If not provided the file will be created under user's desktop directory. A text file with be created using this node name
Synopsis
octane.node.dumpAttributes( node, directory )

octane.node.evaluate

Description
Evaluates the attributes of a node after making changes to the node's attribute. For complex nodes like meshes and textures you have to set up the node first and afterwards call node:evaluate()
Parameters
Name Type Description
node node The node to evaluate.
Synopsis
octane.node.evaluate( node )

octane.node.expand

Description
Expands all items owned by the pins of the node.
Parameters
Name Type Description
node node The node of which the pins will be expanded.
Synopsis
octane.node.expand( node )

octane.node.expandOutOfPin

Description
Expands the node out of its owner pin - if it is actually owned by a pin. If the owner pin belongs to a node that is also owned by a pin, that node will be expanded out of the owning pin as well. This continues until we find a node that is not owned by a pin anymore.
Parameters
Name Type Description
node node The node which will be expanded out of a pin.
Return Values
Name Type Description
itselfOrCopy node Returns itself, if the node is not owned by any pin or a copy of itself, if it is.
Synopsis
itselfOrCopy = octane.node.expandOutOfPin( node )

octane.node.exportToFile

Description
Exports a node's raw data to a file (only mesh nodes and textures support this). The full path is determined by Octane and can be found in the A_FILENAME attribute after exporting (e.g. directory/geometry/myNode.obj).
Parameters
Name Type Description
node node Node which we'd like to export.
directory string Path to the export destination directory.
Synopsis
octane.node.exportToFile( node, directory )

octane.node.getAnimator

Description
Returns the animator of the node's attribute. Nothing is returned when the attribute isn't animated.
Parameters
Name Type Description
node node The node
attribute multi ID or name of the attribute.
Return Values
Name Type Description
times table Array with the time values.
period number Period of the time values.
values multi Array with values. For an array attributes, the values are grouped per array element (e.g. for array values a, b, c animated over 3 time stamps we would return a1, a2, a3, b1, b2, b3, c1, c2, c3.
isArray boolean true if the attribute is an array attribute.
numTimes number number of time values for each array element.
Synopsis
times, period, values, isArray, numTimes = octane.node.getAnimator( node, attribute )

octane.node.getAnimatorIx

Description
Returns the animator of the node's attribute. Nothing is returned when the attribute isn't animated.
Parameters
Name Type Description
node node The node
attributeIx number Index of the attribute.
Return Values
Name Type Description
times table Array with the time values.
period number Period of the time values.
values multi Array with values. For an array attributes, the values are grouped per array element (e.g. for array values a, b, c animated over 3 time stamps we would return a1, a2, a3, b1, b2, b3, c1, c2, c3.
isArray boolean true if the attribute is an array attribute.
numTimes number number of time values for each array element.
Synopsis
times, period, values, isArray, numTimes = octane.node.getAnimatorIx( node, attributeIx )

octane.node.getAttribute

Description
Returns the node's attribute value.
Parameters
Name Type Description
node node The node.
attribute multi Name of the attribute or id of the attribute
type number (optional) Specifies the type of value to be returned. Only applies to attributes which are not arrays. If not given or if set to AT_UNKNOWN, the type is determined by the attribute type being fetched. For nodes of types NT_FLOAT, NT_INT and NT_FLOAT_TIME, by default a 3-channel vector is returned.
Return Values
Name Type Description
value multi Value of the attribute.
Synopsis
value = octane.node.getAttribute( node, attribute, type )

octane.node.getAttributeCount

Description
Returns the number of attributes.
Parameters
Name Type Description
node node The node.
Return Values
Name Type Description
count number Number of attributes on this node.
Synopsis
count = octane.node.getAttributeCount( node )

octane.node.getAttributeInfo

Description
Returns the info of an attribute on this node.
Parameters
Name Type Description
node node The node.
attribute multi Name of the attribute or ID of the attribute.
Return Values
Name Type Description
PROPS_ATTRIBUTE_INFO table Table with the info of the attribute.
Synopsis
PROPS_ATTRIBUTE_INFO = octane.node.getAttributeInfo( node, attribute )

octane.node.getAttributeInfoIx

Description
Returns the info of an attribute on this node (found via index).
Parameters
Name Type Description
node node The node.
attributeIndex number Index of the attribute.
Return Values
Name Type Description
PROPS_ATTRIBUTE_INFO table Table with the info of the attribute.
Synopsis
PROPS_ATTRIBUTE_INFO = octane.node.getAttributeInfoIx( node, attributeIndex )

octane.node.getAttributeIx

Description
Returns the node's attribute value, based on its index.
Parameters
Name Type Description
node number The node.
index number Optional index of the attribute, when omitted, the first attribute is returned.
type number (optional) Specifies the type of value to be returned. Only applies to attributes which are not arrays. If not given or if set to AT_UNKNOWN, the type is determined by the attribute type being fetched. For nodes of types NT_FLOAT, NT_INT and NT_FLOAT_TIME, by default a 3-channel vector is returned.
Return Values
Name Type Description
value multi Value of the node's attribute.
Synopsis
value = octane.node.getAttributeIx( node, index, type )

octane.node.getConnectedNode

Description
Returns the node connected to a pin.
Parameters
Name Type Description
node node The node.
pin multi Name of the pin or ID of the pin.
enterWrapperNode boolean (optional) If the connected node is a built-in wrapper node the returned node will be the output linker of the wrapped script graph instead. The default is false.
Return Values
Name Type Description
connectedNode node Node that's connected to the input pin.
Synopsis
connectedNode = octane.node.getConnectedNode( node, pin, enterWrapperNode )

octane.node.getConnectedNodeIx

Description
Returns the node connected to a pin (identifies pin via index).
Parameters
Name Type Description
node node The node.
pin multi Index of the input pin.
enterWrapperNode boolean (optional) If the connected node is a built-in wrapper node the returned node will be the output linker of the wrapped script graph instead. The default is false.
Return Values
Name Type Description
connectedNode node Node that's connected to the input pin.
Synopsis
connectedNode = octane.node.getConnectedNodeIx( node, pin, enterWrapperNode )

octane.node.getDestinationNodes

Description
Returns a table with with the destination. Each element is a table with a key "node" (to access the destination node) and a key "pin" to access the name of the destination pin.
Parameters
Name Type Description
node node The node.
Return Values
Name Type Description
destinations table Table with the destinations.
Synopsis
destinations = octane.node.getDestinationNodes( node )

octane.node.getInputNode

Description
Returns the input node of a pin (skipping linker nodes).
Parameters
Name Type Description
node node The node.
pin multi Name of the pin or id of the pin.
enterWrapperNode boolean (optional) Set to TRUE if built-in wrapper nodes should be entered (see getConnectedNode()). The default is false.
Return Values
Name Type Description
inputNode node Input node of the pin.
Synopsis
inputNode = octane.node.getInputNode( node, pin, enterWrapperNode )

octane.node.getInputNodeIx

Description
Returns the input node of a pin (skipping linker nodes).
Parameters
Name Type Description
node node The node.
pin multi Index of the input pin.
enterWrapperNode boolean (optional) Set to TRUE if built-in wrapper nodes should be entered (see getConnectedNode()). The default is false.
Return Values
Name Type Description
inputNode node Input node of the pin.
Synopsis
inputNode = octane.node.getInputNodeIx( node, pin, enterWrapperNode )

octane.node.getNodeInfo

Description
Returns the static information about a node.
Parameters
Name Type Description
node node Node from which we'd like to get the info.
Return Values
Name Type Description
PROPS_NODE_INFO table Table with the info of the node.
Synopsis
PROPS_NODE_INFO = octane.node.getNodeInfo( node )

octane.node.getOutputTextureValueTypeId

Description
Retrieves the id of the type of texture value of the node's texture output
Parameters
Name Type Description
node node The node.
Return Values
Name Type Description
valueTypeId string The id of the texture value type of the node's texture output
Synopsis
valueTypeId = octane.node.getOutputTextureValueTypeId( node )

octane.node.getOutputTextureValueTypeName

Description
The name of the type of texture value of the node's texture output
Parameters
Name Type Description
node node The node.
Return Values
Name Type Description
valueTypeName string The name of the texture value type of the node's texture output
Synopsis
valueTypeName = octane.node.getOutputTextureValueTypeName( node )

octane.node.getOwnedItem

Description
Returns the item owned by a pin.
Parameters
Name Type Description
node node The node.
pin multi Name of the pin or id of the pin.
Return Values
Name Type Description
ownedItem multi Item that's owned by the pin. (node, graph or nil)
Synopsis
ownedItem = octane.node.getOwnedItem( node, pin )

octane.node.getOwnedItemIx

Description
Returns the item owned by a pin (identifies pin via index).
Parameters
Name Type Description
node node The node.
pin multi Index of the input pin.
Return Values
Name Type Description
ownedItem multi Item that's owned by the pin (node , graph or nil).
Synopsis
ownedItem = octane.node.getOwnedItemIx( node, pin )

octane.node.getPinCount

Description
Returns the number of pins of this node.
Parameters
Name Type Description
node node The node
Return Values
Name Type Description
pinCount number Number of pins on this node.
Synopsis
pinCount = octane.node.getPinCount( node )

octane.node.getPinInfo

Description
Returns the info of a pin on this node (static or dynamic).
Parameters
Name Type Description
node node The node
pin multi The id of the pin or the name of the pin.
Return Values
Name Type Description
PROPS__PIN_INFO table Table with static info about the pin. Depending upon the pin type, it returns either a, PROPS_BOOL_PIN_INFO PROPS_FLOAT_PIN_INFO PROPS_INT_PIN_INFO PROPS_ENUM_PIN_INFO PROPS_PROJECTION_PIN_INFO PROPS_TEXTURE_PIN_INFO PROPS_TRANSFORM_PIN_INFO PROPS_STRING_PIN_INFO PROPS_BIT_MASK_PIN_INFO PROPS_PIN_INFO(if the pin doesn't belong any specfic type).
Synopsis
PROPS__PIN_INFO = octane.node.getPinInfo( node, pin )

octane.node.getPinInfoIx

Description
Returns the info of a pin on this node (static or dynamic).
Parameters
Name Type Description
node node The node
pinIndex number The index of the pin.
Return Values
Name Type Description
PROPS__PIN_INFO table Table with static info about the pin. Depending upon the pin type, it returns either a, PROPS_BOOL_PIN_INFO PROPS_FLOAT_PIN_INFO PROPS_INT_PIN_INFO PROPS_ENUM_PIN_INFO PROPS_PROJECTION_PIN_INFO PROPS_TEXTURE_PIN_INFO PROPS_TRANSFORM_PIN_INFO PROPS_STRING_PIN_INFO PROPS_BIT_MASK_PIN_INFO PROPS_PIN_INFO(if the pin doesn't belong any specfic type).
Synopsis
PROPS__PIN_INFO = octane.node.getPinInfoIx( node, pinIndex )

octane.node.getPinTextureValueType

Description
Retrieves the texture value type of a node's pin given a pin id or pin name
Parameters
Name Type Description
node node The node.
pin multi Name of the pin or id of the pin.
Return Values
Name Type Description
valueTypeId number The id of the texture value type of the pin
Synopsis
valueTypeId = octane.node.getPinTextureValueType( node, pin )

octane.node.getPinTextureValueTypeIx

Description
Retrieves the texture value type of a node's pin given a pin id or pin name
Parameters
Name Type Description
node node The node.
index number Index of the pin.
Return Values
Name Type Description
valueTypeId number The id of the texture value type of the pin
Synopsis
valueTypeId = octane.node.getPinTextureValueTypeIx( node, index )

octane.node.getPinTextureValueTypeName

Description
Retrieves the name of the texture value type of a node's pin given a pin id or pin name
Parameters
Name Type Description
node node The node.
pin multi Name of the pin or id of the pin.
Return Values
Name Type Description
valueTypeName string The name of the texture value type of the pin
Synopsis
valueTypeName = octane.node.getPinTextureValueTypeName( node, pin )

octane.node.getPinTextureValueTypeNameIx

Description
Retrieves the name of the texture value type of a node's pin given a pin index
Parameters
Name Type Description
node node The node.
index number Index of the pin.
Return Values
Name Type Description
valueTypeName string The name of the texture value type of the pin
Synopsis
valueTypeName = octane.node.getPinTextureValueTypeNameIx( node, index )

octane.node.getPinValue

Description
Returns the value of a value node (skipping linker nodes) connected to the pin. When the pin isn't connected, the default value for the pin is returned. This function doesn't work for the input pin of a linker node.
Parameters
Name Type Description
node node The node.
pin multi Name of the pin or id of the pin.
Return Values
Name Type Description
value multi Value of the attribute of the connected node.
Synopsis
value = octane.node.getPinValue( node, pin )

octane.node.getPinValueIx

Description
Returns the value of a value node (skipping linker nodes) connected to the pin.When the pin isn't connected, the default value for the pin is returned. The pin is identified by index. This function doesn't work for the input pin of a linker node.
Parameters
Name Type Description
node node The node.
index number Index of the pin.
Return Values
Name Type Description
value multi Value of the node's attribute.
Synopsis
value = octane.node.getPinValueIx( node, index )

octane.node.getProperties

Description
Returns the properties of a node.
Parameters
Name Type Description
node node Node from which we'd like to get the properties.
Return Values
Name Type Description
PROPS_NODE_ITEM table Table with the properties of the node.
Synopsis
PROPS_NODE_ITEM = octane.node.getProperties( node )

octane.node.getRawArrayAttribute

Description
Returns a handle to the internal C-array. This handle is strictly read-only.
Parameters
Name Type Description
node node The node.
attribute multi Name of the attribute or id of the attribute
Return Values
Name Type Description
handle octane.util.PROPS_C_ARRAY Handle to the attribute array.
Synopsis
handle = octane.node.getRawArrayAttribute( node, attribute )

octane.node.getRawArrayAttributeIx

Description
Returns a handle to the internal C-array. This handle is strictly read-only.
Parameters
Name Type Description
node node The node.
index number Optional index of the attribute, when omitted, the first attribute is returned.
Return Values
Name Type Description
handle octane.util.PROPS_C_ARRAY Handle to the attribute array.
Synopsis
handle = octane.node.getRawArrayAttributeIx( node, index )

octane.node.getTextureTypeConfiguration

Description
Get the current typed texture node's type configuration
Parameters
Name Type Description
node node The node.
Return Values
Name Type Description
configuration PROPS_NODE_CONFIGURATION Table with the current node type configuration
Synopsis
configuration = octane.node.getTextureTypeConfiguration( node )

octane.node.hasAttribute

Description
Function to find out whether a attribute exists in a node graph.
Parameters
Name Type Description
node node The node.
attribute multi Name of the attribute or id of the attribute
Return Values
Name Type Description
value boolean TRUE if the attribute exists. Otherwise FALSE
Synopsis
value = octane.node.hasAttribute( node, attribute )

octane.node.hasPin

Description
Function to find out whether a pin exists in a node.
Parameters
Name Type Description
node node The node
pin multi The id of the pin or the name of the pin.
Return Values
Name Type Description
value boolean TRUE if the pin exists. Otherwise FALSE
Synopsis
value = octane.node.hasPin( node, pin )

octane.node.isAnimated

Description
Function to find whether an attribute is animated.
Parameters
Name Type Description
node node The node.
attribute multi Id or name of the attribute to clear.
Return Values
Name Type Description
animated boolean Returns TRUE if the attribute has an animator assigned to it.
Synopsis
animated = octane.node.isAnimated( node, attribute )

octane.node.isAnimatedIx

Description
Function to find whether an attribute is animated.
Parameters
Name Type Description
node node The node.
attrIx number Index of the attribute.
Synopsis
octane.node.isAnimatedIx( node, attrIx )

octane.node.setAnimator

Description
Sets an animator on an attribute of this node. Only attributes of AT_FLOAT, AT_MATRIX AT_BOOL, AT_FILENAME and AT_STRING can have an animator. An animator is an array of times and an array of corresponding attribute values.
Parameters
Name Type Description
node node The node.
attribute multi Id or name of the attribute to animate.
times table Array with times. This array must be sorted ascending.
values table Array with values each value corresponds to a time in the times array. The values must have the same type as the attribute type.
period number Period in seconds , if the period > 0 then the time pattern is repeated every period seconds. The time difference between the time of the last and first sample must be less than the period (if period > 0) (times[#times] - times[1]) < period.
evaluate boolean (optional) whether or not to immediately evaluate the node's attributes. Default value is true.
animationType animationType (optional) Animation type to use (octane.animationType). Defaults to octane.animationType.ONCE.
endTime number (optional) Time when animation ends. Used with animationType.
Synopsis
octane.node.setAnimator( node, attribute, times, values, period, evaluate, animationType, endTime )

octane.node.setAnimatorIx

Description
Sets an animator on an attribute by index on this node. Only attributes of AT_FLOAT, AT_MATRIX AT_BOOL, AT_FILENAME and AT_STRING can have an animator. An animator is an array of times and an array of corresponding attribute values.
Parameters
Name Type Description
node node The node.
attributeIx multi Index of the attribute to animate.
times table Array with times. This array must be sorted ascending.
values table Array with values each value corresponds to a time in the times array. The values must have the same type as the attribute type.
period number Period in seconds , if the period > 0 then the time pattern is repeated every period seconds. The time difference between the time of the last and first sample must be less than the period (times[#times] - times[1] < period)
evaluate boolean (optional) whether or not to immediately evaluate the node's attributes. Default value is true.
animationType animationType (optional) Animation type to use (octane.animationType). Defaults to octane.animationType.ONCE.
endTime number (optional) Time when animation ends. Used with animationType.
Synopsis
octane.node.setAnimatorIx( node, attributeIx, times, values, period, evaluate, animationType, endTime )

octane.node.setArrayAnimator

Description
Sets an animator on an array attribute of this node. Only attributes of AT_FLOAT, AT_MATRIX AT_BOOL, AT_FILENAME and AT_STRING can have an animator. An animator is an array of times and an array of corresponding attribute values.
Parameters
Name Type Description
node node The node.
attribute multi Id or name of the attribute to animate.
times table Array with times. This array must be sorted ascending.
values table Array with values. The array first contains all the animated values for the first element, then for the second element, and so on.
numTimes number The number of time stamps in the value array.
period number Period in seconds , if the period > 0 then the time pattern is repeated every period seconds. The time difference between the time of the last and first sample must be less than the period (if period > 0) (times[#times] - times[1]) < period.
evaluate boolean (optional) whether or not to immediately evaluate the node's attributes. Default value is true.
animationType animationType (optional) Animation type to use (octane.animationType). Defaults to octane.animationType.ONCE.
endTime number (optional) Time when animation ends. Used with animationType.
Synopsis
octane.node.setArrayAnimator( node, attribute, times, values, numTimes, period, evaluate, animationType, endTime )

octane.node.setArrayAnimatorIx

Description
Sets an animator on an array attribute of this node. Only attributes of AT_FLOAT, AT_MATRIX AT_BOOL, AT_FILENAME and AT_STRING can have an animator. An animator is an array of times and an array of corresponding attribute values.
Parameters
Name Type Description
node node The node.
attributeIx multi Index of the attribute to animate.
times table Array with times. This array must be sorted ascending.
values table Array with values. The array first contains all the animated values for the first element, then for the second element, and so on.
numTimes number The number of time stamps in the value array.
period number Period in seconds , if the period > 0 then the time pattern is repeated every period seconds. The time difference between the time of the last and first sample must be less than the period (times[#times] - times[1] < period)
evaluate boolean (optional) whether or not to immediately evaluate the node's attributes. Default value is true.
animationType animationType (optional) Animation type to use (octane.animationType). Defaults to octane.animationType.ONCE.
endTime number (optional) Time when animation ends. Used with animationType.
Synopsis
octane.node.setArrayAnimatorIx( node, attributeIx, times, values, numTimes, period, evaluate, animationType, endTime )

octane.node.setAttribute

Description
Sets an attribute of a node.
Parameters
Name Type Description
node node The node.
attribute multi Name of the attribute or id of the attribute
value multi value of the attribute.
evaluate boolean (optional) whether or not to immediately evaluate the node's attributes. Default value is true.
Synopsis
octane.node.setAttribute( node, attribute, value, evaluate )

octane.node.setAttributeIx

Description
Sets an attribute of a node based on the attribute index.
Parameters
Name Type Description
node node The node.
index number Index of the attribute to set.
value multi value of the attribute.
evaluate boolean (optional) whether or not to immediately evaluate the node's attributes. Default value is true.
Synopsis
octane.node.setAttributeIx( node, index, value, evaluate )

octane.node.setPinValue

Description
Sets the value attribute of a connected node through the pin. This means that the value is clamped in the range of the pin (if applicable). This function doesn't work for the input pin of a linker node.
Parameters
Name Type Description
node node The node.
pin multi Name of the pin or id of the pin
value multi value of the attribute.
evaluate boolean (optional) whether or not to immediately evaluate the connected node's attributes. Default value is true.
Synopsis
octane.node.setPinValue( node, pin, value, evaluate )

octane.node.setPinValueIx

Description
Sets the value attribute of a connected node through the pin. This means that the value is clamped in the range of the pin (if applicable). The pin is identified via its index. This function doesn't work for the input pin of a linker node.
Parameters
Name Type Description
node node The node.
index number Index of the attribute to set.
value multi value of the attribute.
evaluate boolean (optional) whether or not to immediately evaluate the node's attributes. Default value is true.
Synopsis
octane.node.setPinValueIx( node, index, value, evaluate )

octane.node.setRawArrayAttribute

Description
Sets an attribute of a node based on the attribute index. The attribute value is fetched via a raw CArray handle. The memory pointed to in the handle must be valid until this function returns.
Parameters
Name Type Description
node node The node.
attribute multi Name of the attribute or id of the attribute
handle octane.util.PROPS_C_ARRAY Raw handle to the attribute.
evaluate boolean (optional) whether or not to immediately evaluate the node's attributes. Default value is true.
Synopsis
octane.node.setRawArrayAttribute( node, attribute, handle, evaluate )

octane.node.setRawArrayAttributeIx

Description
Sets an attribute of a node based on the attribute index. The attribute value is fetched via a raw CArray handle. The memory pointed to in the handle must be valid until this function returns.
Parameters
Name Type Description
node node The node.
index number Index of the attribute to set.
handle octane.util.PROPS_C_ARRAY Raw handle to the attribute.
evaluate boolean (optional) whether or not to immediately evaluate the node's attributes. Default value is true.
Synopsis
octane.node.setRawArrayAttributeIx( node, index, handle, evaluate )

octane.node.setTextureTypeConfiguration

Description
Set the typed texture node to use a configuration given configuration parameters
Parameters
Name Type Description
node node The node.
parameters PROPS_NODE_CONFIGURATION_PARAMETERS Table with texture node type configuration parameters
Return Values
Name Type Description
success boolean Whether the given typed texture node was successfully set to the given configuration
Synopsis
success = octane.node.setTextureTypeConfiguration( node, parameters )

octane.node.updateProperties

Description
Updates the properties of a node.
Parameters
Name Type Description
node node The node to update.
PROPS_NODE_ITEM table Table with properties to update.
Synopsis
octane.node.updateProperties( node, PROPS_NODE_ITEM )

octane.apimaterialx.findConfiguration

Description
Find a typed texture node configuration corresponding to a given inputs and output type interface.
Parameters
Name Type Description
mxNodeCategory string A MaterialX node category
configurationInterface PROPS_NODE_CONFIGURATION_INTERFACE The types of output and inputs a node would have in the desired configuration
Return Values
Name Type Description
configuration PROPS_NODE_CONFIGURATION The configuration that was found to match the given interface
Synopsis
configuration = octane.apimaterialx.findConfiguration( mxNodeCategory, configurationInterface )

octane.apimaterialx.findConfigurationByNames

Description
Find a typed texture node configuration corresponding to a given inputs and output type interface (specified as MaterialX input names and value types).
Parameters
Name Type Description
mxNodeCategory string A MaterialX node category
mxOutputValueType string The value type of the node's output
mxInputNamesToValueTypes table Table mapping from names of MaterialX node inputs to their respective value types
Return Values
Name Type Description
configuration PROPS_NODE_CONFIGURATION Table with the found node type configuration
Synopsis
configuration = octane.apimaterialx.findConfigurationByNames( mxNodeCategory, mxOutputValueType, mxInputNamesToValueTypes )

octane.apimaterialx.getAllMxNodeCategories

Description
Get all MaterialX node categories that are supported.
Return Values
Name Type Description
mxNodeCategories string[] Array of all supported MaterialX node categories
Synopsis
mxNodeCategories = octane.apimaterialx.getAllMxNodeCategories( )

octane.apimaterialx.getGraphMxInputNames

Description
Get the names of inputs of a MaterialX node category represented as an Octane node graph. Graphs have dynamic pins, so there will be no pin ids. Instead, the input names are provided as an array of strings in the order they appear in the node graph. Each input name's placement in the array corresponds to the index of the input in the graph.
Parameters
Name Type Description
nodeGraphType number A type of graph that implements a configuration of a MaterialX node category (i.e: octane.GT_TEX_MX_SEPARATE4)
Return Values
Name Type Description
mxInputNames string[] The names of MaterialX inputs of the node category represented by the given node graph
Synopsis
mxInputNames = octane.apimaterialx.getGraphMxInputNames( nodeGraphType )

octane.apimaterialx.getGraphMxOutputNames

Description
Get the names of outputs of a MaterialX node category represented as an Octane node graph. Graphs have dynamic pins, so there will be no pin ids. Instead, the output names are provided as an array of strings in the order they appear in the node graph. Each input name's placement in the array corresponds to the index of the output in the graph.
Parameters
Name Type Description
nodeGraphType number A type of graph that implements a configuration of a MaterialX node category (i.e: octane.GT_TEX_MX_SEPARATE4)
Return Values
Name Type Description
mxOutputNames string[] The names of MaterialX outputs of the node category represented by the given node graph
Synopsis
mxOutputNames = octane.apimaterialx.getGraphMxOutputNames( nodeGraphType )

octane.apimaterialx.getGraphType

Description
Get the Octane graph type representing a MaterialX node category.
Parameters
Name Type Description
mxNodeCategory string A MaterialX node category
Return Values
Name Type Description
nodeGraphType integer The Octane graph type representing the given MaterialX node category (i.e: octane.GT_TEX_MX_SEPARATE4)
Synopsis
nodeGraphType = octane.apimaterialx.getGraphType( mxNodeCategory )

octane.apimaterialx.getMxInputNamesAndPinIds

Description
Get the MaterialX input names and their respective Octane pin ids and pin indices for a given node type
Parameters
Name Type Description
nodeType number A type of node that implements some configurations of a MaterialX node category (i.e: octane.NT_TEX_MX_ADD)
Return Values
Name Type Description
mxInputNames string[] Array array of the MaterialX input names
inputPinIds number[] Array of the Octane node pin ids (i.e: octane.P_INPUT)
inputPinIndices number[] Array of the Octane node pin indices
Synopsis
mxInputNames, inputPinIds, inputPinIndices = octane.apimaterialx.getMxInputNamesAndPinIds( nodeType )

octane.apimaterialx.getMxNodeCategory

Description
Get the MaterialX node category represented by a given node type.
Parameters
Name Type Description
nodeType number A type of node that implements some configurations of a MaterialX node category (i.e: octane.NT_TEX_MX_ADD)
Return Values
Name Type Description
mxNodeCategory string The corresponding MaterialX node category
Synopsis
mxNodeCategory = octane.apimaterialx.getMxNodeCategory( nodeType )

octane.apimaterialx.getMxNodeCategoryOfGraphType

Description
Get the MaterialX node category represented by a given graph type.
Parameters
Name Type Description
nodeGraphType number A type of graph that implements a configuration of a MaterialX node category (i.e: octane.GT_TEX_MX_SEPARATE4)
Return Values
Name Type Description
mxNodeCategoryName string The corresponding MaterialX node category
Synopsis
mxNodeCategoryName = octane.apimaterialx.getMxNodeCategoryOfGraphType( nodeGraphType )

octane.apimaterialx.getMxValueType

Description
Get the MaterialX value type represented by a texture value type.
Parameters
Name Type Description
textureValueType octane.textureValueType A texture value type (i.e: octane.textureValueType.VECTOR4)
Return Values
Name Type Description
mxValueTypeName string The corresponding MaterialX value type
Synopsis
mxValueTypeName = octane.apimaterialx.getMxValueType( textureValueType )

octane.apimaterialx.getNodeTypes

Description
Get the Octane node types representing a MaterialX node category.
Parameters
Name Type Description
mxNodeCategory string A MaterialX node category
Return Values
Name Type Description
nodeTypes number[] An array of Octane node types representing a MaterialX node category
Synopsis
nodeTypes = octane.apimaterialx.getNodeTypes( mxNodeCategory )

octane.apimaterialx.getTextureValueType

Description
Get the texture value type representing a MaterialX value type.
Parameters
Name Type Description
mxValueType string A MaterialX value type
Return Values
Name Type Description
textureValueType octane.textureValueType The corresponding texture value type
Synopsis
textureValueType = octane.apimaterialx.getTextureValueType( mxValueType )

octane.apimaterialx.importMaterialXFile

Description
Import a MaterialX file (`.mtlx`) as a node graph with material outputs, into a given parent graph (defaults to root). Each material output is internally connected to a separate sub-graph for each material in the MaterialX file. There can be further nesting of sub graphs based on the topology of the original material graphs in the source file. Importing has 2 modes: - Native: Uses dedicated node types for MaterialX that follow the specification - Octane: Uses pre-existing Octane node types to emulate the behaviour of the MaterialX material
Parameters
Name Type Description
file string The file path of a MaterialX file (.mtlx).
graph graph The parent graph to put the new MaterialX file graph into (defaults to the root graph).
native boolean Whether to import into native MaterialX nodes (defaults to true).
Return Values
Name Type Description
imported graph The freshly created MaterialX file graph.
Synopsis
imported = octane.apimaterialx.importMaterialXFile( file, graph, native )

octane.image.__gc

Description
GC metamethod
Parameters
Name Type Description
image udata image userdata
Synopsis
octane.image.__gc( image )

octane.image.__index

Description
Returns a property value of the image.
Parameters
Name Type Description
image image the image
name string name of the property
Return Values
Name Type Description
value multi the value of the property or nil
Synopsis
value = octane.image.__index( image, name )

octane.image.__tostring

Description
Converts value to string.
Parameters
Name Type Description
image image the image
Return Values
Name Type Description
s string string representation
Synopsis
s = octane.image.__tostring( image )

octane.image.applyBoxFilter

Description
Applies Box filter to the image. A faster algorithm than gaussian filter.
Parameters
Name Type Description
image image the image
radius number The number of nearest pixels to use for this filtering,Should be greater than zero and higher the value slower the operation
Synopsis
octane.image.applyBoxFilter( image, radius )

octane.image.applyGaussianFilter

Description
Applies gaussian filter to the image.
Parameters
Name Type Description
image image the image
radius number The number of nearest pixels to use for this filtering,Should be greater than zero and higher the value slower the operation
Synopsis
octane.image.applyGaussianFilter( image, radius )

octane.image.applyLevels

Description
Applies level correction to the image.
Parameters
Name Type Description
image image the image, must have float channels
gamma number Gamma factor (may be nil)
levels table table with 2 numbers, which give the range in the destination image where the interval [0.0, 1.0] will be mapped (may be nil)
Synopsis
octane.image.applyLevels( image, gamma, levels )

octane.image.calculateMeanSquareError

Description
Compares this image to another image, and calculates the mean square error for it.
Parameters
Name Type Description
image image the image
other image the other image, must have the same type and size as this one
clamp boolean if true, all values will be clamped at 1 (optional, default is false)
Return Values
Name Type Description
mse number The calculated mean square error.
Synopsis
mse = octane.image.calculateMeanSquareError( image, other, clamp )

octane.image.compareValues

Description
Compares this image to another image, and puts the difference in this image.
Parameters
Name Type Description
image image the image
other image the other image, must have the same type and size as this one
compareAlpha boolean if true the alpha channel will be compared. If false the alpha channel is not modified
Synopsis
octane.image.compareValues( image, other, compareAlpha )

octane.image.compress

Description
Compress the given image. May use a different compression type if the given type cannot represent the current image channels. Compression will fail if the image is a 2-channel YA image. Raises an error when compression fails. Otherwise the image is compressed in place.
Parameters
Name Type Description
image image Image to be compressed
compType number The destination (BC compression) image type, which will be one of the BC compression type defined in octane.imageType
Synopsis
octane.image.compress( image, compType )

octane.image.convert

Description
Convert to a different type of image. This call is always synchronous, and is potentially slow if destinationType is a compressed format. If specifying a compressed image type that cannot represent the current image channels a different compressed type may be used. Converting to a compressed type will fail if the source image is a 2-channel YA image.
Parameters
Name Type Description
image image the image
newType integer Type to convert to
forceCopy boolean (default: false) If false and if the new type matches the type of this image, a handle to this image is returned. If true, this guarantees a new image is created in any case.
Return Values
Name Type Description
newImage image The converted image.
Synopsis
newImage = octane.image.convert( image, newType, forceCopy )

octane.image.copyRegion

Description
Copies a region of an image to another image.
Parameters
Name Type Description
image image the destination image. Must not be compressed
sourceImage image The source image. Must have the same type as the destination image
sourceArea table the area from the source image to be used, given as {x, y, width, height}. If nil the entire image is copied
destPos table The top-left corner of the area where the source image will be copied
Synopsis
octane.image.copyRegion( image, sourceImage, sourceArea, destPos )

octane.image.create

Description
Creates an image with all pixels set to 0.
Parameters
Name Type Description
PROPS_IMAGE table image properties, with 'type' and 'size' set. Other fields will be ignored.
Return Values
Name Type Description
image image the new image
Synopsis
image = octane.image.create( PROPS_IMAGE )

octane.image.createFromNode

Description
Create an image from an image texture node (NT_TEX_IMAGE or similar).
Parameters
Name Type Description
node node the image node
Return Values
Name Type Description
image image The created image
Synopsis
image = octane.image.createFromNode( node )

octane.image.fill

Description
Fills a rectangle with a color.
Parameters
Name Type Description
image image the image. Must not be compressed
area table the area to fill, given as {x, y, width, height}. If nil the entire image will be filled
value multi the pixel value, depending on the image type (see setPixel)
blend boolean If true, the color will be alpha-blended. If false, the color will simply be blitted
Synopsis
octane.image.fill( image, area, value, blend )

octane.image.fillImageNode

Description
Fills the passed in NT_TEX_IMAGE node with the data from this image.
Parameters
Name Type Description
image image the image
node node the image node
Return Values
Name Type Description
success boolean TRUE if successful.
Synopsis
success = octane.image.fillImageNode( image, node )

octane.image.fromBase64

Description
Loads an image from a base64-encoded string as a bitmap, which allows you to embed small images in a script.
Parameters
Name Type Description
path string Base64-encoded image. Whitespace in this string is ignored.
channels number describes how the image should be loaded
Return Values
Name Type Description
image image the loaded image
Synopsis
image = octane.image.fromBase64( path, channels )

octane.image.getImageInfo

Description
Gets the information on the given image file.
Parameters
Name Type Description
path string Absolute path or PROPS_PACKAGE_PATH to the image file on disk
Return Values
Name Type Description
INFOS_IMAGE table table with image information
Synopsis
INFOS_IMAGE = octane.image.getImageInfo( path )

octane.image.getLayerInfo

Description
Gets the information on the given image file.
Parameters
Name Type Description
path string Absolute path or PROPS_PACKAGE_PATH to the image file on disk
layerIx number The index of the layer starting from 1
Return Values
Name Type Description
INFOS_LAYER table table with image information
Synopsis
INFOS_LAYER = octane.image.getLayerInfo( path, layerIx )

octane.image.getPixel

Description
Returns the value of a pixel in the image. The pixel value (1, 1) is in the top-left corner of the image, x points to the right and y points down.
Parameters
Name Type Description
image image the image. Must not be compressed
x number the pixel's x-coordinate in [1, image.size[1]]
y number the pixel's y-coordinate in [1, image.size[2]]
Return Values
Name Type Description
value multi the pixel value, depending on the image type: octane.imageType.LDR_MONO: a single value in [0,255] (grayscale) octane.imageType.LDR_MONO_ALPHA: a table with 2 values in [0,255] (grayscale and alpha) octane.imageType.LDR_RGBA: a table with 4 values in [0,255] (RGBA) octane.imageType.HALF_MONO: a single floating point value (grayscale) octane.imageType.HALF_MONO_ALPHA: a table with 2 floating point values (grayscale and alpha) octane.imageType.HALF_RGBA: a table with 4 floating point values (RGBA) octane.imageType.HDR_MONO: a single floating point value (grayscale) octane.imageType.HDR_MONO_ALPHA: a table with 2 floating point values (grayscale and alpha) octane.imageType.HDR_RGBA: a table with 4 floating point values (RGBA)
Synopsis
value = octane.image.getPixel( image, x, y )

octane.image.getProperties

Description
Returns the image's properties.
Parameters
Name Type Description
image image the image
Return Values
Name Type Description
PROPS_IMAGE table table with image properties
Synopsis
PROPS_IMAGE = octane.image.getProperties( image )

octane.image.getRawPixels

Description
Returns the pixels of this image as a C-array. This is only a raw byte array and it's up to the called how to interpret these bytes based on the image type. This array is valid until the image is garbage collected.
Parameters
Name Type Description
image image the image
Return Values
Name Type Description
pixels octane.util.PROPS_C_ARRAY C-array of the raw pixel byte values
Synopsis
pixels = octane.image.getRawPixels( image )

octane.image.load

Description
Loads an image from a file as a bitmap.
Parameters
Name Type Description
path string Absolute path or PROPS_PACKAGE_PATH to the image file on disk
channels number Load the channels as color or monochrome (value from octane.imageColorType).
channelFormat number Indicate if HDR images should be loaded as half or float (value from octane.imageChannelType). Default is octane.imageChannelType.FLOAT
layerName string The layer name of the image, from which the image data will be loaded(optional). If this argument is omitted, default layer will be used.
Return Values
Name Type Description
image image The image loaded as a bitmap.
Synopsis
image = octane.image.load( path, channels, channelFormat, layerName )

octane.image.save

Description
Saves an image to disk. Compressed images are saved as DDS, and regular HDR images are saved as EXR, LDR images are saved as PNG. The correct extension is added to the path (if it didn't exist yet).
Parameters
Name Type Description
image image image to save to disk
path string absolute path to the destination file
metaData table Table of string key/value pairs used as meta data in the header of the output image file (optional)
Synopsis
octane.image.save( image, path, metaData )

octane.image.saveAsync

Description
Starts saving an image to disk on a background thread. HDR images are saved as exr, LDR images are saved as png. The correct extension is added to the path (if it didn't exist yet).
Parameters
Name Type Description
image image image to save to disk
path string absolute path to the destination file
metaData table Table of string key/value pairs used as meta data in the header of the output image file (optional)
Synopsis
octane.image.saveAsync( image, path, metaData )

octane.image.setPixel

Description
Sets the value of a pixel in the image. The pixel value (1, 1) is in the top-left corner of the image, x points to the right and y points down.
Parameters
Name Type Description
image image the image. Must not be compressed
x number the pixel's x-coordinate in [1, image.size[1]]
y number the pixel's y-coordinate in [1, image.size[2]]
value multi the pixel value, depending on the image type: octane.imageType.LDR_MONO: a single value in [0,255] (grayscale) octane.imageType.LDR_MONO_ALPHA: a table with 2 values in [0,255] (grayscale and alpha) octane.imageType.LDR_RGBA: a table with 4 values in [0,255] (RGBA) octane.imageType.HALF_MONO: a single floating point value (grayscale) octane.imageType.HALF_MONO_ALPHA: a table with 2 floating point values (grayscale and alpha) octane.imageType.HALF_RGBA: a table with 4 floating point values (RGBA) octane.imageType.HDR_MONO: a single floating point value (grayscale) octane.imageType.HDR_MONO_ALPHA: a table with 2 floating point values (grayscale and alpha) octane.imageType.HDR_RGBA: a table with 4 floating point values (RGBA)
Synopsis
octane.image.setPixel( image, x, y, value )

octane.caches.checkMeshletBuildStatus

Description
Checks the status of the cached meshlet mesh for the given mesh node. This should be run *after* the mesh node got evaluated and any meshlet data was loaded or its build was started.
Parameters
Name Type Description
meshNode node Node of type octane.NT_GEO_MESH to check the state of its meshlet cache file
Return Values
Name Type Description
status number octane.cacheStatus.NONE if meshNode is not a mesh node, or a mesh node that has A_CONVERT_TO_MESHLETS set to false. Otherwise returns one of the other enums in octane.cacheStatus .
Synopsis
status = octane.caches.checkMeshletBuildStatus( meshNode )

octane.caches.checkVirtualTextureStatus

Description
Check the status of the cached virtual texture corresponding to the settings contained in the given node. If node is nullptr, does not present a type that supports virtual textures, or if the settings don't result in a virtual texture being used, returns cacheStatus.NONE. Otherwise returns one of the other constants in CacheStatus.
Parameters
Name Type Description
node node Node containing the settings
Return Values
Name Type Description
status number Status of the cache entry
Synopsis
status = octane.caches.checkVirtualTextureStatus( node )

octane.caches.clearMeshletCache

Description
Deletes all meshlet cache files that are currently not in use.
Synopsis
octane.caches.clearMeshletCache( )

octane.caches.clearMeshletCacheFileForNode

Description
Deletes the meshlet cache file of the given node if the file isn't used anywhere else. This can be called before or after evaluation of the mesh node.
Parameters
Name Type Description
meshNode node Node of type octane.NT_GEO_MESH of which the meshlet cache file should be deleted
Return Values
Name Type Description
removed boolean true if either the node didn't represent a mesh node with a valid meshlet cache file, or if the cache file for the node was deleted. False if there still exists a cache file for the mesh node.
Synopsis
removed = octane.caches.clearMeshletCacheFileForNode( meshNode )

octane.caches.clearMeshletCacheFilesForId

Description
Deletes all meshlet cache files for a given meshlet mesh ID that are currently not in use anywhere.
Parameters
Name Type Description
meshletMeshId string The meshlet mesh ID string
Synopsis
octane.caches.clearMeshletCacheFilesForId( meshletMeshId )

octane.caches.clearVirtualTextureCacheForNode

Description
Clears the cache entry matching the settings contained in the given node item. This call succeeds only if there are no other node items referencing the same file, and if the build for the given cache entry is not currently in progress. The item is left in an intermediate state, evaluating the item after this call may rebuild the cache for the item. If a build is in progress, the build may be cancelled by this call, resulting in the file being deleted some indeterminate time after this call.
Parameters
Name Type Description
node node Node containing the settings
Return Values
Name Type Description
removed boolean true if either the node didn't represent a virtual texture cache, or if the cache file for the node was deleted. False if there still exists a cache file.
Synopsis
removed = octane.caches.clearVirtualTextureCacheForNode( node )

octane.caches.getMeshletCacheFileName

Description
Gets the file name of the meshlet cache file if the mesh node has an associated meshlet cache file or an empty string if it does not. A meshlet cache file is only assigned to a mesh node if A_CONVERT_TO_MESHLETS is set to true and the mesh node either has been evaluated or hasMeshletCacheFile() has been called with this node.
Parameters
Name Type Description
meshNode node Node of type octane.NT_GEO_MESH containing the settings
Return Values
Name Type Description
cacheFileName string The name of the meshlet cache file of the mesh node or an empty string if the mesh is not a meshlet mesh.
Synopsis
cacheFileName = octane.caches.getMeshletCacheFileName( meshNode )

octane.caches.getMeshletCacheSize

Description
Returns the maximum size of the meshlet cache size as specified in the application preferences.
Return Values
Name Type Description
cacheSize number The maximum meshlet cache size in bytes.
Synopsis
cacheSize = octane.caches.getMeshletCacheSize( )

octane.caches.getMeshletCacheUsedSize

Description
Returns the sum of all meshlet cache files that are currently in the meshlet cache.
Return Values
Name Type Description
cacheSize number The size of the meshlet cache data in bytes.
Synopsis
cacheSize = octane.caches.getMeshletCacheUsedSize( )

octane.caches.getVirtualTextureCacheSize

Description
Returns the maximum size of the virtual texture cache size as specified in the application preferences.
Return Values
Name Type Description
cacheSize number The maximum virtual texture cache size in bytes.
Synopsis
cacheSize = octane.caches.getVirtualTextureCacheSize( )

octane.caches.getVirtualTextureCacheUsedSize

Description
Returns the sum of all virtual texture cache files that are currently in the virtual texture cache.
Return Values
Name Type Description
cacheSize number The size of the virtual texture cache data in bytes.
Synopsis
cacheSize = octane.caches.getVirtualTextureCacheUsedSize( )

octane.caches.hasMeshletCacheFile

Description
Checks if a cache file can be found for the given geometry import preferences and filename / meshlet ID attribute. If a meshlet cache file exists it will be opened and kept open by the mesh node. This function can be used before or after the mesh node is evaluated. When you call it before evaluation you don't have to populate the actual geometry attributes yet. This allows you to check whether you need to populate the geometry data or not and thus save a bit of memory and time. If the meshlet cache file exists and the node was not evaluated yet you still have to evaluate the mesh node to populate the material / object layer names and pins and bring the node into a consistent state. If the meshlet cache file does not exist you will have to completely populate the geometry attributes and then evaluate the mesh node. This will then kick off the meshlet build in the background. You can check the state of that build using checkMeshletBuildStatus().
Parameters
Name Type Description
meshNode node Node of type octane.NT_GEO_MESH containing the settings
Return Values
Name Type Description
hasCacheFile boolean true if a meshlet cache file exists, false if not
Synopsis
hasCacheFile = octane.caches.hasMeshletCacheFile( meshNode )

octane.caches.pruneVirtualTextureCache

Description
Shrinks the virtual texture cache size by deleting virtual texture cache files that are currently not in use.
Parameters
Name Type Description
maxCacheSize number Maximal desired cache size.
Synopsis
octane.caches.pruneVirtualTextureCache( maxCacheSize )

octane.gui.__eq

Description
Tests 2 components for equality (c1 == c2).
Parameters
Name Type Description
c1 component the first component
c2 component the second component
Return Values
Name Type Description
equal boolean true if they're equal, false otherwise
Synopsis
equal = octane.gui.__eq( c1, c2 )

octane.gui.__index

Description
Fetches a property value.
Parameters
Name Type Description
component component Component.
propertyName string Property name/key.
Return Values
Name Type Description
propertyValue multi The value, or nil if no such value.
Synopsis
propertyValue = octane.gui.__index( component, propertyName )

octane.gui.__newindex

Description
Updates a property of a component.
Parameters
Name Type Description
n1 component component
name string property name
value boolean the value to set
Synopsis
octane.gui.__newindex( n1, name, value )

octane.gui.__tostring

Description
Converts value to string.
Parameters
Name Type Description
c node component
Return Values
Name Type Description
s string string representation
Synopsis
s = octane.gui.__tostring( c )

octane.gui.bind

Description
Binds a component's property to data in the property table. When a component's property and data are bound, updating the data value updates the property and updating the component updates the data value. A callback is called when the data value is updated from the user interface. This function will throw an error when the property is not bindable or doesn't exist. Initially, the value in the table gets the value of the component's property.
Parameters
Name Type Description
component component component whose property we bind
propertyName string name of the component property to bind
propertyTable table table containing the data values
dataKey string name of the data key in the property table
callback function (optional) callback, called when the data in the property table is updated. Arguments are the key and the new value.
Synopsis
octane.gui.bind( component, propertyName, propertyTable, dataKey, callback )

octane.gui.browseForAsset

Description
Select a file for reading or saving an asset. The path to the file will be saved in the preferences, as with the dialogs shown by Octane.
Parameters
Name Type Description
title string Dialog title.
wildcards string List of file wildcards, only files that match these wildcards will be visible (e.g. *.lua; *.cpp). Multiple patterns can be separated with semicolons.
typeId number One of the A_LAST_xxx_DIRECTORY attribute IDs in the NT_LOCAL_APP_PREFS node type, appropriate for the selected file type.
forSaving boolean True to show a file save dialog, false for an open dialog or directory browse dialog.
Return Values
Name Type Description
file string Path to the selected file. Returns an empty string when the user cancels the dialog.
Synopsis
file = octane.gui.browseForAsset( title, wildcards, typeId, forSaving )

octane.gui.closeWindow

Description
Closes the window. This function must be called in the window event callback. Calling this function makes showWindow return.
Parameters
Name Type Description
window component The window to close.
values multi Any additional values are returned from showWindow.
Synopsis
octane.gui.closeWindow( window, values )

octane.gui.create

Description
Creates a GUI component.
Parameters
Name Type Description
PROPS_GUI_COMPONENT table Table with component properties, at least type should be specified.
Return Values
Name Type Description
component component The freshly created component.
Synopsis
component = octane.gui.create( PROPS_GUI_COMPONENT )

octane.gui.createButton

Description
Creates a button component.
Parameters
Name Type Description
options string or table See PROPS_GUI_BUTTON. Call using octane.gui.createButton { text="test", width = 170, ... } or simply octane.gui.createButton("test")
Return Values
Name Type Description
button button The new button.
Synopsis
button = octane.gui.createButton( options )

octane.gui.createCheckBox

Description
Creates a checkbox component.
Parameters
Name Type Description
options table See PROPS_GUI_CHECK_BOX. Call using octane.gui.createCheckBox { text="test", checked = true, ... }
Return Values
Name Type Description
checkbox checkbox The new checkbox.
Synopsis
checkbox = octane.gui.createCheckBox( options )

octane.gui.createComboBox

Description
Creates a combo box component.
Parameters
Name Type Description
options table See PROPS_GUI_COMBO_BOX. Call using octane.gui.createComboBox { callback = function(c,e) end, ... }
Return Values
Name Type Description
combobox combobox The new combo box.
Synopsis
combobox = octane.gui.createComboBox( options )

octane.gui.createGroup

Description
Creates a group component.
Parameters
Name Type Description
options table An options table such as: { text = "group title here", children = { {a,b}, {c,d} }, padding = { 2 }, inset = { 3 }, border = true }. Where a, b, c, and d are also components. May also be called with just the children table.
Return Values
Name Type Description
group group The new group.
Synopsis
group = octane.gui.createGroup( options )

octane.gui.createLabel

Description
Creates a label component.
Parameters
Name Type Description
options string or table See PROPS_GUI_LABEL. Call using octane.gui.createLabel { text="test", width = 170, ... } or simply octane.gui.createLabel("test")
Return Values
Name Type Description
label label The new label.
Synopsis
label = octane.gui.createLabel( options )

octane.gui.createNumericBox

Description
Creates a numeric box component.
Parameters
Name Type Description
options table See PROPS_NUMERIC_BOX. Call using octane.gui.createNumericBox { text="test", max = 20.4, ... }
Return Values
Name Type Description
numericbox numericbox The new numeric box.
Synopsis
numericbox = octane.gui.createNumericBox( options )

octane.gui.createOcioColorSpaceComboBox

Description
Creates an OCIO color space combo box component.
Parameters
Name Type Description
options table See PROPS_GUI_OCIO_COLOR_SPACE_COMBO_BOX. Call using octane.gui.createOcioColorSpaceComboBox{ callback = function(c,e) end, ... }
Return Values
Name Type Description
combobox combobox The new combo box.
Synopsis
combobox = octane.gui.createOcioColorSpaceComboBox( options )

octane.gui.createOcioLookComboBox

Description
Creates an OCIO look combo box component.
Parameters
Name Type Description
options table See PROPS_GUI_OCIO_LOOK_COMBO_BOX. Call using octane.gui.createOcioLookComboBox{ callback = function(c,e) end, ... }
Return Values
Name Type Description
combobox combobox The new combo box.
Synopsis
combobox = octane.gui.createOcioLookComboBox( options )

octane.gui.createOcioViewComboBox

Description
Creates an OCIO view combo box component.
Parameters
Name Type Description
options table See PROPS_GUI_OCIO_VIEW_COMBO_BOX. Call using octane.gui.createOcioViewComboBox{ callback = function(c,e) end, ... }
Return Values
Name Type Description
combobox combobox The new combo box.
Synopsis
combobox = octane.gui.createOcioViewComboBox( options )

octane.gui.createParameter

Description
Creates a label and numeric box set and returns it.
Parameters
Name Type Description
childrenTable table A table in which to insert the { label, box }table.
text string The label next to the numeric box.
value number The initial value of the numeric box.
min number The minimum value of the numeric box.
max number The maximum value of the numeric box.
step number The size of the step in the numeric box.
log boolean Whether or not to set the numeric box to logarithmic mode.
width number Width of the numeric box.
height number Height of the numeric box.
Synopsis
octane.gui.createParameter( childrenTable, text, value, min, max, step, log, width, height )

octane.gui.createProgressBar

Description
Creates a progress bar component.
Parameters
Name Type Description
options table See PROPS_GUI_PROGRESS_BAR. Call using octane.gui.createProgressBar { text="test", max = 20.4, ... }
Return Values
Name Type Description
progressbar progressbar The new progress bar.
Synopsis
progressbar = octane.gui.createProgressBar( options )

octane.gui.createPropertyTable

Description
Creates a table holding data values that are bound to component's properties. When the values in this table are updated, the component is updated. When the component is updated, the values in the table are updated accordingly. The values must first be bound with a call to octane.gui.bind.
Parameters
Name Type Description
values table if this is a table, the keys and values will be copied to the property table
Return Values
Name Type Description
propertyTable table empty table that will contain data values
Synopsis
propertyTable = octane.gui.createPropertyTable( values )

octane.gui.createSlider

Description
Creates a slider component.
Parameters
Name Type Description
options table See PROPS_GUI_SLIDER. Call using octane.gui.createSlider { text="test", width = 170, ... }
Return Values
Name Type Description
slider slider The new slider.
Synopsis
slider = octane.gui.createSlider( options )

octane.gui.createTextEditor

Description
Creates a text editor component.
Parameters
Name Type Description
options string or table See PROPS_TEXTEDITOR. Call using octane.gui.createTextEditor { text="test", width = 640, ... }
Return Values
Name Type Description
texteditor texteditor The new texteditor.
Synopsis
texteditor = octane.gui.createTextEditor( options )

octane.gui.createWindow

Description
Creates a window component.
Parameters
Name Type Description
options string or table See PROPS_GUI_WINDOW. Call using octane.gui.createWindow { text="test", width = 640, ... }
Return Values
Name Type Description
window window The new window.
Synopsis
window = octane.gui.createWindow( options )

octane.gui.dispatchGuiEvents

Description
Dispatches GUI events until the given time has elapsed. This can be used to make the GUI appear responsive while doing heavy work. The timeout should be small, in most cases it can be less than 100 milliseconds. This function should be used with care. You may receive callbacks while this function is running, like GUI callbacks, render callbacks or timer callbacks. If any of these callbacks open a dialog window, this function will not return until that window is closed, regardless of the timeout. Due to the complications above, this function should not be used to run code after a set delay, use octane.timer instead.
Parameters
Name Type Description
timeout number time in milliseconds to dispatch messages
Synopsis
octane.gui.dispatchGuiEvents( timeout )

octane.gui.getProperties

Description
Returns the component's properties.
Parameters
Name Type Description
component component The component for which we'd like to get the properties.
Return Values
Name Type Description
PROPS_GUI_COMPONENT table Table with the component's properties.
Synopsis
PROPS_GUI_COMPONENT = octane.gui.getProperties( component )

octane.gui.showDialog

Description
Shows a dialog window. This function will block until the dialog is closed.
Parameters
Name Type Description
PROPS_DIALOG table Properties of the dialog window, should at least contain a type.
Return Values
Name Type Description
PROPS_DIALOG table Table with all the properties of the dialog including the results.
Synopsis
PROPS_DIALOG = octane.gui.showDialog( PROPS_DIALOG )

octane.gui.showError

Description
Shows an error.
Parameters
Name Type Description
text string The error string.
title string The title of the error window.
Synopsis
octane.gui.showError( text, title )

octane.gui.showWindow

Description
Makes this window visible, this function blocks until closeWindow is called on the window. Use the event callback function to react to UI events.
Parameters
Name Type Description
window component The window to show.
Return Values
Name Type Description
values multi The values passed to closeWindow.
Synopsis
values = octane.gui.showWindow( window )

octane.gui.updateProperties

Description
Updates the component's properties.
Parameters
Name Type Description
component component The component to update.
PROPS_GUI_COMPONENT table Table that contains the properties to update.
Return Values
Name Type Description
success boolean true on success , false otherwise.
Synopsis
success = octane.gui.updateProperties( component, PROPS_GUI_COMPONENT )

octane.gui.updateStatus

Description
Updates the status of the lua script. This will display a status bar and a status message in the status bar of OctaneRender Standalone.
Parameters
Name Type Description
message string status message
progess number optional progress between 0 and 1, a negative value just means busy.
Synopsis
octane.gui.updateStatus( message, progess )

octane.apiinfo.findConfigurationByInterface

Description
Find the configuration that has the given node interface of texture value types of output and inputs
Parameters
Name Type Description
nodeType number Node type (e.g. octane.NT_FLOAT)
interface PROPS_NODE_CONFIGURATION_INTERFACE Table with ids of output and input pins and texture value types
Return Values
Name Type Description
configuration PROPS_NODE_CONFIGURATION Table with the found node type configuration, nil if not found
Synopsis
configuration = octane.apiinfo.findConfigurationByInterface( nodeType, interface )

octane.apiinfo.findConfigurationByParameters

Description
Find the configuration that the typed texture node would switch to when set to given configuration parameters
Parameters
Name Type Description
nodeType number Node type (e.g. octane.NT_FLOAT)
parameters PROPS_NODE_CONFIGURATION_PARAMETERS Table with texture node type configuration parameters
Return Values
Name Type Description
configuration PROPS_NODE_CONFIGURATION Table with the found node type configuration, nil if not found
Synopsis
configuration = octane.apiinfo.findConfigurationByParameters( nodeType, parameters )

octane.apiinfo.getAttributeId

Description
Returns the ID for an attribute name.
Parameters
Name Type Description
attributeName string Attribute name (e.g. "value").
Return Values
Name Type Description
attributeId number Attribute ID (e.g. octane.A_VALUE).
Synopsis
attributeId = octane.apiinfo.getAttributeId( attributeName )

octane.apiinfo.getAttributeIdName

Description
Returns the attribute ID as string specified as ID or name.
Parameters
Name Type Description
attribute numberOrString ID of the attribute (e.g. octane.A_VALUE) or the name of the attribute (e.g. "value").
Return Values
Name Type Description
attributeIdName string The attribute ID as string (e.g. "A_VALUE").
Synopsis
attributeIdName = octane.apiinfo.getAttributeIdName( attribute )

octane.apiinfo.getAttributeName

Description
Returns the name for an attribute ID.
Parameters
Name Type Description
attributeId number Attribute ID (e.g. octane.A_VALUE).
Return Values
Name Type Description
attributeName string Attribute name (e.g. "value").
Synopsis
attributeName = octane.apiinfo.getAttributeName( attributeId )

octane.apiinfo.getAttributeTypeName

Description
Returns the name for an attribute type.
Parameters
Name Type Description
attributeType number Attribute type (e.g. octane.AT_FLOAT).
Return Values
Name Type Description
attributeTypeString string Attribute type name (e.g. "AT_FLOAT").
Synopsis
attributeTypeString = octane.apiinfo.getAttributeTypeName( attributeType )

octane.apiinfo.getCompatibleTypes

Description
Returns the graphs and nodes compatible with the output type.
Parameters
Name Type Description
outType number Output type (pinType).
Return Values
Name Type Description
compatGraphs table Table of graph types compatible with the output type.
compatNodes table Table of node types compatible with the output type.
Synopsis
compatGraphs, compatNodes = octane.apiinfo.getCompatibleTypes( outType )

octane.apiinfo.getGraphAttributeInfo

Description
Returns info about an attribute available on graphs of a given type.
Parameters
Name Type Description
graphType number Graph type (e.g. octane.GT_STANDARD)
attributeIdx number Index of the attribute.
Return Values
Name Type Description
attributeInfo PROPS_ATTR_INFO Table with all the info about the attribute.
Synopsis
attributeInfo = octane.apiinfo.getGraphAttributeInfo( graphType, attributeIdx )

octane.apiinfo.getGraphInfo

Description
Returns info about a graph type.
Parameters
Name Type Description
graphType number Graph type (e.g. octane.GT_STANDARD)
Return Values
Name Type Description
graphInfo PROPS_GRAPH_INFO Table with all the info about the graph type.
Synopsis
graphInfo = octane.apiinfo.getGraphInfo( graphType )

octane.apiinfo.getGraphTypeName

Description
Returns the name for a graph type.
Parameters
Name Type Description
graphType number Graph type (e.g. octane.GT_STANDARD).
Return Values
Name Type Description
graphTypeString string Graph type name (e.g. "GT_STANDARD").
Synopsis
graphTypeString = octane.apiinfo.getGraphTypeName( graphType )

octane.apiinfo.getGraphTypes

Description
Fetches all registered node graph types.
Return Values
Name Type Description
graphTypes table Table (array) with all registered node graph types.
Synopsis
graphTypes = octane.apiinfo.getGraphTypes( )

octane.apiinfo.getNodeAttributeInfo

Description
Returns info about an attribute available on nodes of a given type.
Parameters
Name Type Description
nodeType number Node type (e.g. octane.NT_BOOL)
attributeIdx number Index of the attribute.
Return Values
Name Type Description
attributeInfo PROPS_ATTR_INFO Table with all the info about the attribute.
Synopsis
attributeInfo = octane.apiinfo.getNodeAttributeInfo( nodeType, attributeIdx )

octane.apiinfo.getNodeInfo

Description
Returns info about a node type.
Parameters
Name Type Description
nodeType number Node type (e.g. octane.NT_FLOAT)
Return Values
Name Type Description
nodeInfo PROPS_NODE_INFO Table with all the info about the node type.
Synopsis
nodeInfo = octane.apiinfo.getNodeInfo( nodeType )

octane.apiinfo.getNodeTypeName

Description
Returns the name for a node type.
Parameters
Name Type Description
nodeType number Node type (e.g. octane.NT_TEX_MIX).
Return Values
Name Type Description
nodeTypeString string Node type name (e.g. "NT_TEX_MIX").
Synopsis
nodeTypeString = octane.apiinfo.getNodeTypeName( nodeType )

octane.apiinfo.getNodeTypes

Description
Fetches all registered node types.
Return Values
Name Type Description
nodeTypes table Table (array) with all registered node types.
Synopsis
nodeTypes = octane.apiinfo.getNodeTypes( )

octane.apiinfo.getPinId

Description
Returns the ID of a pin based on its name.
Parameters
Name Type Description
pinName string Name of the pin (e.g. "diffuse").
Return Values
Name Type Description
pinId number Pin ID (e.g. octane.P_DIFFUSE).
Synopsis
pinId = octane.apiinfo.getPinId( pinName )

octane.apiinfo.getPinIdName

Description
Returns the pin ID as string specified as ID or name.
Parameters
Name Type Description
pinId numberOrString ID of the pin (e.g. octane.P_DIFFUSE) or the name of the pin (e.g. "diffuse").
Return Values
Name Type Description
pinName string The pin ID as string (e.g. "P_DIFFUSE").
Synopsis
pinName = octane.apiinfo.getPinIdName( pinId )

octane.apiinfo.getPinInfo

Description
Returns info about a pin available on nodes of a given type (static pins only).
Parameters
Name Type Description
nodeType number Node type (e.g. octane.NT_CAM_THINLENS)
pinIdx number Index of the pin.
Return Values
Name Type Description
PROPS__PIN_INFO table Table with static info about the pin. Depending upon the pin type, it returns either a, PROPS_BOOL_PIN_INFO PROPS_FLOAT_PIN_INFO PROPS_INT_PIN_INFO PROPS_ENUM_PIN_INFO PROPS_PROJECTION_PIN_INFO PROPS_TEXTURE_PIN_INFO PROPS_TRANSFORM_PIN_INFO PROPS_STRING_PIN_INFO PROPS_BIT_MASK_PIN_INFO PROPS_PIN_INFO(if the pin doesn't belong any specfic type).
Synopsis
PROPS__PIN_INFO = octane.apiinfo.getPinInfo( nodeType, pinIdx )

octane.apiinfo.getPinName

Description
Returns the name of a pin based on its pin ID.
Parameters
Name Type Description
pinId number ID of the pin (e.g. octane.P_DIFFUSE).
Return Values
Name Type Description
pinIdString string The name of the pin ID string (e.g. "diffuse").
Synopsis
pinIdString = octane.apiinfo.getPinName( pinId )

octane.apiinfo.getPinTypeName

Description
Returns the name for a pin type.
Parameters
Name Type Description
pinType number Pin type (e.g. octane.PT_FLOAT).
Return Values
Name Type Description
pinTypeString string Pin type name (e.g. "PT_FLOAT").
Synopsis
pinTypeString = octane.apiinfo.getPinTypeName( pinType )

octane.apiinfo.getSystemInfo

Description
Returns a table with info about the system.
Return Values
Name Type Description
systemInfo PROPS_SYSTEM_INFO Table with all the info about this system.
Synopsis
systemInfo = octane.apiinfo.getSystemInfo( )

octane.apiinfo.getTextureValueTypeName

Description
Gets the OSL value type name string of an octane.textureValueType
Parameters
Name Type Description
textureValueType integer A texture value type, octane.textureValueType
Return Values
Name Type Description
textureValueTypeName string The OSL name of the given texture value type
Synopsis
textureValueTypeName = octane.apiinfo.getTextureValueTypeName( textureValueType )

octane.apiinfo.isDeprecated

Description
Returns true if a given pin info or attribute info is deprecated in the current version.
Parameters
Name Type Description
info table Pin info or attribute info
Return Values
Name Type Description
deprecated boolean True for deprecated infos.
Synopsis
deprecated = octane.apiinfo.isDeprecated( info )

octane.mt19937.max

Description
Gets the largest possible value in the output range.
Return Values
Name Type Description
value number Largest possible value in the output range.
Synopsis
value = octane.mt19937.max( )

octane.mt19937.random

Description
Advances the engine's state and returns the generated value.
Return Values
Name Type Description
value number Generated value.
Synopsis
value = octane.mt19937.random( )

octane.mt19937.random01

Description
Advances the engine's state and returns the generated value in the [0, 1] range.
Return Values
Name Type Description
value number Generated value in the [0, 1] range.
Synopsis
value = octane.mt19937.random01( )

octane.mt19937.seed

Description
Sets the current state of the engine.
Parameters
Name Type Description
seed number Seed to use as input.
Synopsis
octane.mt19937.seed( seed )

octane.timer.__gc

Description
GC callback.
Parameters
Name Type Description
timer timer The timer object
Synopsis
octane.timer.__gc( timer )

octane.timer.__tostring

Description
Converts value to string.
Parameters
Name Type Description
timer timer The timer.
Return Values
Name Type Description
s string string representation
Synopsis
s = octane.timer.__tostring( timer )

octane.timer.create

Description
Causes a function to be executed on a regular interval.
Parameters
Name Type Description
seconds number Time in seconds between two callbacks. The shortest possible interval is system dependent. The callback should complete in less time than this interval or you risk locking up the user interface. If this argument is nil, or <= 0, the timer is not started.
callback function Function to be called on a regular interval. This function should not raise any errors.
args multi Any subsequent arguments are passed on to the callback function.
Return Values
Name Type Description
timer timer A timer object, you may use this handle later to start or stop the timer.
Synopsis
timer = octane.timer.create( seconds, callback, args )

octane.timer.start

Description
Starts a timer, or change the interval of a running timer.
Parameters
Name Type Description
timer timer The timer object
seconds number Time in seconds between two callbacks.
Synopsis
octane.timer.start( timer, seconds )

octane.timer.stop

Description
Stop a timer.
Parameters
Name Type Description
timer timer The timer object
Synopsis
octane.timer.stop( timer )

octane.renderjobgraph.onFinishIteration

Description
This callback function is called once at the end of the iteration. It can be used to release anything upon the completion of rendering.
Parameters
Name Type Description
self script The script object.
graph graph The scripted node graph.
Synopsis
octane.renderjobgraph.onFinishIteration( self, graph )

octane.renderjobgraph.onIterate

Description
Callback function, This is the main render loop callback function, which will be called for A_TOTAL_FRAMES times. Then this callback can tell octane viewport, which render target has to be rendered.
Parameters
Name Type Description
self script The script object.
graph graph The render job node graph.
resultIx int Frame index, will be in [0, A_TOTAL_FRAMES)
Return Values
Name Type Description
renderTargetNode Node Render target to render, if nil the rendering will be aborted. Can be nil in case skipFrame is set to true
skipFrame boolean If true, render job will skip the render of current frame and jumps to next frame
Synopsis
renderTargetNode, skipFrame = octane.renderjobgraph.onIterate( self, graph, resultIx )

octane.renderjobgraph.onSaveRenderedFrame

Description
This callback function will be called when the rendering of current frame has been completed.
Parameters
Name Type Description
self script The script object.
graph graph The render job node graph.
Return Values
Name Type Description
success boolean set whether the save is successful. If false, the rendering will be aborted
Synopsis
success = octane.renderjobgraph.onSaveRenderedFrame( self, graph )

octane.renderjobgraph.onStartIteration

Description
This callback function is called once on the start of the iteration. The function can be used to initialize before the start of rendering.
Parameters
Name Type Description
self script The script object.
graph graph The render job node graph.
Synopsis
octane.renderjobgraph.onStartIteration( self, graph )

octane.render.callbackStop

Description
Stops the rendering. Calling this function pauses the render and unblocks octane.render.start.
Synopsis
octane.render.callbackStop( )

octane.render.canSaveDeepImage

Description
Checks if we can the current render as a deep image. Renders can only be saved as deep images when deep image rendering is enabled and enough deep 'seed' samples are calculated.
Return Values
Name Type Description
canSave boolean true if the render can be saved as a deep image.
Synopsis
canSave = octane.render.canSaveDeepImage( )

octane.render.clear

Description
Stops rendering and clears the render target. Calling this while a call to start() is running will raise an error. Use callbackStop() instead.
Synopsis
octane.render.clear( )

octane.render.continue

Description
Continues rendering, if paused. Calling this while a call to start() is running will raise an error.
Synopsis
octane.render.continue( )

octane.render.deepImageEnabled

Description
Checks if deep image rendering is enabled.
Return Values
Name Type Description
enabled boolean True if deep image rendering is enabled, false otherwise.
Synopsis
enabled = octane.render.deepImageEnabled( )

octane.render.deepPassesEnabled

Description
Checks if deep image rendering and deep render AOVs are enabled.
Return Values
Name Type Description
enabled boolean True if deep image rendering and deep render AOVs are enabled, false otherwise.
Synopsis
enabled = octane.render.deepPassesEnabled( )

octane.render.getAllRenderPassIds

Description
Returns a table with the IDs of all the render AOVs available in Octane.
Return Values
Name Type Description
renderPassIds table Table with the IDs of all render AOVs in Octane - excluding composite AOVs.
Synopsis
renderPassIds = octane.render.getAllRenderPassIds( )

octane.render.getChangeLevel

Description
Returns the change level of the render engine. The change level is a number tracked in the engine. It's incremented every time a change is made in the render engine.
Return Values
Name Type Description
changeLevel number The current change level of the render engine.
Synopsis
changeLevel = octane.render.getChangeLevel( )

octane.render.getClayMode

Description
Returns the current clay mode.
Return Values
Name Type Description
mode number the current sub-sample mode
Synopsis
mode = octane.render.getClayMode( )

octane.render.getDeviceCount

Description
Returns the number of devices (GPUs)
Return Values
Name Type Description
devicecount number The number of devices.
Synopsis
devicecount = octane.render.getDeviceCount( )

octane.render.getDeviceProperties

Description
Returns the properties and memory usage statistics of the rendering device.
Parameters
Name Type Description
deviceIndex number Index of the device [1..getDeviceCount()].
memoryLocation integer The location of the memory [octane.memoryLocation] (optional). Default value is octane.memoryLocation.DEVICE
Return Values
Name Type Description
PROPS_RENDER_DEVICE table Table with properties of the device.
Synopsis
PROPS_RENDER_DEVICE = octane.render.getDeviceProperties( deviceIndex, memoryLocation )

octane.render.getDisplayRenderPassId

Description
Returns the id of the render pass that is displayed, returned from the render callback.
Return Values
Name Type Description
renderPassId integer Render pass id.
Synopsis
renderPassId = octane.render.getDisplayRenderPassId( )

octane.render.getEnabledAovs

Description
Returns a table with the IDs of all render AOVs and composite AOVs that are enabled in the specified render target node.
Parameters
Name Type Description
renderTargetNode node Render target node.
Return Values
Name Type Description
renderPassIds table Table with the IDs of all enabled AOVs.
Synopsis
renderPassIds = octane.render.getEnabledAovs( renderTargetNode )

octane.render.getGeometryStatistics

Description
Returns the geometry statistics
Return Values
Name Type Description
PROPS_GEOM_STATS table Table containing the geometry stats.
Synopsis
PROPS_GEOM_STATS = octane.render.getGeometryStatistics( )

octane.render.getMemoryUsage

Description
Returns memory usage on the device in MB.
Parameters
Name Type Description
deviceIndex number Index of the device [1..getDeviceCount()].
Return Values
Name Type Description
PROPS_MEM_USAGE table Table containing the memory usage stats.
Synopsis
PROPS_MEM_USAGE = octane.render.getMemoryUsage( deviceIndex )

octane.render.getPreviewRenderTargetNode

Description
Returns the preview render target node.
Return Values
Name Type Description
previewTarget node The preview render target node.
Synopsis
previewTarget = octane.render.getPreviewRenderTargetNode( )

octane.render.getRenderPassInfo

Description
Returns the information for a render pass.
Parameters
Name Type Description
renderPassId integer Render pass ID.
Return Values
Name Type Description
info PROPS_RENDER_PASS_INFO Table with render pass info.
Synopsis
info = octane.render.getRenderPassInfo( renderPassId )

octane.render.getRenderRegion

Description
Returns the current render region. The coordinate system is the same as for the render results.
Return Values
Name Type Description
region PROPS_RENDER_REGION Table with render region properties.
Synopsis
region = octane.render.getRenderRegion( )

octane.render.getRenderResultStatistics

Description
Returns the statistics for the latest render result. When no result was rendered yet, the result will be zeroed out.
Return Values
Name Type Description
stats table Table with PROPS_RENDER_RESULT_STATISTICS.
Synopsis
stats = octane.render.getRenderResultStatistics( )

octane.render.getRenderTargetNode

Description
Returns the render target node that's currently rendering. Returns nil if there isn't one.
Return Values
Name Type Description
rendertarget node The render target node currently rendering.
Synopsis
rendertarget = octane.render.getRenderTargetNode( )

octane.render.getSubSampleMode

Description
Returns the current sub-sampling mode
Return Values
Name Type Description
mode number the current sub-sample mode
Synopsis
mode = octane.render.getSubSampleMode( )

octane.render.grabRenderResult

Description
Gets the render result.
Return Values
Name Type Description
PROPS_RENDER_RESULT table Table with the render results.
Synopsis
PROPS_RENDER_RESULT = octane.render.grabRenderResult( )

octane.render.isPaused

Description
Checks if rendering is currently paused.
Return Values
Name Type Description
ispaused boolean returns true if rendering is paused.
Synopsis
ispaused = octane.render.isPaused( )

octane.render.loadRenderState

Description
Loads an .OCR render state.
Parameters
Name Type Description
inputFilePath string Full path to the input file.
Synopsis
octane.render.loadRenderState( inputFilePath )

octane.render.pause

Description
Pauses the current render. Behaves the same as the pause button in the standalone. Calling this while a call to start() is running will raise an error.
Synopsis
octane.render.pause( )

octane.render.preview

Description
Renders a preview of the given material
Parameters
Name Type Description
settings PROPS_RENDER_PREVIEW Preview render settings.
Return Values
Name Type Description
preview image The rendered image, returns nil on failure.
Synopsis
preview = octane.render.preview( settings )

octane.render.previewHdr

Description
Deprecated: Use previewHdr2 instead. Renders an HDR preview of the given material
Parameters
Name Type Description
settings PROPS_RENDER_PREVIEW Preview render settings.
linearHdr boolean Set to TRUE if the result should be linear sRGB, i.e. not be tonemapped.
Return Values
Name Type Description
preview image The rendered HDR result image.
Synopsis
preview = octane.render.previewHdr( settings, linearHdr )

octane.render.previewHdr2

Description
Renders an HDR preview of the given material
Parameters
Name Type Description
settings PROPS_RENDER_PREVIEW Preview render settings.
colorSpace NamedColorSpace The output color space (octane.namedColorSpace). Must not be octane.namedColorSpace.LINEAR_SRGB_WITH_LEGACY_GAMMA, octane.namedColorSpace.OCIO or octane.namedColorSpace.OTHER.
Return Values
Name Type Description
preview image The rendered HDR result image.
Synopsis
preview = octane.render.previewHdr2( settings, colorSpace )

octane.render.reset

Description
Resets the render engine. Calling this while a call to start() is running will raise an error. Use callbackStop() instead.
Synopsis
octane.render.reset( )

octane.render.restart

Description
Restarts rendering. Behaves the same as the restart button in the standalone. Calling this while a call to start() is running will raise an error.
Synopsis
octane.render.restart( )

octane.render.saveDeepImage

Description
Deprecated: Use saveDeepImage2 instead. Saves the raw XYZ buffers in a multi layer EXR.
Parameters
Name Type Description
imagePath string Absolute path to the destination image.
useBackgroundThread boolean true to save the image in a background thread (optional, the default is false)
Return Values
Name Type Description
success boolean true if the image was saved successfully.
Synopsis
success = octane.render.saveDeepImage( imagePath, useBackgroundThread )

octane.render.saveDeepImage2

Description
Saves the current render as a deep image. The output format is OpenEXR.
Parameters
Name Type Description
imagePath string Absolute path to the destination image.
colorSpace NamedColorSpace The output color space (octane.namedColorSpace). Must not be octane.namedColorSpace.SRGB, octane.namedColorSpace.LINEAR_SRGB_WITH_LEGACY_GAMMA, octane.namedColorSpace.OCIO or octane.namedColorSpace.OTHER. When omitted linear sRGB is used. (optional)
useBackgroundThread boolean true to save the image in a background thread (optional, the default is false)
Return Values
Name Type Description
success boolean true if the image was saved successfully.
Synopsis
success = octane.render.saveDeepImage2( imagePath, colorSpace, useBackgroundThread )

octane.render.saveImage

Description
Deprecated: Use saveImage3 instead. Saves out the current render to file. When render passes are enabled, this will only save the render pass that is currently displayed in the render viewport.
Parameters
Name Type Description
imagePath string Full path to the image file name.
imageSaveType ImageSaveType Type of the image to save [octane.imageSaveType].
useBackgroundThread boolean Save the image on a background thread (optional)
exrCompressionType ExrCompressionType Compression type for Exr format [octane.exrCompressionType](optional).
Return Values
Name Type Description
success boolean true if the image was saved successfully.
Synopsis
success = octane.render.saveImage( imagePath, imageSaveType, useBackgroundThread, exrCompressionType )

octane.render.saveImage2

Description
Deprecated: Use saveImage3 instead. Saves out the current render to file. When render passes are enabled, this will only save the render pass that is currently displayed in the render viewport.
Parameters
Name Type Description
imagePath string Full path to the image file name.
imageSaveFormat ImageSaveFormat The format of the image file that should be saved [octane.imageSaveFormat].
PROPS_RENDER_COLOR_SPACE_INFO table Table with color space info properties.
exrCompressionType ExrCompressionType Compression type for Exr format [octane.exrCompressionType](optional).
useBackgroundThread boolean Save the image on a background thread (optional)
Return Values
Name Type Description
success boolean true if the image was saved successfully.
Synopsis
success = octane.render.saveImage2( imagePath, imageSaveFormat, PROPS_RENDER_COLOR_SPACE_INFO, exrCompressionType, useBackgroundThread )

octane.render.saveImage3

Description
Saves out the current render to file. When render passes are enabled, this will only save the render pass that is currently displayed in the render viewport.
Parameters
Name Type Description
imagePath string Full path to the image file name.
imageSaveFormat ImageSaveFormat The format of the image file that should be saved [octane.imageSaveFormat].
PROPS_RENDER_COLOR_SPACE_INFO table Table with color space info properties.
premultipliedAlphaType PremultipliedAlphaType The type of premultiplied alpha that the image file should have [octane.premultipliedAlphaType](optional).
formatOptions table Options to control how the image is saved. For EXR/TIFF/JPEG: octane.image.PROPS_EXR_SAVE, octane.image.PROPS_TIFF_SAVE, octane.image.PROPS_JPEG_SAVE. If the passed in value is an integer it is interpreted as the EXR/TIFF compression type. For JPEG if the passed value is a number it is interpreted as quality (must be in range 1 to 100).
useBackgroundThread boolean Save the image on a background thread (optional)
Return Values
Name Type Description
success boolean true if the image was saved successfully.
Synopsis
success = octane.render.saveImage3( imagePath, imageSaveFormat, PROPS_RENDER_COLOR_SPACE_INFO, premultipliedAlphaType, formatOptions, useBackgroundThread )

octane.render.saveRenderPass

Description
Deprecated: Use saveRenderPass3 instead. Saves out a render pass to file only when the render pass is enabled
Parameters
Name Type Description
renderPassId RenderPassId Render pass id.
imagePath string Full path to the image file name.
imageSaveType ImageSaveType Type of the image to save [octane.imageSaveType].
useBackgroundThread boolean Save the image on a background thread (optional)
exrCompressionType ExrCompressionType Compression type for Exr format [octane.exrCompressionType](optional).
Return Values
Name Type Description
success boolean true if the image was saved successfully.
Synopsis
success = octane.render.saveRenderPass( renderPassId, imagePath, imageSaveType, useBackgroundThread, exrCompressionType )

octane.render.saveRenderPass2

Description
Deprecated: Use saveRenderPass3 instead. Saves out a render pass to file only when the render pass is enabled
Parameters
Name Type Description
renderPassId RenderPassId Render pass id.
imagePath string Full path to the image file name.
imageSaveFormat ImageSaveFormat The format of the image file that should be saved [octane.imageSaveFormat].
PROPS_RENDER_COLOR_SPACE_INFO table Table with color space info properties.
exrCompressionType ExrCompressionType Compression type for Exr format [octane.exrCompressionType](optional).
useBackgroundThread boolean Save the image on a background thread (optional)
Return Values
Name Type Description
success boolean true if the image was saved successfully.
Synopsis
success = octane.render.saveRenderPass2( renderPassId, imagePath, imageSaveFormat, PROPS_RENDER_COLOR_SPACE_INFO, exrCompressionType, useBackgroundThread )

octane.render.saveRenderPass3

Description
Saves out a render pass to file only when the render pass is enabled
Parameters
Name Type Description
renderPassId RenderPassId Render pass id.
imagePath string Full path to the image file name.
imageSaveFormat ImageSaveFormat The format of the image file that should be saved [octane.imageSaveFormat].
PROPS_RENDER_COLOR_SPACE_INFO table Table with color space info properties.
premultipliedAlphaType PremultipliedAlphaType The type of premultiplied alpha that the image file should have [octane.premultipliedAlphaType](optional).
formatOptions table Options to control how the image is saved. For EXR/TIFF/JPEG: octane.image.PROPS_EXR_SAVE, octane.image.PROPS_TIFF_SAVE, octane.image.PROPS_JPEG_SAVE. If the passed in value is an integer it is interpreted as the EXR/TIFF compression type. For JPEG if the passed value is a number it is interpreted as quality (must be in range 1 to 100).
useBackgroundThread boolean Save the image on a background thread (optional)
Return Values
Name Type Description
success boolean true if the image was saved successfully.
Synopsis
success = octane.render.saveRenderPass3( renderPassId, imagePath, imageSaveFormat, PROPS_RENDER_COLOR_SPACE_INFO, premultipliedAlphaType, formatOptions, useBackgroundThread )

octane.render.saveRenderPasses

Description
Deprecated: Use saveRenderPasses3 instead. Saves the result of all the render passes in multiple files. Only render passes that are already started by the render engine are saved out to file.
Parameters
Name Type Description
outputDirectory string Full path to the output directory.
exportList table List of export objects of type PROPS_RENDER_PASS_EXPORT,the export name in each object is used as the layer name in the file. Special values: - If nil, all layers are saved with the default name. - If any name in the PROPS_RENDER_PASS_EXPORT is nil, the default name for that pass is used.
imageSaveType ImageSaveType Type of the image to save [octane.imageSaveType].
useBackgroundThread boolean Save the image on a background thread (optional)
metadata table Table of string key/value pairs used as metadata in the header of the output files (optional/nil)
exrCompressionType ExrCompressionType OpenEXR compression type [octane.exrCompressionType] (optional) when omitted ZIP is used for compression. (optional)
Return Values
Name Type Description
success boolean True if the image was saved successfully.
Synopsis
success = octane.render.saveRenderPasses( outputDirectory, exportList, imageSaveType, useBackgroundThread, metadata, exrCompressionType )

octane.render.saveRenderPasses2

Description
Deprecated: Use saveRenderPasses3 instead. Saves the result of all the render passes in multiple files. Only render passes that are already started by the render engine are saved out to file.
Parameters
Name Type Description
outputDirectory string Full path to the output directory.
exportList table List of export objects of type PROPS_RENDER_PASS_EXPORT,the export name in each object is used as the layer name in the file. Special values: - If nil, all layers are saved with the default name. - If any name in the PROPS_RENDER_PASS_EXPORT is nil, the default name for that pass is used.
imageSaveFormat ImageSaveFormat The format of the image files that should be saved [octane.imageSaveFormat].
PROPS_RENDER_COLOR_SPACE_INFO table Table with color space info properties.
exrCompressionType ExrCompressionType OpenEXR compression type [octane.exrCompressionType] (optional) when omitted ZIP is used for compression. (optional)
useBackgroundThread boolean Save the image on a background thread (optional)
metadata table Table of string key/value pairs used as metadata in the header of the output files (optional/nil)
Return Values
Name Type Description
success boolean True if the image was saved successfully.
Synopsis
success = octane.render.saveRenderPasses2( outputDirectory, exportList, imageSaveFormat, PROPS_RENDER_COLOR_SPACE_INFO, exrCompressionType, useBackgroundThread, metadata )

octane.render.saveRenderPasses3

Description
Saves the result of all the render passes in multiple files. Only render passes that are already started by the render engine are saved out to file.
Parameters
Name Type Description
outputDirectory string Full path to the output directory.
exportList table List of export objects of type PROPS_RENDER_PASS_EXPORT,the export name in each object is used as the layer name in the file. Special values: - If nil, all layers are saved with the default name. - If any name in the PROPS_RENDER_PASS_EXPORT is nil, the default name for that pass is used.
imageSaveFormat ImageSaveFormat The format of the image files that should be saved [octane.imageSaveFormat].
PROPS_RENDER_COLOR_SPACE_INFO table Table with color space info properties.
premultipliedAlphaType PremultipliedAlphaType The type of premultiplied alpha that the image file should have [octane.premultipliedAlphaType](optional).
formatOptions table Options to control how the image is saved. For EXR/TIFF/JPEG: octane.image.PROPS_EXR_SAVE, octane.image.PROPS_TIFF_SAVE, octane.image.PROPS_JPEG_SAVE. If the passed in value is an integer it is interpreted as the EXR/TIFF compression type. For JPEG if the passed value is a number it is interpreted as quality (must be in range 1 to 100).
useBackgroundThread boolean Save the image on a background thread (optional)
metadata table Table of string key/value pairs used as metadata in the header of the output files (optional/nil)
Return Values
Name Type Description
success boolean True if the image was saved successfully.
Synopsis
success = octane.render.saveRenderPasses3( outputDirectory, exportList, imageSaveFormat, PROPS_RENDER_COLOR_SPACE_INFO, premultipliedAlphaType, formatOptions, useBackgroundThread, metadata )

octane.render.saveRenderPassesDeepExr

Description
Deprecated: Use saveRenderPassesDeepExr2 instead. Saves a set of render passes into a deep pixel OpenEXR file. Only render passes that are already started in the engine are included in the result. (This applies to info render passes which are started independently from the beauty render passes.). If deep render passes is not enabled in the kernel settings, only RENDER_PASS_BEAUTY can be exported.
Parameters
Name Type Description
imagePath string Full path to the output file.
exportList table List of export objects of type PROPS_RENDER_PASS_EXPORT, the export name in each object is used as the layer name in the file. Special values: - If nil, all layers are saved with the default name. - If any name in the PROPS_RENDER_PASS_EXPORT is nil, the default name for that pass is used.
compressionType ExrCompressionType OpenEXR compression type [octane.exrCompressionType] when omitted ZIPS is used for compression. (optional)
useHalf boolean Not yet supported, should be set to false. True to use 16-bit half floating point numbers instead of 32-bit floating point numbers. (optional)
metadata table Table of string key/value pairs used as metadata in the header of the OpenEXR file (optional/nil)
useBackgroundThread boolean Save the image on a background thread. (optional)
Return Values
Name Type Description
success boolean True if the image was saved successfully.
Synopsis
success = octane.render.saveRenderPassesDeepExr( imagePath, exportList, compressionType, useHalf, metadata, useBackgroundThread )

octane.render.saveRenderPassesDeepExr2

Description
Saves a set of render passes into a deep pixel OpenEXR file. Only render passes that are already started in the engine are included in the result. (This applies to info render passes which are started independently from the beauty render passes.). If deep render passes is not enabled in the kernel settings, only RENDER_PASS_BEAUTY can be exported.
Parameters
Name Type Description
imagePath string Full path to the output file.
exportList table List of export objects of type PROPS_RENDER_PASS_EXPORT, the export name in each object is used as the layer name in the file. Special values: - If nil, all layers are saved with the default name. - If any name in the PROPS_RENDER_PASS_EXPORT is nil, the default name for that pass is used.
colorSpace NamedColorSpace The output color space (octane.namedColorSpace). Must not be octane.namedColorSpace.SRGB, octane.namedColorSpace.LINEAR_SRGB_WITH_LEGACY_GAMMA, octane.namedColorSpace.OCIO or octane.namedColorSpace.OTHER. When omitted linear sRGB is used. (optional)
compressionType ExrCompressionType OpenEXR compression type [octane.exrCompressionType] when omitted ZIPS is used for compression. (optional)
metadata table Table of string key/value pairs used as metadata in the header of the OpenEXR file (optional/nil)
useBackgroundThread boolean Save the image on a background thread. (optional)
Return Values
Name Type Description
success boolean True if the image was saved successfully.
Synopsis
success = octane.render.saveRenderPassesDeepExr2( imagePath, exportList, colorSpace, compressionType, metadata, useBackgroundThread )

octane.render.saveRenderPassesMultiExr

Description
Deprecated: Use saveRenderPassesMultiExr3 instead. Saves a set of render passes into a multi-layer OpenEXR file. Only render passes that are already started in the engine are included in the result. (This applies to info render passes which are started independently from the beauty render passes.)
Parameters
Name Type Description
imagePath string Full path to the output file.
exportList table List of export objects of type PROPS_RENDER_PASS_EXPORT, the export name in each object is used as the layer name in the file. Special values: - If nil, all layers are saved with the default name. - If any name in the PROPS_RENDER_PASS_EXPORT is nil, the default name for that pass is used.
imageSaveType ImageSaveType Type of the image to save [octane.imageSaveType].
compressionType ExrCompressionType OpenEXR compression type [octane.exrCompressionType] when omitted ZIP is used for compression. (optional)
metadata table Table of string key/value pairs used as metadata in the header of the OpenEXR file (optional/nil)
useBackgroundThread boolean Save the image on a background thread. (optional)
Return Values
Name Type Description
success boolean True if the image was saved successfully.
Synopsis
success = octane.render.saveRenderPassesMultiExr( imagePath, exportList, imageSaveType, compressionType, metadata, useBackgroundThread )

octane.render.saveRenderPassesMultiExr2

Description
Deprecated: Use saveRenderPassesMultiExr3 instead. Saves a set of render passes into a multi-layer OpenEXR file. Only render passes that are already started in the engine are included in the result. (This applies to info render passes which are started independently from the beauty render passes.)
Parameters
Name Type Description
imagePath string Full path to the output file.
exportList table List of export objects of type PROPS_RENDER_PASS_EXPORT, the export name in each object is used as the layer name in the file. Special values: - If nil, all layers are saved with the default name. - If any name in the PROPS_RENDER_PASS_EXPORT is nil, the default name for that pass is used.
useHalf boolean Whether to save a 16-bit EXR instead of 32-bit.
PROPS_RENDER_COLOR_SPACE_INFO table Table with color space info properties.
compressionType ExrCompressionType OpenEXR compression type [octane.exrCompressionType] when omitted ZIP is used for compression. (optional)
metadata table Table of string key/value pairs used as metadata in the header of the OpenEXR file (optional/nil)
useBackgroundThread boolean Save the image on a background thread. (optional)
Return Values
Name Type Description
success boolean True if the image was saved successfully.
Synopsis
success = octane.render.saveRenderPassesMultiExr2( imagePath, exportList, useHalf, PROPS_RENDER_COLOR_SPACE_INFO, compressionType, metadata, useBackgroundThread )

octane.render.saveRenderPassesMultiExr3

Description
Saves a set of render passes into a multi-layer OpenEXR file. Only render passes that are already started in the engine are included in the result. (This applies to info render passes which are started independently from the beauty render passes.)
Parameters
Name Type Description
imagePath string Full path to the output file.
exportList table List of export objects of type PROPS_RENDER_PASS_EXPORT, the export name in each object is used as the layer name in the file. Special values: - If nil, all layers are saved with the default name. - If any name in the PROPS_RENDER_PASS_EXPORT is nil, the default name for that pass is used.
useHalf boolean Whether to save a 16-bit EXR instead of 32-bit.
PROPS_RENDER_COLOR_SPACE_INFO table Table with color space info properties.
premultipliedAlpha boolean Whether the image file should have premultiplied alpha (optional).
formatOptions table Options to control how the image is saved. As of now, octane.image.PROPS_EXR_SAVE is supported for EXR. If the passed in value is an integer it is interpreted as the EXR compression type.
metadata table Table of string key/value pairs used as metadata in the header of the OpenEXR file (optional/nil)
useBackgroundThread boolean Save the image on a background thread. (optional)
Return Values
Name Type Description
success boolean True if the image was saved successfully.
Synopsis
success = octane.render.saveRenderPassesMultiExr3( imagePath, exportList, useHalf, PROPS_RENDER_COLOR_SPACE_INFO, premultipliedAlpha, formatOptions, metadata, useBackgroundThread )

octane.render.saveRenderState

Description
Saves the render state as .OCR.
Parameters
Name Type Description
outputFilePath string Full path to the output file.
Synopsis
octane.render.saveRenderState( outputFilePath )

octane.render.setClayMode

Description
Sets the current clay mode.
Parameters
Name Type Description
mode number clay mode [octane.clayMode]
Synopsis
octane.render.setClayMode( mode )

octane.render.setDevicesActivity

Description
Sets the render device active for rendering.
Parameters
Name Type Description
renderDeviceIxs table List of device indices that should be used for rendering
deviceIxsUsingPriority table List of device indices that use priority
imageDeviceIx integer Index of the device that should be used for imaging, or -1 to select the first capable device. The selected image device will always be used for rendering and if the real-time mode is enabled the selected device will be the real-time render device.
denoiseDeviceIxs table List of device indices that should be used for denoising
Return Values
Name Type Description
success boolean FALSE if could not enable any of the devices passes in the input list due to the maximum GPU limit. TRUE if all the devices enabled.
Synopsis
success = octane.render.setDevicesActivity( renderDeviceIxs, deviceIxsUsingPriority, imageDeviceIx, denoiseDeviceIxs )

octane.render.setDisplayRenderPassId

Description
Sets the displayed render pass. This is the render pass displayed in the Octane viewport and the result returned from the render callback. This function will throw an error when rendering hasn't started yet or when the render pass is not enabled in the node.
Parameters
Name Type Description
renderPassId integer Render pass id.
Synopsis
octane.render.setDisplayRenderPassId( renderPassId )

octane.render.setRenderRegion

Description
Sets the render region. Both min and max will be clamped at the actual resolution. The coordinate system is the same as for render results.
Parameters
Name Type Description
region PROPS_RENDER_REGION Table with render region properties.
Synopsis
octane.render.setRenderRegion( region )

octane.render.setSubSampleMode

Description
Sets the current sub-sampling mode.
Parameters
Name Type Description
mode number sub-sample mode [octane.subSampleMode]
Synopsis
octane.render.setSubSampleMode( mode )

octane.render.start

Description
Starts rendering. This function will block until rendering is finished and returns the final render results. To get intermediate results, it's possible to add a callback function. After rendering finished the render engine will be paused. You can continue it yourself via octane.render.continue if you want. This function returns when octane.render.callbackStop is called from the callback, when the requested samples are reached or when the max render time is exceeded.
Parameters
Name Type Description
PROPS_RENDER_START table Table with render properties.
PROPS_RENDER_COLOR_SPACE_INFO table Table with color space info properties (optional). This is ignored if the deprecated tonemapType property is set in the render properties table.
Return Values
Name Type Description
PROPS_RENDER_RESULT table Table with the finished render results. If the render was cancelled by callbackStop() or by the timeout, this will be the last blended result before the render was cancelled.
Synopsis
PROPS_RENDER_RESULT = octane.render.start( PROPS_RENDER_START, PROPS_RENDER_COLOR_SPACE_INFO )

octane.render.synchronousTonemap

Description
Deprecated: Use synchronousTonemap3 instead. Tonemap one or more render passes. This is a fairly slow operation and should not be called often. See also setDisplayRenderPassId(), which determines which render pass you receive via the render callback. When a list of render pass IDs is given, any duplicates, and any passes which are disabled will be omitted from the results.
Parameters
Name Type Description
toneMapType TonemapType The type of tone map (octane.tonemapType).
renderPassId integer Render pass Id, or a list of render pass IDs (octane.renderPassId). If nil, all active render passes will be tonemapped.
Return Values
Name Type Description
PROPS_RENDER_RESULT table If renderpassId is a number, returns a single result, or nil if the pass is not enabled. If renderpassId is a list of numbers or nil, returns a list of render results.
Synopsis
PROPS_RENDER_RESULT = octane.render.synchronousTonemap( toneMapType, renderPassId )

octane.render.synchronousTonemap2

Description
Deprecated: Use synchronousTonemap3 instead. Tonemap one or more render passes. This is a fairly slow operation and should not be called often. See also setDisplayRenderPassId(), which determines which render pass you receive via the render callback. When a list of render pass IDs is given, any duplicates, and any passes which are disabled will be omitted from the results.
Parameters
Name Type Description
bufferType TonemapBufferType The format of the result buffer (octane.tonemapBufferType).
PROPS_RENDER_COLOR_SPACE_INFO table Table with color space info properties.
renderPassId integer Render pass ID, or a list of render pass IDs (octane.renderPassId). If nil, all active render passes will be tonemapped.
Return Values
Name Type Description
PROPS_RENDER_RESULT table If renderpassId is a number, returns a single result, or nil if the pass is not enabled. If renderpassId is a list of numbers or nil, returns a list of render results.
Synopsis
PROPS_RENDER_RESULT = octane.render.synchronousTonemap2( bufferType, PROPS_RENDER_COLOR_SPACE_INFO, renderPassId )

octane.render.synchronousTonemap3

Description
Tonemap one or more render passes. This is a fairly slow operation and should not be called often. See also setDisplayRenderPassId(), which determines which render pass you receive via the render callback. When a list of render pass IDs is given, any duplicates, and any passes which are disabled will be omitted from the results.
Parameters
Name Type Description
bufferType TonemapBufferType The format of the result buffer (octane.tonemapBufferType).
PROPS_RENDER_COLOR_SPACE_INFO table Table with color space info properties.
premultipliedAlphaType PremultipliedAlphaType The type of premultiplied alpha that the image file should have [octane.premultipliedAlphaType].
renderPassId integer Render pass ID, or a list of render pass IDs (octane.renderPassId). If nil, all active render passes will be tonemapped.
Return Values
Name Type Description
PROPS_RENDER_RESULT table If renderpassId is a number, returns a single result, or nil if the pass is not enabled. If renderpassId is a list of numbers or nil, returns a list of render results.
Synopsis
PROPS_RENDER_RESULT = octane.render.synchronousTonemap3( bufferType, PROPS_RENDER_COLOR_SPACE_INFO, premultipliedAlphaType, renderPassId )

octane.gridlayout.__index

Description
__index meta-method for gridlayout.
Parameters
Name Type Description
gridlayout gridlayout Grid layout
name string name of the property
Return Values
Name Type Description
value multi the value of the property or nil
Synopsis
value = octane.gridlayout.__index( gridlayout, name )

octane.gridlayout.__tostring

Description
Converts value to string.
Parameters
Name Type Description
gridLayout gridlayout Grid layout.
Return Values
Name Type Description
s string string representation
Synopsis
s = octane.gridlayout.__tostring( gridLayout )

octane.gridlayout.add

Description
Adds a new component to a grid cell.
Parameters
Name Type Description
gridLayout gridlayout Grid layout.
child component The component to add.
cellX integer The row of the grid cell where the component will be placed. The grid will be automatically extended if necessary.
cellY integer The column of the grid cell where the component will be placed. The grid will be automatically extended if necessary.
Synopsis
octane.gridlayout.add( gridLayout, child, cellX, cellY )

octane.gridlayout.addEmpty

Description
Add a new empty grid cell. This will make sure that the dimensions of the grid are extended to fit this cell.
Parameters
Name Type Description
gridLayout gridlayout Grid layout.
cellX integer The row of the empty grid cell. The grid will be automatically extended if necessary.
cellY integer The column of the empty grid cell. The grid will be automatically extended if necessary.
Synopsis
octane.gridlayout.addEmpty( gridLayout, cellX, cellY )

octane.gridlayout.addSpan

Description
Adds a new component spanning multiple cells of the grid.
Parameters
Name Type Description
gridLayout gridlayout Grid layout.
child component Component to add in the span.
minCellX integer The first column of the span.
minCellY integer The first row of the span.
maxCellX integer The last column of the span.
maxCellY integer The last row of the span.
Synopsis
octane.gridlayout.addSpan( gridLayout, child, minCellX, minCellY, maxCellX, maxCellY )

octane.gridlayout.create

Description
Creates a new grid layout.
Return Values
Name Type Description
gridLayout gridlayout Grid layout.
Synopsis
gridLayout = octane.gridlayout.create( )

octane.gridlayout.endNestedGrid

Description
Finishes the current nested grid and switches the context back to the parent grid.
Parameters
Name Type Description
gridLayout gridlayout Grid layout.
Synopsis
octane.gridlayout.endNestedGrid( gridLayout )

octane.gridlayout.endSetup

Description
Creates the initial layout and resizes the parent component accordingly. After that, no components can be added anymore.
Parameters
Name Type Description
gridLayout gridlayout Grid layout.
Synopsis
octane.gridlayout.endSetup( gridLayout )

octane.gridlayout.getHeight

Description
Returns the current height of the grid in pixels.
Parameters
Name Type Description
gridLayout gridlayout Grid layout.
Return Values
Name Type Description
height integer Grid height in pixels.
Synopsis
height = octane.gridlayout.getHeight( gridLayout )

octane.gridlayout.getWidth

Description
Returns the current width of the grid in pixels.
Parameters
Name Type Description
gridLayout gridlayout Grid layout.
Return Values
Name Type Description
width integer Grid width in pixels.
Synopsis
width = octane.gridlayout.getWidth( gridLayout )

octane.gridlayout.inSetupPhase

Description
Returns true if the grid is in the setup phase. The setup phase means that octane.gridlayout.startSetup() was called but not yet octane.gridlayout.endSetup().
Parameters
Name Type Description
gridLayout gridlayout Grid layout.
Return Values
Name Type Description
result boolean True if the grid is in the setup phase, false otherwise.
Synopsis
result = octane.gridlayout.inSetupPhase( gridLayout )

octane.gridlayout.setColElasticity

Description
Sets the stretch factor of a column.
Parameters
Name Type Description
gridLayout gridlayout Grid layout.
colIx integer The index of the column.
elasticity number The elasticity (must be >= 0).
Synopsis
octane.gridlayout.setColElasticity( gridLayout, colIx, elasticity )

octane.gridlayout.setElasticityForAllCols

Description
Sets the elasticity for all the cols in the grid (which is the current active grid, i.e. this can be a sub-grid).
Parameters
Name Type Description
gridLayout gridlayout Grid layout.
elasticity number The elasticity (must be >= 0).
Synopsis
octane.gridlayout.setElasticityForAllCols( gridLayout, elasticity )

octane.gridlayout.setElasticityForAllRows

Description
Sets the elasticity for all the rows in the grid (which is the current active grid, i.e. this can be a sub-grid).
Parameters
Name Type Description
gridLayout gridlayout Grid layout.
elasticity number The elasticity (must be >= 0).
Synopsis
octane.gridlayout.setElasticityForAllRows( gridLayout, elasticity )

octane.gridlayout.setRowElasticity

Description
Sets the stretch factor of a row.
Parameters
Name Type Description
gridLayout gridlayout Grid layout.
rowIx integer The index of the row.
elasticity number The elasticity (must be >= 0).
Synopsis
octane.gridlayout.setRowElasticity( gridLayout, rowIx, elasticity )

octane.gridlayout.startNestedGrid

Description
Starts a new nested grid. All components that will be added after startNestedGrid() will go into the nest grid until endNestedGrid() has been called.
Parameters
Name Type Description
gridLayout gridlayout Grid layout.
minCellX integer The row of the start of the cell range the nested grid will be placed in.
minCellY integer The column of the start of the cell range the nested grid will be placed in.
maxCellX integer The row of the end of the cell range the nested grid willbe placed in.
maxCellY integer The column of the end of the cell range the nested grid willbe placed in.
borderX integer (optional) The horizontal margin that should be used left and right around the grid. If omitted, the window margin of the look and feel is used.
borderY integer (optional) The vertical margin that should be used top and bottom around the grid. If omitted, the window margin of the look and feel is used.
paddingX integer (optional) The default padding that will be used between columns.If the value is negative or not specified the standard padding of the look and feel will be used.
paddingY integer (optional) The default padding that will be used between rows. If the value is negative or not specified the standard padding of the look and feel will be used.
Synopsis
octane.gridlayout.startNestedGrid( gridLayout, minCellX, minCellY, maxCellX, maxCellY, borderX, borderY, paddingX, paddingY )

octane.gridlayout.startSetup

Description
Starts the set up phase, where components can be added to the grid. Setting up the grid layout should be done only once.
Parameters
Name Type Description
gridLayout gridlayout Grid layout.
borderX integer (optional) The horizontal margin that should be used left and right around the grid. If unspecified, the window margin of the look and feel is used.
borderY integer (optional) The vertical margin that should be used top and bottom around the grid. If unspecified, the window margin of the look and feel is used.
paddingX integer (optional) The default padding that will be used betweencolumns. If unspecified, the standard padding of the look and feel will be used.
paddingY integer (optional) The default padding that will be used between rows. If unspecified, the standard padding of the look and feel will be used.
Synopsis
octane.gridlayout.startSetup( gridLayout, borderX, borderY, paddingX, paddingY )

octane.common.print

Description
Prints a value, value can be of type (number, boolean, table, string, function, thread, nil).
Parameters
Name Type Description
value multi Value to print in the output window.
Synopsis
octane.common.print( value )

octane.common.time

Description
Returns the current time as reported by your system. This value can be compared to values returned from octane.file.getModifiedTime() and similar functions. Precision depends on the system, but it should be more precise than os.time() which returns whole seconds.
Return Values
Name Type Description
time number Current time (milliseconds since midnight Jan 1st 1970 UTC)
Synopsis
time = octane.common.time( )

Constant Overview

octane.matrix.rotationOrder

Description
Rotation orders for matrix rotations. The rotationsare interpreted as intrinsic rotations, i.e. subsequent rotations happen in the rotated coordinate system.
Values
1
2
3
4
5
6

octane.octane.analyticLightType

Description
The type of analytic lights.
Values
1
2
3
4
5

octane.octane.animationTimeTransformType

Description
The type of the time transform
Values
1

octane.octane.animationType

Description
Type of animation used
Values
1
2
3

octane.octane.asPixelGroupMode

Description
Adaptive Sampling mode for grouping nearest pixels
Values
1
2
3

octane.octane.attributeId

Description
IDs for attributes available.
Values
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617

octane.octane.attributeType

Description
Types of attributes available.
Values
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

octane.octane.bakingTextureType

Description
Texture type for baking texture nodes.
Values
1
2

octane.octane.binaryOperation

Description
Binary math operations for nodes NT_TEX_MATH_BINARY and NT_FLOAT_MATH_BINARY.
Values
1
2
3
4
5
6
7
8
9
10
11
12
13

octane.octane.blendMode

Description
Blend modes for composite textures and composite AOVs.
Values
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72

octane.octane.blendRegionMask

Description
Flags to control which parts of a background and foreground image to include when blending two images together.
Values
1
2
3
4
5
6
7
8

octane.octane.borderMode

Description
The different border modes supported by the image texture nodes. The value is set by the enum pins P_BORDER_MODE_U and P_BORDER_MODE_V.
Values
1
2
3
4
5

octane.octane.brdfModel

Description
TODO: to be removed
Values
1
2
3
4

octane.octane.builtinGraphId

Description
Builtin graph IDs.
Values

octane.octane.bxDFDiffuseModel

Description
Diffuse BxDF models supported by Octane
Values
1
2
3
4

octane.octane.bxDFSheenModel

Description
Sheen BxDF models supported by Octane
Values
1
2

octane.octane.bxDFSpecularModel

Description
Specular BxDF models supported by Octane
Values
1
2
3
4
5
6

octane.octane.bxDFTranmissionType

Description
BxDF transmission types
Values
1
2
3
4

octane.octane.bxDFUniversalModel

Description
BxDF selection by Universal Material
Values
1
2
3
4
5
6
7

octane.octane.cacheStatus

Description
Describes the status of a file cache
Values
1
2
3
4

octane.octane.changeEventType

Description
The various node system event we have. For events, exactly one of these flags will be set.
Values
1
2
3
4
5
6
7
8
9
10
11
12

octane.octane.channelGroups

Description
Values
1
2
3

octane.octane.channelMapping

Description
The channel mappings supported by NT_TEX_IMAGE_ADJUSTMENT.
Values
1
2
3
4
5
6
7
8
9
10

octane.octane.channels

Description
Describes how an image should be loaded.
Values
1
2

octane.octane.cinema4dNoiseType

Description
Types of Cinema4D noise
Values
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32

octane.octane.clayMode

Description
The different clay modes we currerntly support.
Values
1
2
3

octane.octane.colorChannelType

Description
Color channel types used for channel selection.
Values
1
2
3

octane.octane.colorPickerBoxDisplay

Description
Display in the color box
Values
1
2
3

octane.octane.colorPickerSpace

Description
Color space used for color picking. Used in the application preferences.
Values
1
2

octane.octane.colorSpaceConversion

Description
Color space conversions. Different subsets are supported by NT_TEX_COLOR_SPACE_CONVERSION, NT_TEX_CHANNEL_MERGE, and NT_TEX_CHANNEL_PICK.
Values
1
2
3
4
5
6
7
8
9
10
11

octane.octane.colorSpaceCurveType

Description
Curve types that different color spaces can have. This does not fully specify the exact transfer function, but gives an indication as to the general purpose of curve.
Values
1
2
3

octane.octane.comparisonOperation

Description
Comparison operations supported by the Comparison texture node (NT_TEX_COMPARE), Comparison composite texture layer (NT_TEX_COMPOSITE_LAYER_COMPARISON), and value nodes NT_{FLOAT,INT}_RELATIONAL_OPERATOR.
Values
1
2
3
4
5
6

octane.octane.compilationResult

Description
Result of compiling code
Values
1
2
3
4

octane.octane.componentPickerOperation

Description
Component picker operation types supported by NT_{FLOAT,INT}_COMPONENT_PICKER.
Values
1
2
3
4
5
6

octane.octane.componentType

Description
GUI widget types.
Values
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

octane.octane.compositeAlphaOperation

Description
Types of alpha operation available for composite system.
Values
1
2
3
4
5
6
7

octane.octane.compositeOperation

Description
The Porter-Duff composite operations with some additional variations.
Values
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

octane.octane.coordinateAxis

Description
Coordinate system axes used by NT_TEX_WAVE_PATTERN.
Values
1
2
3

octane.octane.coordinateSystem

Description
Coordinate spaces used by NT_TEX_POSITION, NT_TEX_RAY_DIRECTION and NT_TEX_NORMAL.
Values
1
2
3
4

octane.octane.cryptomatteType

Description
Types of cryptomatte we can render.
Values
1
2
3
4
5
6
7
8
9
10

octane.octane.curvatureModes

Description
The mode for the various curvature components used in curvature texture node
Values
1
2
3

octane.octane.customAov

Description
IDs we use to identify custom AOVs.
Values
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

octane.octane.customAovChannel

Description
The custom AOV channel we can write to.
Values
1
2
3
4

octane.octane.customAovSecondaryRayVisibility

Description
The options we have for secondary rays.
Values
1
2
3
4

octane.octane.customCurveMode

Description
The different ways we can apply a custom curve to an RGB color.
Values
1
2
3
4
5
6

octane.octane.daylightModel

Description
The different models we support in the daylight environment node. The value is set by the enum pin P_MODEL.
Values
1
2
3
4

octane.octane.decalTextureIndex

Description
Values
1
2
3
4
5
6
7
8
9
10

octane.octane.denoiserQuality

Description
Supported denoiser quality settings. These are currently only used with the Open Image Denoise library.
Values
1
2
3
4

octane.octane.denoiserType

Description
Values
1
2

octane.octane.dialogIconType

Description
Icon types for dialogs.
Values
1
2
3
4

octane.octane.dialogType

Description
Dialog types.
Values
1
2

octane.octane.directLightMode

Description
Global illumination modes of the direct lighting kernel.
Values
1
2
3
4
5

octane.octane.dispersionModel

Description
Dispersion models
Values
1
2

octane.octane.displacementDirection

Description
The direction used to displace the surface
Values
1
2
3

octane.octane.displacementLod

Description
The levels of details we currently support in displacement mapping.
Values
1
2
3
4
5
6
7

octane.octane.displacementMapType

Description
Vertex displacement texture type
Values
1
2

octane.octane.displacementQuality

Description
Quality of the displacement mapping. Normal corresponds to the legacy displacement.
Values
1
2

octane.octane.displacementTextureAxes

Description
Vertex displacement map axes
Values
1
2
3

octane.octane.displacementTextureSpace

Description
Vertex displacement texture space
Values
1
2

octane.octane.distanceMode

Description
Distance mode used by NT_TEX_RELATIVE_DISTANCE.
Values
1
2
3
4

octane.octane.eventType

Description
GUI event types.
Values
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

octane.octane.expandContractRgbMode

Description
RGB mode used by NT_OUTPUT_AOV_LAYER_EXPAND_CONTRACT. This determines how to how to treat the RGB channels (the alpha channel is always treated as a mask).
Values
1
2

octane.octane.exportAovsType

Description
The types of render passes export.
Values
1
2
3

octane.octane.exportState

Description
States a scene export can be.
Values
1
2
3
4
5

octane.octane.exrCompressionType

Description
Compression type for OpenEXR file export.
Values
1
2
3
4
5
6
7
8
9
10

octane.octane.falloffTextureMode

Description
The various modes we support in the falloff texture.
Values
1
2
3

octane.octane.filterType

Description
Supported filter types
Values
1
2
3

octane.octane.fractalNoiseMode

Description
The noise modes for NT_TEX_FRACTAL_NOISE.
Values
1
2

octane.octane.gaussianSplatClipMode

Description
The way Gaussian splat clouds are clipped
Values
1
2
3

octane.octane.gaussianSplatLightingMode

Description
The way Gaussian splats interact with lights
Values
1
2
3

octane.octane.geometryExportFormat

Description
Export formats we support
Values
1
2

octane.octane.geometryImportObjectLayers

Description
Specifies how objects in a mesh node should be treated on import. value is set in the A_GEOIMP_OBJECT_LAYER_IMPORT attribute of the NT_GEO_MESH node.
Values
1
2
3

octane.octane.geometryImportScale

Description
The various units we support during the geometry import. It's basically the unit used during the export of the geometry. Used in the import preference attribute A_GEOIMP_SCALE_UNIT_TYPE.
Values
1
2
3
4
5
6
7
8
9
10
11
12
13
14

octane.octane.globalLightIdMaskAction

Description
Available actions on the global light IDs mask.
Values
1
2

octane.octane.globalTexAvo

Description
IDs we use to identify global texture AOVs.
Values
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

octane.octane.gradientGeneratorType

Description
Gradient types supported by the 'Gradient generator' texture node (NT_TEX_GRADIENT_GENERATOR).
Values
1
2
3
4
5

octane.octane.gradientInterpColorSpace

Description
Gradient interpolation color spaces that we support.
Values
1
2

octane.octane.gradientInterpType

Description
Gradient interpolation methods that we support.
Values
1
2
3
4
5

octane.octane.graphType

Description
Types of node graphs available.
Values
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107

octane.octane.hairInterpolationType

Description
Hair gradient interpolation types. These specify how the hair segment W coordinates are calculated to fetch the actual value in the gradient texture.
Values
1
2
3

octane.octane.hairMaterialBaseColorMode

Description
Hair material base color modes.
Values
1
2
3

octane.octane.iesPhotometryMode

Description
IES photometry modes
Values
1
2
3

octane.octane.imageChannelType

Description
Image channel types.
Values
1
2
3
4
5
6
7
8
9
10
11

octane.octane.imageColorType

Description
Image color types.
Values
1
2
3
4

octane.octane.imageFilterType

Description
Filter types to use when resampling an image.
Values
1
2

octane.octane.imageMaskSource

Description
Ways to get a mask value from an RGBA color in the output AOV compositor and composite texture.
Values
1
2
3
4
5
6
7
8
9
10
11
12

octane.octane.imageSaveFormat

Description
The supported image file formats for saving render results.
Values
1
2
3
4
5
6
7

octane.octane.imageSaveType

Description
@deprecated Use ImageSaveFormat and/or NamedColorSpace instead.
Values
1
2
3
4
5
6
7
8
9
10
11
12
13

octane.octane.imageType

Description
The various image types we support in the image texture node. Used in the image texture node attribute A_TYPE.
Values
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

octane.octane.importRestAttributesMode

Description
Ways to import the rest attributes for fbx and alembic files
Values
1
2
3
4

octane.octane.infoChannelSamplingMode

Description
Modes for deciding whether or not to do pixel filtering for most info passes.
Values
1
2
3

octane.octane.infoChannelType

Description
The types of data the info channels kernel can render
Values
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

octane.octane.inputAction

Description
Input actions for nodes with attribute A_INPUT_ACTION. The attribute is of type AT_INT2. The first component identifies the action and the second the index of the movable input which specifies the input (position) this action should be applied to. Be aware that a movable input can consist of multiple pins. The number can be fetched from @ref ApiNodeInfo::mMovableInputPinCount.
Values
1
2
3
4
5

octane.octane.interpolationType

Description
Interpolation types for NT_TEX_RANGE and NT_FLOAT_RANGE.
Values
1
2
3
4
5

octane.octane.itemDbOrigin

Description
All the places that a DB item can come from.
Values
1
2

octane.octane.lightAov

Description
IDs to identify light AOVs.
Values
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

octane.octane.lightPassMask

Description
The flags used in emission masks.
Values
1
2
3
4
5
6

octane.octane.lightSampler

Description
The types of light sampler we use for rendering
Values
1
2
3

octane.octane.liveDbThumbnailView

Description
The available views for thumbnails of liveDB material and texture macros.
Values
1
2
3
4
5

octane.octane.logicalOperator

Description
Logical operators supported by NT_BOOL_LOGIC_OPERATOR.
Values
1
2
3
4

octane.octane.luaScriptType

Description
Type of the script
Values
1
2

octane.octane.memoryLocation

Description
Memory locations of the resources
Values
1
2
3

octane.octane.metallicReflectionMode

Description
Specify how to calculate the reflectance on metallic materials
Values
1
2
3
4

octane.octane.modifierKey

Description
List of possible modifier keys.
Values
1
2
3
4
5
6
7

octane.octane.moduleType

Description
The different module types supported in the standalone.
Values
1
2
3
4

octane.octane.moireMosaicShape

Description
The shapes supported by NT_TEX_MOIRE_MOSAIC.
Values
1
2
3
4

octane.octane.mouseButton

Description
All the different buttons on a mouse.
Values
1
2
3
4
5
6
7
8
9
10
11

octane.octane.movableInputFormat

Description
The different pin structures that can be moved between nodes that have movable inputs. Movable inputs can be moved from one node to another if and only if both nodes have the same movable input format.
Values
1
2
3
4
5
6
7
8
9
10
11
12
13
14

octane.octane.namedColorSpace

Description
Specific color spaces that Octane knows about.
Values
1
2
3
4
5
6
7
8

octane.octane.nodeType

Description
Types of nodes available.
Values
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750

octane.octane.noiseType

Description
Types of noise used by the noise texture node (NT_TEX_NOISE)
Values
1
2
3
4
5

octane.octane.noiseTypeOsl

Description
Noise types defined in OSL and used by the random map texture (NT_TEX_RANDOM_MAP)
Values
1
2
3
4

octane.octane.normalType

Description
Normal types used by the Normal texture node (NT_TEX_NORMAL).
Values
1
2
3

octane.octane.objImportColorSpace

Description
The RGB color space that should be used during the import of MTL files. Used in the OBJ import preference attribute A_OBJIMP_COLOR_SPACE.
Values
1
2

octane.octane.objectIncludeMode

Description
The include object mode for various texture nodes
Values
1
2
3

octane.octane.octaneLiveCategory

Description
Categories available in the liveDB.
Values
1
2
3
4
5

octane.octane.outputColorSpaceType

Description
Output color space specification types.
Values
1
2
3
4

octane.octane.panoramicCameraMode

Description
The different modes we currently support in the panoramic camera. The value is set in the pin P_CAMERA_MODE of the node NT_CAM_PANORAMIC.
Values
1
2
3
4
5
6
7
8
9

octane.octane.pinId

Description
IDs for input pins available.
Values
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131

octane.octane.pinType

Description
Types of node input pins available.
Values
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45

octane.octane.positionType

Description
Choose between global space or object space addressing for textures.
Values
1
2
3

octane.octane.prePassType

Description
Pre-pass types (for works before integration).
Values
1
2

octane.octane.preferencesTabId

Description
IDs of the tabs in the preferences window.
Values
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

octane.octane.premultipliedAlphaType

Description
Types of premultiplied alpha in a rendered image.
Values
1
2
3

octane.octane.previewType

Description
Shape used for texture/material preview mode.
Values
1
2
3

octane.octane.primitiveType

Description
The primitive types we know about outside of the render core.
Values
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

octane.octane.proceduralEffectType

Description
The types of procedural effects supported by NT_TEX_PROCEDURAL_EFFECTS.
Values
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

octane.octane.referenceAABBDisplay

Description
When the AABB should be displayed in the reference graph
Values
1
2
3

octane.octane.renderDeviceState

Description
State of a discrete render device.
Values
1
2
3
4
5
6

octane.octane.renderError

Description
The different error types we may report from render threads.
Values
1
2
3
4
5
6
7
8
9
10
11
12
13

octane.octane.renderJobAction

Description
Render job action.
Values
1
2
3
4

octane.octane.renderJobStatus

Description
Render job status.
Values
1
2
3
4
5
6

octane.octane.renderLayerMode

Description
The render layer render modes we currently support.
Values
1
2
3
4

octane.octane.renderPassGroupId

Description
Render pass groups
Values
1
2
3
4
5
6
7
8
9
10
11
12

octane.octane.renderPassId

Description
Ids for the render passes available in Octane.
Values
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216

octane.octane.renderState

Description
The state the render target can be in.
Values
1
2
3
4
5

octane.octane.resourceCategory

Description
Categories of a resource allocation
Values
1
2
3
4
5
6
7
8
9

octane.octane.responseCurveId

Description
All film response curves currently supported.
Values
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58

octane.octane.roundEdgesMode

Description
Round edges modes.
Values
1
2
3
4
5

octane.octane.roundingMode

Description
Rounding modes supported by NT_FLOAT_TO_INT.
Values
1
2
3
4

octane.octane.samplerType

Description
The sampler types we currently provide.
Values
1
2

octane.octane.scatterSurfaceHairMode

Description
Scatter modes supported for scattering on hairs in the Scatter on surface node.
Values
1
2
3
4

octane.octane.scatterSurfaceOrientationPriority

Description
Orientation priority used for orienting scattered instances on a surface when their up and front vectors are not orthogonal.
Values
1
2

octane.octane.scatterSurfaceParticleMode

Description
Scatter modes supported for scattering on particles in the Scatter on surface node.
Values
1
2

octane.octane.scatterSurfacePolygonMode

Description
Scatter modes supported for scattering on polygons in the Scatter on surface node.
Values
1
2
3
4
5
6
7

octane.octane.scatterSurfaceReferenceType

Description
Type of reference data used to orient instances up or front vectors when scattering on a surface.
Values
1
2

octane.octane.scatterSurfaceSelectionMode

Description
Selection strategy used when scattering multiple source objects on a surface.
Values
1
2
3

octane.octane.scatterSurfaceTransformType

Description
Type of transform applied to instances scattered on surfaces.
Values
1
2
3
4

octane.octane.scatterVolumeOrientationPriority

Description
Orientation priority used for orienting scattered instances when their up and front vectors are not orthogonal.
Values
1
2

octane.octane.scatterVolumeReferenceType

Description
Type of reference data used to orient instances up or front vectors when scattering.
Values
1
2

octane.octane.scatterVolumeSelectionMode

Description
Selection strategy used when scattering multiple source objects in a volume.
Values
1
2
3

octane.octane.scatterVolumeShape

Description
Shaping function used to sculpt the dense grid of instances for scatter in volume.
Values
1
2
3
4

octane.octane.scatterVolumeTransformType

Description
Type of transform applied to instances scattered on surfaces.
Values
1
2
3
4

octane.octane.scriptExecuteType

Description
Choose what to execute in a scripted graph
Values
1
2
3
4

octane.octane.scrollWheelAction

Description
Behaviour of the mouse's scroll wheel.
Values
1
2

octane.octane.sharedSurfaceType

Description
Type of a graphics API surface shared with Octane for input/output.
Values
1
2

octane.octane.shutterIntervalAlignment

Description
How to align the shutter interval to the current time stamp
Values
1
2
3

octane.octane.shutterTimeDisplay

Description
Display mode of shutter time
Values
1
2

octane.octane.simulatedLens

Description
Simulated lenses
Values
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

octane.octane.spotlightOrientation

Description
Settings for spotlight orientation
Values
1
2
3
4
5

octane.octane.stereoMode

Description
Different stereo rendering modes we support for the thinlens camera.
Values
1
2

octane.octane.stereoOutput

Description
The output for stereo rendering.
Values
1
2
3
4
5
6

octane.octane.subDivFVarInterpolateBoundary

Description
Face-varying interpolation rules used by the openSubdiv library. see http://graphics.pixar.com/opensubdiv/docs/subdivision_surfaces.html#face-varying-interpolation-rules The weird mapping of SubDivInterpolateBoundary values is a consequence of the different handling between openSubdiv 2.x and 3.x see http://graphics.pixar.com/opensubdiv/docs/compatibility.html#compatibility-with-opensubdiv-2-x
Values
1
2
3
4
5

octane.octane.subDivInterpolateBoundary

Description
Per-vertex interpolation rules used by the openSubdiv library. see http://graphics.pixar.com/opensubdiv/docs/subdivision_surfaces.html#boundary-interpolation-rules openSubdiv 2.x used the same enum for face-varying interpolation options, 3.x uses a separate enum. See SubDivFVarInterpolateBoundary.
Values
1
2
3
4

octane.octane.subDivSchemeType

Description
Boundary interpolation rules used by the openSubdiv library. see http://graphics.pixar.com/opensubdiv/docs/subdivision_surfaces.html#boundary-interpolation-rules
Values
1
2
3
4

octane.octane.subSampleMode

Description
The subsampling modes we currently support.
Values
1
2
3

octane.octane.texelType

Description
The element type of a runtime texture.
Values
1
2
3

octane.octane.textureNodeTypeMode

Description
Determine if and how the node can change its texture inputs/output value types
Values
1
2
3
4

octane.octane.texturePinValueTypeMode

Description
Determine if and how a texture pin gains a value type
Values
1
2
3
4

octane.octane.textureValueType

Description
The different OSL types that are supported as texture value types for texture pins
Values
1
2
3
4
5
6
7
8
9
10
11
12
13
14

octane.octane.tiffCompressionType

Description
Compression type for TIFF file export.
Values
1
2
3
4

octane.octane.tilePatternType

Description
The tile patterns supported by NT_TEX_TILE_PATTERNS.
Values
1
2
3
4
5
6

octane.octane.timeDisplay

Description
Display mode of time line
Values
1
2

octane.octane.timeEventType

Description
The different types of time events.
Values
1
2
3

octane.octane.tonemapBufferType

Description
The different tonemap result buffer formats we support.
Values
1
2
3
4

octane.octane.tonemapOrder

Description
The different orders by which camera response curve, gamma and custom LUT are applied.
Values
1
2
3
4
5
6

octane.octane.tonemapType

Description
@deprecated Use TonemapBufferType and/or NamedColorSpace instead.
Values
1
2
3
4
5

octane.octane.toonLightMode

Description
Lighting modes for toon materials
Values
1
2

octane.octane.traceSetBounceType

Description
The types of light path bounce that can occur at a geometry object for the purposes of updating the set of trace sets that are visible for future hits in the path. These values are used as bit indices for bit masks in NT_TRACE_SET_VISIBILITY_RULE nodes.
Values
1
2
3
4
5

octane.octane.traceSetFutureHits

Description
The types of geometry hit that can occur in a light path after a bounce that updated the set of visible trace sets. These values are used as bit indices for bit masks in NT_TRACE_SET_VISIBILITY_RULE nodes.
Values
1
2
3

octane.octane.uIOperationsFlag

Description
UI general operation flags
Values
1
2
3

octane.octane.unaryOperation

Description
Unary math operations for nodes NT_TEX_MATH_UNARY and NT_FLOAT_MATH_UNARY.
Values
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32

octane.octane.unblendExtractMode

Description
Blend inputs that the unblend output AOV layer mode can extract.
Values
1
2

octane.octane.unblendOutputColorRange

Description
Output color ranges for the unblend and reblend output AOV layers.
Values
1
2
3
4

octane.octane.universalCamApertureShape

Description
The aperture shapes available for the universal camera.
Values
1
2
3
4

octane.octane.universalCamCubemapLayout

Description
The cubemap layouts available for the universal camera.
Values
1
2
3
4

octane.octane.universalCamFisheyeProjection

Description
The projection types available for the universal camera fisheye.
Values
1
2
3
4

octane.octane.universalCamFisheyeType

Description
The fisheye types available for the universal camera.
Values
1
2

octane.octane.universalCamMode

Description
The modes of the universal camera.
Values
1
2
3
4
5

octane.octane.upSampleMode

Description
The upsampling modes we currently support.
Values
1
2
3

octane.octane.upSampleSourcePercentage

Description
Up sample's source percentage (per side).
Values
1
2
3
4
5

octane.octane.upSamplerType

Description
Supported up sampler types.
Values
1
2
3
4
5
6

octane.octane.usdDisplayPurpose

Description
The types of USD display purposes.
Values
1
2
3

octane.octane.vdbGridIds

Description
Grid channels that can be read from a VDB
Values
1
2
3
4
5
6
7
8

octane.octane.vectronCircleType

Description
Circle type for Vectron cylinder and sphere.
Values
1
2
3
4

octane.octane.vectronEdgeType

Description
Edge type for SDF primitives.
Values
1
2
3

octane.octane.virtualTexturingMode

Description
Virtual texturing modes
Values
1
2
3

octane.octane.volumeEmissionType

Description
Standard volume emission types.
Values
1
2
3
4

octane.octane.volumeInterpolationType

Description
Volume voxel data interpolation modes.
Values
1
2
3

octane.octane.volumeSampling

Description
Volume sampling methods.
Values
1
2
3

octane.octane.wCoordinateBorderMode

Description
The different border modes supported by the 'W coordinate' texture node (NT_TEX_W). The value is set by the enum pin P_BORDER_MODE_W_COORD.
Values
1
2
3
4

octane.octane.waveform

Description
Waveforms supported by NT_TEX_WAVE_PATTERN.
Values
1
2
3

octane.octane.whiteLightSpectrum

Description
Different light spectra that can be considered "white" inside the rendering engine.
Values
1
2

octane.octane.windingOrder

Description
Polygon winding order.
Values
1
2
3

octane.gui.componentType

Description
Types of components that can be created in a gui.
Values
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

octane.gui.dialogIcon

Description
Types of icons displayed on dialogs
Values
1
2
3
4

octane.gui.dialogType

Description
Types of dialogs that can be shown in the user interface.
Values
1
2

octane.gui.eventType

Description
Types of events that can be fired from a gui component.
Values
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

Properties Overview

octane.modules.PROPS_MODULE_INFO

Description
Properties of an Octane module.
Properties
Name Description Type Writable
canDisplayInMenu For command modules, whether the command is displayed in the menu. boolean false
description Describes what the module is about. string false
maxInstances The maximum number of instances that can be created for this module. number false
moduleId The unique identifier of the module. number false
moduleType The type of the module. number false
shortName The short name of the module. string false
versionNumber The version number of the module. number false

octane.rendercloudmanager.PROPS_RENDER_CLOUD_UPLOAD_RESULTS

Description
Upload results returned by octane.rendercloudmanager.uploadCurrentProject and octane.rendercloudmanager.uploadRootNodeGraph.
Properties
Name Description Type Writable
errorMsg If success is FALSE this will contain the error message. string false
rootGuid Scene's root version GUID on the server. string false
sceneGuid Scene GUID on the server. string false
sceneName Scene name on the server. string false
success Will contain true if the upload has finished successfully. boolean false

octane.rendercloudmanager.PROPS_RENDER_CLOUD_USER_SUBSCRIPTION_INFO_RESULTS

Description
Data provided by the server about the current user's subscription status.
Properties
Name Description Type Writable
availableCreditBalance Number of credits currently available in the user's account in USD. This can be a negative number if the user has gone into overdraft. number false
availableRndrBalance Number of RNDR tokens in the user's account. number false
subscribed Whether the user has a current subscription to the cloud rendering service. boolean false

octane.util.PROPS_C_ARRAY

Description
Table wrapping a C-Array.
Properties
Name Description Type Writable
elementSize Size of an array element in bytes. number true
length Length of the array (number of elements). number true
ptr Raw pointer to the first element of the array. userdata true

octane.livedb.PROPS_LIVE_DB_CATEGORY

Description
Table with information about a live db category
Properties
Name Description Type Writable
id id of this category number false
name name of this category string true
parentId parent categories' id (-1 for root). number false
typeId type id, describing the type of asset in this category number false

octane.livedb.PROPS_LIVE_DB_MATERIAL

Description
Table with info about a live db material
Properties
Name Description Type Writable
categoryId id of the category that contains this material number false
copyright copyright notice of this material string false
id id of this material number false
name name of this material string false
nickname nickname of the user that uploaded this material string false

octane.project.PROPS_REFERENCE_PACKAGE_EXPORT_INFO

Description
Table with information about reference package export settings
Properties
Name Description Type Writable
animationFramerate The bounding box animation framerate. The valid range is 1..30. number true
customAnimationTimespanBegin The custom animation start time that's used when exportCustomAnimationTimespan is set to true. number true
customAnimationTimespanEnd The custom animation end time that's used when exportCustomAnimationTimespan is set to true. number true
enableCustomAnimationTimespan When set to true, the bounding box animation will be exported in the custom time range specified by customAnimationTimespanBegin and customAnimationTimespanEnd.If false, the whole scene animation timeline will be exported. boolean true
exportAnimation When set to true, the exported bounding boxes will be animated. boolean true
exportNestedReferenceGraphs When set to true, the child reference graphs contents will be included into the exported bounding box data. Note that these bounds are not updated automatically if the referenced scene changes. number true
ignoreSmallObjectPercentage If the size of the object bounds related to the scene size is smaller than this percentage, it will be skipped. number true
includeInstancePercentage The percentage of the scatter node instances to be exported. E.g. 25 means 1 out of 4 instances will be exported. 0 Means all scatter instances are ignored. The valid range is 0..100. number true
mergeScatterInstances If true, all instances inside scatter nodes will be merged into a combined bounding box. That is, instead of exporting one bounding box for each instance, it will export one bounding box for each scatter node. boolean true

octane.geometryexporter.PROPS_GEOMETRY_EXPORTER

Description
Table with information to construct a geometry exporter.
Properties
Name Description Type Writable
cameraAspectRatio Aspect ratio of the camera to write. Required if you want to write a camera with lens shift values. number true
description Description to add to the written file. string true
exportAsStingRayMat Only supported for FBX export. If TRUE, materials are exported in Stingray format boolean true
exportFormat Export format to use (of type octane.geometryExportFormat). number true
exportMaterial Only supported for FBX export. Basic materials and textures will be exported with geometry. Textures are generated using preview render boolean true
fastScatterExport Only supported for FBX export. If TRUE, the child of a scatter node is exported only on the first transform node. So readers of the exported FBX should copy or attach it to all other transform nodes boolean true
filename File to write. string true
items Node items to export. More items may be added later via addItems() userdata true
renderSizeX Only supported for FBX export. Texture render dimension in X. larger the value, slower the export number true
renderSizeY Only supported for FBX export. Texture render dimension in Y. larger the value, slower the export number true
writeOcsData Only supported for FBX export. Export octane OCS data of the material into FBX file. all the corresponding external files are also embedded into the FBX. This data will be read only by octane. boolean true

octane.file.PROPS_PACKAGE_PATH

Description
Table with an absolute path to a file in a package or the file system
Properties
Name Description Type Writable
filename Path to the file, relative for a path in a package, absolute otherwise. string true
package Absolute path to the package, or empty. string true

octane.file.PROPS_SPECIAL_DIRECTORIES

Description
Table with the absolute paths to special directories on the user's system
Properties
Name Description Type Writable
currentApplicationFile Absolute path to the apparent application file. On macOS this is the .app package folder, if any. In other cases it is the same as currentExecutableFile. string false
currentExecutableFile Absolute path to the executable file. string false
tempDirectory Absolute path to the user's temporary directory. string false
userApplicationDataDirectory Absolute path to the user's application data directory. string false
userDesktopDirectory Absolute path to the user's desktop directory. string false
userDocumentsDirectory Absolute path to the user's home directory. string false
userHomeDirectory Absolute path to the user's home directory. string false
userScriptDirectory Absolute path to the user's script directory. string false

octane.scriptgraph.PROPS_BIT_MASK_PIN_INFO

Description
Table with information about a scripted graph bit mask pin.
Properties
Name Description Type Writable
bitLabels A table that defines the bit labels. The expected format is an array of tables, where each table is an array defining the display name and short name for that bit. For example: bitLabels={ { "Monday", "mon" }, { "Tuesday", "tue" }, { "Wednesday", "wed" } } number false
defaultNodeType Default node type for pins of this type (NT_BIT_MASK). number false
defaultValue Default value for pins of this type. number false
description Description of the pin. string false
group Group of the pin. string false
label Label of the pin. For dynamic pins this is the same as the name of the pin. string false
type Type of the pin (PT_BIT_MASK). number false

octane.scriptgraph.PROPS_BOOL_PIN_INFO

Description
Table with information about a scripted graph bool pin.
Properties
Name Description Type Writable
defaultNodeType Default node type for pins of this type (NT_BOOL). number false
defaultValue Default value for pins of this type. boolean false
description Description of the pin. string false
group Group of the pin. string false
label Label of the pin. For dynamic pins this is the same as the name of the pin. string false
type Type of the pin (PT_BOOL). number false

octane.scriptgraph.PROPS_ENUM_PIN_INFO

Description
Table with information about a scripted graph enum pin.
Properties
Name Description Type Writable
defaultNodeType Default node type for pins of this type (NT_ENUM). number false
defaultValue Default value for pins of this type. number false
description Description of the pin. string false
enum A table that defines the ID+label pairs that are shown in the enum drop-down menu. You have 2 options to define those and in both cases the entries in the drop-down menu are in the same order as in the table: 1) An array of strings, where the Lua array index (starting at 1) is used as enum ID and the string as label. For example, enum={"Apples", "Pears", "Bananas"} defines an enum label list (in that order) of 1: "Apples" 2: "Pears" 3: "Bananas" 2) An array of tables, where each table is an array defining the key-value pair. For example, enum={ { 1, "Apples" }, { 3, "Bananas" }, { 2, "Pears" } } defines an enum label list (in that order) of 1: "Apples" 3: "Bananas" 2: "Pears" number false
group Group of the pin. string false
label Label of the pin. For dynamic pins this is the same as the name of the pin. string false
type Type of the pin (PT_ENUM). number false

octane.scriptgraph.PROPS_FLOAT_PIN_INFO

Description
Table with information about a scripted graph float pin.
Properties
Name Description Type Writable
bounds Bounds for the float value, e.g. bounds = {0.0, 1.0}. If unspecified, the value of this pin is unbounded. number false
defaultNodeType Default node type for pins of this type (NT_FLOAT). number false
defaultValue Default value for pins of this type. This can be from 1 to 3 dimensions, i.e. defaultValue = 1 or defaultValue = {1, 2, 3}. number false
description Description of the pin. string false
displayPercentages If set to true, display a percentage (1.0 will be displayed as 100%). boolean false
group Group of the pin. string false
label Label of the pin. For dynamic pins this is the same as the name of the pin. string false
logarithmic If set to true, the UI will show a logarithmic slider for this input. Only supported when slider minimum is positive. boolean false
sliderBounds Slider bounds for the float value, e.g. sliderBounds = {0.0, 1.0}. If unspecified, the slider bounds have the same values as bounds. number false
step The minimum step size for the slider. number false
type Type of the pin (PT_FLOAT). number false
useAspectRatio If set to true, the UI will show a button to lock the aspect ratio. boolean false

octane.scriptgraph.PROPS_INT_PIN_INFO

Description
Table with information about a scripted graph int pin.
Properties
Name Description Type Writable
bounds Bounds for the int value, e.g. bounds = {0, 100}. If unspecified, the value of this pin is unbounded. number false
defaultNodeType Default node type for pins of this type (NT_INT). number false
defaultValue Default value for pins of this type. This can be from 1 to 3 dimensions, i.e. defaultValue = 1 or defaultValue = {1, 2, 3}. number false
description Description of the pin. string false
group Group of the pin. string false
label Label of the pin. For dynamic pins this is the same as the name of the pin. string false
logarithmic If set to true, the UI will show a logarithmic slider for this input. Only supported when slider minimum is positive. boolean false
sliderBounds Slider bounds for the int value, e.g. sliderBounds = {0, 100}. If unspecified, the slider bounds have the same values as bounds. number false
step The minimum step size for the slider. number false
type Type of the pin (PT_INT). number false
useSliders If set to false the UI will not display a slider, even if value bounds are given. boolean false

octane.scriptgraph.PROPS_OCIO_COLOR_SPACE_PIN_INFO

Description
Table with information about a scripted graph OCIO color space pin.
Properties
Name Description Type Writable
defaultColorSpace Default value for pins of this type, of: The default non-OCIO color space, or NAMED_COLOR_SPACE_OTHER to use "default for file type". number false
defaultNodeType Default node type for pins of this type (NT_OCIO_COLOR_SPACE). number false
description Description of the pin. string false
group Group of the pin. string false
label Label of the pin. For dynamic pins this is the same as the name of the pin. string false
type Type of the pin (PT_OCIO_COLOR_SPACE). number false

octane.scriptgraph.PROPS_OCIO_LOOK_PIN_INFO

Description
Table with information about a scripted graph OCIO look pin.
Properties
Name Description Type Writable
defaultNodeType Default node type for pins of this type (NT_OCIO_LOOK). number false
description Description of the pin. string false
forView Default value for pins of this type, of: Whether the look will be applied to an OCIO view or an OCIO color space. If this is true an extra "use view look(s)" option will be shown (and be the default). boolean false
group Group of the pin. string false
label Label of the pin. For dynamic pins this is the same as the name of the pin. string false
type Type of the pin (PT_OCIO_LOOK). number false

octane.scriptgraph.PROPS_OCIO_VIEW_PIN_INFO

Description
Table with information about a scripted graph OCIO view pin.
Properties
Name Description Type Writable
defaultNodeType Default node type for pins of this type (NT_OCIO_VIEW). number false
description Description of the pin. string false
group Group of the pin. string false
label Label of the pin. For dynamic pins this is the same as the name of the pin. string false
type Type of the pin (PT_OCIO_VIEW). number false

octane.scriptgraph.PROPS_PROJECTION_PIN_INFO

Description
Table with information about a scripted graph projection pin.
Properties
Name Description Type Writable
description Description of the pin. string false
group Group of the pin. string false
label Label of the pin. For dynamic pins this is the same as the name of the pin. string false
type Type of the pin (PT_PROJECTION). number false
useImageProjection Determines if projection coordinates are generated in the same way as for 2D image textures. boolean false

octane.scriptgraph.PROPS_STRING_PIN_INFO

Description
Table with information about a scripted graph string pin.
Properties
Name Description Type Writable
defaultNodeType Default node type for pins of this type (NT_STRING). number false
defaultValue Default value for pins of this type. string false
description Description of the pin. string false
filePattern If this field is set, the node pin will accept file names instead of plain text and the pin value will be PROPS_PACKAGE_PATH instead of a plain string. The value consists of one or more patterns, separated by semicolons (;). string false
group Group of the pin. string false
label Label of the pin. For dynamic pins this is the same as the name of the pin. string false
multiline If false, then the value cannot contain line breaks (ignored if filePattern is set). boolean false
newFile If true the interface should allow browsing for a file which doesn't exist yet. boolean false
type Type of the pin (PT_STRING). number false

octane.scriptgraph.PROPS_TEXTURE_PIN_INFO

Description
Table with information about a scripted graph texture pin.
Properties
Name Description Type Writable
defaultNodeType Default node type for pins of this type is NT_FLOAT if defaultValue is a float, NT_TEX_RGB if defaultValue is float3, i.e. defaultValue={1.0, 0.5, 0.0}. number false
defaultValue Default value for pins of this type. This can also be a float3, i.e. defaultValue={1.0, 0.5, 0.0}. number false
description Description of the pin. string false
group Group of the pin. string false
label Label of the pin. For dynamic pins this is the same as the name of the pin. string false
type Type of the pin (PT_TEXTURE). number false

octane.scriptgraph.PROPS_TRANSFORM_PIN_INFO

Description
Table with information about a scripted graph transform pin.
Properties
Name Description Type Writable
defaultNodeType Default node type for pins of this type (NT_TRANSFORM_VALUE). number false
description Description of the pin. string false
dimCount The number of dimensions for the transform, must be 2 or 3. number false
group Group of the pin. string false
isUvwTransform When true, this transform will be multiplied by its parent UVW transforms. boolean false
label Label of the pin. For dynamic pins this is the same as the name of the pin. string false
type Type of the pin (PT_TRANSFORM). number false

octane.nodegraph.PROPS_ATTRIBUTE_INFO

Description
Table with information about an attribute.
Properties
Name Description Type Writable
defaultFloats Contains the default value, if this is a float attribute. number false
defaultInts Contains the default value, if this is an integer/bool attribute. number false
defaultString Contain the default value, if this is a string/filename attribute. string false
description Description of the attribute. string false
endVersion The Octane version that dropped this attribute. number false
id The identifier of the attribute. number false
isArray TRUE if the attribute stores an array. boolean false
minVersion The minimum Octane version that supports this attribute. number false
type The type of data stored in the attribute. number false

octane.nodegraph.PROPS_GRAPH_INFO

Description
Table with (static) information about a graph.
Properties
Name Description Type Writable
attributeInfoCount Number of attributes defined for this node type, including deprecated ones. number false
category The category name used to sort/group this graph. string false
defaultName Default name of the graph. string false
description Description for this node item. May be empty. string false
isInspectable TRUE if graphs of this type can't be inspected or opened. boolean false
outputType Output type of the graph. number false
type Type of the graph. number false

octane.nodegraph.PROPS_NODE_ITEM

Description
Table with (dynamic) information about a graph.
Properties
Name Description Type Writable
attributeCount Number of attributes on this item. number false
attributeIds Array with the ids of the attributes on this item. string false
attributeNames Array with the names of the attributes on this item. string false
graphOwned TRUE if this item is owned by a graph. boolean false
graphOwner The graph that owns this item (can be nil) userdata true
id Persistent ID of the item, unique within the same root node graph. number false
isGraph TRUE if this item is a graph. boolean false
isInputLinker TRUE if this item is an input linker. boolean false
isLinker TRUE if this item is a linker node. boolean false
isNode TRUE if this item is a node. boolean false
isOutputLinker TRUE if this item is an output linker node. boolean false
name Name of the item (node or graph). When left empty, the default name for the node type is used. string true
outputType Output type of the item. number false
pinCount Number of pins on this item (Only on nodes). number false
pinIds Array with the ids of the pins on this item (Only on nodes). string false
pinNames Array with the names of the pins on this item (Only on nodes). string false
pinOwned TRUE if this item is owned by a pin. boolean false
pinOwnerId The id of the pin that owns this item (pin id is on the pin owner and is invalid when the owner is nil.) number true
pinOwnerIx The index of the pin that owns this item (pin index is on the pin owner and is invalid when the owner is nil.) number true
pinOwnerName The name of the pin that owns this item (pin name is on the pin owner and is invalid when the owner is nil.) string true
pinOwnerNode The node that has the pin that owns this item (can be nil). userdata true
position Position of the item in the node graph editor. number true
rootGraph The root graph which contains this node item. userdata true
staticPinCount Number of static pins on this item (Only on nodes). number false
time Time stamp of this item. To change the time call updateTime on the root graph of this item. number false
type Type of the item (node type or graph type). number true

octane.nodegraph.PROPS_TIMETRANSFORM_LINEAR

Description
Table with information about linear time transform. type equals to octane.animationTimeTransformType.LINEAR
Properties
Name Description Type Writable
customIntervalBegin Start of the interval of the animation that should be played. It is untransformed local time of the animation in seconds. number false
customIntervalEnabled When true (custom interval is enabled) the animation outside the interval will be cut out. boolean false
customIntervalEnd End of the interval of the animation that should be played. It is untransformed local time of the animation in seconds. number false
delay The delay of the animation start time in seconds number false
speedUp The scale of the animation playback speed (default is 1). number false
type Type of the animation time transform (octane.animationTimeTransformType) number false

octane.changemanager.PROPS_CHANGEMANAGER_OBSERVER

Description
Properties for an observer.
Properties
Name Description Type Writable
itemChangeCallback Callback to receive item change events. This callback should take one argument of type PROPS_ITEM_CHANGE_EVENT. function true
timeChangeCallback Callback to receive time change events. This callback should take one argument of type PROPS_TIME_CHANGE_EVENT. function true

octane.changemanager.PROPS_ITEM_CHANGE_EVENT

Description
Properties for an item change event.
Properties
Name Description Type Writable
changedIndices Array that contains the indices of the changed attributes/pins if the event is either ITEM_VALUE_CHANGED or ITEM_INPUT_CHANGED, otherwise nil. The array is only valid during the call of onNodeItemChage(). number true
changedItem The item that got changed. userdata true
changedOwner The owner of added/removed items (used for ITEM_ADDED, ITEM_DELETE). This can be a node graph or a pin. In case it's a pin, changedOwner points to the parent node of the pin and the pin is identified via changedOwnerPinIx. userdata true
changedOwnerPinIx The index of the pin, if changedOwner is a node. number true
changedPinIx The index of the pin of which a connection got changed (used for CONNECTION_CHANGED). In this case changedItem will be the parent node of the pin. number true
type The type of event (octane.changeEventType). number true

octane.changemanager.PROPS_TIME_CHANGE_EVENT

Description
Properties for a time change event.
Properties
Name Description Type Writable
rootGraph The root node graph affected, which is only set if the event type is GRAPH_TIME_CHANGED or GRAPH_INTERVAL_CHANGED. userdata true
type The type of event (octane.timeEventType). number true

octane.node.PROPS_ATTRIBUTE_INFO

Description
Table with information about an attribute.
Properties
Name Description Type Writable
defaultFloats Contains the default value, if this is a float attribute. number false
defaultInts Contains the default value, if this is an integer/bool attribute. number false
defaultString Contain the default value, if this is a string/filename attribute. string false
description Description of the attribute. string false
endVersion The Octane version that dropped this attribute. number false
id The identifier of the attribute. number false
isArray TRUE if the attribute stores an array. boolean false
minVersion The minimum Octane version that supports this attribute. number false
type The type of data stored in the attribute. number false

octane.node.PROPS_BIT_MASK_PIN_INFO

Description
Table with info about a bit mask pin.
Properties
Name Description Type Writable
bitCount Bit count. number false
bitNames Display names of each bit. string false
colour Color of the pin (ARGB encoded). number false
defaultNodeType Default node type for pins of this type. number false
defaultValue The default bit mask value. number false
description Description of the pin. string false
endVersion Octane version that dropped this pin. number false
groupName Name of the group this pin belongs to. For dynamic pins or pins without a group this will be an empty string. string false
id The static pin ID. For dynamic pins the ID is always set to P_UNKNOWN. number false
isDynamic true if this pin is a dynamic pin. boolean false
isTypedTexturePin Whether the texture pin has a value type boolean false
label Label of the pin. For dynamic pins this is the same as the name of the pin. string false
minVersion Octane version that introduces this pin. number false
name Name of the pin. string false
shortBitNames Short display names of each bit. string false
type Type of the pin. number false

octane.node.PROPS_BOOL_PIN_INFO

Description
Table with info about a bool type pin.
Properties
Name Description Type Writable
colour Color of the pin (ARGB encoded). number false
defaultNodeType Default node type for pins of this type. number false
defaultValue The default value of the pin. number false
description Description of the pin. string false
endVersion Octane version that dropped this pin. number false
groupName Name of the group this pin belongs to. For dynamic pins or pins without a group this will be an empty string. string false
id The static pin ID. For dynamic pins the ID is always set to P_UNKNOWN. number false
isDynamic true if this pin is a dynamic pin. boolean false
isTypedTexturePin Whether the texture pin has a value type boolean false
label Label of the pin. For dynamic pins this is the same as the name of the pin. string false
minVersion Octane version that introduces this pin. number false
name Name of the pin. string false
type Type of the pin. number false

octane.node.PROPS_ENUM_PIN_INFO

Description
Table with info about an enum type pin.
Properties
Name Description Type Writable
colour Color of the pin (ARGB encoded). number false
defaultNodeType Default node type for pins of this type. number false
defaultValue The default enum value of the pin. number false
description Description of the pin. string false
endVersion Octane version that dropped this pin. number false
entriesCount The number of enum entries in the pin. number false
entryLabels The labels of each enum entry. string false
entryValues The enum values of each entry. number false
groupName Name of the group this pin belongs to. For dynamic pins or pins without a group this will be an empty string. string false
id The static pin ID. For dynamic pins the ID is always set to P_UNKNOWN. number false
isDynamic true if this pin is a dynamic pin. boolean false
isTypedTexturePin Whether the texture pin has a value type boolean false
label Label of the pin. For dynamic pins this is the same as the name of the pin. string false
minVersion Octane version that introduces this pin. number false
name Name of the pin. string false
type Type of the pin. number false

octane.node.PROPS_FLOAT_PIN_INFO

Description
Table with info about a float type pin.
Properties
Name Description Type Writable
allowLog TRUE if the user interface should allow a logarithmic slider interface. boolean false
colour Color of the pin (ARGB encoded). number false
defaultIsLog TRUE if the user interface should use a logarithmic slider interface (if possible). boolean false
defaultNodeType Default node type for pins of this type. number false
defaultValue The default value of the pin. number false
description Description of the pin. string false
dimensionCount The number of dimensions the float pin requires. number false
dimensionNames The names given to the dimensions. string false
displayPercentages TRUE if the user interface should display the values in percentages. boolean false
endVersion Octane version that dropped this pin. number false
groupName Name of the group this pin belongs to. For dynamic pins or pins without a group this will be an empty string. string false
id The static pin ID. For dynamic pins the ID is always set to P_UNKNOWN. number false
isColor TRUE if the user interface should display a colour swatch. boolean false
isDynamic true if this pin is a dynamic pin. boolean false
isTypedTexturePin Whether the texture pin has a value type boolean false
label Label of the pin. For dynamic pins this is the same as the name of the pin. string false
maxValues The maximum value the pin accepts for each dimension. number false
minValues The minimum value the pin accepts for each dimension. number false
minVersion Octane version that introduces this pin. number false
name Name of the pin. string false
sliderMaxValues The maximum slider value of the pin for the slider user interface for each dimension. number false
sliderMinValues The minimum slider value of the pin for the user interface for each dimension. number false
sliderSteps The minimum step size for the slider user interface for each dimension. number false
type Type of the pin. number false
useAspectRatio TRUE if the user interface should allow changes to all three componentswhich keep the aspect ratio. boolean false
useSliders TRUE if the user interface should use sliders for this pin. boolean false

octane.node.PROPS_INT_PIN_INFO

Description
Table with info about an int type pin.
Properties
Name Description Type Writable
allowLog TRUE if the user interface should allow a logarithmic slider interface. boolean false
colour Color of the pin (ARGB encoded). number false
defaultIsLog TRUE if the user interface should use a logarithmic slider interface (if possible). boolean false
defaultNodeType Default node type for pins of this type. number false
defaultValue The default value of the pin. number false
description Description of the pin. string false
dimensionCount The dimension of the int pin. number false
dimensionNames Names of the dimensions. string false
endVersion Octane version that dropped this pin. number false
groupName Name of the group this pin belongs to. For dynamic pins or pins without a group this will be an empty string. string false
id The static pin ID. For dynamic pins the ID is always set to P_UNKNOWN. number false
isColor TRUE if the user interface should display a colour swatch. boolean false
isDynamic true if this pin is a dynamic pin. boolean false
isTypedTexturePin Whether the texture pin has a value type boolean false
label Label of the pin. For dynamic pins this is the same as the name of the pin. string false
maxValues The maximum value the pin accepts for each dimension. number false
minValues The minimum value the pin accepts for each dimension. number false
minVersion Octane version that introduces this pin. number false
name Name of the pin. string false
sliderMaxValues The maximum slider value of the pin for the slider user interface for each dimension. number false
sliderMinValues The minimum slider value of the pin for the slider user interface for each dimension. number false
sliderSteps The minimum step size for the slider user interface for each dimension. number false
type Type of the pin. number false
useSliders TRUE if the user interface should use sliders for this pin. boolean false

octane.node.PROPS_NODE_INFO

Description
Table with (static) information about a node.
Properties
Name Description Type Writable
attributeInfoCount Number of attributes defined for this node type, including deprecated ones. number false
category The category name used to group/sort this node. string false
compatibilityModeCount Number of compatibility modes defined for this node type. number false
compatibilityModeDescriptions Description of each compatibility mode. This is a brief description of how the old behavior differs from the current version of Octane, or empty if the mode represents the current version of Octane. string false
compatibilityModeNames Name of each compatibility mode. string false
compatibilityModeStartVersions Start version of each compatibility mode. This is the first version of Octane that has this behavior, i.e. the version where this compatibility mode was added. number false
defaultName The default name for nodes of this type. string false
description Description for this node item. May be empty. string false
isLinker TRUE if the node is a linker node. boolean false
isOutputLinker TRUE if the node is an output linker node. boolean false
isTypedTextureNode Whether the node's texture output/input(s) have a value type boolean false
minVersion Version when this node type was introduced. This will be zero for all nodes introduced before 11.0.0.10. number false
movableInputCountAttribute ID of the attribute defining the number of (movable) inputs. A value that isn't A_UNKNOWN indicates that this node has movable inputs and movableInputPinCount will be >= 1. If set to A_UNKNOWN, the node doesn't have any movable inputs and movableInputPinCount will be 0. number false
movableInputFormat The pin structure of each movable input, or movableInputFormat.NONE if this node node doesn't have movable inputs. Movable inputs can be moved from one node to another if and only if both nodes have the same movable input format. number false
movableInputName What each movable input is, e.g. "layer". This is used to build things like tooltips, e.g. "Delete layer.". Empty if the node doesn't have movable inputs. string false
movableInputPinCount The number of dynamic pins per movable input or 0 if the node doesn't have movable inputs. number false
outputType Output type of the node. number false
pinInfoCount Number of static pins defined for this node type, including deprecated ones. number false
takesPinDefaultValues If TRUE the default value can be set in the value attribute. boolean false
textureNodeTypeInfo PROPS_TEXTURE_NODE_TYPE_INFO Metadata related to texture nodes with typed texture inputs and/or output table false
type Type of the node. number false

octane.node.PROPS_NODE_ITEM

Description
Table with (dynamic) information about a node.
Properties
Name Description Type Writable
attributeCount Number of attributes on this item. number false
attributeIds Array with the ids of the attributes on this item. string false
attributeNames Array with the names of the attributes on this item. string false
graphOwned TRUE if this item is owned by a graph. boolean false
graphOwner The graph that owns this item (can be nil) userdata true
id Persistent ID of the item, unique within the same root node graph. number false
isGraph TRUE if this item is a graph. boolean false
isInputLinker TRUE if this item is an input linker. boolean false
isLinker TRUE if this item is a linker node. boolean false
isNode TRUE if this item is a node. boolean false
isOutputLinker TRUE if this item is an output linker node. boolean false
name Name of the item (node or graph). When left empty, the default name for the node type is used. string true
outputType Output type of the item. number false
pinCount Number of pins on this item (Only on nodes). number false
pinIds Array with the ids of the pins on this item (Only on nodes). string false
pinNames Array with the names of the pins on this item (Only on nodes). string false
pinOwned TRUE if this item is owned by a pin. boolean false
pinOwnerId The id of the pin that owns this item (pin id is on the pin owner and is invalid when the owner is nil.) number true
pinOwnerIx The index of the pin that owns this item (pin index is on the pin owner and is invalid when the owner is nil.) number true
pinOwnerName The name of the pin that owns this item (pin name is on the pin owner and is invalid when the owner is nil.) string true
pinOwnerNode The node that has the pin that owns this item (can be nil). userdata true
position Position of the item in the node graph editor. number true
rootGraph The root graph which contains this node item. userdata true
staticPinCount Number of static pins on this item (Only on nodes). number false
time Time stamp of this item. To change the time call updateTime on the root graph of this item. number false
type Type of the item (node type or graph type). number true

octane.node.PROPS_OCIO_COLOR_SPACE_PIN_INFO

Description
Table with info about an OCIO color space type pin.
Properties
Name Description Type Writable
colour Color of the pin (ARGB encoded). number false
defaultColorSpace The default non-OCIO color space (octane.namedColorSpace), or octane.namedColorSpace.OTHER to use "default for file type". The default value is octane.namedColorSpace.OTHER. number false
defaultNodeType Default node type for pins of this type. number false
description Description of the pin. string false
endVersion Octane version that dropped this pin. number false
groupName Name of the group this pin belongs to. For dynamic pins or pins without a group this will be an empty string. string false
id The static pin ID. For dynamic pins the ID is always set to P_UNKNOWN. number false
isDynamic true if this pin is a dynamic pin. boolean false
isTypedTexturePin Whether the texture pin has a value type boolean false
label Label of the pin. For dynamic pins this is the same as the name of the pin. string false
minVersion Octane version that introduces this pin. number false
name Name of the pin. string false
type Type of the pin. number false

octane.node.PROPS_OCIO_LOOK_PIN_INFO

Description
Table with info about an OCIO look type pin.
Properties
Name Description Type Writable
colour Color of the pin (ARGB encoded). number false
defaultNodeType Default node type for pins of this type. number false
description Description of the pin. string false
endVersion Octane version that dropped this pin. number false
forView Whether the look will be applied to an OCIO view or an OCIO color space. If this is true an extra "use view look(s)" option will be shown (and be the default). boolean false
groupName Name of the group this pin belongs to. For dynamic pins or pins without a group this will be an empty string. string false
id The static pin ID. For dynamic pins the ID is always set to P_UNKNOWN. number false
isDynamic true if this pin is a dynamic pin. boolean false
isTypedTexturePin Whether the texture pin has a value type boolean false
label Label of the pin. For dynamic pins this is the same as the name of the pin. string false
minVersion Octane version that introduces this pin. number false
name Name of the pin. string false
type Type of the pin. number false

octane.node.PROPS_OCIO_VIEW_PIN_INFO

Description
Table with info about an OCIO view type pin.
Properties
Name Description Type Writable
colour Color of the pin (ARGB encoded). number false
defaultNodeType Default node type for pins of this type. number false
description Description of the pin. string false
endVersion Octane version that dropped this pin. number false
groupName Name of the group this pin belongs to. For dynamic pins or pins without a group this will be an empty string. string false
id The static pin ID. For dynamic pins the ID is always set to P_UNKNOWN. number false
isDynamic true if this pin is a dynamic pin. boolean false
isTypedTexturePin Whether the texture pin has a value type boolean false
label Label of the pin. For dynamic pins this is the same as the name of the pin. string false
minVersion Octane version that introduces this pin. number false
name Name of the pin. string false
type Type of the pin. number false

octane.node.PROPS_PIN_IDENTIFIER

Description
Identifies a pin on a node. Only one of id, name and index should be set.
Properties
Name Description Type Writable
id The ID of the pin number true
index The index of the pin number true
name The name of the pin string true
node The parent node of the pin userdata true

octane.node.PROPS_PIN_INFO

Description
Table with information about a nodepin.
Properties
Name Description Type Writable
colour Color of the pin (ARGB encoded). number false
defaultNodeType Default node type for pins of this type. number false
description Description of the pin. string false
endVersion Octane version that dropped this pin. number false
groupName Name of the group this pin belongs to. For dynamic pins or pins without a group this will be an empty string. string false
id The static pin ID. For dynamic pins the ID is always set to P_UNKNOWN. number false
isDynamic true if this pin is a dynamic pin. boolean false
isTypedTexturePin Whether the texture pin has a value type boolean false
label Label of the pin. For dynamic pins this is the same as the name of the pin. string false
minVersion Octane version that introduces this pin. number false
name Name of the pin. string false
type Type of the pin. number false

octane.node.PROPS_PROJECTION_PIN_INFO

Description
Table with info about a projection type pin.
Properties
Name Description Type Writable
colour Color of the pin (ARGB encoded). number false
defaultNodeType Default node type for pins of this type. number false
description Description of the pin. string false
endVersion Octane version that dropped this pin. number false
groupName Name of the group this pin belongs to. For dynamic pins or pins without a group this will be an empty string. string false
id The static pin ID. For dynamic pins the ID is always set to P_UNKNOWN. number false
isDynamic true if this pin is a dynamic pin. boolean false
isTypedTexturePin Whether the texture pin has a value type boolean false
label Label of the pin. For dynamic pins this is the same as the name of the pin. string false
minVersion Octane version that introduces this pin. number false
name Name of the pin. string false
type Type of the pin. number false
useImageProjection Determines if projection coordinates are generated in the same way as for 2D image textures. boolean false

octane.node.PROPS_STRING_PIN_INFO

Description
Table with info about a string type pin.
Properties
Name Description Type Writable
allowCustomValue if a list of values is given, determines if users may enter a value which is not in the list. boolean false
colour Color of the pin (ARGB encoded). number false
defaultNodeType Default node type for pins of this type. number false
defaultValue The default text of the pin. string false
description Description of the pin. string false
endVersion Octane version that dropped this pin. number false
filePatterns If isFile is true then this gives the file name patterns, separated by a semicolon. string false
forSaving if true the interface should allow browsing for a file which doesn't exist yet. boolean false
groupName Name of the group this pin belongs to. For dynamic pins or pins without a group this will be an empty string. string false
id The static pin ID. For dynamic pins the ID is always set to P_UNKNOWN. number false
isDynamic true if this pin is a dynamic pin. boolean false
isFile If true the interface should allow browsing for a file. boolean false
isTypedTexturePin Whether the texture pin has a value type boolean false
label Label of the pin. For dynamic pins this is the same as the name of the pin. string false
minVersion Octane version that introduces this pin. number false
multiline True, if we should allow entry of multiple lines of text. boolean false
name Name of the pin. string false
type Type of the pin. number false
values List of values to choose from. string false
valuesCount The amount of values. number false

octane.node.PROPS_TEXTURE_PIN_INFO

Description
Table with info about a texture type pin.
Properties
Name Description Type Writable
colour Color of the pin (ARGB encoded). number false
defaultNodeType Default node type for pins of this type. number false
defaultValue The default value of the pin. number false
description Description of the pin. string false
endVersion Octane version that dropped this pin. number false
groupName Name of the group this pin belongs to. For dynamic pins or pins without a group this will be an empty string. string false
id The static pin ID. For dynamic pins the ID is always set to P_UNKNOWN. number false
isDynamic true if this pin is a dynamic pin. boolean false
isTypedTexturePin Whether the texture pin has a value type boolean false
label Label of the pin. For dynamic pins this is the same as the name of the pin. string false
maxValue The maximum value the pin accepts. number false
minValue The minimum the pin accepts. number false
minVersion Octane version that introduces this pin. number false
name Name of the pin. string false
sliderMaxValue The maximum slider value of the pin for the slider user interface. number false
sliderMinValue The minimum slider value of the pin for the slider user interface. number false
type Type of the pin. number false
useSpectrum TRUE if the pin is used to fetch a spectrum. FALSE if we only need a float texture. Only makes sense for texture pins of material/emitter/medium nodes boolean false
valueType The pin's texture value type when its type mode is static or explicit, octane.textureValueType number false
valueTypeMode Specifies how a texture pin gains a value type, octane.texturePinValueTypeMode number false
valueTypeWhenToggled The pin's texture value type when its node toggles secondary input types, octane.textureValueType number false

octane.node.PROPS_TRANSFORM_PIN_INFO

Description
Table with info about a transform type pin.
Properties
Name Description Type Writable
colour Color of the pin (ARGB encoded). number false
defaultNodeType Default node type for pins of this type. number false
defaultRotationValue The default rotation value of the pin. number false
defaultScaleValue The default scale value of the pin. number false
defaultTranslationValue The default translation value of the pin. number false
defaultXAxis The default x axis of the pin. number false
defaultYAxis The default y axis of the pin. number false
defaultZAxis The default z axis of the pin. number false
description Description of the pin. string false
dimensionCount The dimension of the transformation. number false
endVersion Octane version that dropped this pin. number false
groupName Name of the group this pin belongs to. For dynamic pins or pins without a group this will be an empty string. string false
id The static pin ID. For dynamic pins the ID is always set to P_UNKNOWN. number false
isDynamic true if this pin is a dynamic pin. boolean false
isTypedTexturePin Whether the texture pin has a value type boolean false
isUvwTransform When true, this transform will be multiplied by its parent UVW transforms. boolean false
label Label of the pin. For dynamic pins this is the same as the name of the pin. string false
maxRotationValue The maximum rotation value the pin accepts. number false
maxScaleValue The maximum scale value the pin accepts. number false
maxTranslationValue The maximum translation value the pin accepts. number false
minRotationValue The minimum rotation value the pin accepts. number false
minScaleValue The minimum scale value the pin accepts. number false
minTranslationValue The minimum translation value the pin accepts. number false
minVersion Octane version that introduces this pin. number false
name Name of the pin. string false
type Type of the pin. number false

octane.image.INFOS_IMAGE

Description
Information of an image.
Properties
Name Description Type Writable
isCompressed True if the image is stored in a compressed format. boolean false
isHdr True if the image is HDR (i.e. if the channels use a floating point format). boolean false
layerCount The layer count of the image. number false
size Horizontal and vertical size of the image in pixels. number false

octane.image.INFOS_LAYER

Description
Information of an image layer.
Properties
Name Description Type Writable
hasTransparency True if the image layer has transparency. boolean false
name Name of the image layer. string false
prefCompressType Preferred compression type of the image layer, octane.image.type. number false
prefCompressTypeHQ Preferred high quality compression type of the image layer, octane.image.type. number false
type Type of the image layer, octane.image.type. number false

octane.image.PROPS_EXR_SAVE

Description
Options for saving EXR files.
Properties
Name Description Type Writable
compressionLevel Compression level for DWA compression. Usable range is 0 (highest quality) to about 2000 (high compression). number true
compressionType Compression type for Exr format [octane.exrCompressionType]. number true

octane.image.PROPS_IMAGE

Description
Properties of an image.
Properties
Name Description Type Writable
byteSize Size of the image in bytes. number false
bytesPerChannel Bytes per channel (i.e. bytes per pixel / #channels). number false
bytesPerPixel Bytes per pixel (can be a fraction of a bytes in the case of compressed images). number false
channelCount Number of channels. number false
hasColour True if the image has color. boolean false
hasTransparency True if the image has transparency. boolean false
isCompressed True if the image is stored in a compressed format. boolean false
isHdr True if the image is HDR (i.e. if the channels use a floating point format). boolean false
size Horizontal and vertical size of the image in pixels. number true
sourceInfo Image source information string. string false
type Type of the image, octane.image.type. number true

octane.image.PROPS_JPEG_SAVE

Description
Options for saving JPEG files.
Properties
Name Description Type Writable
quality Quality for JPEG format. Usable range is 1 (highest compression) to 100 (highest quality) number true

octane.image.PROPS_TIFF_SAVE

Description
Options for saving TIFF files.
Properties
Name Description Type Writable
compressionType Compression type for TIFF format [octane.tiffCompressionType]. number true

octane.gui.PROPS_BUTTON_DIALOG

Description
Properties for a button dialog.
Properties
Name Description Type Writable
buttonTexts Table with the text for each button. string true
icon Icon to appear on the dialog number true
result 1, 2 or 3 indicating which button the user pressed. number true
text Text to appear on the dialog. string true
title Title of the dialog window. string true

octane.gui.PROPS_DIALOG

Description
Generic properties applicable to every dialog.
Properties
Name Description Type Writable
title Title of the dialog window. string true

octane.gui.PROPS_FILE_DIALOG

Description
Properties for a file dialog.
Properties
Name Description Type Writable
browseDirectory True when a file-dialog should only select directories. boolean true
multiFile True when a file-dialog should be able to select multiple files. boolean true
multiResult Contains a table of file names if multiple file selecting is enabled. string true
path Initial path where the file dialogs opens. string true
result Absolute path of the selected file or directory, empty string when the user cancelled the dialog. string true
save True to show a file save dialog, false for an open dialog or directory browse dialog. boolean true
title Title of the dialog window. string true
wildcards List of file wildcards, only files that match these wildcards will be visible (e.g. *.lua; *.cpp). Multiple patterns can be separated with semicolons. string true

octane.gui.PROPS_GUI_BITMAP

Description
Properties for a bitmap.
Properties
Name Description Type Writable
backgroundColour Background color for this bitmap, a table in the form { r, g, b, a }. Updating the color clears the bitmap with the same color. number true
callback Gui event callback. The signature is: callback(component, event) with component the component on which the event happened and event of type octane.gui.eventType. function true
enable true if the component is enabled. boolean true
height Height of the component in pixels. number true
image Image displayed in the bitmap. When using an image, the bitmap is scaled to the dimensions of the image. userdata true
mouseCallback Mouse event callback. The signature is: callback(component, event, position {x, y}, wheelscroll {x, y}). Event is of type octane.gui.eventType. function true
name Name of the component. string true
opacity Opacity of this bitmap. A value in [0, 1], 0 means transparent and 1 means fully opaque. number true
tooltip Tooltip that appears when the mouse hovers over the component. Not all components can display tooltips. string true
type Type of the component. number false
width Width of the component in pixels. number true
x X-offset relative to the parent component in pixels. number true
y Y-offset relative to the parent component in pixels. number true

octane.gui.PROPS_GUI_BUTTON

Description
Properties for a button.
Properties
Name Description Type Writable
callback Gui event callback. The signature is: callback(component, event) with component the component on which the event happened and event of type octane.gui.eventType. function true
enable true if the component is enabled. boolean true
height Height of the component in pixels. number true
mouseCallback Mouse event callback. The signature is: callback(component, event, position {x, y}, wheelscroll {x, y}). Event is of type octane.gui.eventType. function true
name Name of the component. string true
text Text to appear on the button. string true
tooltip Tooltip that appears when the mouse hovers over the component. Not all components can display tooltips. string true
type Type of the component. number false
width Width of the component in pixels. number true
x X-offset relative to the parent component in pixels. number true
y Y-offset relative to the parent component in pixels. number true

octane.gui.PROPS_GUI_CHECK_BOX

Description
Properties for a check box.
Properties
Name Description Type Writable
callback Gui event callback. The signature is: callback(component, event) with component the component on which the event happened and event of type octane.gui.eventType. function true
checked Flag indicating if the box is checked. boolean true
enable true if the component is enabled. boolean true
height Height of the component in pixels. number true
mouseCallback Mouse event callback. The signature is: callback(component, event, position {x, y}, wheelscroll {x, y}). Event is of type octane.gui.eventType. function true
name Name of the component. string true
text Text to appear on the left of the check-box. string true
tooltip Tooltip that appears when the mouse hovers over the component. Not all components can display tooltips. string true
type Type of the component. number false
width Width of the component in pixels. number true
x X-offset relative to the parent component in pixels. number true
y Y-offset relative to the parent component in pixels. number true

octane.gui.PROPS_GUI_COLOUR_SWATCH

Description
Properties for a color swatch.
Properties
Name Description Type Writable
callback Gui event callback. The signature is: callback(component, event) with component the component on which the event happened and event of type octane.gui.eventType. function true
colour Color selected in the swatch { r, g, b, a }. number true
enable true if the component is enabled. boolean true
height Height of the component in pixels. number true
mouseCallback Mouse event callback. The signature is: callback(component, event, position {x, y}, wheelscroll {x, y}). Event is of type octane.gui.eventType. function true
name Name of the component. string true
tooltip Tooltip that appears when the mouse hovers over the component. Not all components can display tooltips. string true
type Type of the component. number false
width Width of the component in pixels. number true
x X-offset relative to the parent component in pixels. number true
y Y-offset relative to the parent component in pixels. number true

octane.gui.PROPS_GUI_COMBO_BOX

Description
Properties for a combo box.
Properties
Name Description Type Writable
callback Gui event callback. The signature is: callback(component, event) with component the component on which the event happened and event of type octane.gui.eventType. function true
enable true if the component is enabled. boolean true
height Height of the component in pixels. number true
items Array with strings to show in the combo-box string true
mouseCallback Mouse event callback. The signature is: callback(component, event, position {x, y}, wheelscroll {x, y}). Event is of type octane.gui.eventType. function true
name Name of the component. string true
selectedIx The index of the currently selected item in the combo-box. The index is valid in [1,n]. If the index is out-of range, no item in the combo-box is selected. number true
tooltip Tooltip that appears when the mouse hovers over the component. Not all components can display tooltips. string true
type Type of the component. number false
width Width of the component in pixels. number true
x X-offset relative to the parent component in pixels. number true
y Y-offset relative to the parent component in pixels. number true

octane.gui.PROPS_GUI_COMPONENT

Description
Generic properties that are valid for each component.
Properties
Name Description Type Writable
callback Gui event callback. The signature is: callback(component, event) with component the component on which the event happened and event of type octane.gui.eventType. function true
enable true if the component is enabled. boolean true
height Height of the component in pixels. number true
mouseCallback Mouse event callback. The signature is: callback(component, event, position {x, y}, wheelscroll {x, y}). Event is of type octane.gui.eventType. function true
name Name of the component. string true
tooltip Tooltip that appears when the mouse hovers over the component. Not all components can display tooltips. string true
type Type of the component. number false
width Width of the component in pixels. number true
x X-offset relative to the parent component in pixels. number true
y Y-offset relative to the parent component in pixels. number true

octane.gui.PROPS_GUI_GROUP

Description
Properties for a group.
Properties
Name Description Type Writable
border Flag indicating if we should show a border. boolean true
callback Gui event callback. The signature is: callback(component, event) with component the component on which the event happened and event of type octane.gui.eventType. function true
centre If true it will center each component in the cell boolean true
children List of the child components. userdata true
cols Number of columns in the group grid. number true
debug If true, debug outlines are drawn. boolean true
enable true if the component is enabled. boolean true
height Height of the component in pixels. number true
inset Padding around the edge of this group, given as {right, bottom, left, top}, {horizontal, vertical} or {all}. number true
maxRows Maximally allowed number of rows used for GUI display. number true
mouseCallback Mouse event callback. The signature is: callback(component, event, position {x, y}, wheelscroll {x, y}). Event is of type octane.gui.eventType. function true
name Name of the component. string true
padding Padding in each cell, given as {horizontal, vertical} or {all}. number true
rows Number of rows in the group grid. number true
text Text to add on the top of the group outline. string true
tooltip Tooltip that appears when the mouse hovers over the component. Not all components can display tooltips. string true
type Type of the component. number false
width Width of the component in pixels. number true
x X-offset relative to the parent component in pixels. number true
y Y-offset relative to the parent component in pixels. number true

octane.gui.PROPS_GUI_LABEL

Description
Properties for a label.
Properties
Name Description Type Writable
allowSquash Text can be squashed horizontally before the label starts using ellipsis boolean true
callback Gui event callback. The signature is: callback(component, event) with component the component on which the event happened and event of type octane.gui.eventType. function true
enable true if the component is enabled. boolean true
height Height of the component in pixels. number true
mouseCallback Mouse event callback. The signature is: callback(component, event, position {x, y}, wheelscroll {x, y}). Event is of type octane.gui.eventType. function true
name Name of the component. string true
text Text to appear on the label. string true
textColour Color of the text on the label, in the format { R, G, B, A }. number true
tooltip Tooltip that appears when the mouse hovers over the component. Not all components can display tooltips. string true
type Type of the component. number false
width Width of the component in pixels. number true
x X-offset relative to the parent component in pixels. number true
y Y-offset relative to the parent component in pixels. number true

octane.gui.PROPS_GUI_OCIO_COLOR_SPACE_COMBO_BOX

Description
Properties for an OCIO color space combo box.
Properties
Name Description Type Writable
callback Gui event callback. The signature is: callback(component, event) with component the component on which the event happened and event of type octane.gui.eventType. function true
colorSpace The selected non-OCIO color space, or octane.namedColorSpace.OCIO if an OCIO color space is selected, or octane.namedColorSpace.OTHER to use the default for the selected file type (sRGB for PNG and linear sRGB for EXR). The default value is octane.namedColorSpace.OTHER. number true
enable true if the component is enabled. boolean true
height Height of the component in pixels. number true
mouseCallback Mouse event callback. The signature is: callback(component, event, position {x, y}, wheelscroll {x, y}). Event is of type octane.gui.eventType. function true
name Name of the component. string true
ocioColorSpaceName The name of the selected OCIO color space, if an OCIO color space is selected. Unused otherwise. string true
tooltip Tooltip that appears when the mouse hovers over the component. Not all components can display tooltips. string true
type Type of the component. number false
width Width of the component in pixels. number true
x X-offset relative to the parent component in pixels. number true
y Y-offset relative to the parent component in pixels. number true

octane.gui.PROPS_GUI_OCIO_LOOK_COMBO_BOX

Description
Properties for an OCIO look combo box.
Properties
Name Description Type Writable
callback Gui event callback. The signature is: callback(component, event) with component the component on which the event happened and event of type octane.gui.eventType. function true
enable true if the component is enabled. boolean true
forView Whether the look will be applied to an OCIO view rather than an OCIO color space. If this is true an extra "use view look(s)" option will be shown. boolean true
height Height of the component in pixels. number true
lookName If using the selected OCIO view's default look(s), this value is ignored. Otherwise, the name of the OCIO look to apply with the selected OCIO view, or empty to apply no look. string true
mouseCallback Mouse event callback. The signature is: callback(component, event, position {x, y}, wheelscroll {x, y}). Event is of type octane.gui.eventType. function true
name Name of the component. string true
tooltip Tooltip that appears when the mouse hovers over the component. Not all components can display tooltips. string true
type Type of the component. number false
useViewLook Whether to use the selected OCIO view's default look(s) instead of the specified look. boolean true
width Width of the component in pixels. number true
x X-offset relative to the parent component in pixels. number true
y Y-offset relative to the parent component in pixels. number true

octane.gui.PROPS_GUI_OCIO_VIEW_COMBO_BOX

Description
Properties for an OCIO view combo box.
Properties
Name Description Type Writable
callback Gui event callback. The signature is: callback(component, event) with component the component on which the event happened and event of type octane.gui.eventType. function true
displayName The name of the OCIO display containing the selected OCIO view, or empty to not use an OCIO view. string true
enable true if the component is enabled. boolean true
height Height of the component in pixels. number true
mouseCallback Mouse event callback. The signature is: callback(component, event, position {x, y}, wheelscroll {x, y}). Event is of type octane.gui.eventType. function true
name Name of the component. string true
tooltip Tooltip that appears when the mouse hovers over the component. Not all components can display tooltips. string true
type Type of the component. number false
viewName The name of the selected OCIO view, or empty to not use an OCIO view. string true
width Width of the component in pixels. number true
x X-offset relative to the parent component in pixels. number true
y Y-offset relative to the parent component in pixels. number true

octane.gui.PROPS_GUI_PANEL_STACK

Description
Properties for a panel stack.
Properties
Name Description Type Writable
callback Gui event callback. The signature is: callback(component, event) with component the component on which the event happened and event of type octane.gui.eventType. function true
captions Caption appearing for each child in the panel stack. This list must have the same size as children. string true
children List of the child components. userdata true
enable true if the component is enabled. boolean true
height Height of the component in pixels. number true
mouseCallback Mouse event callback. The signature is: callback(component, event, position {x, y}, wheelscroll {x, y}). Event is of type octane.gui.eventType. function true
name Name of the component. string true
open true if the child is opened, false otherwise. This list must have the same size as children. boolean true
tooltip Tooltip that appears when the mouse hovers over the component. Not all components can display tooltips. string true
type Type of the component. number false
width Width of the component in pixels. number true
x X-offset relative to the parent component in pixels. number true
y Y-offset relative to the parent component in pixels. number true

octane.gui.PROPS_GUI_PROGRESS_BAR

Description
Properties for a progress bar.
Properties
Name Description Type Writable
callback Gui event callback. The signature is: callback(component, event) with component the component on which the event happened and event of type octane.gui.eventType. function true
enable true if the component is enabled. boolean true
height Height of the component in pixels. number true
mouseCallback Mouse event callback. The signature is: callback(component, event, position {x, y}, wheelscroll {x, y}). Event is of type octane.gui.eventType. function true
name Name of the component. string true
progress Value between 0 and 1 indicating the progress. A negative value puts the progress bar in indefinite mode. number true
text Text to appear on the progress bar. string true
tooltip Tooltip that appears when the mouse hovers over the component. Not all components can display tooltips. string true
type Type of the component. number false
width Width of the component in pixels. number true
x X-offset relative to the parent component in pixels. number true
y Y-offset relative to the parent component in pixels. number true

octane.gui.PROPS_GUI_SLIDER

Description
Properties for a slider.
Properties
Name Description Type Writable
callback Gui event callback. The signature is: callback(component, event) with component the component on which the event happened and event of type octane.gui.eventType. function true
enable true if the component is enabled. boolean true
height Height of the component in pixels. number true
logarithmic true for a logarithmic slider, false for a linear slider. boolean true
maxValue Maximum value of the slider. number true
minValue Minimum value of the slider. number true
mouseCallback Mouse event callback. The signature is: callback(component, event, position {x, y}, wheelscroll {x, y}). Event is of type octane.gui.eventType. function true
name Name of the component. string true
step step interval between 2 discrete slider values number true
tooltip Tooltip that appears when the mouse hovers over the component. Not all components can display tooltips. string true
type Type of the component. number false
value Value of the slider in range [minValue, maxValue] number true
width Width of the component in pixels. number true
x X-offset relative to the parent component in pixels. number true
y Y-offset relative to the parent component in pixels. number true

octane.gui.PROPS_GUI_TABLE

Description
Properties for a table.
Properties
Name Description Type Writable
callback Gui event callback. The signature is: callback(component, event) with component the component on which the event happened and event of type octane.gui.eventType. function true
enable true if the component is enabled. boolean true
header List of strings that make up the header of the table. The table will have exactly the number of columns as there are items in the header list string true
height Height of the component in pixels. number true
items Items to fill the table cell. The table is filled left-to-right, top-to-bottom. If there aren't enough items in the list to fill a row then the rest of the cells are left empty. string true
mouseCallback Mouse event callback. The signature is: callback(component, event, position {x, y}, wheelscroll {x, y}). Event is of type octane.gui.eventType. function true
multiSelect Allow selecting multiple rows. boolean true
name Name of the component. string true
selectedRow One of the rows currently selected in the table, -1 if no row is selected. number true
selectedRows The rows currently selected in the table, as a sequence. Set only when multiple selection is enabled number true
showHeader true to show the table header, false to hide the table header. boolean true
tooltip Tooltip that appears when the mouse hovers over the component. Not all components can display tooltips. string true
type Type of the component. number false
width Width of the component in pixels. number true
widths List with a width for each column. number true
x X-offset relative to the parent component in pixels. number true
y Y-offset relative to the parent component in pixels. number true

octane.gui.PROPS_GUI_TABS

Description
Properties for a tabbed component.
Properties
Name Description Type Writable
callback Gui event callback. The signature is: callback(component, event) with component the component on which the event happened and event of type octane.gui.eventType. function true
children List of the child components. userdata true
currentTab Index of the current opened tab. number true
enable true if the component is enabled. boolean true
header Text to appear on each tab. string true
height Height of the component in pixels. number true
mouseCallback Mouse event callback. The signature is: callback(component, event, position {x, y}, wheelscroll {x, y}). Event is of type octane.gui.eventType. function true
name Name of the component. string true
tooltip Tooltip that appears when the mouse hovers over the component. Not all components can display tooltips. string true
type Type of the component. number false
width Width of the component in pixels. number true
x X-offset relative to the parent component in pixels. number true
y Y-offset relative to the parent component in pixels. number true

octane.gui.PROPS_GUI_WINDOW

Description
Properties for a window.
Properties
Name Description Type Writable
allowScroll Allow scrolling. Can be set to "-" (no scrolling), "h" (horizontal only), "v" (vertical) and "hv" (both). The default value ("") is equivalent to "v" when using a grid layout, and "-" otherwise. string true
callback Gui event callback. The signature is: callback(component, event) with component the component on which the event happened and event of type octane.gui.eventType. function true
children List of the child components. userdata true
enable true if the component is enabled. boolean true
gridLayout Grid layout embedded in this window. The grid will be resized to the same size as this window. userdata true
height Height of the component in pixels. number true
mouseCallback Mouse event callback. The signature is: callback(component, event, position {x, y}, wheelscroll {x, y}). Event is of type octane.gui.eventType. function true
name Name of the component. string true
resizable true to make this window resizable. Only makes sense when a grid layout is used on the window. boolean true
text Text to appear on the top of the window string true
tooltip Tooltip that appears when the mouse hovers over the component. Not all components can display tooltips. string true
type Type of the component. number false
width Width of the component in pixels. number true
x X-offset relative to the parent component in pixels. number true
y Y-offset relative to the parent component in pixels. number true

octane.gui.PROPS_NUMERIC_BOX

Description
Properties for a numeric box.
Properties
Name Description Type Writable
callback Gui event callback. The signature is: callback(component, event) with component the component on which the event happened and event of type octane.gui.eventType. function true
displaySlider true if a slider is displayed in the box. boolean true
enable true if the component is enabled. boolean true
height Height of the component in pixels. number true
logarithmic true for a logarithmic slider, false for a linear slider. boolean true
maxValue Maximum value of the numeric box. number true
minValue Minimum value of the numeric box. number true
mouseCallback Mouse event callback. The signature is: callback(component, event, position {x, y}, wheelscroll {x, y}). Event is of type octane.gui.eventType. function true
name Name of the component. string true
step step interval between 2 discrete values number true
tooltip Tooltip that appears when the mouse hovers over the component. Not all components can display tooltips. string true
type Type of the component. number false
useSlider true if this numeric box works as a slider (so the user can drag to change values). boolean true
value Value of the box in range [minValue, maxValue] number true
width Width of the component in pixels. number true
x X-offset relative to the parent component in pixels. number true
y Y-offset relative to the parent component in pixels. number true

octane.gui.PROPS_TEXT_EDITOR

Description
Properties for a text editor.
Properties
Name Description Type Writable
callback Gui event callback. The signature is: callback(component, event) with component the component on which the event happened and event of type octane.gui.eventType. function true
enable true if the component is enabled. boolean true
height Height of the component in pixels. number true
mouseCallback Mouse event callback. The signature is: callback(component, event, position {x, y}, wheelscroll {x, y}). Event is of type octane.gui.eventType. function true
multiline true if the text editor is multiline. boolean true
name Name of the component. string true
text Content of the text editor. string true
tooltip Tooltip that appears when the mouse hovers over the component. Not all components can display tooltips. string true
type Type of the component. number false
width Width of the component in pixels. number true
x X-offset relative to the parent component in pixels. number true
y Y-offset relative to the parent component in pixels. number true

octane.apiinfo.PROPS_ATTR_INFO

Description
Table with info about an attribute.
Properties
Name Description Type Writable
defaultFloats Contains the default value, if this is a float attribute. number false
defaultInts Contains the default value, if this is an integer/bool attribute. number false
defaultString Contain the default value, if this is a string/filename attribute. string false
description Description of the attribute. string false
endVersion The Octane version that dropped this attribute. number false
id The identifier of the attribute. number false
isArray TRUE if the attribute stores an array. boolean false
minVersion The minimum Octane version that supports this attribute. number false
type The type of data stored in the attribute. number false

octane.apiinfo.PROPS_BIT_MASK_PIN_INFO

Description
Table with info about a bit mask pin.
Properties
Name Description Type Writable
bitCount Bit count. number false
bitNames Display names of each bit. string false
colour Color of the pin (ARGB encoded). number false
defaultNodeType Default node type for pins of this type. number false
defaultValue The default bit mask value. number false
description Description of the pin. string false
endVersion Octane version that dropped this pin. number false
groupName Name of the group this pin belongs to. For dynamic pins or pins without a group this will be an empty string. string false
id The static pin ID. For dynamic pins the ID is always set to P_UNKNOWN. number false
isDynamic true if this pin is a dynamic pin. boolean false
isTypedTexturePin Whether the texture pin has a value type boolean false
label Label of the pin. For dynamic pins this is the same as the name of the pin. string false
minVersion Octane version that introduces this pin. number false
name Name of the pin. string false
shortBitNames Short display names of each bit. string false
type Type of the pin. number false

octane.apiinfo.PROPS_BOOL_PIN_INFO

Description
Table with info about a bool type pin.
Properties
Name Description Type Writable
colour Color of the pin (ARGB encoded). number false
defaultNodeType Default node type for pins of this type. number false
defaultValue The default value of the pin. number false
description Description of the pin. string false
endVersion Octane version that dropped this pin. number false
groupName Name of the group this pin belongs to. For dynamic pins or pins without a group this will be an empty string. string false
id The static pin ID. For dynamic pins the ID is always set to P_UNKNOWN. number false
isDynamic true if this pin is a dynamic pin. boolean false
isTypedTexturePin Whether the texture pin has a value type boolean false
label Label of the pin. For dynamic pins this is the same as the name of the pin. string false
minVersion Octane version that introduces this pin. number false
name Name of the pin. string false
type Type of the pin. number false

octane.apiinfo.PROPS_ENUM_PIN_INFO

Description
Table with info about an enum type pin.
Properties
Name Description Type Writable
colour Color of the pin (ARGB encoded). number false
defaultNodeType Default node type for pins of this type. number false
defaultValue The default enum value of the pin. number false
description Description of the pin. string false
endVersion Octane version that dropped this pin. number false
entriesCount The number of enum entries in the pin. number false
entryLabels The labels of each enum entry. string false
entryValues The enum values of each entry. number false
groupName Name of the group this pin belongs to. For dynamic pins or pins without a group this will be an empty string. string false
id The static pin ID. For dynamic pins the ID is always set to P_UNKNOWN. number false
isDynamic true if this pin is a dynamic pin. boolean false
isTypedTexturePin Whether the texture pin has a value type boolean false
label Label of the pin. For dynamic pins this is the same as the name of the pin. string false
minVersion Octane version that introduces this pin. number false
name Name of the pin. string false
type Type of the pin. number false

octane.apiinfo.PROPS_FLOAT_PIN_INFO

Description
Table with info about a float type pin.
Properties
Name Description Type Writable
allowLog TRUE if the user interface should allow a logarithmic slider interface. boolean false
colour Color of the pin (ARGB encoded). number false
defaultIsLog TRUE if the user interface should use a logarithmic slider interface (if possible). boolean false
defaultNodeType Default node type for pins of this type. number false
defaultValue The default value of the pin. number false
description Description of the pin. string false
dimensionCount The number of dimensions the float pin requires. number false
dimensionNames The names given to the dimensions. string false
displayPercentages TRUE if the user interface should display the values in percentages. boolean false
endVersion Octane version that dropped this pin. number false
groupName Name of the group this pin belongs to. For dynamic pins or pins without a group this will be an empty string. string false
id The static pin ID. For dynamic pins the ID is always set to P_UNKNOWN. number false
isColor TRUE if the user interface should display a colour swatch. boolean false
isDynamic true if this pin is a dynamic pin. boolean false
isTypedTexturePin Whether the texture pin has a value type boolean false
label Label of the pin. For dynamic pins this is the same as the name of the pin. string false
maxValues The maximum value the pin accepts for each dimension. number false
minValues The minimum value the pin accepts for each dimension. number false
minVersion Octane version that introduces this pin. number false
name Name of the pin. string false
sliderMaxValues The maximum slider value of the pin for the slider user interface for each dimension. number false
sliderMinValues The minimum slider value of the pin for the user interface for each dimension. number false
sliderSteps The minimum step size for the slider user interface for each dimension. number false
type Type of the pin. number false
useAspectRatio TRUE if the user interface should allow changes to all three componentswhich keep the aspect ratio. boolean false
useSliders TRUE if the user interface should use sliders for this pin. boolean false

octane.apiinfo.PROPS_GRAPH_INFO

Description
Table with info about a graph type.
Properties
Name Description Type Writable
attributeInfoCount Number of attributes defined for this node type, including deprecated ones. number false
category The category name used to sort/group this graph. string false
defaultName Default name of the graph. string false
description Description for this node item. May be empty. string false
isInspectable TRUE if graphs of this type can't be inspected or opened. boolean false
outputType Output type of the graph. number false
type Type of the graph. number false

octane.apiinfo.PROPS_INT_PIN_INFO

Description
Table with info about an int type pin.
Properties
Name Description Type Writable
allowLog TRUE if the user interface should allow a logarithmic slider interface. boolean false
colour Color of the pin (ARGB encoded). number false
defaultIsLog TRUE if the user interface should use a logarithmic slider interface (if possible). boolean false
defaultNodeType Default node type for pins of this type. number false
defaultValue The default value of the pin. number false
description Description of the pin. string false
dimensionCount The dimension of the int pin. number false
dimensionNames Names of the dimensions. string false
endVersion Octane version that dropped this pin. number false
groupName Name of the group this pin belongs to. For dynamic pins or pins without a group this will be an empty string. string false
id The static pin ID. For dynamic pins the ID is always set to P_UNKNOWN. number false
isColor TRUE if the user interface should display a colour swatch. boolean false
isDynamic true if this pin is a dynamic pin. boolean false
isTypedTexturePin Whether the texture pin has a value type boolean false
label Label of the pin. For dynamic pins this is the same as the name of the pin. string false
maxValues The maximum value the pin accepts for each dimension. number false
minValues The minimum value the pin accepts for each dimension. number false
minVersion Octane version that introduces this pin. number false
name Name of the pin. string false
sliderMaxValues The maximum slider value of the pin for the slider user interface for each dimension. number false
sliderMinValues The minimum slider value of the pin for the slider user interface for each dimension. number false
sliderSteps The minimum step size for the slider user interface for each dimension. number false
type Type of the pin. number false
useSliders TRUE if the user interface should use sliders for this pin. boolean false

octane.apiinfo.PROPS_NODE_CONFIGURATION

Description
A specific configuration of value types of a texture node's output and texture inputs
Properties
Name Description Type Writable
interface PROPS_NODE_CONFIGURATION_INTERFACE The resolved value types of the output and texture inputs table false
nodeType The type of node this configuration is for (i.e: octane.NT_TEX_MATH_BINARY) number false
parameters PROPS_NODE_CONFIGURATION_PARAMETERS The parameters controlling what the value types of output and texture inputs resolve to table false

octane.apiinfo.PROPS_NODE_CONFIGURATION_INTERFACE

Description
The resolved texture value types of the node's output and texture inputs in the configuration
Properties
Name Description Type Writable
inputPinIds The pin ids of the texture input pins (i.e: octane.P_INPUT) number true
inputValueTypes The resolved value type of the texture input pins (i.e: octane.textureValueType.VECTOR4) number true
outputValueType The resolved value type of the texture output (i.e: octane.textureValueType.VECTOR4) number true

octane.apiinfo.PROPS_NODE_CONFIGURATION_PARAMETERS

Description
Parameters that control what the texture types of output and inputs are resolved to in the configuration
Properties
Name Description Type Writable
inputValueType octane.textureValueType The chosen input value type for the main input (octane.textureValueType.UNKNOWN can not be set) number true
isInputValueTypeToggled Whether the value type of secondary inputs is toggled boolean true
outputValueType octane.textureValueType The chosen output value type (octane.textureValueType.UNKNOWN if can not be set) number true

octane.apiinfo.PROPS_NODE_INFO

Description
Table with info about a node type.
Properties
Name Description Type Writable
attributeInfoCount Number of attributes defined for this node type, including deprecated ones. number false
category The category name used to group/sort this node. string false
compatibilityModeCount Number of compatibility modes defined for this node type. number false
compatibilityModeDescriptions Description of each compatibility mode. This is a brief description of how the old behavior differs from the current version of Octane, or empty if the mode represents the current version of Octane. string false
compatibilityModeNames Name of each compatibility mode. string false
compatibilityModeStartVersions Start version of each compatibility mode. This is the first version of Octane that has this behavior, i.e. the version where this compatibility mode was added. number false
defaultName The default name for nodes of this type. string false
description Description for this node item. May be empty. string false
isLinker TRUE if the node is a linker node. boolean false
isOutputLinker TRUE if the node is an output linker node. boolean false
isTypedTextureNode Whether the node's texture output/input(s) have a value type boolean false
minVersion Version when this node type was introduced. This will be zero for all nodes introduced before 11.0.0.10. number false
movableInputCountAttribute ID of the attribute defining the number of (movable) inputs. A value that isn't A_UNKNOWN indicates that this node has movable inputs and movableInputPinCount will be >= 1. If set to A_UNKNOWN, the node doesn't have any movable inputs and movableInputPinCount will be 0. number false
movableInputFormat The pin structure of each movable input, or movableInputFormat.NONE if this node node doesn't have movable inputs. Movable inputs can be moved from one node to another if and only if both nodes have the same movable input format. number false
movableInputName What each movable input is, e.g. "layer". This is used to build things like tooltips, e.g. "Delete layer.". Empty if the node doesn't have movable inputs. string false
movableInputPinCount The number of dynamic pins per movable input or 0 if the node doesn't have movable inputs. number false
outputType Output type of the node. number false
pinInfoCount Number of static pins defined for this node type, including deprecated ones. number false
takesPinDefaultValues If TRUE the default value can be set in the value attribute. boolean false
textureNodeTypeInfo PROPS_TEXTURE_NODE_TYPE_INFO Metadata related to texture nodes with typed texture inputs and/or output table false
type Type of the node. number false

octane.apiinfo.PROPS_OCIO_COLOR_SPACE_PIN_INFO

Description
Table with info about an OCIO color space type pin.
Properties
Name Description Type Writable
colour Color of the pin (ARGB encoded). number false
defaultColorSpace The default non-OCIO color space (octane.namedColorSpace), or octane.namedColorSpace.OTHER to use "default for file type". The default value is octane.namedColorSpace.OTHER. number false
defaultNodeType Default node type for pins of this type. number false
description Description of the pin. string false
endVersion Octane version that dropped this pin. number false
groupName Name of the group this pin belongs to. For dynamic pins or pins without a group this will be an empty string. string false
id The static pin ID. For dynamic pins the ID is always set to P_UNKNOWN. number false
isDynamic true if this pin is a dynamic pin. boolean false
isTypedTexturePin Whether the texture pin has a value type boolean false
label Label of the pin. For dynamic pins this is the same as the name of the pin. string false
minVersion Octane version that introduces this pin. number false
name Name of the pin. string false
type Type of the pin. number false

octane.apiinfo.PROPS_OCIO_LOOK_PIN_INFO

Description
Table with info about an OCIO look type pin.
Properties
Name Description Type Writable
colour Color of the pin (ARGB encoded). number false
defaultNodeType Default node type for pins of this type. number false
description Description of the pin. string false
endVersion Octane version that dropped this pin. number false
forView Whether the look will be applied to an OCIO view or an OCIO color space. If this is true an extra "use view look(s)" option will be shown (and be the default). boolean false
groupName Name of the group this pin belongs to. For dynamic pins or pins without a group this will be an empty string. string false
id The static pin ID. For dynamic pins the ID is always set to P_UNKNOWN. number false
isDynamic true if this pin is a dynamic pin. boolean false
isTypedTexturePin Whether the texture pin has a value type boolean false
label Label of the pin. For dynamic pins this is the same as the name of the pin. string false
minVersion Octane version that introduces this pin. number false
name Name of the pin. string false
type Type of the pin. number false

octane.apiinfo.PROPS_OCIO_VIEW_PIN_INFO

Description
Table with info about an OCIO view type pin.
Properties
Name Description Type Writable
colour Color of the pin (ARGB encoded). number false
defaultNodeType Default node type for pins of this type. number false
description Description of the pin. string false
endVersion Octane version that dropped this pin. number false
groupName Name of the group this pin belongs to. For dynamic pins or pins without a group this will be an empty string. string false
id The static pin ID. For dynamic pins the ID is always set to P_UNKNOWN. number false
isDynamic true if this pin is a dynamic pin. boolean false
isTypedTexturePin Whether the texture pin has a value type boolean false
label Label of the pin. For dynamic pins this is the same as the name of the pin. string false
minVersion Octane version that introduces this pin. number false
name Name of the pin. string false
type Type of the pin. number false

octane.apiinfo.PROPS_PIN_INFO

Description
Table with info about a pin.
Properties
Name Description Type Writable
colour Color of the pin (ARGB encoded). number false
defaultNodeType Default node type for pins of this type. number false
description Description of the pin. string false
endVersion Octane version that dropped this pin. number false
groupName Name of the group this pin belongs to. For dynamic pins or pins without a group this will be an empty string. string false
id The static pin ID. For dynamic pins the ID is always set to P_UNKNOWN. number false
isDynamic true if this pin is a dynamic pin. boolean false
isTypedTexturePin Whether the texture pin has a value type boolean false
label Label of the pin. For dynamic pins this is the same as the name of the pin. string false
minVersion Octane version that introduces this pin. number false
name Name of the pin. string false
type Type of the pin. number false

octane.apiinfo.PROPS_PROJECTION_PIN_INFO

Description
Table with info about a projection type pin.
Properties
Name Description Type Writable
colour Color of the pin (ARGB encoded). number false
defaultNodeType Default node type for pins of this type. number false
description Description of the pin. string false
endVersion Octane version that dropped this pin. number false
groupName Name of the group this pin belongs to. For dynamic pins or pins without a group this will be an empty string. string false
id The static pin ID. For dynamic pins the ID is always set to P_UNKNOWN. number false
isDynamic true if this pin is a dynamic pin. boolean false
isTypedTexturePin Whether the texture pin has a value type boolean false
label Label of the pin. For dynamic pins this is the same as the name of the pin. string false
minVersion Octane version that introduces this pin. number false
name Name of the pin. string false
type Type of the pin. number false
useImageProjection Determines if projection coordinates are generated in the same way as for 2D image textures. boolean false

octane.apiinfo.PROPS_STRING_PIN_INFO

Description
Table with info about a string type pin.
Properties
Name Description Type Writable
allowCustomValue if a list of values is given, determines if users may enter a value which is not in the list. boolean false
colour Color of the pin (ARGB encoded). number false
defaultNodeType Default node type for pins of this type. number false
defaultValue The default text of the pin. string false
description Description of the pin. string false
endVersion Octane version that dropped this pin. number false
filePatterns If isFile is true then this gives the file name patterns, separated by a semicolon. string false
forSaving if true the interface should allow browsing for a file which doesn't exist yet. boolean false
groupName Name of the group this pin belongs to. For dynamic pins or pins without a group this will be an empty string. string false
id The static pin ID. For dynamic pins the ID is always set to P_UNKNOWN. number false
isDynamic true if this pin is a dynamic pin. boolean false
isFile If true the interface should allow browsing for a file. boolean false
isTypedTexturePin Whether the texture pin has a value type boolean false
label Label of the pin. For dynamic pins this is the same as the name of the pin. string false
minVersion Octane version that introduces this pin. number false
multiline True, if we should allow entry of multiple lines of text. boolean false
name Name of the pin. string false
type Type of the pin. number false
values List of values to choose from. string false
valuesCount The amount of values. number false

octane.apiinfo.PROPS_SYSTEM_INFO

Description
Table with info about the user's system.
Properties
Name Description Type Writable
cpuClockMHz CPU clockspeed in MHz. number false
cpuModel CPU model description. string false
cpuNbCores CPU number of cores. number false
cpuVendor CPU vendor description. string false
driverVersion Driver version (NVIDIA only). string false
hash Commit hash. string false
octaneVersion OctaneRender version. string false
octaneVersionName Full OctaneRender version name. string false
octaneVersionNumber OctaneRender version number. number false
os Operating system description. string false

octane.apiinfo.PROPS_TEXTURE_NODE_TYPE_INFO

Description
Metadata related to texture nodes with typed texture inputs and/or output
Properties
Name Description Type Writable
canToggleValueTypesOfPins Whether the node can toggle the value type of some of its secondary texture inputs boolean false
configurations PROPS_NODE_CONFIGURATION[] The possible configurations the node has for texture inputs and/or output value types table false
inputMode octane.textureNodeTypeMode Specifies if the input value type is static, derived from the output value type, or can be set directly. number false
inputValueTypes octane.textureValueType[] Array of the possible types of values that main texture inputs can be set to number false
outputMode octane.textureNodeTypeMode Specifies if the output value type is static, derived from the input value type, or can be set directly number false
outputValueTypes octane.textureValueType[] Array of the possible types of values that the texture output can be set to number false
staticOutputValueType octane.textureValueType The node output's static value type (octane.TEXTURE_VALUE_TYPE_UNKNOWN if it has none) number false

octane.apiinfo.PROPS_TEXTURE_PIN_INFO

Description
Table with info about a texture type pin.
Properties
Name Description Type Writable
colour Color of the pin (ARGB encoded). number false
defaultNodeType Default node type for pins of this type. number false
defaultValue The default value of the pin. number false
description Description of the pin. string false
endVersion Octane version that dropped this pin. number false
groupName Name of the group this pin belongs to. For dynamic pins or pins without a group this will be an empty string. string false
id The static pin ID. For dynamic pins the ID is always set to P_UNKNOWN. number false
isDynamic true if this pin is a dynamic pin. boolean false
isTypedTexturePin Whether the texture pin has a value type boolean false
label Label of the pin. For dynamic pins this is the same as the name of the pin. string false
maxValue The maximum value the pin accepts. number false
minValue The minimum the pin accepts. number false
minVersion Octane version that introduces this pin. number false
name Name of the pin. string false
sliderMaxValue The maximum slider value of the pin for the slider user interface. number false
sliderMinValue The minimum slider value of the pin for the slider user interface. number false
type Type of the pin. number false
useSpectrum TRUE if the pin is used to fetch a spectrum. FALSE if we only need a float texture. Only makes sense for texture pins of material/emitter/medium nodes boolean false
valueType The pin's texture value type when its type mode is static or explicit, octane.textureValueType number false
valueTypeMode Specifies how a texture pin gains a value type, octane.texturePinValueTypeMode number false
valueTypeWhenToggled The pin's texture value type when its node toggles secondary input types, octane.textureValueType number false

octane.apiinfo.PROPS_TRANSFORM_PIN_INFO

Description
Table with info about a transform type pin.
Properties
Name Description Type Writable
colour Color of the pin (ARGB encoded). number false
defaultNodeType Default node type for pins of this type. number false
defaultRotationValue The default rotation value of the pin. number false
defaultScaleValue The default scale value of the pin. number false
defaultTranslationValue The default translation value of the pin. number false
defaultXAxis The default x axis of the pin. number false
defaultYAxis The default y axis of the pin. number false
defaultZAxis The default z axis of the pin. number false
description Description of the pin. string false
dimensionCount The dimension of the transformation. number false
endVersion Octane version that dropped this pin. number false
groupName Name of the group this pin belongs to. For dynamic pins or pins without a group this will be an empty string. string false
id The static pin ID. For dynamic pins the ID is always set to P_UNKNOWN. number false
isDynamic true if this pin is a dynamic pin. boolean false
isTypedTexturePin Whether the texture pin has a value type boolean false
isUvwTransform When true, this transform will be multiplied by its parent UVW transforms. boolean false
label Label of the pin. For dynamic pins this is the same as the name of the pin. string false
maxRotationValue The maximum rotation value the pin accepts. number false
maxScaleValue The maximum scale value the pin accepts. number false
maxTranslationValue The maximum translation value the pin accepts. number false
minRotationValue The minimum rotation value the pin accepts. number false
minScaleValue The minimum scale value the pin accepts. number false
minTranslationValue The minimum translation value the pin accepts. number false
minVersion Octane version that introduces this pin. number false
name Name of the pin. string false
type Type of the pin. number false

octane.render.PROPS_RENDER_COLOR_SPACE_INFO

Description
Table with properties about the color space to render to. The type property determines which other properties are relevant: octane.outputColorSpaceType.KNOWN_COLOR_SPACE: colorSpace, forceToneMapping octane.outputColorSpaceType.OCIO_COLOR_SPACE: ocioColorSpaceName, ocioLookName, forceToneMapping, ocioColorSpaceCurveType octane.outputColorSpaceType.OCIO_VIEW: ocioDisplayName, ocioViewName, ocioUseViewLook, ocioLookName, forceToneMapping, ocioColorSpaceCurveType octane.outputColorSpaceType.USE_IMAGER_SETTINGS: colorSpace
Properties
Name Description Type Writable
colorSpace Only relevant if type is octane.outputColorSpaceType.KNOWN_COLOR_SPACE or octane.outputColorSpaceType.USE_IMAGER_SETTINGS. If type is octane.outputColorSpaceType.KNOWN_COLOR_SPACE, the color space (octane.namedColorSpace) to use. If type is octane.outputColorSpaceType.USE_IMAGER_SETTINGS, the non-OCIO color space (octane.namedColorSpace) to use if the imager node doesn't have an OCIO view set. The default is octane.namedColorSpace.SRGB. number true
forceToneMapping Only relevant if type is octane.outputColorSpaceType.KNOWN_COLOR_SPACE, octane.outputColorSpaceType.OCIO_COLOR_SPACE or octane.outputColorSpaceType.OCIO_VIEW. Whether to apply Octane's built-in tone mapping (before applying any OCIO look(s)) when producing output in a color space other than sRGB. This may produce undesirable results due to an intermediate reduction to the sRGB color space. boolean true
ocioColorSpaceCurveType Only relevant if type is octane.outputColorSpaceType.OCIO_COLOR_SPACE or octane.outputColorSpaceType.OCIO_VIEW. The curve type (octane.colorSpaceCurveType) that the output color space should be considered to have, based on the expected usage of the output. This only affects metadata/statistics and whether upsampling is enabled. The default value is octane.colorSpaceCurveType.OTHER. number true
ocioColorSpaceName Only relevant if type is octane.outputColorSpaceType.OCIO_COLOR_SPACE. The name of the OCIO color space or role to use for output. string true
ocioDisplayName Only relevant if type is octane.outputColorSpaceType.OCIO_VIEW. The name of the OCIO display containing the view to use for output. string true
ocioLookName Only relevant if type is octane.outputColorSpaceType.OCIO_COLOR_SPACE or octane.outputColorSpaceType.OCIO_VIEW. If type is octane.outputColorSpaceType.OCIO_VIEW, this is only relevant if useViewLook is false. The name of the OCIO look to apply, or empty to apply no look. string true
ocioUseViewLook Only relevant if type is octane.outputColorSpaceType.OCIO_VIEW. Whether to use the default look(s) of the view specified by ocioDisplayName and ocioViewName instead of the look specified by ocioLookName. boolean true
ocioViewName Only relevant if type is octane.outputColorSpaceType.OCIO_VIEW. The name of the OCIO view (within the display specified by ocioDisplayName) to use for output. string true
type The type of output color space (octane.outputColorSpaceType) to use. The default value is octane.outputColorSpaceType.KNOWN_COLOR_SPACE. number true

octane.render.PROPS_RENDER_DEVICE

Description
Table with properties of a render device.
Properties
Name Description Type Writable
active TRUE if the device is used for rendering and/or denoising. boolean false
compositorDataSize The amount of device memory (bytes) used for compositor data. number false
computeModel CUDA compute model of the device. number false
denoiserResourceSize The amount of device memory (bytes) used by the denoiser. number false
deviceState Render device state (octane.renderDeviceState enum value). number false
errorCode The current high-level error state of the render device to fail (octane.renderError enum value). number false
errorMessage The first low-level error message that triggered the render device to fail (if it failed). string false
errorString The current high-level error state of the render device to fail (represented as a string value). string false
filmSize The amount of device memory (bytes) used for the intermediate film buffer and for the post-processing buffers. number false
geometryDataSize The amount of device memory (bytes) used for the scene geometry. number false
imageTexturesSize The amount of device memory (bytes) used for image textures. number false
index Index of the device. number false
name Name of the device. string false
runtimeDataSize The amount of device memory (bytes) used for sample state data during rendering. number false
shaderDataSize The amount of device memory (bytes) used for the shader system data. number false
supported TRUE if the device is supported by Octane. boolean false
supportedForDenoising TRUE if the device is supported for denoising by Octane. boolean false
supportedForRendering TRUE if the device is supported for rendering by Octane. boolean false
supportsHardwareRayTracing TRUE if the device supports hardware ray-tracing. boolean false
usedForDenoising TRUE if the device is used for denoising. boolean false
usedForRendering TRUE if the device is used for rendering. boolean false

octane.render.PROPS_RENDER_GEOM_STATS

Description
Table with the geometry statistics.
Properties
Name Description Type Writable
analyticLightCount The number of analytic lights on the devices. number false
displTriangleCount The number of triangles on the devices. number false
emittingInstanceCount The number of emitting instances on the devices. number false
emittingTriangleCount The number of emitting primitives on the devices. number false
gaussianSplatCount The number of gaussian splats on the devices. number false
hairCount The number of hair segments on the devices. number false
meshCount The number of meshes on the devices. number false
sphereCount The number of spheres on the devices. number false
triangleCount The number of displacement triangles on the devices. number false
voxelCount The number of voxels on the devices. number false

octane.render.PROPS_RENDER_MEM_USAGE

Description
Table with the memory usage.
Properties
Name Description Type Writable
freeMemory The amount of free memory on the device in MB. number false
outOfCoreMemory The amount out of core memory in MB used on the device for the current scene. number false
peerToPeer The amount peer to peer memory in MB mapped on the device for the current scene. number false
totalMemory The amount total amount of available memory on the device in MB. number false
usedMemory The amount of used memory on the device in MB. number false

octane.render.PROPS_RENDER_PASS_EXPORT

Description
Table with render pass export information.
Properties
Name Description Type Writable
exportName The export name of the render pass. If not set the default name for this pass is used. string true
renderPassId Id of the render pass to export. number true

octane.render.PROPS_RENDER_PASS_INFO

Description
Table with information about a render pass.
Properties
Name Description Type Writable
description The description of the render AOV. string false
exrLayerName The default name for EXR layers saved for the render AOV. string false
isGreyscale True if the render AOV is rendered as grayscale. boolean false
isInfo True if the render AOV is an info channel pass. boolean false
name The name of the render AOV. string false
nodeType The type (octane.nodeType) of the render AOV node that enables/disables this render AOV. number false
pinId (DEPRECATED) The ID of the pin on the render passes node (NT_RENDER_PASS) that enables/disables this render AOV. number false
renderPassId The ID of the render AOV. number false
shortName The abbreviated name for the render AOV. string false
subType Some render AOV nodes represent multiple render AOVs and the sub-type needs to be specified via the enum pin P_SUB_TYPE which needs to be set to this value. Will be 0 for all render AOV nodes that don't have a pin P_SUB_TYPE. number false

octane.render.PROPS_RENDER_PREVIEW

Description
Table with properties to render a material preview.
Properties
Name Description Type Writable
crop The cropping to apply to the film plane. Given as {X, Y, width, height}, and as proportion of the entire image size. {0, 0, 1, 1} will render the entire image. (0, 0) is the top left corner of the image. number true
materialNode The material node to preview userdata true
maxSamples Samples per pixel to render number true
objectSize The size (in meters) of the rendered object number true
objectType The type of the object to render, see the octane.previewType enum number true
size The size of the preview. number true

octane.render.PROPS_RENDER_REGION

Description
Table representing a render region.
Properties
Name Description Type Writable
active true to activate the specified render region, false to de-active the region and render the full image. boolean true
featherWidth horizontal and vertical width of the additional feather border. number true
regionMax x and y pixel coordinate values of the render region maximum. number true
regionMin x and y pixel coordinate values of the render region minimum. number true

octane.render.PROPS_RENDER_RESULT

Description
Table with a render result.
Properties
Name Description Type Writable
blendedSamples Samples blended for the current result. number true
changeLevel Change level of this result. number true
hasPendingUpdates If true, this result was rendered with some render data still missing, due to it still being compiled or loaded in the background. At a later point when all render data is ready you will start receiving results and statistics with the same changelevel but with this flag set to false. octane.render.start() will always block until no more data is pending. boolean true
image Rendered image (this can be an intermediate result). number true
maxSamples Max samples until we stop rendering. number true
renderPassId Id of the render pass this result represents. number true
renderTime Time in seconds we have rendered until this result was blended. number true
samples Samples calculated for the current result. number true
samplesSec Samples per second rendered. number true

octane.render.PROPS_RENDER_RESULT_STATISTICS

Description
Table with render statistics.
Properties
Name Description Type Writable
beautyMaxSamplesPerPixel The maximum samples per pixels rendered for the beauty passes. number true
beautySamplesPerPixel The samples per pixels rendered for the beauty passes. number true
beautySamplesPerSecond The samples per second rendered for the beauty passes. number true
bufferType The format of the result buffer (octane.tonemapBufferType). number true
changeLevel The change level of the render engine. number true
colorSpace The color space of the result (octane.namedColorSpace). number true
estimatedRenderTime Estimate of the total time to finish the render result (seconds). number true
hasAlpha True if the render result has an alpha channel. boolean true
hasPendingUpdates If true, this result was rendered with some render data still missing, due to it still being compiled or loaded in the background. At a later point when all render data is ready you will start receiving results and statistics with the same changelevel but with this flag set to false. octane.render.start() will always block until no more data is pending. boolean true
infoMaxSamplesPerPixel The max samples per pixels rendered for the info passes. number true
infoSamplesPerPixel The samples per pixels rendered for the info passes. number true
infoSamplesPerSecond The samples per second rendered for the info passes. number true
isHdr True if the render result is HDR. This is deprecated; you should check whether bufferType is not octane.tonemapBufferType.LDR instead. boolean true
isLinear True if the render result is in a linear color space. The value of this is implied by colorSpace unless it's octane.namedColorSpace.OTHER or octane.namedColorSpace.OCIO. boolean true
keepEnvironment True if the render result has an alpha channel but also the environment in the pixels where alpha is 0. boolean true
premultipliedAlpha True if the render result has premultiplied alpha. Deprecated: use premultipliedAlphaType instead. boolean true
premultipliedAlphaType The type of premultiplied alpha that the render result has (octane.premultipliedAlphaType). number true
regionSamplesPerPixel The samples per pixel for the render region. number true
renderPasses The list of render passes for which results are rendered. number true
renderState The state the render target was in when the statistics where created (octane.renderState) number true
renderTime The time spent rendering the result so far (seconds). number true
size The resolution of the render result. number true
subsampleMode The subsample mode in the render target (octane.subsampleMode) number true
tonemapPasses The list of render pass ids for which results are tonemapped. number true

octane.render.PROPS_RENDER_START

Description
Table with properties to start a render.
Properties
Name Description Type Writable
bufferType The format of the result buffer (octane.tonemapBufferType) to use. The default is octane.tonemapBufferType.LDR. This is ignored if the deprecated tonemapType property is set. number true
callback Callback to get intermediate render results. The current result is passed in as first parameter of type PROPS_RENDER_RESULT. function true
doUpdate If set to TRUE, the render data will be updated before the rendering starts. If set to FALSE, the render data needs to be updated manually via octane.changemanager.update(). boolean true
maxRenderTime Max render time (in seconds) until we stop rendering. number true
premultipliedAlphaType The type of premultiplied alpha (octane.premultipliedAlphaType) that the result should have. The default is octane.premultipliedAlphaType.NONE. number true
renderTargetNode The render target node to render. userdata true
restart If set to TRUE, the render is restarted, i.e. wipes the film buffer and starts from scratch. boolean true
statisticsCallback Callback to get intermediate render statistics. The current statistics are passed in as first parameter of type PROPS_RENDER_RESULT_STATISTICS. function true
tonemapType The tonemap type (octane.tonemapType) that should be used for the asynchronous tonemapping. The default value is -1, which means use the bufferType property and the colorSpaceInfo table passed to render.start instead. If set to any other value this will override those. This is deprecated; you should use bufferType and the colorSpaceInfo parameter instead. number true

octane.gridlayout.PROPS_GRID_LAYOUT

Description
Properties of a grid layout.
Properties
Name Description Type Writable
columnCount Number of columns in the top-level grid. number false
height Vertical size of the grid layout in pixels. number false
rowCount Number of rows in the top-level grid. number false
width Horizontal size of the grid layout in pixels. number false