Shadron is a procedural asset generator and editor. You can use it to design graphics, 3D models, cube maps, particle systems, and even sound with simple or complex scripts based on GLSL shaders. Adjustable parameters and automatic file reloading allow you to fine-tune the result in real time.

The output is controlled by user scripts, which can be dragged-and-dropped or copy-pasted into the Shadron window. Check out the examples bundled with the program or create a text file in your favorite text editor and start writing your own. You may also want to watch the video tutorial online for a quick start.

The Shadron scripting language has C-like directives (#something) and declarations, called sections. Each section starts with a keyword, and has its own rules for what should follow it. Some sections represent objects, which are typically displayed in their own window, and hold input or output media content. Also available is a set of builtin constants and a library of commonly used functions.

The basic sections are:

  • const – a constant value
  • parameter (or param) – an adjustable parameter
  • glsl – GLSL shader code
  • template – a C++ style template
  • export – specification for producing output files

The object sections are:

And the more advanced sections are:

  • variable (or var) – a modifiable state variable
  • function – a simple function
  • procedure – a function with state-changing side effects
  • event – an event handler declaration
  • generator – a recursive generator of vertex data
  • vertex_list – a predefined sequence of vertex data
  • stream – specification for streaming output to extensions
  • set – a parameter setter
  • watch – a live view of an expression's value
  • comment – a user comment

Please see the reference page for the section you want to use in your script. If you don't know where to start, I would suggest creating an image or an animation described by a glsl function.

Command line version

Shadron is distributed with a command line version of the program, Shadrun.exe. This utility allows you to perform pre-defined exports or run streams without interaction with the GUI. To run all exports in a given script, simply launch Shadrun.exe with the filename of the script as the argument. You can also use any of the optional parameters:

  • -s (stream) – run streams instead of exports
  • -f (force) – do not require confirmation to overwrite files, no user interaction
  • -m (mute) – only print errors and user queries
  • -D – macro definition, defines a macro that will be available throughout the script. The macro name must follow immediately, and optionally its value after an equal sign, e.g. -DHIGH_QUALITY or -D"FRAME_SIZE=ivec2(640, 480)"

ShadronPlayer.exe is another version, a barebones redistributable player that can be used to run scripts in a standalone window. Make sure to package Shadron Player together with the library folder.

Keyboard shortcuts

The following keyboard shortcuts can be used in the Shadron GUI:

NOTE: In the macOS version, Ctrl is replaced by Command.

Main program window:

  • Hold Ctrl – finer parameter control
  • Ctrl+V – load script from clipboard (file or text code)
  • Ctrl+O – load script through "Open file" dialog
  • F5 – reload current script (or startup tip)
  • Ctrl+F5 – reload current script and reset all user states (parameter values, input images)
  • Alt+F5 – toggle autorefresh
  • F6 – start/cancel export/stream
  • Ctrl+F6 – start export/stream, overwrite files without asking
  • Alt+F6 – toggle between export and stream (if applicable)
  • Ctrl+F7 – reset all parameters
  • F1 – open documentation
  • Alt+F1 – open examples directory
  • P – pause/resume animation
  • R – restart from the beginning
  • Alt+F – bring all windows to front
  • Ctrl+F4 – unload current script
  • Ctrl+Q – quit

Object windows:

  • Ctrl+C – copy output to clipboard (if applicable)
  • Ctrl+V – load input from clipboard (input windows only)
  • Ctrl+O – load input from file (input windows only)
  • Ctrl+S – save output as... (if applicable)
  • F5 – reload input file (input windows only)
  • Ctrl+F5 – reload original input file (input windows only)
  • Spacebar – pause/resume animation or play/stop sound
  • F11 – toggle fullscreen mode (or Escape to exit)
  • Ctrl+0/+/- – reset/increase/decrease view scale (if window is not resizable)
  • Tab – toggle white/black alpha background
  • G – toggle alpha background grid
  • A – toggle alpha channel blending (useful to inspect the color channels where alpha is low)
  • R – reinvoke initialization (particle system and feedback only)
  • Ctrl+F4 – unload input image (input windows only)
  • F8 – show/hide framerate counter (if animated)