G'MIC fun with Reptorian

Same. However, there does seem to be potential in converting code, and a lot of work at times in theory can be cut down. When I ask it to convert G’MIC code to Python code, they seem to be almost the same in results. Just that the converted Python code needs fixing per se. This only really applies to simple codes. For complex code, I doubt the AI would be capable of understanding what’s going on.

According to their site, one has to open an account to use their services. The first few months or up to a certain amount of operations are free, then they aren’t afterward. For casual user, that means a few dollars, but for me, it might mean more than that because of my love of exploration.

1 Like

My new version of Diffusion Limited Aggregation+distance+normalize_local equal

$ sample portrait0 negate rep_diffusion_limited_aggregation_new 100,2,1,0,0,0 distance 1 normalize_local 3,100 negate

That’s a evil man for sure if you can call him one.

I did not know that I can create basic spreadsheet file in G’MIC. Now I know:

$ rep_stem_and_leaf_plot 2,2450,2550,2530,2430,2415,2790,2830,2840,2840,3545

#@cli rep_stem_and_leaf_plot: significant_digits_count,number_a,number_b,...
#@cli : Create images which represents stem and leaf plot.
rep_stem_and_leaf_plot:
check "$#>2"
(${2--1}) => numbers_collection

significant_digits={min(int(log10(iM)),int(abs($1)))}
dividier={10^$significant_digits}

+fill "begin(const dividier=$dividier);int(i/dividier);"

iter={im}

{iM-im+1},1,1,1 => found_stem [-1]
remove...
split. x

eval[numbers_collection] >"begin(
  const minimum_number=$iter;
  const zeros=10^$significant_digits;
  const found_stem=$found_stem;
  const da_start_point=found_stem+1;
  const dividier=$dividier;
 );
 pos=int(i/dividier)-minimum_number;
 i(#found_stem,pos)=1;
 da_push(#(da_start_point+pos),i%zeros);
 end(
  repeat(w#found_stem,pos,
   img_pos=da_start_point+pos;
   if(da_size(#img_pos),
    da_freeze(#img_pos);
   );
  );
 );
 "

ref_img_pos={$found_stem+1}
sort[$ref_img_pos--1]

rf={w#$found_stem}
erf={$rf-1}

skip_lines=0

repeat w#$found_stem {
 
 if i(#$found_stem,$>)
  stem_and_leaf_plot_out.=$iter,
  skip_lines=0  
  ('{crop(#$ref_img_pos)}')
  stem_and_leaf_plot_out.={t}
  rm.
 else
  if $skip_lines==1 stem_and_leaf_plot_out.=...\n
  elif !$skip_lines stem_and_leaf_plot_out.=$iter\n
  fi
  skip_lines+=1
 fi
 
 if !$skip_lines&&$>!=$erf stem_and_leaf_plot_out.=\n fi

 iter,ref_img_pos+=1
}

remove[$numbers_collection--1]
('$stem_and_leaf_plot_out')
ot. stem_and_leaf_plot.csv
rm.

This gives me this file:

24,15,30,50
25,30,50
26
27,90
28,30,40,40
29
...
35,45

Which can be opened in spreadsheet applications.

Also output format .dlm does something similar:

$ gmic sp lena,8 luminance round o out.dlm
[gmic]-0./ Start G'MIC interpreter.
[gmic]-1./ Input sample image 'lena' (1 image 8x8x1x3).
[gmic]-1./ Compute luminance of image [0].
[gmic]-1./ Round values of image [0] by 1 and nearest rounding.
[gmic]-1./ Output image [0] as dlm file 'out.dlm' (1 image 8x8x1x1).
[gmic]-1./ End G'MIC interpreter.
(focal-base r3771)tschumperle@C302L-G17P17:~$ 

$ cat out.dlm 
157,111,132,139,129,146,160,90
132,106,123,160,182,125,124,85
133,111,130,145,164,183,109,148
135,105,112,85,162,124,97,154
126,102,72,120,149,96,127,166
122,86,94,91,144,82,145,200
128,69,88,80,151,135,137,134
135,61,70,113,146,177,122,90
1 Like

Made with my latest Tupper’s Self-Referential script:

Yes, I know of the bug in here.

$ 106,17 rep_tupper 27151642905537595605167893128011405431475178892629752369499182488412626989656753778141917562280171702364126727354295042079414896160029415469104040704209262700766374720512186243495064646984335769264936563128760576149767219577211226759085278808733300252081426468172516321767714823706790137738751865473055318003640727815763867255956951900604354992990886567626014153319626555037460553323297521578836562563444171486120432302576385360557748442251266155991677978666611344281463646219260129386806998781779068292747860502934988889846261884125184

$ 106,17 rep_tupper 960939379918958884971672962127852754715004339660129306651505519271702802395266424689642842174350718121267153782770623355993237280874144307891325963941337723487857735749823926629715517173716995165232890538221612403238855866184013235585136048828693337902491454229288667081096184496091705183454067827731551705405381627380967602565625016981482083418783163849115590225610003652351370343874461848378737238198224849863465033159410054974700593138339226497249461751545728366702369745461014655997933798537483143786841806593422227898388722980000748404719

$ 106,17 rep_tupper 6321611917955060863013321079107162256278226331789901723228694444885867152500365809283203296775751987180038279396740559153914522749170601844587251572630511814797071588651426724190503374183991989759031282053981343052912140401794032831666789992909243460687403477287052583001675110329492976818351293863861459503850911467117276569015155563858717461138225037829506180867346704533793705944236480899097326829232223067904736675275692857376941931939245059525964210396169114266317777121330134828394970740026059001878015895263659409014784

1 Like

Thorn Fractal with gamma() function. I combined it with sin() and cos() though. :

vx=vx/sin(gamma(vy)) ; vy=vy/cos(gamma(vx)) ;

Another one:

$ 1024,1024 rep_thorn_fractal -1,500000,255,5,1.5,-.5,1,1,1,1,0,0,0,a/(cos(gamma(abs(sin(b))))),b/(sin(gamma(abs(cos(a)))))
2 Likes

A play test of Z-Time in G’MIC PDN:

That looks freakish.

Meh, nothing new yet. Still interesting though.

I don’t think I have shown this before, but this is something I made with one of my G’MIC tool. It’s still overdue for a upgrade, but I’ll have to get back to it at some point. Could be weeks or months.

image

2 Likes

Looks good to me. Is it a 2D tile set creation tool?

It’s a 2D tile placement tool.

There are these limitations:

  1. You’re limited to close to your screen size. That means, you cannot work with really large canvas.
  2. It’s not suitable for 2D game content creation because all the tiles are placed together.
  3. For it to be suitable for importing/exporting data structure for 2D game, there needs to be depth and simple indexes.
  4. There may the idea of multi-channel data tileset image to represent display images and collision.

I have been told that C++/C# would be better, and I agree, but I feel more comfortable doing this in G’MIC. If I ever get back to it, I would start over from scratch, and address these limitations.

Here’s a test of the new gradient option for rep_cubic_map:

7 Likes

The world needs some more love

3 Likes


6 Likes

Hi Reptorian
I am very interested in obtaining such “cosmic” effects.
Is it possible to do it without CLI? - because I would like to add such effects to the python-fu plugin “P&M Cosmos”.

It’s possible to do it without CLI. The effect that is used is Complexion Burst which utilize rep_complexion_burst code. GUI version of the code is available too, but I would not advice to use that in the long-term because I do plan to use _persistent which means you should go with CLI version for the future, and CLI version are very unlikely to have their parameters changed at this point. You can find GUI version at fx_rep_compb in gmic-community.

Here are the parameters:

rep_complexion_burst: _points>0,_density>0,_H,_K,_zoom,_rotation_angle,_origin_x,_origin_y,_numbers_extraction_mode={ 0=Individual | 1=Additive },_mode={ 0=C-4 | C=C-6},_f1={ 0=csin | 1=ccos | 2=ctan | 3=clog},...

In your case, all you need to do is set number_extraction_mode to 1 (Maybe 0 is correct). And you should think of mode as enabling either 4 extra parameters or 6 extra parameter. Each 2 parameters are for real/imag axis respectively. So, your possible codes are:

rep_complexion_burst _points>0,_density>0,"[real_H,imag_H]","[real_K,imag_K]",_zoom,_rotation_angle,_origin_x,_origin_y,1,0,_real_a={ 0=csin | 1=ccos | 2=ctan | 3=clog},_real_b={ 0=csin | 1=ccos | 2=ctan | 3=clog},_imag_a={ 0=csin | 1=ccos | 2=ctan | 3=clog},_imag_b={ 0=csin | 1=ccos | 2=ctan | 3=clog}
rep_complexion_burst _points>0,_density>0,"[real_H,imag_H]","[real_K,imag_K]",_zoom,_rotation_angle,_origin_x,_origin_y,1,0,_real_a={ 0=csin | 1=ccos | 2=ctan | 3=clog},_real_b={ 0=csin | 1=ccos | 2=ctan | 3=clog},_real_c={ 0=csin | 1=ccos | 2=ctan | 3=clog},_imag_a={ 0=csin | 1=ccos | 2=ctan | 3=clog},_imag_b={ 0=csin | 1=ccos | 2=ctan | 3=clog},_imag_c={ 0=csin | 1=ccos | 2=ctan | 3=clog}

which then simplifies to:

rep_complexion_burst _points,_density,"[real_H,imag_H]","[real_K,imag_K]",_zoom,_rotation_angle,_origin_x,_origin_y,1,0,_real_a,_real_b,_imag_a,_imag_b
rep_complexion_burst _points,_density,"[real_H,imag_H]","[real_K,imag_K]",_zoom,_rotation_angle,_origin_x,_origin_y,1,0,_real_a,_real_b,_real_c,_imag_a,_imag_b,_imag_c

Keep in mind you may have to adjust midpoint. See the code for rep_exponential_sigmoid_adjustment for reference. What this code does is manipulate shading by shifting midpoint while having the benefit of having a sigmoid curve.

Thank you very much for your immediate reply.
I’ll try to implement it this weekend.

1 Like

Did you managed to get it in?

Unfortunately not yet.
I’m stuck getting such great colors as in your photos.
I haven’t tried all the methods available in Gimp but it’s probably something simple (but I don’t know how) - can you help with that?