:
i am developing a little makro language for generating scripts within mutatorkammer, this is how far i am now:
Basic language:
@MAKRO = XX|YY... == XX|YY...
= Makro will be replaced with XX or YY or whatever, any length of alternations is possible
== is the final statement it means if MAKRO is in last iteration visible - use that, same syntax as for =
Uses The makro with %MAKRONAME%
built in functions:
randomTree(DEPTH)generates a random Formul Tree of depth DEPTH
randomVal(min[max])Creates a random value in between max and min
The Above is actually implemented, and i am using the following script as a global include:
@MK_SKRIPT
COMMENT AREA
@MK_MAKROS
@ZERO = 0
@ONE = 1
@PI=#3.14159265358979323846264338327950288
@E=#2.71828182845904523536028747135266249
@SQROOT2=#1.41421356237309504880168872420969807
@SQROOT3=#1.73205080756887729352744634150587236
@EMASCH=#0.57721566490153286060651209008240243
@GOLDENRATIO=#1.61803398874989484820458683436563811
@PLASTIC=#1.32471795724474602596090885447809734
@EMBREE= #0.70258
@FEIGENBAUM1= #4.66920160910299067185320382046620161
@FEIGENBAUM2= #2.50290787509589282228390287321821578
@HUGHES= #0.050989
@MEISSELMERTENS= #0.26149721284764278375542683860869585
@CATALAN=#0.91596559417721901505460351493238411
@LANDAU= #0.76422365358922066299069873125009232
@VISWANATH= #1.13198824
@RAMAJUNSOLDNER= #1.45136923488338105028396848589202744
@IMAGINARY=#0#1
@RANDOMCONSTANT=%PI%|%E%|%SQRROOT2%|%SQRROOT3%|%EMASH%|%GOLDENRATIO%|%PLASTIC%|%EMBREE%|%FEIGENBAUM1%|%FEIGENBAUM2%|%HUGHES%|%MEISSELMERTENS%|%|%CATALAN%|%LANDAU%|%VISWANATH%|%RAMAJUNSOLDNER% |%IMAGINARY%
@TRIGONOMETRIC=SIN|COS|TAN|SEC|COSEC|COTAN
@INVERSETRIGONOMETRIC=ASIN|ACOS|ATAN|ASEC|ACOSEC|ACOTAN
@HYPERBVOLIC=SINH|COSH|TANH|SECH|COSECH|COTANH
@INVERSEHYPERBVOLIC=ASINH|ACOSH|ATANH|ASECH|ACOSECH|ACOTANH
@VARIABLE= $PIXEL|$SCREEN|$A|$B|$T|$C|$Z|$LASTZ|$W|$V|$ITERATION
@VARIABLECONST=$PIXEL|$SCREEN|$T|$LASTZ|$ITERATION|$V|$W
@VARIABLE=$A|$B|$C
@FUNCTION1= SIN|COS|FRAC|CELL|POW|EXP|RECIP|POLAR|CARTESIAN|ABS|NEG|REAL|IMAG|ASIN|ACOS|COSH|CONJ|ROUND|SINH|TAN|TANH|ATAN|NORM|LN|LOG10|SWAP|VECABS|SQRT|FLOOR|CEIL|SETW|SETV|FLAME_CROSS|IMAGE|SINUSOIDIAL|SPHERICAL|SWIRL|HORSESHOE|POLAROID|HANDKERCHIEF|HEART|ASINH|ACOSH|COTAN|COTANH|ACOTAN|ACOTANH|SEC|COSEC|ASEC|ACOSEC|SECH|COSECH|ASECH|ACOSECH|DIST_DIAMOND|DISC|TILE|SPIRAL|CYLINDER|HYPERBOLIC|DIAMOND|EX|FISHEYE|MAPTORGB|BENT|SQUARE|PERLIN|TURBULENCE
@FUNCTION2=MOD|MUL|VECMUL|ADD|XOR|AND|OR|PERSPECTIVE|SUB|PARABOLA|RINGS|PERLIN|TURBULENCE|BUBBLE|FLOWER|DIV|DOT|POW|AVG|MAX|MAXABS|MAXIMAG|MIN|FAN|MINIMAG|MINABS|SETW2|APFEL|BARNSLEY1|BARNSLEY2|ITERATE|LAMBDA|POPCORN
@FUNCTION3=PERLIN|TURBULENCE|VECTOR3|CLAMP|CURL|PDJ|MAPTORGB2|MAGNET1|MAGNET2|APFEL|BARNSLEY3|SPIDER|MANOWAR|HALLEY|LERP|WAVE|NEWTON|SUPER
@FUNCTION4=PHOENIX|IFLO|IFLOIMAG|IFLOABS|AFFIN|NOVA
@FRACTAL2=APFEL|BARNSLEY1|BARNSLEY2|ITERATE|LAMBDA
@FRACTAL3= MAGNET1|MAGNET2|APFEL|BARNSLEY3|SPIDER|MANOWAR|HALLEY|NEWTON
@FRACTAL4= PHOENIX|NOVA
a script may then look like this:
@MK_SKRIPT
@MK_MAKROS
@MAKRO1=$PIXEL
@MK_STARTSTRING
%FUNCTION2%(%MAKRO1%,randomvar(-2,2))
i would like you to post any thoughts and suggestions what you think about it, any suggestions, ideas and for sure a mathematical constant i missed so far
btw: did did you know that EACH function in the declarations above are currently build in into mutatorkammer v0.69x ?