ArtMatic Designer 2x CTX

Engine Version 9.x : 2751 function for 747 components

Version 2.0 highlights:

ArtMatic Script Language

A major V2 development was to create a full script language to represent an ArtMatic systems. Thanks to the script language you can create an ArtMatic tree from a text file and in reverse, build a script from a tree. The feature makes it very easy to share tree logic/structures through text and is a great addition for educational purposes. Examples given through the docs or the web can be shared and tried immediately (type ^or ;, paste the text and Make tree).
The language is inspired from C and GLSL. It is straightforward and supports mathematical standard equations syntax.

Types names are


Comments can be included and starts with // or #

By convention variables are named (fa, fb, fc, etc) or (pa, pb, pc, etc) when the vector is packed. You can use other names but keep the p for packed variables to keep track of packed data. Optionally you can name vectors with (va,vb, vc, etc)
Vector elements can be referenced with .x .y .z .w like in length(va.x,vb.z). .r .g .b .a are also recognized for RGBA components.
Output tiles variables are named fout1 , fout2 or vout1 etc.

Global Input variables are X Y Z T for time and A1 A2 A3 A4 for aux inputs. Subtrees (Compiled trees) input variables are x,y,z,w

Constants can be Pi,π, numericals like 2, 3, 1.234, scientific notation like 13 e-4.
The script pre-filtering will evaluate expressions like 3/5 or 2^3 into numerical constants. The script built in parser can handle complex math formulas like X*3+Y*(3/π) - sin(4X+1) and will try to minimize the number of AM tiles needed to do the calculation.

Built-in maths functions and maths operators are mapped to corresponding AM tiles. In general maths functions are lower cases while Artmatic functions start with upper case.
The list of supported standard functions
Note that dist and length are the same and maps to Euclidian Distance function;
The ArtMatic Script Text editor uses colors to guide the user in typing a coherent algorithm. Variables are drawn in orange, constantes in green and types in dark blue. If a syntax error is present or the line cannot be resolved (expression too complicated or inconsistent) the line will be drawn in red.
Unrecognized functions are drawn in red; ArtMatic functions are drawn in Purple; supported maths functions are drawn in blue. Global Input variables are drawn in blue-green.
Control-click on a function name will trigger a pop up to choose another one in the same category.

vec3 fa = color((1,0.1,0.7);
vec3 fb = fa*sin(4*T+Pi);
vec3 vb = RGB_PictMovie(X+T,Y);
vec3 vc = Gradient.colormix(X,Y);
vec3 fout =mix(fb,vb,0.66)*vc;

Tree/Edit tree as text (shortcut &) )

Shortcut: '&'
Creates a script representing the current ArtMatic Tree. You can use this to Script-Edit the system which can be faster and more practical to reconnect inputs and outputs, to change functions (control click on function names) or insert new tiles. Click Make tree button to re-build the corresponding tree when done. If there is an error Make tree will abort and display error type if applicable. When using this function current parameters values are saved and restored when possible.

File/Tree 2 text :

Build and write the current tree into an explicit ArtMatic script file in .txt. The parameter value lists may be included in the file after the trees and sub trees functions. Each line represents a tile with its in and output stored in a variable. Exemple in Scripts sources & examples/Plot11 subfunc_TextTree.txt

# Subtree_filter parameters
tileparams(2,0,3,_);
tileparams(1,0.3,0,_);
tileparams(3.141593,_,_,_);

File/Text 2 tree :

Open the script editor with a text file. Click Make tree button to build the corresponding tree; If parameters value lists are included in the file the tile parameter will be set to the list values. Clear the list if you want a generic tree rebuild with default parameters. The script edition tool displays only one tree at a time, but you can select subtrees by clicking on the top tree display name. The root is always named “MainTree”. Note that parameters values are not accessible with the built in script editor but you can easily change them in a text editing app.

File/New text tree:

Shortcut: ';' or '^'
Open the script editor with a default script to modify and complete.You can load any script file in .txt or .rtf format within the dialog. You can type directly or copy paste in the editing area. You may want to turn off the automatic filtering when typing new lines as it may interfere.
Click Make tree button to build the corresponding tree. Input scripts can be implicit and contain more operators into a single line. For example mix(sin(2*X+π),exp(Y),0.75)+(3X^2+2X+abs(Z)) will expand to seven tiles. If the expression is too complex to be parsed, split it into more lines and try grouping operators ( ) to clarify the structure.

Drag & Drops:

V2 Supports drag and drops for .artm .png, webp, movies and text files for ArtMatic scripts. When dragging images files to the canvas the current pict object will be set to use the new input or if none is available a pict Tile will be added to the ArtMatic system.

Audio:

Audio playback has been modernised and supports 44100 & 48000 sample rate. By default at launch ArtMatic will use the sample rate of the current audio device. Sound generation sampling path has 2 new options Linear Sine path (mode 2): advance in X linearly but Y is modulated with a LFO sine Line Circle path (mode 3): rotates like in the first mode while advancing slowly in X. The rate of rotation is the same as with Circle mode, thus the slow offset in X serves as a phase/ timbre modulation. The ArtMatic system needs to be either periodic or infinite for mode 1 2 3 to work well.

File format:

ArtMatic file format has been modernised and made more efficient, flexible and modular using dictionaries. V2 is compatible with ArtMatic files starting from CTX 1.0. Older files needs to be converted with CTX 1.0 to 1.8

File/Export to 3D .obj:

3D DF trees are eligible to be exported as a 3D mesh using the standard simple .obj format. RGBA DF trees may also associate a color for each vertex if you set "include colors". This feature is still under experimentation. Shortcut to call the export dialog is '@'. In the dialog make sure to set the bounds so that the entire object is included. Use "clip volume" for Infinite object so that the result is 3D printable.



Example in Libraries/Examples 9.0/, DFMountainSphere, DFcurvesRingplate

Tree Editing:

All tree editing functions have been reimplemented. Auto-connect (command click to father) handles more cases gracefully. The tree insert/replace menu functions have been reorganized and now always work. The tree menu has the “edit tree as text “ addition. Note that the “u” command to move a tile up has been removed (no longer necessary as one can now directly connect to a tile below) and replaced with the “insert & split” command.
The handling of proper shading attribution when types of output changes through reconnections or tile type changes has been improved.

Rendering:

You can now remove completely the automatic bump shading setting the bumpgain in the ui to 0. Note that bump shading is automatic for “geographic clut” and “rgba bump” shaders.

The RGBA Multi and the RGBA Bump (multi out) shaders have been redesigned.
ArtMatic can handle up to 6 parallel outputs tiles. They can provide 4 Xouts for Voyager and participate in the image rendering when multi modes are used.

The RGBA Multi can now correctly render heterogenous outputs for multiple tiles. The logic is RGBA is composed using its alpha, RGB is added to the color, single and two output tiles are shaded using the main gradient and added to the resulting rgb.
When mixing scalar output with other tiles in RGB or RGBA,  ArtMatic may select the RGBA Multi mode automatically.
Example in Libraries/Examples 9.0/Multi VariableDim.artm

 The RGBA bump (multi out) is useful to visualise DF field data when several xout exists and can now render all outputs. Now ArtMatic is aware of the tag naming convention used in Voyager for xout mapped to reflectivity, illumination etc (for example ri for reflectivity and self illum)and it will choose a compositing appropriate for pre-visualisation of all channels when the tag is detected in the name.
Example in Libraries/Examples 9.0/NF5 StarSaucer ri.artm

Engine 9.0 changes:

ArtMatic Designer 1.x CTX version details

Designer is the first of my software to be ported in the new 64 bit framework for the Cocoa MacOS platform. The UI has been completely redesigned and reimplemented. The new framework is based on C++ and cocoa and don't use Carbon anymore. The 64 bit framework has been in development since 2017. The new implementation of the framework handles redraws better and faster and is compatible with all Mac OS.

Designer now has 4 different rooms which integrates the ArtMatic file browsing function (used to be separate application. A new room called Explore allows users to adjust and animate an existing ArtMatic system without having to manage the complexity of editing a full tree design. This room is also available as a stand alone low cost simplified program called: ArtMatic Explorer.

Advanced Designer users can 'publish' the tree parameters in its Design room even if they are located deep inside Component Trees's. Published parameters will appear as the top of the 6 parameters in the explorer room. This allows Designer users to create and sell Explorer content in the U&I Software marketplace.

Version 1.2 highlights:

Online Component Reference Manual:

The ArtMatic Engine now has an interactive reference system accessible online. Select a tile and press command-F to access the tile's information. This is an ongoing effort that will continue to be developed. The aim is to provide an accurate and scientific data base of what each component does and make the ArtMatic Engine toolbox of 2400+ functions a well documented tool-set usable for education in computer graphics and also in mathematics and science.

Vastly Improved UI:

The UI can be resized with real-time feedback and the skin mode is changeable in the preferences. A brighter new skin is available since 1.1 with a dark blue over white theme. Most of the sliders have now numeric entry for parameters in main UI. As a consequence shortcuts that used numbers have been changed. As usual shortcuts are indicated in roll overs and pop up menu names.
The numeric readout digits for Tree parameters were increased in 1.2 to allow more precision in numeric inputs.

ArtMatic Designer Room Tabs:

ArtMatic designer CTX now has 4 rooms. Each have a specific function or workflow.

Adaptive rendering resolution:

Resolution of the preview automatically adapts to insure the fastest response. Most sliders will trigger real-time previews at lower resolution and Animation preview resolution will depend on the speed of the system. As soon as you let go the image will self render at a higher resolution.


ArtMatic Engine Global Changes:

Version 8.08 for Designer and Voyager 1.2


Version 8.07 for Designer and Voyager 1.0.7.3


Version 8.06 for Designer and Voyager 1.0.6.5

ArtMatic Engine New Components:

Version 8.07 for Designer and Voyager 1.0.7.3

Version 8.06 for Designer and Voyager 1.0.6.5


Enhanced & Modified components:


Libraries:

The Browser room allows you to explore and preview the extensive set of presets and examples I've put into the Libraries folder as examples of the many techniques available in ArtMatic Designer. Each time you launch Designer a tree is randomly loaded from that folder as well as the Structures Presets folder. Modify it and save it as a new file to expand your collection. The folder 'Component demo' contains many trees that are used for the online reference illustrations. Additional Libaries to expand ArtMatic Designer and Voyager are available in the U&I Store.

Thank you for supporting my creative work - Eric Wenger