Jump to content

  • Log In with Google      Sign In   
  • Create Account

We're offering banner ads on our site from just $5!

1. Details HERE. 2. GDNet+ Subscriptions HERE. 3. Ad upload HERE.


Ken Silverman's Evaldraw


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
3 replies to this topic

#1 benryves   Members   -  Reputation: 1994

Posted 28 September 2007 - 12:45 AM

I don't know how many people are aware of Ken Silverman's very cool Evaldraw program; it's a sort of cross between a C programming environment and a graphing package (with real-time compilation!) that can output in 1D (as sound, even), 2D or 3D (voxels), as well as "0D" for more classic programming techniques (2D pixel plotting, OpenGL, ...) I know we usually promote Python as a beginner's language (thanks to its interactive feedback); maybe this program is worth a look too? It comes with tons of samples, but I threw together a few of my own as a test. [smile] It looks like it'll come in handy for prototyping...
(x,y,t) {
   
   t *= 0.3;
   
   x *= 0.5;
   y *= 0.5;
   
   dx0 = x-sin(t*3);
   dy0 = y-cos(t*2);

   dx1 = x-sin(t*7);
   dy1 = y-cos(t*5);

   dx2 = x-sin(t*4);
   dy2 = y-cos(t*5);
   
   b0 = dx0*dx0+dy0*dy0;
   b1 = dx1*dx1+dy1*dy1;
   b2 = dx2*dx2+dy2*dy2;
   
   return 1.3-(b0*b1*b2);

}
(x,y,t,&r,&g,&b) {
 
   // Offset (x,y).
   x += sin(t * 0.5);
   y += cos(t * 0.7);
  
   // Grab the picture dimensions.
   pic_w = 0; pic_h = 0;
   getpicsiz(pic_w, pic_h);
   
   // Calculate the angle:
   angle = atan2(x, y) * (pic_w / pi) * 3;
   
   // Calculate the depth:
   depth = 80 / (x * x + y * y);
   
   // Look up pixel from tunnel wall:
   pic(angle + t * 5, depth + t * 10, r, g, b);

   // Darkness from depth:
   depth = 10 * sqrt(depth) - 10;
   r -= depth;
   g -= depth;
   b -= depth;
   
}
(x,y,t,&r,&g,&b){
   
   a = t / 10;
   z = 20 * (1.2 + cos(t));
        
   dx = z * cos(a);
   dy = z * sin(a);
   
   ix = x - dy * y + dx * x;
   iy = y + dx * y + dy * x;

   pic(ix, -iy, r, g, b);
}
(x,y,z,t,&r,&g,&b){
  
   t *= 0.4;
   
   dx0 = (x - sin(t * 3));
   dy0 = (y - cos(t * 2));
   dz0 = (z - cos(t * 2));
   
   dx1 = (x - cos(t * 2));
   dy1 = (y - sin(t * 5));
   dz1 = (z - cos(t * 3));
   
   dx2 = (x - cos(t * 2));
   dy2 = (y - cos(t * 3));
   dz2 = (z - sin(t * 5));
   
   b0 = dx0 * dx0 + dy0 * dy0 + dz0 * dz0;
   b1 = dx1 * dx1 + dy1 * dy1 + dz1 * dz1;
   b2 = dx2 * dx2 + dy2 * dy2 + dz2 * dz2;
   
   r = 255 - b0 * 255;
   g = 255 - b1 * 255;
   b = 255 - b2 * 255;
   
   return  1 - (b0 * b1 * b2);
}

[Website] [+++ Divide By Cucumber Error. Please Reinstall Universe And Reboot +++]

Sponsor:

#2 choffstein   Members   -  Reputation: 1090

Posted 28 September 2007 - 01:29 AM

If you like that, you should also check out Context-Free Grammars, Processing, and NodeBox (MacOSX only). All very similar to the concepts you posted, all very unique, and all very, very cool.

#3 Ravuya   Moderators   -  Reputation: 127

Posted 28 September 2007 - 02:39 AM

Cool, Ken Silverman is still making stuff!

#4 Scott_AW   Members   -  Reputation: 102

Posted 03 April 2011 - 12:41 AM

Here's what I've doing recently with Evaldraw, final will be using libs, but until then it'll be mostly all done in Evaldraw.

Posted Image

http://www.moddb.com...black-shadow-3d

http://blackshadowgame.blogspot.com




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS