Octane OSL Node
Open Shading Language (OSL) is a small but rich language for programmable shading in advanced renderers and other applications, ideal for describing materials, lights, displacement, and pattern generation.
OSL was originally developed by Sony Pictures Imageworks for use in its in- house renderer used for feature film animation and visual effects, released as open source so it could be used by other visual effects and animation studios and rendering software vendors. Now it's the de facto standard shading language for VFX and animated features, used across the industry in many commercial and studio- proprietary renderers. Because of this, the work on OSL received an Academy Award for Technical Achievement in 2017.
OctaneRender® supports four (4) OSL node types:
Texture - An OSL texture shader is drawn using an Octane OSL texture node.
Projection - An OSL projection shader is drawn using an Octane OSL projection node.
Camera - An OSL camera shader is drawn using an Octane OSL camera node.
Vectron - An OSL Vectron
Each has its own requirements regarding the OSL shader signature. For these requirements, refer to the respective topics for each node in this documentation.
The Octane Render OSL docs are located here: https://docs.otoy.com/osl/

Octane OSL Texture: he OSL texture is a scriptable node, where you can write scripts with OSL (Open Shader Language) to define arbitrary Texture types and customize Materials and Shaders. To learn more about OSL, please refer to the OSL Implementation In Octane section in the Octane Standalone Appendix documentation.
Octane OSL Camera: The OSL Camera node is a scriptable node. You can create custom Camera types for any purpose ( such as VR warping) with OSL (Open Shader Language) scripts. It is a very flexible camera that matches the rendering to the existing footage. OSL is a standard created by Sony Imageworks. To learn more about OSL, please refer to the OSL Implementation In Octane section in the Octane Standalone Appendix documentation.
Octane OSL Projection: The OSL projection node is a scriptable Node where you can write OSL (Open Shader Language) scripts using the defined arbitrary Projection types. It works similar to an OSL texture node, but it connects to a Projection input. To learn about the generic OSL standard, see the PDF documentation.
Octane OSL Vectron: Procedural primitives using OSL vector geometry nodes let you create complex shapes, surfaces, volumes, warps, operators, and effects. By vectorizing meshes and volumes into Vectron objects, you can manipulate Vectron nodes in new ways. Examples include: spheres, strands, sound waves, infinite planes, liquids, clouds, oceans, flow field, and more.
OctaneRender® supports a subset of the OSL standard, plus a few extensions to use features specific to OctaneRender®.
Unsupported Features
Point cloud functions.
Dictionary lookup functions.
Message passing is generally not supported, except for the built-ins listed under "Octane extensions" (see below).
Derivatives.
trace(). For AO like effects, you can add a color input and connect the input pin to a Dirt node.
Material shaders and closure variables.
wavelength color(). Use _gaussian() instead.
struct variable types.
The global variables Ps and dPdt.
Partially-Supported Features
noise() doesn't support 4D noise, and doesn't support the Simplex and Gabor noise types.
The global variable time always has a value between 0 and 1, and represents the time within a subframe.
getmessage() and gettextureinfo() must have string literals as attribute names.