Source/Render/Cycles/Standalone

= Cycles Standalone =

Cycles is integrated into Blender, but can also be built as a standalone renderer. This can be used for testing purposes, but also allows an integration into other 3D programs and pipelines.

Note though that the Cycles standalone application is a work in progress, and is not ready for production usage. It is recommended to use the C++ API directly when integrating into other software.

Download
No precompiled binaries are available at the moment. Instead you can get the source code (see below) and compile your own.

Usage
Cycles needs to be started from a terminal: cycles [options] file.xml

Use cycles --help, to get an overview of the available options.

When rendering with the GUI, you can press H to get an overview of available shortcuts. You can pause, cancel or restart a render or try the interactive mode, which allows basic camera navigation.

Source code
The Cycles source code can be found here. It's a standalone repository which just contains the Cycles engine. You can find more info and compile instructions there.

XML API
Cycles standalone has a XML API, which is used for mesh data and shader/settings import. There is no real API documentation at the moment, as the API is subject to change, but you can check the source code to get an idea:

app/cycles_xml.cpp: Main XML reading API. xml_read_file is the main function here, xml_read_scene calls the different XML loading routines for Geometry, Shaders and Settings then.

render/nodes.cpp: All shader nodes are declared here, check the strings in the add_input and add_output calls, these are the names used for shader parameters in XML (such as Scale or Radius for the Subsurface Scattering node).

Get Involved
Please see the current standalone code and its API as a proof of concept only. We hope to get feedback and/or patches from developers, who are interested in implementing Cycles into other applications. Please get in contact via the bf-cycles mailing list or write a comment on our developer site if you like to get involved: https://developer.blender.org/T38279