//----------------------------//
ArtMatic 1 in 1 out components
//----------------------------//


Set Constant
Math tools #
Ax+B
Offset (x+A)
A - x
A/x
Abs x
Smooth Abs
A - Abs(x)
Mirror
Gaussian
Plateau
x squared
x power A
A power x
C Log (Cx+B)
Envelopes #
Power slope
A(1-exp(-x))
A/(xx+B-1)
Split & stretch
Sin x
Power sin #
Tile wave
Modulo
Saw waves #
U wave
x(Sin x)
Sin(Bx)/sin(x)
Sines cluster #
Tech Waves #
x + A sin Bx
Quantize
Smooth Steps
Variable Steps #
Sphere
Cubic Clip
Clip
Floor
Smooth Clamps #
Contrast
Semitones Seq
Grains
Discrete Random
Linear Random
Random
Periodic Random
Multi Perlin noise
Fractal noise
Randomize
Derivative
2D Derivative
Slope #
Line shaders #
Compare
Iterations
infinity gate/mask
Memory Add
Memory Fractal Add
Memory Logic#
Memory Maths
RGB Alpha Pack
11 Compiled tree


Introduction

11 components are scalar (single output) functions. Most of them act as filters that modulate or remap the incoming values. They also provide basic building blocks for implementing your own algorithms and formulas. In many cases, the component's name is the calculation performed by the component. An essential in-depth discussion of ArtMatic structures Trees and components is found in ArtMatic Designer References and in Building trees.
In the discussion below, x signifies the tile's input value. It is often useful to insert 11 components between other components (and at the end of the tree) in order to adjust individual value 'streams'.


11 Set Constant

parameters :
Algorithm dependent

discussion :
This component returns a constant value set by parameters regardless of the input value. The options popup provides three interpretations of parameter A: direct value, 1/value, angle in degree. When direct value is selected, the output value is the setting of parameter A. When the 1/value option is used, the output is 1 divided by the parameter A value. When the angle in degrees option is selected, parameter A is treated as a value in degrees, and the output value is the equivalent value expressed in radians.

algorithms :



11 Math tools #

parameters :
No parameters.

discussion :
This is an advanced level component for implementing mathematical equations or optimizing the performance of a complex structure tree. This component performs a mathematical operation selected with Parameter A on the input. Parameter A should not be animated since it is a selector that determines what operation this component performs. When you move the parameter slider, the Tool Tips region will display the operation that corresponds to the slider value. Some of these (like sin) have equivalent components with more parameters. Functions that can be used as limiting envelopes use parameter B for scaling. Using parameter B essentially gives control over the envelope size. This functionality is useful when you want to limit the output of another component by multiplying the results. This parameter (B) applies to gauss: exp-x*x, clamp unity, cubic unity, and cubic unity in x-. In some cases, there are other 11 components that implement version of this function. When that is the case the this component's version (Math Tools #) will be fastest as it is optimized for speed. For instance, if you need a superfast sin(x) transform, use this one. The normal sin(x) has more parameters, but that flexibility comes at the cost of computation speed. The available functions (available either from the Algorithm popup or parameter A) are:

algorithms :

Note : Use the 'Utility function plot" tree to see the plot of each function.



11 Ax+B

parameters :
A : Scaling (-20. : 20.)
B : Offset (-32. : 32.)

discussion :
This linear scaling component multiplies the input with parameter A then adds an offset (parameter B). It is nice for adjusting the contrast and level of a system. When the input is packed it will process the RGB channels and return a packed vector of same dimension.

Parameter options:

  • Direct value
  • 1/value
  • Angle in degrees
  • Semitones
  • Value*10
  • Value/10

  • When 'direct value' is selected, the output value is simply the setting of parameter A.
    When the '1/value' parameter option is used, the output is 1 divided by the parameter A value.
    When 'angle in degrees' is chosen, parameter A is treated as a value in degrees and the output value is equivalent value expressed in radians. The angle in degrees option is convenient for multiplying by Pi (180 degrees) or Pi/n. The range of 'Offset' parameter goes then from -180 to 180.
    The option 'semitones' is useful for sound synthesis. It sets A to exp(A*log(2)/12) which is the ratio of a temperated scale semitone A. By scaling the input of a wave tuned to default you can transpose the pitch by semitones with zero being the fundamental, 2 one tone above, -3 a minor third below. A needs to be an integer to obtain a real semitone frequency. Of course the tuning will be relative to the fundamental frequency, so make sure it is set to a known value (Preferences dialog gives the tuning of a sine at frequency 1 in semitones where A0 is 441 hertz).




    11 Offset (x+A)

    parameters :
    A : Offset (-64. : 64.)

    discussion :
    Adds a value supplied by the Offset parameter to the incoming value. When the input is packed it will process the RGB channels and return a packed vector of same dimension.
    This component has various parameter options to adjust the range or nature of the offset: direct value, 1/value, angle in degrees, value *10 and value *20, value /10 and value /20. The last options are handy for larger or smaller displacements. When 'angle in degrees' is chosen the range of 'Offset' parameter goes from -180 to 180, which is -Π to Π.




    11 Reverse : A - x

    parameters :
    A : Level (0. : 20.)

    discussion :
    This component revert the direction of the input values. When A is zero, this component just returns the negative of the input.
    There are various parameter options to adjust the range or nature of parameter A:  direct value, 1/value, angle in degrees, value *10 and value *20, value /10 and value /20.
    For example to obtain exactly Π-x you will set the option to "angle in degrees" and use 180 for parameter A.




    11 Inverse : A/x

    parameters :
    A : Amplitude (-10. : 10.)

    discussion :
    A/x returns the inversion of the input scaled by A. Note that with x close to zero the output will tend to infinity.

    algorithms :


    11 Abs x

    parameters :
    A : Offset (-32. : 32.)

    discussion :
    Returns the absolute value of the input (i.e. it strips the minus sign from the input) plus the value of parameter A. When applied to a space coordinate, Abs X will create a mirror symmetry. The various options allows to orient the mirroring and change the range of the offsets parameters.
    Formula: |x| + A or A -|x| depending on mirror orientation.




    11 Smooth Abs

    parameters :
    A : Smoothness % (1/64 : 8.)
    B : Offset (-32 : 32)
    C : Phase (-10 : 10)

    discussion :
    This is a modified version of the absolute value function which is smoothed near the origin. 'Smoothness' controls the degree of smoothing while 'Offset' offsets the result after the absolute value. The 'Phase' parameter, introduced in ArtMatic Engine 8.0, offsets the input prior the absolute value. This is often handy to adjust the position of the mirror if the input is not balanced. The various options allows to orient the mirroring and change the range of the offsets parameters.
    Formula: smoothAbs(x+C) + A or A -smoothAbs(x+C) depending on mirror orientation.




    11 A - Abs(x)

    parameters :
    A : Size (0.06 : 4.)
    B : Offset (-8. : 8.)
    C : Scale (1. : 16.)

    discussion :
    Similar to mirror below A- Abs X floor the result to zero so the output is positive only.




    11 Mirror

    parameters :
    A : Scaling (0. : 4.)
    B : Offset (-32. : 32.)
    C : Smoothing % (0. : 4.)

    discussion :
    A symmetry component that creates a mirror of the input values. The Offset parameter moves the mirror axis. Parameter A scales the output value and should be kept at 1 for a true mirroring. Formula: if (x>B) then y = 2 * B - x




    11 Gaussian

    parameters :
    A : Scale (0. : 128.)
    B : Phase (-16. : 16.)
    C : Amplitude (0. : 8.)

    discussion :
    The Gaussian tile returns a bell curve. The output of a Gaussian function at 0 is 1 and approaches 0 when A(x+B) is greater than 2. To increase the width of the bell curve, decrease parameter A. The curve is symmetrical around x=0. Formula: C exp(-X^2) where X is A(x+B)




    11 Plateau

    parameters :
    A : Slope (0.03 : 8.)
    B : Size (-4. : 20.)
    C : Amplitude (-8. : 8.)

    discussion :
    Plateau is a gaussian-type filter with an extended plateau on either side of 0. It is useful for delineating symmetrical shapes and creating edge effects. See the file Flying Rectangles to see how plateau can be used to provide rounded corners. Slope determines the sharpness of the plateau edge. Size determines the plateau width. 'Amplitude' is a multiplier that sets the plateau height.




    11 x squared

    parameters :
    A : Amount (0. : 1.)
    B : Scale (1. : 32.)

    discussion :
    Another mathematical primitive that returns x-squared. When the amount parameter is set to the maximum, the output is the input-value squared for input values above 0 and 0 for input values below 0. Otherwise, amount blends the unfiltered input value with the squared version. The 'Scale' parameter is applied to the input value before it is squared. Formula: mix(x , x>0 ? Bx^2 : 0, amount)




    11 x power A

    parameters :
    A : Power (1/8 : 64.)
    B : Scaling (1/256 : 32.)

    discussion :
    This component provides non-linear remapping of values. With the power parameter set to the minimum, you can get useful discontinuities such as well-defined islands and borders (depending on the input). The range of the output in respect to 'Power' is from the eighth root of x to the 64th power of x. If the incoming value is negative, the absolute value is taken before applying the function. High power are handy for metallic shaders.

    algorithms :


    11 A power x

    parameters :
    A : A (0.03 : 4.)
    B : Amplitude (0.03 : 2.)

    discussion :
    Another basic mathematical building block : it returns the x power of parameter A. Formula: B * (A^x).




    11 C Log (Cx+B)

    parameters :
    A : Amount (0. : 1.)
    B : Offset B (0. : 2.72)
    C : Scale C (0.06 : 4.)

    discussion :
    This filter applies the natural log to the input. It is good for decreasing the output range of functions that go to infinity. The amount parameter determines the steepness of the output curve.




    11 Envelopes

    parameters :
    A : Peak point % (0. : 1.)
    B : Decay time % (0. : 4.)
    C : Amplitude (0. : 8.)

    discussion :
    This component creates an envelope with a given attack and decay with various shapes. Values outside of the envelope range are mapped to zero. Thus Envelopes outputs a signal that always starts and ends at zero. This component can serve as a nice contrast or surface contour control. It can also serve as an envelope filter for sound design when multiplying its output with the sound waveform. The 'Amplitude' essentially sets the height of the saw envelope. As an envelope is often used to shape another signal 'Amplitude' is often left at 1. the Slope or 'Decay time' 'parameter sets the decay length. 'Peak point' or offset sets the attack time. The Right Slope parameter (A) may have a value less than 0. A negative slope provides a gradual attack and a rapid decay rather than the a quick attack and slow decay. In general the algorithms maps the interval 0 : 1 to the envelope and sets elsewhere to 0. All curves are continuous except saw which is linear. Note the Amplitude scales also the frequency so you can have the envelope works on the range 0-3 if you set it to 3. Some decay time (oriented saw and impulse) can be longer than the 0-1 window.

    algorithms :

    Impulse envelope with a peak at 0.1 and a 0.45 decay time.




    11 Power slope

    parameters :
    A : Size (0.12 : 8.)
    B : Phase (-32. : 32.)
    C : Power (0.12 : 16.)
    D : Amplitude (-8. : 8.)

    discussion :
    An exponential curve with a step function-like effect except that it is continuous with rounded edges near the 'step". This function, when used at the final stage of a system, tends to make the image very high contrast -- black and white rather than shades of gray, for example.




    11 A(1-exp(-x))

    parameters :
    A : Amplitude (0.12 : 8.)

    discussion :
    This component filters the input with an inverted Gaussian curve. It provides a convenient way to smoothly clip values that approach infinity. It is a little like log, but has a steeper slope and sharper cutoff.




    11 A/(xx+B-1)

    parameters :
    A : Amplitude (0 : 2.)
    B : Offset (1.0001 : 2.)

    discussion :
    This component, changed in Armatic engine 8.06, is similar to Gaussian in the sense the result is symmetric and its maximum occurs when x is zero. It has sharp spike around origin and the fallout is a good approximation of physical system that fades according to the inverse square power of the distance. Thus it is often applied to a 21 distance function to get lights effects.
    Formula: A/(x^2+B-1).




    11 Split & stretch

    parameters :
    A : Amount (-32. : 32.)
    B : Offset (-16. : 16.)
    C : Smooth (0. : 1.)

    discussion :
    This handy component divides the input about 0 and pushes apart the positive and negative values. It is very useful for modeling shapes. For example, insert an instance of this component before both the left and right inputs of a circle, and the result is a rounded rectangle.




    11 Sin x

    parameters :
    A : Amplitude (-16. : 16.)
    B : Phase (-12.57 : 12.57)
    C : Frequency (-16. : 16.)

    discussion :
    This component returns the sine of the input which renders its output periodic (cyclic). It is the basic primitive for pitched sounds and any periodic phenomenon. It can be used for sound creation, wood-type textures, zebra patterns and much much more.




    11 Power sin

    parameters :
    A : Frequency (-8. : 8.)
    B : Phase (-12.57 : 12.57)
    C : Power (0. : 16.)
    D : Amplitude (0. : 4.)

    discussion :
    This periodic component is useful for creating banding effects and for adding harmonics when in Sound mode. It is equivalent to passing the sin output through a power filter. 'Amplitude' scales the output amplitude while 'Frequency' scales the input.
    Formula: (sin (x*A+B))^C.

    algorithms :


    11 Tile wave

    parameters :
    A : Amplitude (0. : 16.)
    B : Phase (-12.57 : 12.57)
    C : Frequency (-16. : 16.)

    discussion :
    A non-symmetrical sawtooth wave. Very handy for creating repetitive patterns and for creating sound waves. With default parameter values, it repeats the interval bounded by -1 and 1 which keeps the output centered about 0 (essential for musical applications). If you place a Tile Wave component before any other 1D filter, the filter will become periodic (though not necessarily continuous since the ramp drops immediately from its maximum value to its minimum value). For example, if you need a repeating figure of gaussian grains, put a Tile Wave before the Gaussian tile. Tile Wave is similar to modulo but without having the amplitude proportional to frequency.

    Sound tip: Multiply the result with a sine wave and you get rich sounds.




    11 Modulo

    parameters :
    A : Period (0. : 100.)
    B : Phase (-100. : 100.)
    C : Amplitude (0. : 16.)

    discussion :
    Modulo returns the modulo/remainder function of input. Applied on x it will create a saw tooth signal that repeats the 0-A interval.

    It is very useful when you need to repeat a pattern or create a periodic function. The balanced form can be used for DF modeling when keeping amplitude at 1. Frequency determines the spacing of the created 'ramps" (by setting the divisor used to generate the modulo). Amplitude is applied at the output stage.

    algorithms :

    DFRM NOTE: When using Repeats N with DFRM, leave the Amplitude at 1 in order to maintain the distance field's integrity. Parameter options: Direct values (default), 1/scale, scale * 10, offset: value*10, offset: value*20, offset & scale * 10 In the parameter option names, Scale refers to parameter A's value and Offset to parameter B's value. For example, offset & scale * 10, will set both parameter A and parameter B to 10 times the sliders' nominal value whereas Scale * 10 treats parameter A as 10 times its nominal value but interprets parameter B normally.


    11 Saw waves #

    parameters :
    A : Frequency (-32. : 32.)
    B : Phase (-100. : 100.)
    C : Amplitude (-16. : 16.)
    D : Smoothness % (0. : 1.)

    discussion :
    This periodic component returns a triangle wave function similar to a sine wave but with sharper edges. Saw wave is often used in sound synthesis for the richness of its harmonic content. When used on a space coordinate input, the resulting space will feature a periodic mirroring symmetry on the corresponding axis.

    The repeats and Folding modes will limit the mirroring of saw to a discreet numbers of mirroring, thus a finite number of repetitions (set by parameter D) are performed. The Repeats and Folding are useful for design, architecture and kaleidoscopic 2D or 3D fractals.

    For DF modeling N Fold asymmetry is particularly useful to repeat a zero centered object.


    With Repeats (red curve) the result is symmetrical around zero and zero x maps to +-C
    With Foldings (green curve) the space around zero is left unmodified zero x maps to 0

    algorithms :

    Parameter options:



    Note : since amplitude is related to the period defined by frequency "saw wave" is DF compatible when using non Pi based options with the amplitude at 1.


    11 U wave

    parameters :
    A : Frequency (0. : 8.)
    B : Phase (-12.57 : 12.57)
    C : Amplitude (-4. : 4.)

    discussion :
    This component is a useful u-shaped periodic wave based on the absolute value of a sine function.




    11 x(Sin x)

    parameters :
    A : Frequency (0. : 16.)
    B : Phase (-6.28 : 6.28)
    C : Amplitude (0. : 4.)

    discussion :
    This component is a variation of the sine function where the amplitude of the sine wave is scaled by the input x. If the input is itself periodic, x sin(x) can be used to create interesting modulated sounds.

    Formula: x + A sin(Bx)




    11 Sin(Bx)/sin(x)

    parameters :
    A : Frequency (0. : 8.)
    B : Harmonics (0 : 16)
    C : Amplitude (0. : 2.)

    discussion :
    This component is great for creating harmonics for structures designed for sound synthesis (when using the Direct Drones synthesis method). The component equation is Sin(Bx)/sin(x). Amplitude determines the output amplitude. Frequency influences the harmonic spacing. Harmonics determines the number of harmonics.




    11 Sines cluster

    parameters :
    A : Frequency (-16. : 16.)
    B : Spread % (0. : 1.)
    C : Amplitude (0. : 2.)

    discussion :
    This series generates various sounds based on the integration of 24 sines waves. Nice fuzzy and voicy sounds can be obtained with sines clusters.

    algorithms :


    11 Tech Waves

    parameters :
    Algorithm slider : (0 : 26)
    B : Amplitude (0. : 16.)
    C : Frequency (0. : 32.)

    discussion :
    Tech waves is primarily used for creating audio. Parameter A selects between different waveforms with various level of smoothing. The Tool Tip displays the waveform name as you move the parameter slider. The waveforms range from a standard square wave to random waves great for creating interesting noise. There are 3 flavors of smoothness for each oscillator type which is essentially high frequency filtering.

    algorithms :


    11 x + A sin Bx

    parameters :
    A : Amplitude (0. : 2.)
    B : Frequency (-16. : 16.)

    discussion :
    This component modulates (or displaces) the input with a sine function rather than simply returning the sine function. Formula: x+ A sin(Bx)




    11 Quantize

    parameters :
    A : Frequency (0.12 : 16.)
    B : Amount (0. : 1.)
    C : Smoothness % (0. : 1.)

    discussion :
    Quantize the input into discrete steps. It turns a gradual gradient, for instance, into a series of color bars as in the illustration below. Use this function to create discontinuous, step-like output. It is great for creating pixelization and color-reduction effects. Quantize is not continuous and not derivable and thus is not advised for ArtMatic Voyager or sound design.

    Frequency determines the spacing of the quantization steps. The Amplitude determines the strength of the quantization. (With a value of 0, there is no quantization; with a maximum value, true quantization is performed.)


    The image on the left is the result of applying the Quantize component to a gradual ramp (provided by the Ax+By+C component). The image on the right is the un-quantized image.




    11 Smooth Steps

    parameters :
    A : Amplitude (0. : 1.)
    B : Randomness (0. : 1.)
    C : Frequency (0.06 : 8.)

    discussion :
    This component is a quantization function that has smooth transitions between the steps (unlike Quantize which has discontinuous steps). This component is especially useful for designing systems for use with ArtMatic Voyager which dislikes the discontinuities introduced by the Quantize component.

    When the Randomness parameter is non-zero, the steps are spaced irregularly, yielding a natural look. This component is often used to create ArtMatic Voyager terrains to achieve eroded terraces such as those shown in the canyon example shown below.




    11 Variable Steps

    parameters :
    A : Random Steps soft # (0 : 7)
    B : Amplitude (0. : 16.)
    C : Frequency (0. : 32.)

    discussion :
    Variable Steps is a randomized quantizing (step) function that combines two step sizes with varying degrees of smoothness. Parameter A is used to select the quantizing algorithm. This component is especially useful for creating terraced landscapes in ArtMatic Voyager.




    11 Sphere

    parameters :
    A : Radius (0.1 : 10)

    discussion :
    The Sphere filter yields a spherical profile when applied after the distance component in 2D. In 1D it will yield an arc envelope with values outside the radius clamped at zero.
    See the 1D curve with a unit radius
    in Wolfram Alpha




    11 Cubic Clip

    parameters :
    A : Amplitude (0. : 16.)
    B : Offset (-8. : 8.)
    C : Slope (-50. : 50.)

    discussion :
    Cubic clip clamps the input between 0 and 1 using a cubic spline (x*x(3-2*x)) to maintain continuity at the clipping boundaries. 'Offset' is added to the input before applying the cubic filter while 'Slope' parameter scales the input value prior the clamping. 'Amplitude' scales the result so that the final output range will be positive only and between 0 and amplitude A.




    11 Clip

    parameters :
    A : Contrast (0.12 : 8.)
    B : Offset (-8. : 8.)
    C : Cutoff (0.25 : 16.)

    discussion :
    This filter clips the input when it passes outside of the range from 0 to the value defined by the CutOff parameter. 'Offset' is added to the input before applying the Cutoff. Resulting range will be positive only and between 0 and 'Cutoff'.




    11 Floor

    parameters :
    A : Floor level (-100. : 0.)
    B : Roof level (0. : 100.)

    discussion :
    Constrain the input to values between the Floor Level and the Roof Level. Any value below the Floor Level is assigned the floor level. Any value above the roof level is assigned the roof level.




    11 Smooth Clamps #

    parameters :
    A : Floor level (-100. : 32.)
    B : Roof level (-32. : 100.)
    C : Smoothness % (0. : 4.)

    discussion :
    "Smooth Clamps" provides several clamping functions where the 'floor level' and 'roof level' parameters set the lower and upper limits. These functions are great for limiting any kind of inputs to a specific range.

    algorithms :

    Smooth Floor->clamp applied to a fractal surface creates convincing plateaus in ArtMatic Voyager terrains.



    11 Contrast

    parameters :
    A : Contrast amount (-3. : 1.)
    B : Offset (-4. : 4.)

    discussion :
    A simple, but very useful, contrast filter. When Amount (parameter A), is set to the maximum, there are only two possible output values (i.e. if this is the last component in a system, the result will be a two-tone image). The Offset parameter controls where the contrast divide is made. When used to control picture luminance values, offset effectively adjusts the overall threshold level. See Concentric dither BW for an example.




    11 Semitones Seq

    parameters :
    A : Loops (2. : 32.)
    B : Phase (0. : 64.)
    C : Amplitude (0. : 8.)

    discussion :
    This component is used to create random note sequences in Sound mode. Generally, this component is connected to one of the time outputs of the Global Input Matrix (as shown below) which causes the notes to vary over time. The output values are limited to semitone values when used in a well-behaved sequence. See the examples provided with ArtMatic.
    Example files: QT Mod Seq., Master LFO Test series of examples.
    Parameter details
    'Loops': The number of loops (notes) that will be created in a given time frame. Larger values result in phrases with more notes.
    'Phase': An offset within the random sequence. By changing the phase, you can create more complex musical phrases since the sequence will not simply repeat over and over.
    'Amplitude': Determines the pitch range of the notes from which the sequence will be generated.




    11 Grains

    parameters :
    A : Amplitude (-16. : 16.)
    B : Size (0. : 1.)
    C : Frequency (0. : 8.)
    D : Phase (-32. : 32.)

    discussion :
    Grains is a non-periodic function that randomly distributes small gaussian-shaped 'grains". It is useful for both graphics and sounds. For graphics applications, use it when you need a series of lines that is not densely spaced. For sound applications, use it to create narrow-band noise that sounds more brassy than white noise or fractal noise.




    11 Discrete Random

    parameters :
    A : Amplitude (-8. : 8.)
    B : Phase (-32. : 32.)
    C : Frequency (0. : 16.)

    discussion :
    This component returns a random step function of input x. It is not continuous and not derivable and thus is not advised for ArtMatic Voyager or sound design.




    11 Linear Random

    parameters :
    A : Amplitude (-8. : 8.)
    B : Phase (-32. : 32.)
    C : Frequency (0. : 16.)

    discussion :
    A simple discontinuous random function with linear interpolation. Use this component for creating high order harmonics for sound synthesis or when you need sharp edges.




    11 Random

    parameters :
    A : Amplitude (-8. : 8.)
    B : Phase (-32. : 32.)
    C : Frequency (0. : 16.)

    discussion :
    This component generates a band-limited and continuous random function. Formula : A Random(B(X+C)). Random is simpler and faster than a Perlin Noise.




    11 Periodic Random

    parameters :
    A : Amplitude (-16. : 16.)
    B : Phase (-32. : 32.)
    C : Frequency (0. : 16.)

    discussion :
    A periodic (repeating) random function particularly useful for sound applications. It is band-limited and richer than a pure sine wave. The phase parameter adjusts the contour of the random output.




    11 Multi Perlin noise

    parameters :
    A : Amplitude (-8. : 8.)
    B : Octaves (1. : 128.)
    C : Frequency (0. : 32.)
    D : Roughness (0.12 : 0.75)

    discussion :
    This component sums a series of perlin noise functions with the frequency doubling for each function in the series. The octaves parameter determines the highest frequency generated. When the octaves parameter is at its maximum (128 which is is 27) there are seven 'octaves" of noise. Multi Perlin Noise is a band-limited noise function very useful for sound synthesis as the upper frequency limit can be controlled by the octaves parameter.




    11 Fractal noise

    parameters :
    A : Amplitude (-8. : 8.)
    B : Phase (-32. : 32.)
    C : Frequency (-16. : 16.)
    D : Roughness (0.30 : 0.60)

    discussion :
    A 1D version of the fractal noise algorithm. See the descriptions of the higher-dimensional fractal noise components for more information. Besides many graphical applications, Fractal noise can also be used as a sound source to produce 'pink noise" where the amplitude of specific frequencies follow the '1/f' rule. (Unlike 'white noise' which has all frequencies at the same amplitude.). Fractal noise produce a natural and pleasant un-pitched sound. Parameter D, Roughness, controls the fractal dimension. The default 'normal' value is 0.5.




    11 Randomize

    parameters :
    A : Amount (-8. : 8.)
    B : Phase (-32. : 32.)
    C : Frequency (0. : 16.)

    discussion :
    Randomize displaces input coordinates with a 1D continuous random noise by adding it to the input. 'Amount' controls the displacement amount while 'Frequency' and 'phase' sets the scale and offset of the 1D random noise. This differs from the Random function which generates truly random values.




    11 Derivative

    parameters :
    A : Amplitude (0. : 2.)
    B : Offset (-2. : 4.)

    discussion :
    This component approximates the derivative of the function whose output feeds the derivative component. It is often used to emphasizes the 3D aspect of a system. Its output only makes sense when the input values are continuous (i..e. it does not work well with discontinuous & non-derivable functions such as Random Squares or discrete Random).

    Note: This component will behave differently when it is in a compiled tree than when it is in the main tree since it uses information other than that which comes in through its input. When this component is used (almost always in the lower part of tree), ArtMatic traverses the tree for the information that it needs to derive the lighting information. As a result, this component can't be used inside of compiled trees since the tree as a whole is hidden from compiled trees. In short Derivative needs to 'see' the tiles above to evaluate the derivative properly.




    11 2D Derivative

    parameters :
    A : Light Direction dx (-2. : 2.)
    B : Light Direction dy (-2. : 2.)
    C : Offset (-4. : 4.)

    discussion :
    Related to the derivative, this function provides lighting and 3D texture effects by scanning the entire tree above it to compute its partial derivatives. Parameters A and B control the direction of the virtual light vector. When A is 1 and B zero the light comes from the left.When B is 1 and A zero the light comes from the top. This component actually looks at the entire tree structure and not just the incoming values. Note the 3D effect it has on a simple 2->1 Grid.

    Note: This component will behave differently when it is in a compiled tree than when it is in the main tree since it uses information other than that which comes in through its input. When this component is used (almost always in the lower part of tree), ArtMatic traverses the tree for the information that it needs to derive the lighting information. As a result, this component can't be used inside of compiled trees since the tree as a whole is hidden from compiled trees.

    Advanced note for the mathematically inclined: This component approximates the partial derivative along both the x and y axes of the system (dfx and dfy). The result is the dot product of parameters A and B with the approximated partial derivatives over x and y. This components is computationally-intensive as it will make the tree above render several times.



    11 Slope #

    parameters :
    A : Amplitude (0. : 8.)
    B : Offset (-1. : 1.)

    discussion :
    This component provides a few algorithms options for calculating the slope of the terrain or 3D field that feeds it. The slope is linked to derivative and a value of zero means the surface is flat. As with the derivative component the 11 slope needs to 'see' the tiles above to evaluate the slope so you can't put it in a compiled tree to evaluate slope of functions located in the main tree.
    The 2D Slope modes are meant to be used with 2D systems, while the 3D Slope is meant for volumetric 3D systems.
    The mode 3D Slope can be used with 3D terrain to modulate terrain geometry according to the slope of one 3D function. When the Slope is used only for the shading phase when rendering in Voyager use the 13 derivative coming from voyager at no extra cost instead and get the slope by using (1-abs(dy)), dy being the y output of the derivative.

    Options:



    11 Line Shaders

    parameters :
    A : Contrast % (0. : 100.)
    B : Width (0. : 8.)

    discussion :
    11 line offers most of the shading option that the new 21 line offers plus some packed RGBA shaders so you can use the same component for color graphics. See the 21 Line discussion for the various algorithms. Unlike the 21 Line that rotates the coordinates to set the line slope, the 11 Line creates the line at the zero crossing of the input value surface. If you feed a 21 Interpolate using Rotate interpolator before the line you get exactly the same functionality as the 21 line. Connecting the 11 Line to x you will get a vertical line and an horizontal line to y.

    The beauty of 11 Line is it will create a line for anything as soon as the input is balanced and crossed zero (+ and - so there IS a zero crossing). So if you feed the 11 line with a Disc profile you will get a circle. The Line will have a steady width when the input is DF compliant and not too distorted. For improving Line quality for contours of surfaces you can use the technique showed in Utility Contour Plot preset as shown in the example Libraries/Components demo/LineShader Surface Contour.

    On top of the shaders used by the 21 Line 11 line has also the option to shade them as color half planes, treating the positive side of the line as a fill area for Packed RGBA fill + and the negative side with Packed RGBA fill -. It can also shade the line AND the fill(+) with the Packed RGBA line & fill ago.

    lines Types:



    11 Compare

    parameters :
    A : Value (-64. : 64.)
    C : Output Value (1./8. : 64.)

    discussion :
    This component provides a way to compare an input value to a single value or value range. Where the input value matches the selection criterion, parameter C's value is passed out. Everywhere else 0 is passed out.

    algorithms :


    11 Iterations

    parameters :
    A : Multiplier (0. : 8.)
    B : Iterations (0 : 500)
    C : Start value (-4 : 4)

    discussion :
    This component serves two functions. It can force a top-level tree to be looped (calculated several times in succession), and it acts as a counter whose value corresponds to the iterations that have been performed. The behavior is slightly different in top-level trees and in compiled trees.

    In top-level structure trees, it forces the tree to be looped the number of times specified by parameter B. In compiled trees (and also in top level trees), it returns the number of iterations that have been performed (multiplied by value of the parameter A 'Multiplier'). In sub-trees, the number of iterations to perform is provided by the compiled tree component's Iterations/Recursion parameter.
    In general iteration is used in tandem with a "memory" component that will accumulate iterated values along various logic. To perform a mathematical sum just use a simple memory Add. To render a parametric path of a function you can accumulate each point using 11 memory logic minimum connected to a 41 Distance(U,V) component. (Example of this technic are given in Libraries/Maths/Parametrics and motion/ folder).
    In ArtMatic 8 engine a 'Start value' parameter has been added for systems that requires starting at 1. The legacy behavior was the suite started at 0 which still can be achieved by setting the 'Start Value' to zero. During each iteration, this component's output value is: (current iteration number* 'Multiplier' + 'Start value'
    Clearly if 'Start value' is 1 and 'Multiplier' is 2 you will get 1, 3, 7, 9,... as output values. With the default parameters values you will simply get the iteration number 1,2,3,4,5,etc. The maximum number of iteration has been set to 256 in ArtMatic Engine 8 (which is the values often used by other iteration tools and
    Compiled Trees (CTs) ).
    Unlike other components "iteration" has no input value and can be seen as a flow control tool.

    NOTE: In compiled trees parameter B (iteration numbers) is ignored as the compiled tree component performs the iterations. Examples can be found in Libraries/Textures/Iterative textures




    11 infinity gate/mask

    parameters :
    A : Maximum (0. : 256.)
    B : Minimum (-256. : 0.)
    C : Invert mask (-1. : 1.)

    discussion :
    This function allows you to create or manage infinities. Infinity has some special characteristics: it is replaced by the
    Depth cue color in RGB shaded systems) and infinities are treated as transparent in 'packed' mixers and most mathematical operators which provides implicit masking.

    algorithms :


    11 Memory Add

    parameters :
    A : Start Value (-1. : 1.)
    B : Sum Gain (0. : 2.)
    C : Auto Gain % (0. : 1.)

    discussion :
    Memory Add simply adds the new value to the old value. It acts as an accumulator. The 'Start Value' parameter is the initial value which is added to the first iteration. Because the effect accumulates over the iterations, you may sometimes want to set the Start Value to a low value so that the system doesn't attain large/max values everywhere. 'Sum Gain' scales the output. Memory Add is basically a summation tool.
    When 'Auto Gain' is set at 1 the weight will be calculated using the context iteration max to keep the sum independent of the iteration number. Lower values will blend with the 'Sum Gain' setting.
    Infinities are discared and treated as transparent.
    Recursion formula : memx= x+ memx with 'memx' being the accumulated output value.





    11 Memory Fractal Add

    parameters :
    A : Power slope (0.06 : 2.)
    B : Sum gain (0. : 2.)

    discussion :
    Memory Fractal Add is another summation tool where the weight of each addition depends on the "power slope" parameter and iteration number. At "power slope" 1 the sum has an equal weight for all iterations. 'power slope' below zero will fade higher iterations while values above zero will fade out the starting iterations. In many fractal systems when iterations scales the frequencies upward the amplitude is scaled inversely. So to maintain this relationship between frequency and amplitude (1/f noises means amplitude is related to inverse frequency) you will typically set the power slope to 0.5 if the frequency is scaled by 2 for example.
    The 'Sum Gain' parameter scales the overall output. The start value of the sum is set at zero.
    Infinities are discared and treated as transparent.
    Recursion formula : memx= weight*x + memx with weight is set as pow('Power slope', iteration index).

    See also the RGBA version at
    44 Memory Fractal Add .




    11 Memory Logic#

    parameters :
    A : Smoothness % (0. : 16.)

    discussion :
    This component is only meaningful in iterative/recursive systems. It will accumulate input values according to a logic operation defined by the algorithm choice.



    algorithms :


    11 Memory Maths

    parameters :
    A : Smoothness, Gain or Blend % (0. : 2.)

    discussion :
    This memory component accumulates scalar values using various mathematical functions provided by the following algorithms :


    algorithms :



    11 RGB Alpha Pack

    parameters :
    A : Red Value % (0. : 1.)
    B : Green Value % (0. : 1.)
    C : Blue Value % (0. : 1.)

    discussion :
    This component either filters or creates a packed RGB-A stream depending on whether the input is a scalar (single) value or an RGBA stream. This is a convenient way to add a solid color to a DF object or to filter an existing stream's colors.

    Simple solid color for DFRM. If the input is a single scalar value, an RGB-A stream is created. The stream's RGB values are the values of parameters A, B and C and the alpha channel is the input value. Typically, this is used to create DFRM colored solid where the sliders 1, 2, and 3 determine the color, and the input provides the object (DF field). Using 11 RGB Alpha Pack is more efficient than using the 14 Set Constant component followed by a 4->1 Pack component.

    Packed Input. When the input is a packed RGBA stream, parameters A, B and C scale the input stream's RGB values and the alpha value is passed through unchanged. This is very handy for scaling a set of packed values.




    11 Compiled Tree :

    parameters :
    A : Blend (0:1)
    B : Recursions

    discussion :
    Compiled Trees are groups of tiles that can be used in place of single tiles as a kind of macro or subroutine. 11 Compiled Tree can be seen generally as a scalar valued 1D function unless the output is a packed vector in which case it can be a 3D or 4D vector valued 1D function. When packing 3D outputs you may use 11CT to define a 3D motion paths or a 3D parametric curve that can be rendered efficiently using the
    3D Motion Path render component. With scalar outputs you can create complex filters that combines several 11 filters and treat them as a single tile that can be copied and pasted elsewhere or saved on disk using "Save compiled tree" from the Tree Edit menu.

    usage :
    Select a 11 tile and use "New compiled tree" to create a new CT from the selection (Tree Edit menu or type 'n' key). Parameter 'Blend' 'allows to mix between the input and the output and is set at 1 by default.
    CTs can be used recursively if the option "Allow feedback" is set. In that case output is fed to the input at second iteration and the transform will be applied "i" times, i being set by the 'Recursions' parameter. 11 CT don't allows recursion with packed RGBA streams but the input or the output of the CT can be a packed vector. For example you can use a 11 CT to add all elements of a vector and return a scalar value.