20% off all products! Sale ends tonight at midnight EST.
Discussion
Reply Order
9 Years Ago
I think these are awesome, and, yes, you are making progress! - I am fascinated by this method of creating such images. (But I could not do it by myself, I can't do the math :)
9 Years Ago
Thank you Gabriele !
But so few views and comments on this year's work, i suspect i may fall into self-enclosed.
I am trying to abstract image of goldfish ...
9 Years Ago
GuoJun I think your work is amazing! I have no idea how you do this and probably never will as my math skills are limited :) But you obviously know what you are doing!!!
9 Years Ago
@Val Arie Val, Thank you for your support all the time! I think everyone has his/her own language of art. Digging deep of the right one may gain success.
@Susan Sadoury, Thank you very much! I wish i could create a better one, something good for the market !
9 Years Ago
I really like them a lot. I think I'll follow you to see how you progress with this interesting technique. I like the Pisces the best even though it is your oldest one, it has an elegance to it.
9 Years Ago
Thank you John!
It seems that i am losing my skill.
But in my opinion although what i am doing now looks no better than old one but absolutely originality! I can say you could not see anything like this! This one is even beyond my imagination, it is really a new creation although still not good enough.
9 Years Ago
I agree the Pisces is the best, then the Spiral Goldfish is the next.
Love the work on these.
9 Years Ago
Thank you Dan Richards!
I can feel the power here, the power of free market is much greater than any philosophy, since there is no theory for art. Diversity is the basic before i can trust the market, and this place should be great for me.
9 Years Ago
I don't know anything about math or creating stuff from math - but I have created shrimp http://fineartamerica.com/featured/shrimp-roy-erickson.html
9 Years Ago
@nice to see you!
I should say something about my method.
l am a programmer in game industry for many years.I create tools for other people to use.But i am tied of that complex and industry things.I would like to create my owner piece of art to let the custerms see my design and thinking.
What i really find is that a beautiful program is a beautiful image if you draw it out. i believe a self complete program is abstract art.
The key word for this art is variety.
9 Years Ago
@Drew OK, my stuff looks like these for example drawing a fish :
void fish(vec3 p1, vec3 v, int len, int wid)
{
vec3 lgtdir(0.5, -0.5, 1); lgtdir.normalise();
v.normalise();
vec3 pt0 = p1;
vec3 lstiipp1;
vec3 lstipp1[2000];
real ang = 0;
std::vector pixlist;
for(int i = 0; i < len; i ++)
{
real alpha1 = i / real(len);
ang += rrnd(-0.0001, 0.0001) * PI;
v.rot(ang, vec3(0, 1, 0));
pt0 = pt0 + v * (0.004*0.125);
vec3 pt = pt0 + vec3(0, 1, 0) * blend2(0, 0.05, alpha1, 2);
if(i < len * 0.2)
{
for(int ii = 0; ii < wid; ii ++)
{
real alpha2 = ii / real(wid);
vec3 pb = pt - vec3(0, 1, 0) * blend2(0, 0.1, alpha1, 2);
vec3 pp = blend(pt, pb, alpha2);
real dl = blend2(0, 1, alpha1, 2) * blend2(0, 0.04, alpha2, 2);
vec3 dp = vec3(0, 1, 0).crossproduct(v) * dl;
int cor = blendcor(0xFF0000FF, 0xFFFFFFFF, alpha2);
int color = blendcor(
blendcor(rndcormap[int(50 * alpha2 / PI)%10][12], rndcormap[int(alpha1 * 100 / PI)%10][10], 0.5 + 0.5 * sin(alpha1 * 100)),
1, 0.5 + 0.5 * sin(50 * alpha2), 4);
{
vec2 o = vec2(len * 0.2 / 2, wid / 2);
real ll = (vec2(i, ii) - o).len();
if(ll < 16)
cor = blendcor(0xFF100000, cor, ll / 16.0);
else if(ll < 32)
cor = blendcor(0xFFFFFFFF, cor, ll / 32.0);
}
cor = blendcor(cor, 1, alpha2);
pixel(pp + dp, cor, 1, (pp + dp).z);
pixel(pp - dp, cor, 1, (pp - dp).z);
}
}
else
{
//PRINT("-------------")
for(int ii = 0; ii < wid; ii ++)
{
real alpha2 = ii / real(wid);
vec3 pb = pt - vec3(0, 1, 0) * blend2(0, 0.1, alpha1, 2);
vec3 pp = blend(pt, pb, alpha2);
real dl = blend2(0, 1, alpha1, 2) * blend2(0, 0.02, alpha2, 2);
vec3 dp = vec3(0, 1, 0).crossproduct(v) * dl;
int cor = blendcor(0xFF8080FF, 0xFFFFFFFF, alpha2);
int color = blendcor(
blendcor(rndcormap[int(50 * alpha2 / PI)%10][18], rndcormap[int(alpha1 * 100 / PI)%10][19], 0.5 + 0.5 * sin(alpha1 * 100)),
cor, 0.5 + 0.5 * sin(50 * alpha2), 4);
{
const int csize = 24;
vec2 pp1 = vec2((i / csize) * csize, (ii / csize) * csize);
//pp1.y += blend2d(0.8, 1.2, alpha1, alpha2);
vec2 o = pp1 + vec2(csize / 2, csize / 2);
real ll = (vec2(i, ii) - o).len();
if(ll < csize / 2)
cor = blendcor(0xFF0000FF, cor, ll / (csize / 2));
}
cor = blendcor(cor, 1, alpha2);
pp = pp + dp;
{// lum
vec3 norm1 = (lstipp1[ii] - pp).crossproduct(lstiipp1 - pp);norm1.normalise();
real lum = -lgtdir.dotproduct(norm1);
lstipp1[ii] = lstiipp1 = pp;
real alpha2d1 = blend2d(0, 1, alpha1, alpha2);
int glasscor = blendcor(0xFFFFFFFF, 0xFFFCFCFC, alpha2d1);
cor = blendcor(color, glasscor, lum, 28);
}
pp = pp - dp;
if(ii > 0)
{
pixel(pp + dp, cor, 1, (pp + dp).z);
pixel(pp - dp, cor, 1, (pp - dp).z);
}
pp = pp + dp;
// yi
if(i == int(len * .35) && ii > int(wid * 0.35) && ii < int(wid * 0.60))
{
vec3 tv = v * .1 + dp * 10.1;
tv.normalise();
int cor0 = blendcor(RGB(255, 255, 255), RGB(253, 0, 79), 0.5 + 0.5 * sin(alpha2 * 200));
real aalpha = blend(0, 1, 0.5 + 0.5 * sin(alpha2 * 210));
vec3 ppp = pp;
for(int j = 0; j < wid * 1.5; j ++)
{
real alphaj = j / (wid * 1.5);
tv.x += blend2d(-1, 1, ppp.x, ppp.y) * 0.01;
tv.y += blend2d(-1, 1, ppp.y, ppp.x) * 0.01;
tv.normalise();
real aaalphh = (ii - wid * 0.35) / (wid * 0.25);
real sl = 0.001 * blend2(0, 0.25, aaalphh , 2);
{
ppp = ppp + tv * sl;
pixeldrawdata_t pd;
pd.pp = ppp + dp * 0.2;
pd.cor = cor0;
pd.alpha = aalpha * 0.1;
pixlist.push_back(pd);
}
}
tv = v * .1 - dp * 10.1;
tv.normalise();
ppp = pp - dp * 2;
for(int j = 0; j < wid * 1.5; j ++)
{
real alphaj = j / (wid * 1.5);
tv.x += blend2d(-1, 1, ppp.x, ppp.y) * 0.01;
tv.y += blend2d(-1, 1, ppp.y, ppp.x) * 0.01;
tv.normalise();
real aaalphh = (ii - wid * 0.35) / (wid * 0.3);
real sl = 0.001 * blend2(0, 0.25, aaalphh , 2);
{
ppp = ppp + tv * sl;
pixeldrawdata_t pd;
pd.pp = ppp - dp * 0.2;
pd.cor = cor0;
pd.alpha = aalpha * 0.1;
pixlist.push_back(pd);
}
}
}
// back
if(ii == 0)
{
vec3 tv = v.crossproduct(vec3::UY);
tv = v.crossproduct(tv);
tv = v * 2.2 - tv;
tv.normalise();
int cor0 = blendcor(RGB(255, 255, 255), RGB(253, 0, 79), 0.5 + 0.5 * sin(alpha1 * 850));
real aalpha = blend(0, 1, 0.5 + 0.5 * sin(alpha1 * 560));
for(int j = 0; j < wid * 0.35; j ++)
{
real alphaj = j / (wid * 0.35);
tv.x += blend2d(-1, 1, pp.x, pp.y) * 0.1;
tv.y += blend2d(-1, 1, pp.y, pp.x) * 0.1;
tv.normalise();
real sl = 0.002 * blend(1, 0, alpha1 + 0.25, 0.2);
if(alpha1 < 0.75)
{
pp = pp + tv * sl;
pixeldrawdata_t pd;
pd.pp = pp;
pd.cor = cor0;
pd.alpha = aalpha * 0.35;
pixlist.push_back(pd);
}
//pixel(pp, cor0, aalpha * 0.1);
}
}
// tail
if(i + 8 >= len)
{
vec3 tv = v;
tv.rot(blend(-0.5, 0.5, rndmap[0][ii % 512]), vec3(0, 1, 0));
tv.rot(0.5 * blend2d(-1, 1, alpha2, 0) * PI, vec3(0, 1, 0));
int cor0 = blendcor(RGB(255, 255, 255), RGB(253, 0, 79), 0.5 + 0.5 * sin(alpha2 * 50));
real aalpha = blend(0, 1, 0.5 + 0.5 * sin(alpha2 * 60));
for(int j = 0; j < len * 2.5; j ++)
{
real alphaj = j / (len * 2.5);
tv.x += blend2d(-1, 1, pp.x, pp.y) * 0.01;
tv.y += blend2d(-1, 1, pp.y, pp.x) * 0.01;
tv.normalise();
pp = pp + tv * 0.001;
//int cor = blendcor(cor0, 0xFFFFFFFF, blend2d(0, 1, pp.x, pp.y));
int color = blendcor(
rndcormap[int(250 * alpha2 / PI)%10][18],
rndcormap[int(alpha2 * 250 / PI)%10][19],
0.5 + 0.5 * sin(alpha2 * 250));
pixel(pp, color, aalpha * 0.5);
}
}
}
}
}
for(int i = 0; i < pixlist.size(); i ++)
{
pixeldrawdata_t& pd = pixlist[i];
pixel(pd.pp, pd.cor, pd.alpha, pd.pp.z);
}
}
9 Years Ago
I know these looks horrible i have very beautiful codes for my game but for my art just write what i get in my mind.
9 Years Ago
Looks like C: any specific library files needed to compile? Been a long time since I written any code but c and basic as well as the visual versions I am familiar with.
BTW: your art is a fantastic representation of true abstraction. It would take someone skilled with programming hours maybe even days to reverse engineer your work even with the code.
I also noticed that you declare your variables as you need them instead of an initial declaration. Creating on the fly. Very impressive.
9 Years Ago
@Drew I am using C++.
there is no specific library or i will not call these "art", in my mind simple is the best way.
It is very hard for me to do this because nobody else i can get and exchange ideas.Just along for me, and in my place, people will not buy any artwork unless that is made of valuable materials or by famous artist.
But still i think there is "art" in this simple code, in this way of creation.Math or program is not just a tool, they art form systems just like modern art! They are beautiful not just because of any special shapes or equations!
9 Years Ago
I have an old Borland C ++ compiler. I may try to see if it will compile your code. Thanks for sharing.