ArtMatic Designer and Explorer CTX References

by Eric Wenger

CTX 1.0 version presentation

Overview & basic concepts
Preferences
Canvas View, Main Gradient and View tools
Global Input Matrix
Tree Editing & Shading area
Parameter area
Mutations Explorer Dialog
Timeline and Keyframes Area
Left Tool buttons
Component Descriptions


Overview & basic concepts

ArtMatic is a unique kind of software : it can be seen as a resolution-independent modular graphics synthesizer as well as a mathematical visual programming engine.
In ArtMatic you don't create an image. You design the rules or algorithm that creates images. In a sense ArtMatic is a development environment, a huge toolbox of over two thousands of functions you can assemble in infinite ways.
ArtMatic's unique user-interface allows you to interact with it in various manners. You can create trees from scratch, tweak and mutate any of the provided presets and examples, or discover and explore entirely new image spaces with ArtMatic's powerful randomization and mutation tools.
ArtMatic Designer is primarily conceived for creating images and animation. With its enormous set of components you can:


Keep in mind ArtMatic Designer is an 'open' system. There is in fact no limit to what it can be used for. With
Compiled Tree you can design your own custom functions that will further enrich the huge toolbox of ArtMatic Engine. ArtMatic Designer and Explorer rendering is limited to 2D. It's companion ArtMatic Voyager is designed for 3D rendering of terrains, clouds and 3D objects created in ArtMatic Designer. ArtMatic Explorer lets you tweak and render existing ArtMatic systems with all the richness possible with the various shaders and 'published' parameter space.

Structure Tree & Components

The structure Tree is a web of Components wired together in limitless combinations. It is essentially a flow chart that defines the procedural mathematics creating the image. The tree takes its initial inputs from image space coordinates, time and various optional global inputs. Values are flowing from top to bottom and transformed by each Component until the bottom Component(s) outputs the final results.
Each component has up to four parameters that can be modified over time using keyframes. Component are represented graphically by a Tile and the term 'Tile' is often used in place of 'Component'. Component can have 1 to 4 input dimensions and 1 to 5 outputs. When a Tree final component outputs a single value, the tree can be seen mathematically as a scalar 2D or 3D function. When the Tree final component outputs a RGBA vector the entire tree is an image rendering algorithm that creates each pixel color and alpha value. The number of input dimension used by the Structure Tree determines if the system is 2D, 3D, or even 4D if the Tree uses global time input as well.
The number of inputs of a Component sets its dimension, the number of outputs sets its type (scalar or vector (2D to 5D)). Component are often refered to using the in-out number before component's name so that the component's type and dimension is clear. For example 31 perlin noise will refer to a 3D scalar noise function that has 3 inputs (3D) and 1 output (scalar).

A number of components allow you to access and process external images and movies (up to eight different movies or pictures can be accessed in a single Tree). These components are especially powerful for creating video special effects. Complex fades and wipes and sophisticated distortion and color-processing can all be animated and rendered as movies or image lists.

Components are described individually in the component reference html files organized by input/output dimensions. A particular component's reference can be invoqued from ArtMatic Designer with command-F (OnLine Help Menu) after selecting a Tile. The aim of a full interactive reference system accessible on line is to provide an accurate and scientific database of what each component does to make ArtMatic huge toolbox a seriously documented toolset usable not only in computer graphics but also for education in mathematics and computer science.

1D Components links:
11 components , 12 components , 13 components , 14 components

2D Components links:
21 components , 22 components , 23 components , 24 components , 25 components

3D Components links:
31 components , 32 components , 33 components , 34 components

4D Components links:
41 components , 42 components , 43 components , 44 components

A structure Tree can hold other structure trees in the form of Compiled Tree. That makes highly complex and rich systems with hundreds of components possible and easier to manage.

Parameter space

A structure Tree defines a mathematical system that can have many states depending on all the component's parameters settings.
The ensemble of parameters values in a Tree is sometimes refered to as the "parameter space". A point in the parameter space is just a set of all particular parameter values at that point. ArtMatic "parameter space" dimensions can be huge, often over hundred dimensions. Keyframes stores a a particular point in that space. Changing parameters moves the sytem to another point in parameter space and animation can be seen as a trajectory in the parameter space between keyframes "points".
Not all points in this giant space give interesting results but ArtMatic was designed to provide many ways to explore this space to find interesting places like randomisation, keyframe interpolation and the Mutation dialog.

Resolution and outputs

ArtMatic's resolution is nearly infinite, both in depth and range. By default the canvas view is centered around zero and has a radius of Π. Moving the virtual camera or zooming it in or out can often reveal vastly different images from the same Tree. As a mathematical procedural function a Tree is resolution-independent. Some fractal function are nearly infinite in depth so you may zoom by several order of magnitude and still find details. The large set of procedural patterns and noises function provided by ArtMatic engine are only limited in extension by the range of what is representable in 64 bit floating point which is huge. Thus you can have a terrain than span an entire planet surface of 30 000 km square.

By default ArtMatic Designer shades 1D output Trees with the current Gradient by implicitely mapping the output values to the current gradient. Trees with 2 outputs are shaded likewise but both outputs gradient are blended into a single color. Trees with 3 outputs are interpreted as RGB Tree and the resulting color is taken directly from the RGB value. Trees with 4 output tile are interpreted as RGBA with the fourth output setting the transparency or Alpha channel. Negative and zero values are treated as transparent.
ArtMatic Tree systems that outputs RGBA can be rendered as PNG or TIFF images that includes an Alpha channel. PNG images can be rendered in 16 bit per channel allowing the maximum quality. Scalar Tree systems (a single-valued output) are usually rendered using specific shaders that maps the output to RGB and will be rendered without alpha channel as RGB tree systems.
The number of output Tile is not limited to 1. ArtMatic Voyager makes use of multi-outputs trees for various shading needs as documented for example in Shading DF Objects / Using extra outputs.
ArtMatic Designer can also render Multi outputs systems in the RGB Multi mode mode or using various shading options like depth cuing.

Definitions

ArtMatic Engine refers to the toolbox and rendering engine that is shared by ArtMatic Designer, ArtMatic Voyager, V-Quartz and future Apps that will benefit from the same engine.

Structure Tree : The ArtMatic Structure Tree, often called ArtMatic system, is basically the set of Components connected together that define the procedural function described in Structure Tree & Components. An ArtMatic file is composed by its Structure Tree plus additional shading variables and optional gradients data.
Structure Tree design and editing is only available with ArtMatic Designer in the Design Room.
Most of the time you will modify existing trees by changing its components and eventually adding new functions. Advanced users may want to create complete trees from scratch. All the Tree building and editing tools needed for that are found in the
Tree Editing & Shading Area.
Learn more about designing tree concepts in the Building trees page.

Compiled Tree : A Compiled Tree (CT for short) packs a Structure Tree in a single Component. With CTs, Structure Tree can be nested without any limit in levels (CTs can contains CTs that contains CTs). A single level can contain several CTs so there is no limit in the complexity of an ArtMatic Structure Tree.
In general Compiled trees that have the same number of inputs than outputs can be used in feedback mode for recursive computation. Compiled trees are described in more details for each Component type in the component references organized by input/output dimensions. For example
21 Compiled tree will discuss 2D scalar CTs while 33 Compiled tree will discuss 3D vector CTs.

Streams : Stream simply refers to the flow of data through a set of components. An RGB-stream refers to the series of components through which RGB or 3D vector data are flowing. RGBA streams are 4D vector data (that can be packed or not) and represents a color + alpha.

Band-limited. A function is band-limited when its frequency content falls within specific intervals. (You can think of frequency as a measure of the size of the function's features--high frequencies generate small-scale features and low frequencies generate large-scale features). The Perlin Noise function is a good example of a band-limited function whose output falls in a very narrow frequency band.

Continuity. A function is said to be continuous when its derivative (its local slope) does not exhibit any sudden changes. Continuity is an important issue for ArtMatic Voyager. Certain functions (such as the Step Quantize function) produce a non-derivable, non-continuous result. Many discontinuous functions have a "smooth" variant or a smoothing parameter that softens the discontinuity and makes the result continuous

Linearity. A function is said to be linear when its derivative (or slope) has a constant value. If you connect the derivative operator to a linear function (such as the plane Ax+ By +C component), you will just obtain a single color -- an expensive way to clear your canvas.

Multi-fractal. A Multi-fractal function is a function with a varying fractal dimension. Fractal dimension is a measure of statistical roughness. Multi-fractals are very good for capturing the complexity of natural textures.

Periodicity. A function is said to be periodic when it repeats itself ad infinitum with a specific period.




ArtMatic Designer User Interface

Interface Basics & Conventions

Almost everything that you can see in the user interface is active, including the text, icons and glyphs. Pretty much every graphic item can be clicked or dragged to perform a task. Like all U&I Software applications, most tools are accessible directly from the user interface.

  • Tool Tips :
    The Tool Tips area found at the bottom-center of the main window provides useful information about whatever is under the mouse. Move the mouse over any user interface item to display helpful information. Often the tip will include shortcuts keys if any.

  • Numerical controls and slider:
    Numeric controls allow you to change values by typing or by clicking and dragging. When typing, complete entry by pressing return or entry key. Selecting another field should also validate the entry. You can change the number with smaller increments when pressing the option key while dragging a slider horizontally or a number field vertically.
    Shortcuts:
    * ( times 2) changes the field value to twice its value
    / (divide by 2) changes the field value to half its value
    i (invert) changes the field value to 1/value ,
    d (degrees) interpret the entry as degrees converted to radians and shall be used at the end of keyboard entry. for example to get exaxtly Pi type 180 then 'd'. d should validate the entry automatically.
    option key: All numeric fields and sliders are sensible to option key to increase precision by 50x.

  • Color Pickers
    Color swatches allow you to change various colors. Click and hold a swatch to pop up the color picker. The cursor becomes an eyedropper that picks up the color beneath it when the mouse is released which makes it easy to grab color from anywhere in the background. Unfortunately Apple in recent OS makes the reading of screen pixel subject to Authorisation so you will have to grant ArtMatic the right to access the screen otherwise the color picker won't work. Keep in mind the picker can read any color anywhere on the screen which is extremely useful as you can pick a color from a picture unrelated to Voyager on the desktop for example.




  • Preferences

    (Designer and Explorer)

    Aspect Ratio

    Sets the overal aspect ratio of the canvas. The 16:8 (or 2:1) ratio is handy to build and visualize 360° environment maps or when using the Voyager 3D Sky Dome Global Input Matrix mode.

    Maximum iterations for fractals

    Determines the number of iterations used by fractal noises and certain iterative functions. The larger the value, the higher the resolution of these functions when zoomed in as iterations adds higher frequencies most of the time. With large values images may take longer to calculate. Setting this value high will produce more higher harmonics that lets you zoom far inside the fractal to discover lovely details found at the "microscopic" level. This will affects also the level of details of ArtMatic based terrains used in ArtMatic Voyager.

    Automatic high res render

    When ON this checkbox option will trigger an anti-aliased rendering after any changes in the ArtMatic Trees or its parameters. This is generally unneeded as it slows down the workflow and a hi-res render can always be done at will using the render hi-res eye icon below the canvas view.

    Preview Resolution

    Preview resolution sets the pixel size resolution of preview rendering and fullscreen animation playback. In main UI the animation playback uses an adaptative resolution and this number sets the lowest possible pixel size.
    Note that "Preview Resolution" is set at 2 when ArtMatic Designer or Explorer launches.

    Window Skin

    Sets the skin of the ui among :


    Sound


    Random tables




    Canvas View, Main Gradient and View tools



    Rooms toggle

    Explore Room and includes the browsing services. A new room the "Explore" room allows to play with and animate an existing system without having to handle the complexity of a full tree design and editing. It will be the only room in a low cost version of ArtMatic. The advanced user can "publish" parameter from the tree in the designer room even if they are located deep inside CT's. "Published" parameters will appear on top of the 6 parameters that the explorer room offer to show.

    Main Gradient

    (top right)

    Precisely how the final output value is mapped to a color depends on the whether the tree is scalar or RGB-based. For RGB-based trees, the color is calculated directly from the 3 output values of the last Tree tile. If the tree is scalar or 2D (2 outputs), the color mapping is handled by the active Shading mode function that uses the main gradient to provides the colors. In most cases low values will be mapped to the left-hand color of the gradient and higher values are mapped to the colors further right.
    Even when the Tree is RGB and don't use the Main Gradient it can have components that uses it to shade the component results like 13 Main Gradient .

    What is a gradient? A gradient is a special type of palette that has a user-definable number of color slots. Each slot has its own color. ArtMatic automatically generates all the colors that lie between adjacent slots by linear interpolation ; so, with a few mouse clicks you can create rich palettes. For example, if you want to create a palette that goes from black to white with all the shades in between, you only need a gradient with two slots. Select black as the left-hand color and white as the right-hand color, and ArtMatic does the rest. Each keyframe can have its own gradient. You can store your own gradients in ArtMatic's gradient library. You can also export and import gradient libraries using the Gradient Editor.
    Click on any color box of the gradient to choose another color. With shift key down the change is stored into all keyframes. Use the Edit gradient below for structural changes and more editing options.

    Edit gradient

    This buttons calls the standard U&I Gradient editor to modify the Main Gradient.

    Choose gradient

    This buttons lets you choose the Main Gradient among the built-in list of gradients.

    Canvas View


    You can think of the visible canvas as a downward-facing camera's view of a portion of an infinite grid or plane (the Cartesian plane you may remember from geometry class). Every visible pixel is a point on the plane/grid. (Pixels are the individual dots of which a digital picture is comprised--it is an abbreviation of "picture element".) When the canvas is in its default centered position, the center point is 0, 0; coordinate values increase to the right and up. The
    Structure Tree as a whole acts as a giant equation that takes a visible point's coordinates as input and generates the color used to draw the point. More simply, the Tree is just the sequence of operations that transforms the input canvas coordinates (x,y) into a final pixel color. The canvas view is then just the visible portion of the coordinates send to the Tree for rendering the image.
    To change the region of the plane/grid that is visible, click and drag the canvas left, right, up or down or use the zoom tools. When exploring a system, it is a good idea to zoom in and out on the system since the character of many systems varies dramatically when viewed from up close and from afar. Also, dragging the canvas left or right can reveal surprising details. The default center coordinates of a new system are 0,0 with the zoom set at 1 so that the x and y values range from -Π to +Π (from minus to plus Pi).
    When shift key is pressed the new view position and zoom level will be stored in all keyframes, thus suppressing any view animation.
    The Animation & Camera Setup dialog displays the current zoom level and the x,y coordinates of the canvas' center point. It can be invoked from the Animation pop up menu or by simply typing 'a'.

    Default view

    This button reset the canvas view to the default scale (-Π,+Π) centered around zero. When shift key is pressed the default view scale and position will be stored in all keyframes as well.

    zoom slider

    Drag this button left-right to change the current canvas view zoom level. The image preview will be at lower resolution while dragging but should redraw at normal resolution when you let go. When shift key is pressed the new zoom level will be stored in all keyframes as well.

    Render high resolution (h)


    This button Trigger an anti-Aliased higher resolution rendering of the current canvas view. The left tool bar similar icon will trigger a full screen render.




    Tree Editing & Shading Area



    This area gather all tools to edit the Structure Tree, set up Tree shading variables and choose the global inputs mode. It also display a graphic representation of the Tree (the Structure Tree View) that is fully interactive. The Structure Tree View editing area is only available in the ArtMatic designer "Design" and "Listen" room.
    The 3 pop up menu "insert", "replace" and "tree" provides all the tool you need for advanced and efficient Tree creation and modification. Their most useful functionalities are also echoed in the Tree editing tool bar icons below the Structure presets pop up icon. Knowing and using these menus can save you a lot of tedious work when modifying the Tree structure.

    Structures presets (pop up)


    The Structure Presets folder provides many structural starting points for Tree building in ArtMatic Designer design room. Use this pop up to choose a new tree structure template from the Structure presets folder. Unless you keep option key down the chosen structure tree will be automatically mutated. With option key down ArtMatic Designer will simply load the structure preset file.
    You can add in the Structure Presets folder your own ArtMatic files when they can be used as a generic template.

    "Insert" pop up menu

    "Replace" pop up menu

    "Tree" pop up menu

    Global Input Matrix


    The Global Input Matrix feeds information to the Structure Tree. In addition to the x and y canvas coordinates, time, audio analysis, and ArtMatic Voyager information can be sent to the tree. ArtMatic Voyager information is only sent to the tree when the ArtMatic structure is being used inside of ArtMatic Voyager. The other global inputs are generally used for one of two applications: 1) using time or audio input to influence the tree when rendering animation/movies, 2) using information from ArtMatic Voyager to create color maps influenced by elevation and/or slope.
    The information passed out of global inputs (Z, W, A1, A2, A3, and A4) is determined by the Input Matrix mode. The x and y global inputs are always the (x,y) coordinates of the ArtMatic Canvas. The input matrix mode is set in the Input Matrix Setup dialog that is invoked by clicking on any label of the input matrix.


    When Editing a Compiled Tree the Global inputs graphic make room for slots representing the CT's own inputs. They are labelled i1, i2, i3 and i4. You can actually remove one of these inputs if not used by (option click) on the input circle that corresponds. In some occasion you may want to connect a Tile inside the CT to global inputs bypassing the CT inputs. For example you may feed the CT with transformed coordinates while one element in the CT may need to use the original untransformed coordinates. In that case you will connect that tile to the global X Y inputs instead of i1 i2.

    Structure Tree View

    There is a lot you can do by manipulating the Tree directly in the Structure Tree view area. The structure tree is the arrangement of components that generates the displayed image. Each component has a Tile that represents it and that displays the inputs/outputs and its connections with other tiles. Each tile's outlets are fed into the inlets of the following tile. Tiles at the top are connected to the global inputs. When editing a CT they can be connected to either the CT's input or the global inputs.
    To select a Tile click on it. It should be outlined in green. Selecting a tile will update a number of associated ui items like its parameters, its algorithm and options if any. Once selected you can then modify all tile's settings by adjusting the parameter sliders in the Parameters area and various associated pop ups like main algorithm or options.

    To change a tile's function, click on any tile and hold down the mouse button to pop up a menu of the available functions. The function list varies according to the number of a tile's inlets and outlets.
    To change a tile input and output dimensions control-click on any tile and hold down the mouse button to pop up a menu of the available tile's types. By convention the tile type name use their number of inputs and outputs as a class name. For example a 2D surface with 2 inputs and a single output will be referred as "21 componentname". You may also access the replace menu while clicking on a tile with option+command key down.
    When using Command-option click on a father above you invoke the Reconnect Dialog (see below).

    Tree Connections

    The connections between tiles determine how information travels through the tree. While many people stick to the preset structure trees that we provide, it is possible to create trees from scratch or modify the connections between the tiles of a preset structure. This section details a few important Structure Tree concepts and some valuable techniques for editing trees. When tiles are added or removed, ArtMatic does its best to guess about how the tile connections should be re-configured, but there will be many cases where you will need to use the Reconnect dialog to make the desired connections.
    The component or components that feeds the tile inputs are usually named father(s);

    There are two ways to change the connections between a child tile and a parent tile found higher on the tree or between a tile and the input matrix :

    Automatic connection (command-click) forces an automatic connection from a child to a parent tile. The 'child' is the current selected Tile outlined in green. When an automatic connection is made, ArtMatic will try to connect all of a tile's inputs to the output of the parent tile. To use automatic connection, select a tile (the child) and command-click on a tile higher-up on the tree or on one of the labels of the global input matrix.
    The Reconnect Dialog (option-command-click) allows for custom manual connection of tile inputs and outputs. To invoke the Reconnect Dialog, select a tile and then command-option-click on a tile at the same or higher level. By using manual connection (with the Reconnect tile), a tile's inputs can be fed by different parent tiles.
    Using the Reconnect Dialog is mandatory when you need to change the order of connections, like connecting x input to a z output for example.
    Both methods require that the parent tile be higher on tree than the child tile and can be used to either connect loose or open inputs or to change a tile's parent. Lear more about Tree design in the Building trees page.

    Delete Tile (backspace)


    Delete the current selected Tile. The functionnality is also provided within the tree pop up menu. Designer does its best to reconnect father(s) and son(s) automatically. Note you can't delete the last tile, as a Tree needs at least one tile.

    Insert Below (t)


    Insert a component below the current selected Tile. The component will have the same number of inputs as its father outputs. The functionnality is also provided within the insert pop up menu.
    When you need specific dimensions or/and specific output types more options are available in the insert menu.
    Tip : When building complex trees or experimenting with mutations or random path animation, you may find it helpful to insert filter components to restrict the range or modify the values being fed into some but not all of a component's inputs (or outputs).

    Insert Above (y)


    Insert a component above the current selected Tile. The same functionnality is also provided within the insert pop up menu.

    Make group (g)


    Insert a similar component to the right of the current selected Tile and adds a mixing component below. The same functionnality is also provided within the replace pop up menu. This is a convenient way to complexify a particular feature of the tree.

    Add branch (b)


    Insert a similar component to the right and below the current selected Tile without connecting further. This is a handy way to start a new branch.The functionnality is also provided within the insert pop up menu. An alternative way to create a new branch is to use insert->add parallel branch function that will add a new similar component to the right and connected to the same father(s).

    Complete Tree


    In most cases, ArtMatic uses the output of a single component (the first component of the last row) to create an image. Trees should generally be complete (i.e. have only one component–at the bottom of the tree–with an unconnected output) except for cases where an unconnected output is used for depth cueing or global shading or where the output is used by ArtMatic Voyager. Because you will often find yourself needing to connect parallel branches while editing tree structures (especially if you are creating a system with several pictures or 3D objects), the complete tree tool has been provided to automatically complete incomplete trees.
    When the complete tree tool is clicked, ArtMatic will mix the branches of the tree by adding and connecting the appropriate components. For example, to mix two parallel RGB branches, ArtMatic will add any required pack components then mix the branches with a packed RGB mixer. Mixed systems that feature an RGB branch and a 1-output gradient-based branch will be mixed with the appropriate 4->3 mixing component. Multiple 1D branches will be mixed with a two or three to one mixer. In rare cases, ArtMatic may not be able to determine how to mix the system, in which case a beep will sound when the complete tree tool is pressed. If this happens, you will have to add some tiles yourself to complete the tree. If there is an RGB branch and a 2-output branch to mix, for instance, a 2D Scalar (2-in/1-out) component should be added at the end of the two output branch.
    You can often save yourself a lot of work by using this tool.
    Tip: Joining branches at the top. If a tree has parallel branches that you would like to connect at the top, choose the Insert menu's Insert Top Tile. For 2D trees a rotation tile is inserted at the top of the tree to which both branches are connected. You can change the component to something other than rotation if you desire.


    Tree name box

    This box display the names of current Tree and subtrees hierarchy. Click on the Name to rename the main Tree or the Compiled Tree if currently open for edition. This will open a dialog displaying some information about the trees and providing a text field where you can rename the Tree or Compiled Tree.


    Exit Compiled Tree edition


    Available when editing a Compiled Tree this buttons will send you to the top of the tree hierarchy.
    Shortcut : escape key.


    Edit Compiled Tree (e)


    Available when the selected Tile is a Compiled Tree this buttons will open and display the CT content for further editing.
    Shortcut : Select a CT tile and type 'e'.




    Image and Movies Inputs

    Choose Pict/Movie


    Available when the Tree use a Picture/Movie component , either black & White like 21 Pict/Movie or full Color like 24 RGBa Pict/Movie , this pop up menu allows you to choose which picture input channel is used by the component.
    Choosing an empty slot prompts you to select a picture or movie that will be added as an available input source.
    To further organise the inputs list select the "Setup inputs" item. The invoked dialog will let you delete or add new inputs. When using movies you will be able also to select a starting time and some playback speed options.

    Movies formats
    ArtMatic Engine 8 uses AVfundation to display movie frames. Apple new system unfortunately doesn't support as many codecs as Quicktime did but most incompatible quicktime '.mov' files can still be converted by Quicktime player. You may bypass codecs limitation and compression by using list of pictures (tiffs or png) as animation input. Any file lists where a frame number with leading zeroes ends the file name (for example myanim00001.tif, myanim00001.tif, myanim00002.tif) will be interpreted as an animated file by the engine.

    Keeping Track of Referenced Files
    ArtMatic Engine does its best to track input source files. In some cases, generally because a file has moved, was deleted or renamed, when a ArtMatic file is opened ArtMatic will search for the missing input. ArtMatic starts the search with the folder holding the ArtMatic file then searches all folders one level higher. When this happens a message, Searching for File, appears in the Tool Tips area. You can cancel the search by pressing the Escape key. We strongly recommend that you keep the ArtMatic file and the picture/movie file it references in the same folder or a folder in the same directory as the file's parent directory so it is in the search path. That way you can copy the entire folder hiearchy to another disk without risking loosing references. For example the Libraries has a folder called image that is shared by several other artmatic file folders.


    Tree Shading controls



    This group of tools relates to the Tree's color mapping and shading mode. They are available both in ArtMatic Designer and ArtMatic Explorer.

    If the bottom tile of the tree has a single output and is passing out an RGB or RGBA packed stream, the tree is treated as an RGB or RGBA tree (rather than a scalar tree using gradient coloring) and the shading options are adjusted accordingly. ArtMatic Voyager will treat these as RGBA trees as well.
    Scalar trees are rendered using various mappings involving the main gradient and optional components values.

    Auxiliary colors squares

    The auxiliary color squares are color pickers for choosing the auxiliary colors used by some shading algorithms and various components. The number of auxiliary colors used is determined by the shading algorithm or the presence in the Tree of components using them. Note that auxiliary colors are global to a particular ArtMatic file and are not stored in keyframes so they can't be animated.

    Depth cue color

    The color used by Infinity, depth cuing when ON and certain Components like 44 Alpha Fade) or 23 Pict/Movie Overlay.

    Aux color A

    Auxiliary color A (default : dark red) is used by several scalar tree procedural shaders (see below) and by RGB Multi mode mode for Tree extra outputs. A couple of components uses this color as well like 44 RGB * alpha or 13 Shaded plain color in certain modes.

    Aux color B

    Auxiliary color B (default : green) is used by several scalar tree procedural shaders by RGB Multi mode mode for Tree extra outputs. A couple of components uses this color as well like 44 RGB * alpha in certain modes. S:P Logic &Profiles uses Aux color B to shaded the edges for example.


    Shading modes

    The Icon below the color squares controls the current shading algorithm or Shading mode. Note that Shading mode is global to a particular ArtMatic file so it is not stored in keyframes and can't be changed over the course of an animation.
    Click here to pop up a list of the color shading algorithms which are described below. The contents of this menu changes depending on ArtMatic Tree output type.
    For scalar trees (1 or 2 outputs) the shading algorithms are the following:

    For RGB or RGBA trees (which includes packed RGBA output trees) the shading algorithms are the following:


    Shading options popup menu

    In addition to the color shading algorithms, there are two powerful shading options: depth cueing and global shading. Depth cueing provides fog and distance effects and global shade provides lighting and shadow control. Both of these options can be assigned either automatically by ArtMatic or manually by the user. These options are accessed via the Shading Options popup menu. Click here to pop up a list of various shading and rendering options.


    Bump gain


    RGB Bump (main out) and Geographic Clut uses the Tree elevation or alpha value to bump-shade the result implicitly. The Bump gain button lets you slide the amplitude of this bump shading. It is often quite useful to have a beter grasp of terrain relief features or DF field derivative.
    For final renderings we recommand to use custom shaders where the derivative is shaded using the
    Structure Tree components to have a better control of the bump shading function (instead of relying on RGB Bump mode). Examples of customised advanced bump shading technics can be found in the Libraries/Textures/Shaded Surfaces/ folder




    Parameter area



    Parameter grid options


    This popup turn on/off various grids mode to restrict the parameters settings to the selected grid. Options: no parameter grid, Integer Grid, Snap Grip (closely spaced grid), Pi/4 angle grid (this restricts rotation and other angle-based parameters to increments of 45 degrees), Pi/6 angle grid (this restricts rotation and other angle-based parameters to increments of 30 degrees).


    Randomize colors & shaders


    Mutate the active gradient and the active Shading mode.


    Randomize All ('$')


    Randomize all of the structure's function assignments, parameter values and color assignments. Control-click randomizes the entire structure tree as well as the function assignments. Tiles whose parameters are completely locked are protected from Randomize All.


    Randomize parameters


    Randomize the parameters of all unlocked tiles. Repeatedly clicking this tool is one way to explore the possibilities of a particular system. The parameter locks can be used to prevent randomization of a particular parameter.


    Mutations Explorer Dialog


    Invoque the Mutations Explorer dialog.
    The Mutations Explorer is one of ArtMatic's most powerful tools and uses genetic algorithms to generate mutations while your choices takes the role of natural selection. It allows to quickly and easily explore the huge
    Parameter Space of ArtMatic systems and mutate the current ArtMatic Structure Tree algorithm by randomly mutating it's tiles functions.
    When the mutations explorer first opens, the current canvas image is the parent (the large image in the upper-left). Clicking on the parent generates a new set of mutations. ArtMatic creates mutations by randomizing unlocked parameter values and the gradient and/or function assignments (depending on the selected options). Clicking any mutation (any 'child'), makes that mutation the new parent. If the auto-mutate option is turned on, clicking any mutation makes that child the parent and generates a new set of mutations.

    The Mutate (dice buttom) triggers a new set of mutations. Interesting mutations can be stored in the Keyframes using the Add or Replace Keyframe buttons.
    Clicking the OK icon button closes the dialog and validates the current state of the Tree.

    Mutation rate :
    The mutation rate slider controls the mutation probability. High values will let you explore a large region of parameter space. Low values are often used to fine-tune a system or to find small variations in very sensitive systems like fractals. 'Locked' parameters won't be mutated so you can use this property to protect certain parameter from mutations. Flow controllers like Iterations and Recursions parameters are not mutable, even unlocked.

    Explore modes :
    Several strategies are provided to explore the Parameter Space:

    Mutate function type:
    This checkbox is available in cumulative mode only. When ON mutations includes algorithm changes and tile component changes. Use this to explore systemic variations. Note that changes of algorithm or tile component will invalidate all existing keyframes as the mathematics of the entire structure tree will have changed.


    Keyframes Parameters


    Invoke the Keyframes Parameters Envelop dialog that display time curves for each active parameter of the current selected tile. This dialog is available when more than 2 keyframes exists in ArtMatic Designer only. To create Keyframes visit the Timeline and Keyframes Area.


    A, B , C , D (pop up buttons)

    Theses popup menus gives you access to parameter-related functionalities and shortcuts for each used parameter :


    Parameter sliders (A,B,C,D)

    Component's parameters are modified using the parameter sliders. Each tile in a structure has from 0 to 4 parameters (settings). Each keyframe in a file can have different settings. To modify a tile's current parameters, click on the tile then manipulate the parameter sliders. To see what a parameter controls, move the mouse over the slider and note the Tool Tips display. Drag a slider to change its value or option click to make a small changes. To store parameters changes in a keyframe you may need to replace the current keyframe. It is possible to edit the parameter enveloppe across keyframes directly using the Keyframes Parameters button.

    Parameter Locks

    The parameter locks (found to the right of the parameter sliders) allow function parameters and component assignments to be locked to prevent them from being changed by operations such as mutation that normally change parameter values. When a parameter is locked its animation is disabled as well.
    To lock all tiles, shift-click any unlocked parameter. Locked parameters shows the lock icon in red. To unlock all tiles, shift-click any locked parameter. This makes it possible to use the Mutations dialog to explore variations of only a few parameters.
    Function locking. It is possible to lock a tile's function assignment so that it is immune to mutation. To lock a tile so that its function will not be changed, lock all three parameter locks when the tile is selected. Even if the component has no parameters, all three locks must be locked to lock the tile.
    Locking parameters and functions is a great way to explore ArtMatic systems. Parameter/function locking makes it possible to use mutations and the large die to explore subtle refinements. For example, you might have a system that uses a few tiles to provide the surface texture. You could lock all of the parameters and functions of the system except for the tiles that provide the texture and then use the big die or the Mutations window to discover new textures created by function mutation that affects only the few components that provide the texture.

    Note: When parameters are locked, keyframe animation uses the last values assigned to the locked parameters when animating the system. As a result, any parameter changes stored between keyframes are ignored while the parameters are locked. The parameter changes are not lost however; they are just ignored. When the parameters are unlocked, any parameter changes stored in the keyframes will be honored during animation. Parameter locking is intended for refined mutation control and for investigating how a particular parameter affects the system.


    Parameter optional gradient

    Certain components uses an indexed gradient directly from the built-in gradients library like 13 Indexed Gradient . This gradient is displayed for editing when such a component's tile is selected and the button below may open the standard Gradient editing dialog if needed.


    Parameter optional color

    Certain components parameters sets a RGB color. This color pop up is available when such a component's tile is selected and can be use to edit the 3 RGB value at once. For example the 13 Set Constant tile sets a constant RGB color with its parameters.



    Timeline and Keyframes Area



    This area is focused on Animation controls. It provides the Keyframes UI, the main timeline slider and various buttons to control keyframes. Keyframes stores not only all the current Tree parameters but also the current Canvas View Zoom and Position and the current Main Gradient. The animated sets of zoom and position stored in Keyframes constitute what we call the "camera path".
    All components constituting the Tree can have its parameters animated as long as they are not locked. ArtMatic creates animation by changing the system's parameters over time morphing the values from keyframe to keyframe. Various modes of parameter interpolation are available : they can be chosen inside the
    Keyframes Parameters dialog. The default is using bezier curve to ensure a smooth interpolation.

    Sound can be used to modulate ArtMatic animations when they are rendered, and a soundtrack can be added or generated (using the sound algorithm last used on the Sound page) when rendering. Audio modulation is a powerful technique to use for creating video for music videos and multimedia compositions. To modulate ArtMatic animation with audio, audio input must be routed from the Global Input Matrix into the Structure Tree. See the Global Input matrix section for more information about this topic.


    Tip : Making global changes to all keyframes
    Holding down the shift key when performing many operations applies the operation to all of the file's keyframes. (These operations include: gradient selection, zooming and scrolling the canvas, and changing parameter values.)

    Animation pop up menu


    The Animation menu provides the following:

    time slider

    This is the main slider that controls global ArtMatic Designer time. The time flows from 0 to the given duration. You can use the time slider even when no keyframes are present when the ArtMatic tree is using one of the time global inputs.
    You can click and drag on the time slider to preview the animation in non real time or simply click at a particular time to see a frame preview at that moment.

    Keyframes thumbnails

    Keyframes store all tree's components current parameters values so they can be animated over time. They also store the current canvas view and the main gradient. The ArtMatic system's keyframes will be mapped in time so that all the keyframes play back over the course of the animation. When just 2 Keyframes are present the first represent the state of the system at time 0 and the second at time 1 (the end of the animation).
    Keyframes are not limited to animation : they are often used to store interesting variations of the huge
    Parameter Space of ArtMatic Trees. Sliding the timeline will interpolate these parameters to let you discover more interesting points in the space of possibles.

    Click on any empty slot to store a new keyframe from the current Tree parameters.
    Click on a keyframe will select it. When selecting a keyframe the Tree parameters variables stored in the keyframe will be copied to the current Tree, with the exeption of parameters that were specifically LOCKED to not be animated. The time slider will also reflect the particular time position of the selected keyframe and send this time information to Voyager when the Voyager hot link toggle is ON. In Explore room it will hilit the published parameter envelop value if the parameter has an envelop. Then you can modify the keyframe parameter directly in the envelop as well as with the parameter slider. Altough you can edit the entire envelop it is safer to just move the hilited parameter to see the changes result.
    Command-Click on a keyframe will replace it.
    Option-Click on a keyframe will delete it.

    Note : Keyframes thumbnails are not recomputed for every changes you can make so they may become misleading in certain cases. To force a full keyframe redraw you can lock/unlock any parameter.


    Play (space bar)


    Preview the current animation. The resolution adapts to the CPU load of the current Tree to keep fluidity of motion. Unlike in earlier versions the priority is given to frame rate to ensure at least 12 fps. Slow systems may playback very pixellated. The old small preview mode is gone but you can alteratively use the small animation preview provided by the Animation & Camera setup dialog that won't change the resolution.
    Shortcut: Spacebar. Even without keyframes play will flow time so that time-sensitive or time connected components will be animated as well.


    Duration MSF


    The watch icon is used to set the animation duration. Click and drag left or right to change the duration. Duration is displayed in MSF format (minutes, seconds, frames)

    Delete (keyframe)

    Delete the selected keyframe. Shortcut: option-click any keyframe to delete it.

    Insert (keyframe)

    Calculates a new keyframe that is halfway between the selected keyframe and the keyframe after it.

    Add (keyframe)

    Add a new keyframe with the current Tree parameters. Shortcut: you can also click on the first blank keyframe to add a new keyframe.

    Replace (keyframe)

    Replaces selected keyframe with the current Tree parameters. You may also use command-click on a keyframe slot to perform the replacement.




    Left Tool buttons

    Open ArtMatic file


    This button echoes the File->Open command and will prompt you to locate an ArtMatic file (extension .artm).

    Save ArtMatic file


    This button echoes the File->Save command and will either directly save the current scene if the file already exists or prompt you to set a name to save the ArtMatic file.

    Render pict to screen


    Render the current scene fullscreen with Anti-Aliasing ON. Once the current image render is done you may animate the system using Space bar. The full screen animation preview is done at the preview resolution set in Preferences and won't be changed for slow systems. Frame rate may vary with the CPU load of the ArtMatic Tree. When the animation mode is set to "free run loop" or the global input matrix is set to audio input the fullscreen animation playback will loop forever. With fast ArtMatic Trees you can set the preview resolution to 1.

    Render Image to file (cmd-R)


    This button opens the Render Picture dialog that gather the settings to render image file(s). Size pop up and size fields: Common dimensions are provided by the Size pop up menu. The numeric fields accepts any entry up to 24000. Over 15K size the rendering will be performed directly to disk and may take a while.

    Formats:
    PNG 8 bit per channel,
    PNG 16 bit per channel:
    PNG is a lossless widespread format an is recommended. Use the 16 bit version for printing and high quality graphics. It will solve any banding or quantisation artefacts.
    TIFF : Save the image in 8 bit per channel, TIFF format.
    PDF : Save the image in 8 bit per channel, PDF format (.pdf).
    JPG : Save the image in 8 bit per channel, jpeg format (.jpg). Note that jpg has no alpha channel. Use this for high compression Web application.

    HeightMap 1025 16 bits,
    HeightMap 2049 16 bits:
    Save the image in RAW, 16 bit per channel gray scale image. This is suited to store terrain elevation in 1025 and 2049 square format for 3D applications like Unity 3D.

    PNG HeightMap 16 bits:
    16 bit per channel gray scale image of any size suited to store terrain elevation or high quality texture channel for bump mapping in 3D applications.

    Render all keyframes (checkbox): When set ArtMatic will render one image for each stored keyframes. Keyframes can be used to store interesting variations of a given tree. In that case it may be quite useful to render the entire set instead of just the current image.

    4 by 4 anti-aliasing:(checkbox)
    Turn ON/OFF 16 samples 16 sample per pixel rendering mode. Use it to improve quality for fractals and systems with a lot of high-frequencies.



    File Path:

    Click this button to set the image file path. By default the path is set to be in the same directory as the ArtMatic file. You don't have to set it for every save as it will remember the output directory. Note that no warning is given if you overwrite a file when saving without setting the path.

    Render Animation (cmd-M)


    Click the Render Animation tool to render an animation. The file does not need keyframes to be animated. To stop a render, press the escape key.

    Mode popup (movie or picture sequence)- The options are:
    Movie :
    ArtMatic Engine 8 uses AVFundation to save animation in the .mov format. Possible codecs are :
    H264 (no Alpha),
    Apple ProRes 422 (no Alpha),
    Apple ProRes 4444 (8 bit Alpha),
    Apple ProRes 4444 (10 bit Alpha)
    Apple ProRes 4444 will support alpha channels and the 10 bit version offers the best quality. H264 is more compressed and widely supported.
    Note: Make sure you set the file path as no warning is given if you overwrite a .mov file.

    List of Images (png),
    List of Images (Tiff).
    The "List" options render the movie frames as sequentially numbered image files (in either PNG for List of Pictures or TIFF for List of Tiff). Such sequences are recognized by most movie editing programs and by ArtMatic pict/movie inputs. Using image sequences is a good idea when performing a long render since nothing will be lost if the computer shuts down unexpectedly. (movies will likely be unplayable if the render is interrupted by anything else than escape key).

    Preset popup:
    - The preset popup provides a list of common frame size/frame rate combinations. Choosing a preset cause the format and fps fields to be filled in with the appropriate values.

    4 by 4 anti-aliasing:(checkbox)
    Turn ON/OFF 16 samples per pixel rendering mode. Use it to improve quality for fractals, systems with a lot of high-frequencies or high contrast graphics with fine details. Rendering time will be multiplied by 4 with this option ON.
    Note the default anti-aliasing is 2 by 2, that is, 4 samples per pixels.

    File Path:

    Click this button to set the animation file path. By default the path is set to be in the same directory as the ArtMatic file. You don't have to set it for every save as it will remember the output directory. Note that no warning is given if you overwrite a file when saving without setting the path.

    Save sound file


    Available in Listen room this button will save the sound file produced by the current Tree. The file is AIFF and uses 44.1K for sampling rate.
    Note that when rendering the sound to file the internal maths are more precise than in real time playback and the sound may slighly differs.

    Voyager hot link (toggle)


    This button lets you turn ON and OFF the Hot link with ArtMatic Voyager. When hot link is ON, changes in parameters and Structure Tree will be communicated to Voyager through Apple Events. When Voyager recieves such an event it will pop up a floating preview of the 3D rendering. It makes of course the design of terrains, textures and the construction of volumetric object much more friendly as you can see the 3D rendering interactively while adjusting parameters.
    Transport time information is also transmitted when using the time slider or selecting a keyframe.
    When the tree is structurally modified ArtMatic will send the new tree to Voyager using a temporary file so the original is preserved. Unless you save the file in ArtMatic or the voyager scene in Voyager you can always go back to the original.
    Changes in artmatic globals like optional colors and the main gradient colors are not transmitted automatically. However they will be transmitted if you turn OFF and immedialty ON the hot link : when turning ON the entire file is send as explained above for structural changes.

    Important Notes:
    - Using this feature along with published parameters changes of ArtMatic Tree within Voyager may lead to inconsistent situations. Make sure that if you use the Quick Edit ArtMatic params & shaders inspector and have changed the ArtMatic tree parameters inside Voyager to reload the file into ArtMatic again so that ArtMatic knows about the changes. Otherwise as soon as you modify the tree in ArtMatic it will undo the changes.

    -If you use "save as" in Voyager that will de facto change the path of the ArtMatic file (ArtMatic files are stored within the Voyager bundle file) meaning the one opened in ArtMatic will no longer point to the right file location and still point to the original.
    Again the solution is to reload the ArtMatic file into ArtMatic from Voyager after "save as" to make sure you edit the correct file.


    TroubleShooting:
    If communication don't work as expected there are a number of thing to double-check :
    -Is the Voyager hot link ON ?
    -Is the current ArtMatic file pointing to the right one ? To be sure re-open the file from ArtMatic Voyager. Same thing if you have changed the file name in either softwares.
    -Make sure ArtMatic and Voyager versions are compatible and the only one running. Use both CTX or 7.5/4.5 together and don't mix versions. If various versions are running simultaneously the OS may send the Apple Event to the wrong Application. -At last resort the OS Apple Events system is probably damaged and rebooting the computer usually fixes the problem.


    Component Descriptions

    Designer contains a library of components. Each a module you patch together in a structure tree. They all have a fixed number of inputs and outputs. When you click on a component in a "tree" a popup appears showing all the other components of the same Input/Output type. Click below for component descriptions:


    Reminder: ArtMatic Designer is an "open" system. There is in fact no limit to what it can be used for. With a Compiled Tree in Designer, you can design your own custom functions that will further enrich the huge toolbox of the ArtMatic Engine.