Recreating Vintage Computer Art with Processing

แชร์
ฝัง
  • เผยแพร่เมื่อ 6 ก.พ. 2025
  • I was browsing archive.org's movie archive when I came across a 1968 film called "Experiments in Motion Graphics" featuring the computer generated art of John Whitney. In this tutorial, I attempt to imitate Whitney's art style using Processing. Learn about Processing, parametric equations, and how to use sinusoidal functions in generative art.
    You can watch the original film here:
    archive.org/de...
    See my own interactive art:
    / space.filler.art
    spacefiller.space

ความคิดเห็น • 185

  • @alexmiller
    @alexmiller  6 ปีที่แล้ว +43

    If you liked this video, you might be interested in my own programmatic art! instagram.com/space.filler.art

    • @camilorivera583
      @camilorivera583 6 ปีที่แล้ว

      holasss baby

    • @gameofpj3286
      @gameofpj3286 5 ปีที่แล้ว

      Btw you don't have to make the int static

  • @spasticjackson9578
    @spasticjackson9578 หลายเดือนก่อน +3

    awesome tutorial. Processing is still relevant 9 years later !

  • @adygombos4469
    @adygombos4469 4 ปีที่แล้ว +90

    We just gonna ignore how my man has a touch screen computer?

    • @josefsaint
      @josefsaint 3 ปีที่แล้ว +5

      light pen, yoz.

  • @stickwithit
    @stickwithit 3 ปีที่แล้ว +5

    I found this video at the beginning of the pandemic and it reinvigorated my passion for generative art. I just want to say that I really appreciate you taking the time to show us something that inspired you because in doing so it inspired us.

  • @נתנאל-ז2ח
    @נתנאל-ז2ח 7 ปีที่แล้ว +37

    I was at the IBM Los Angeles Scientific Center where this work was done. I believe that the person shown at the terminal is
    Jack Cintron. By the way my name is Alfred Inselberg and will be happy to hear

    • @alexmiller
      @alexmiller  7 ปีที่แล้ว +6

      Oh wow! אביגיל בר זכור

    • @jigri_pokhri
      @jigri_pokhri 4 ปีที่แล้ว +3

      RIP Alfred

  • @AbishaiC
    @AbishaiC 3 ปีที่แล้ว +11

    In case this comment section is still interested, there is an entire set of programs related to parametric design developed by Robert McNeel called "Rhinocers" and the parametric part of it is called "Grasshopper". Its a sort of visual coding that i'm sure you guys will love to check out. Great video though, cheers!

  • @DavidDaybreakASMR
    @DavidDaybreakASMR 8 ปีที่แล้ว +4

    I'm learning Processing programming right now, and you introduced a few functions I haven't seen (as well as that AMAZING affect), SO THANK YOU!! I'll comment later with my code for my sketch :)

    • @ricksande2210
      @ricksande2210 3 ปีที่แล้ว +7

      You made that sketch yet?

  • @MyLinuxToyBox
    @MyLinuxToyBox 5 ปีที่แล้ว +12

    Generated computer art is so interesting. What got me interested was the Deep Dream art that Google introduced. Processing and JavaScript both do some neat stuff. I also use a lot of Python.

  • @fewtz9446
    @fewtz9446 ปีที่แล้ว

    it's so interesting you said "the key to that is to layer up sins and cosines on top of each other", because i knew that logically from uni- that's the basis of a fourier series

  • @PunmasterSTP
    @PunmasterSTP 2 ปีที่แล้ว

    Dang that was interesting, and I’ve been hearing a lot about Processing lately. Thanks for putting this video together!

  • @lisacole2897
    @lisacole2897 5 ปีที่แล้ว +1

    Incredibly helpful thank you. I followed along and added the code as you did and it helped me understand what I was doing so much better than copying and pasting. I've managed my very first Processing programme thanks to you! Your descriptions are really clear. Now I just need to work out how to get external data to generate the maths :-)

  • @chrisgavin
    @chrisgavin 6 ปีที่แล้ว +2

    Great intro to early CG art and processing too. I'm just looking into processing and this was really useful. Thanks so much Mr. Miller. Here's one I made based on this...
    float t;
    float ball1x =0;
    float ball1y =0;
    float ball2x =0;
    float ball2y =0;
    void setup() {
    frameRate(25);
    background(20);
    size(720,720);
    }
    void draw() {
    background(0);
    stroke(255);
    strokeWeight(1);
    translate(width/2, height/2);
    rotate (radians(t));
    for (int i=0;i

  • @LolindirElros
    @LolindirElros 6 ปีที่แล้ว +1

    This was such an inspirational video! I ran into Processing maybe a couple of years ago, but was kinda discouraged by the sheer amount of stuff you seamingly needed to know to be able to work with it. But this video used stuff I was familiar with, even if I don't use it since high school almost 10 years ago, and applied it in such a cool way that made me download it instantly and started messing with it. Of course there's stuff I'm lost af but at least I'll try to keep doing stuff.
    Thanks a lot!
    P.S: I love the header logo on your website!

  • @1houraweekmathclass
    @1houraweekmathclass 4 ปีที่แล้ว

    Great tutorial! Nice pace, perfect size font and output and informative narration.

  • @PaulvanRijswijk
    @PaulvanRijswijk 3 ปีที่แล้ว +1

    Reminds me of the good old days programming assembler on the 8088 and learning about lissajous

  • @jamesfelix
    @jamesfelix 3 ปีที่แล้ว

    thanks for the video, i’m excited to learn processing

  • @josetordesillas6706
    @josetordesillas6706 7 หลายเดือนก่อน

    Awsome tutorial, thanks Alexander!!!!!

  • @gregfield4457
    @gregfield4457 9 ปีที่แล้ว +116

    I can start making screens savers! haha

    • @HilmiZul
      @HilmiZul 5 ปีที่แล้ว +2

      Greg Field congratulation🎉

    • @drioko
      @drioko 4 ปีที่แล้ว

      Lmao

  • @electron7373
    @electron7373 3 ปีที่แล้ว

    Thanks Alexander! Really interesting process. I will do some experimenting - looks like there are a lot of possibilities.

  • @thecomputertutor591
    @thecomputertutor591 8 ปีที่แล้ว

    Hey everyone. I just made a tutorial on zooming/panning in Processing, and I'd love for tips and suggestions in the comments. Thanks!

    • @alltaken0
      @alltaken0 6 ปีที่แล้ว

      where? link? thanks

  • @robertmullally8001
    @robertmullally8001 8 ปีที่แล้ว +2

    Make more videos! This was fantastic!

  • @EMPOWA
    @EMPOWA 5 ปีที่แล้ว +1

    thank you so much! such a great run through of parametric lines and processing.

  • @mikejones-vd3fg
    @mikejones-vd3fg 8 ปีที่แล้ว +12

    Thats so cool, the visual at the end reminds me of dancer. Maybe thats why we find dancing attractive, we're sort of mimicing natures formulas of movement i imagine.

  • @MinnoqWV
    @MinnoqWV 2 ปีที่แล้ว

    Thanks Alexander, this is a great tutorial, very helpful!

  • @Mirko_ddd
    @Mirko_ddd 3 ปีที่แล้ว

    "Drunk Jedi waving a light saber" 🤣

  • @ronicave8522
    @ronicave8522 4 ปีที่แล้ว

    It's nice to see calc 2 had at least one use in my life ...

  • @chbanja
    @chbanja 9 ปีที่แล้ว +5

    For a really nice slowmotion effect
    type:
    if (keyPressed) {
    if (key == 'b') {
    t = t-0.5;
    }
    }

    • @vne8112
      @vne8112 8 ปีที่แล้ว

      +the1337er tap it
      if (key == 'v') {
      t = t-2;
      }

    • @bastibob660
      @bastibob660 4 ปีที่แล้ว

      vne that isnt slowmo its moving backwards

  • @TheAlexBoro
    @TheAlexBoro 8 ปีที่แล้ว +1

    This blew my mind, thank you very much.

  • @joeyesposito4894
    @joeyesposito4894 3 ปีที่แล้ว +4

    inspiring! im a designer and musician who failed math and i type with 2 fingers. code scares me, but you're opening me up! you showed me in this video that it doesn't take much to get something cool moving around. Question.. if i was to dedicate time to learning a programming language for generative art, which would you suggest? JS, Python?

    • @sktkkk1
      @sktkkk1 2 ปีที่แล้ว +1

      JS, HTML, CSS

  • @bbossin
    @bbossin 9 ปีที่แล้ว

    Thanks for the super fun and informative tutorial! :D

  • @annickwildeboer2037
    @annickwildeboer2037 ปีที่แล้ว

    more processing tutoriallllss!!!

  • @xtevetyler5332
    @xtevetyler5332 8 ปีที่แล้ว +1

    ah ha . Lissajouss images, I used to generate such images using my own Bresenham's line algorithm's and fast symmetry circle construction without sin/cosine derivatives simply mirror *8 and compute

  • @rawzey
    @rawzey 9 ปีที่แล้ว

    Fantastic find!

  • @PharoahJardin
    @PharoahJardin 7 ปีที่แล้ว

    If you look closely at the original video, you can notice that no lines actually disappear or appear, they "glide" from one position to another. Whereas in your animation, its seems as though they're not moving at all : the last line disappears and a new line appears in the front, but no line actually glides...

  • @benkada8847
    @benkada8847 2 ปีที่แล้ว

    Great video, also very inspiring

  • @saeedzare2410
    @saeedzare2410 6 ปีที่แล้ว +3

    such a cool code remind me of old memory Basic with Commodore 64 Thanks !

  • @TheFionnboland
    @TheFionnboland 3 ปีที่แล้ว

    Legend thank you for this, so helpful

  • @jacobhaig2372
    @jacobhaig2372 8 ปีที่แล้ว +30

    by pure chance, I discovered this amazing code
    float t = 0;
    void setup() {
    size(500, 500);
    background(20);
    }
    void draw() {
    stroke(255);
    strokeWeight(4);
    translate(width/100, height/2);
    point(t, sin(t*2)*150);
    t+=.45;
    }
    and this
    float t = 0;
    float incr=0;
    void setup() {
    size(6000, 500);
    background(20);
    }
    void draw() {
    stroke(255);
    strokeWeight(5);
    translate(width/100, height/2);
    point(t, sin(t*2.2)*150);
    //incr += .000005;
    t+=.255+incr;
    frameRate(500);
    }

    • @noon8409
      @noon8409 7 ปีที่แล้ว

      awesome, thanks for sharing

    • @miksuko
      @miksuko 7 ปีที่แล้ว +4

      Jacob Haig if it has sin in it, chances are it will look awesome (trust me, I am experienced)

    • @youtubepooppismo5284
      @youtubepooppismo5284 6 ปีที่แล้ว

      Woooow.

    • @0xDEAD_Inside
      @0xDEAD_Inside 6 ปีที่แล้ว

      Thanks!

    • @sowswo
      @sowswo 5 ปีที่แล้ว

      mm

  • @kyleadamsdrums
    @kyleadamsdrums 3 ปีที่แล้ว

    incredible

  • @goatmen7996
    @goatmen7996 ปีที่แล้ว

    this can be good for a music video

  • @Miionu
    @Miionu 7 ปีที่แล้ว

    Great video! I want more of these! 😁

  • @rewwhiskas4234
    @rewwhiskas4234 8 ปีที่แล้ว

    Great! Lovely stuff mate.

  • @mario-vy6iw
    @mario-vy6iw 6 ปีที่แล้ว

    Very nice intro tutorial, neat and useful. Congratulation!

  • @TheJunolao
    @TheJunolao 7 ปีที่แล้ว

    I just love you man, keep it up :3

  • @stephanielopez8729
    @stephanielopez8729 8 ปีที่แล้ว

    Thanks for the video! Great material to learn!

  • @petez4608
    @petez4608 11 หลายเดือนก่อน

    Great video. How would you do this tutorial today in 2024?

  • @MarieAmeliaFreyaAster
    @MarieAmeliaFreyaAster 2 ปีที่แล้ว

    It's cool, could you do a more detailed video about the maths?

  • @alltaken0
    @alltaken0 9 ปีที่แล้ว

    nice tut man!

  • @brunoruchiga22
    @brunoruchiga22 7 ปีที่แล้ว

    great video!

  • @bs9061
    @bs9061 4 ปีที่แล้ว

    Thank you!

  • @tibfox
    @tibfox 8 ปีที่แล้ว

    great tutorial. Thanks !

  • @ConecVisuals
    @ConecVisuals 8 ปีที่แล้ว +21

    Theres a doc on archive.org called The Incredible Machine. Really interesting look at the beginnings of graphics. check it out, cheers for the video. :)

    • @FlySilky
      @FlySilky 6 ปีที่แล้ว

      Nice rec!

    • @ahmmo2870
      @ahmmo2870 3 ปีที่แล้ว

      Here's the documentary on TH-cam :) th-cam.com/video/iwVu2BWLZqA/w-d-xo.html

  • @Mousus929
    @Mousus929 8 ปีที่แล้ว

    Great video, thanks

  • @santiagojaramillorodriguez8272
    @santiagojaramillorodriguez8272 4 ปีที่แล้ว

    thanks, please go on with more tuts!

  • @tyroneslothrop123
    @tyroneslothrop123 9 ปีที่แล้ว +1

    More of it!

  • @LoweHenry
    @LoweHenry 4 ปีที่แล้ว

    this is so cool!!!!

  • @grainfrizz
    @grainfrizz 5 ปีที่แล้ว

    Magnificent

  • @moritzheinzel815
    @moritzheinzel815 5 ปีที่แล้ว +1

    I found this:
    float t;
    float mx = 250;
    void setup(){
    background(20);
    size(500, 500);
    }
    void draw(){
    stroke(255);
    strokeWeight(1);
    line(0, 250, 500, 250);
    line(mx, 0, mx, 500);
    translate(mx, height/2);
    line(x(t-1), y(t-1), x(t), y(t));
    line(y(t-1), x(t-1), y(t), x(t));
    t = t+50;
    }
    float x(float t){
    return 100*sin(t) + 200*cos(-t);
    }
    float y(float t){
    return 100*sin(0.5*t) + sin(t/30);
    }
    Trust me its amazing.

  • @Saturos02
    @Saturos02 8 ปีที่แล้ว

    Great video! Thank you!

  • @ishi92
    @ishi92 8 ปีที่แล้ว +6

    how would you make the camera follow the movement of point?
    For example: In the first case where you make the function x return the value of t -> the point moves right along the horizontal plane and eventually out of bounds (towards infinity) -> how would make the camera follow this movement?
    Cheers for the video!

  • @basiccoder2166
    @basiccoder2166 6 ปีที่แล้ว

    that made my day Thank you sir.

  • @damienrave4660
    @damienrave4660 9 ปีที่แล้ว

    Great video, thank you for sharing :)

  • @hellobluedays
    @hellobluedays 6 ปีที่แล้ว

    how to save the video man ? but when i saved it to png the outcome was blank and all black. Does anyone know how to solve this?
    // y = 5x
    // x = 5t
    // y = 3t + 3
    static final int NUM_LINES =10;
    float t;
    void setup() {
    size(500, 500);
    background(0);
    }
    void draw() {
    background(0);
    stroke(255);
    strokeWeight(5);
    hint(DISABLE_ASYNCSAVEFRAME);
    saveFrame("output/gol####.tif");
    translate(width/2, height/2);
    for (int i = 0; i < NUM_LINES; i++) {
    line(x1(t + i), y1(t + i), x2(t + i), y2(t + i));
    }
    t++;
    }
    float x1(float t) {
    return sin(t / 10) * 100 + sin(t / 5) * 20;
    }
    float y1(float t) {
    return cos(t /10) * 100;
    }
    float x2(float t) {
    return sin(t / 10) * 200 + sin(t) * 2;
    }
    float y2(float t) {
    return cos(t / 20) * 200 + cos(t / 12) * 20;
    }

  • @that_billu_guy
    @that_billu_guy 6 ปีที่แล้ว +2

    so cool
    float t;
    void setup(){
    background(30);
    size(2500,2000);
    }
    void draw(){
    stroke(255);
    strokeWeight(5);
    translate(0,height/2);
    point(x(t),y(t));
    t++;
    }
    float x(float t) {
    return t;
    }
    float y(float t) {
    return tan(t*101) * 100;
    }

  • @AlexandrosAngelakis0
    @AlexandrosAngelakis0 8 ปีที่แล้ว

    thank you. useful stuff!

  • @1st_ProCactus
    @1st_ProCactus 7 ปีที่แล้ว +11

    Dude, You almost have more likes on this 1 video than you have subs.
    I think if you started to make more videos, especially like this one, then it might work you ?

  • @binershock
    @binershock 8 ปีที่แล้ว

    This is cool and thanks for making it- one question is about frame rate. It seems like according to documentation the default frame rate is going to be 60 frames per second, but in your example things seem to move slower than that. I don't see you alter the frame rate explicitly.

    • @sparkloweb
      @sparkloweb 6 ปีที่แล้ว

      It's rendering at 60 fps. You can tell when it increments one pixel at a time across half the window (250px) in just over 4 seconds. But the video appears to be captured at only 24 fps.

  • @xummonaa
    @xummonaa 9 ปีที่แล้ว

    very cool

  • @duality4y
    @duality4y 4 ปีที่แล้ว

    hmm i would have made a list of points. but that would have complicated things in a way.
    maybe a ArrayList since that is a linked list and you can just remove elemenst and then just remove the first if bigger then X and keep adding to the back.

  • @raydeen2k
    @raydeen2k 7 ปีที่แล้ว

    That man would have loved Tempest. :D

  • @faithyoung5780
    @faithyoung5780 8 ปีที่แล้ว

    Hi! could you post a beginners tutorial on processing? I have no idea what I'm doing in processing in regards to code. I am used to traditional art, so this is super new to me. If not, you could also direct me to another video! Thank you.

  • @santiagojaramillorodriguez8272
    @santiagojaramillorodriguez8272 4 ปีที่แล้ว

    is there a possibility to make this with another kind of movement? maybe bassed on another kind of wave?

  • @ta-ya-music
    @ta-ya-music 3 ปีที่แล้ว

    please make more I subscribed

  • @gr4hamm
    @gr4hamm 8 ปีที่แล้ว

    if I wanted to have it stop in place how would I do that? is there I could make the floats freeze? or would it be in the for loop? sorry I'm a noob lol

  • @toastyPredicament
    @toastyPredicament 3 ปีที่แล้ว

    sick

  • @davidprentice5442
    @davidprentice5442 3 ปีที่แล้ว

    the 1968 computer is a Xerox Alta ?

  • @duality4y
    @duality4y 4 ปีที่แล้ว +16

    "Processing is a tool for non programmers" goes a head and writes a program.
    (I guess you are a programmer good luck!)

  • @toleliart1014
    @toleliart1014 5 ปีที่แล้ว

    Any idea how to get one of the points to follow the mouse? I can only get it to change the angle very slightly.

  • @BobIrving2
    @BobIrving2 5 ปีที่แล้ว +1

    Has anyone "translated" this code to p5.js? I'm trying to work it out but getting confused.

    • @drj9403
      @drj9403 4 ปีที่แล้ว

      Its actually at Official website
      p5js.org/examples/math-parametric-equations.html

  • @aileendeus
    @aileendeus 5 หลายเดือนก่อน

    hello, do you have a course for beginners?

  • @hellobluedays
    @hellobluedays 6 ปีที่แล้ว

    how to save the video man ? thanks :(

  • @animanoir
    @animanoir 6 ปีที่แล้ว +1

    is there a way to create the grainy vibrating effect too?

  • @y_j_w_y_j
    @y_j_w_y_j 8 ปีที่แล้ว

    This is a great video. However, one thing that I don't understand ---------- "float x (float t)". Is it a short form of a function? like " i++" is a short form of "i = i+1"?

    • @alexmiller
      @alexmiller  8 ปีที่แล้ว +3

      No, it's not a special short form, even though it looks odd. It's a function called "x" that returns a float, and takes one float parameter "t". An equivalent function header would be:
      float myFunction(float myParameter)

    • @y_j_w_y_j
      @y_j_w_y_j 8 ปีที่แล้ว

      Thanks for answering

  • @rzeka
    @rzeka 8 ปีที่แล้ว +3

    I like your voice a lot

  • @Waadee101
    @Waadee101 6 ปีที่แล้ว

    Could you please do a tutorial like this on the works of Adam Ferriss.

  • @fredrikpeterson1987
    @fredrikpeterson1987 5 ปีที่แล้ว +2

    i did some change in code pretty simular to win 98 screensaver now we need to put another color so they can change
    // y = 5x
    // x = 5t
    // y = 3t + 3
    static final int NUM_LINES = 10;
    float t;
    void setup() {
    background(20);
    size(1280, 800);
    }
    void draw() {
    background(10);
    stroke(55,10,255);
    strokeWeight(1);


    translate(width/2, height/2);

    for (int i = 0; i < NUM_LINES; i++) {
    line(x1(t + i), y1(t + i), x2(t + i), y2(t + i));
    line(x3(t + i), y3(t + i), x4(t + i), y4(t + i));
    }
    t += 0.5;
    }
    float x1(float t) {

    return sin(t / 10) * 100 + sin(t / 5) * 100;
    }
    float y1(float t) {
    return cos(-t / 10) * 100 + sin(t / 5) * 150;
    }
    float x2(float t) {
    return sin(t / 10) * 200 + sin(t) * 2 + cos(t) * 10;
    }
    float y2(float t) {
    return cos(t / 20) * 200 + cos(t / 12) * 20;
    }
    float x3(float t) {
    return sin(t / 10) * 100 + sin(t / 20) * 200;
    }
    float y3(float t) {
    return cos(-t / 10) * 100 + sin(t / 5) * -150;
    }
    float x4(float t) {
    return sin(t / 10) * 200 + sin(t) * 2 + cos(t) * 10;
    }
    float y4(float t) {
    return cos(t / 20) * 200 + cos(t / 12) * -200;
    }

  • @jojongovn
    @jojongovn 6 ปีที่แล้ว

    thank you : )

  • @farismoumin6048
    @farismoumin6048 9 ปีที่แล้ว

    thank you , if we increase 'i' up to 100 , and add an other 'i' to the for loop out off parentheses it would be more interrestting animation.

  • @ida22ida
    @ida22ida 8 ปีที่แล้ว

    Hi, nice video :-) if I wanted to add another float, or set of parametric lines, how would I do that?

    • @ida22ida
      @ida22ida 8 ปีที่แล้ว

      +Ida Engelhardt Never mind, I found out how to do it ;-)

    • @roelweerdenburg
      @roelweerdenburg 8 ปีที่แล้ว

      How then?? I really want to know how I can add more sets of parametric lines!

  • @ryan7288
    @ryan7288 7 ปีที่แล้ว

    Hello, I was hoping maybe you could help me with this program. I am taking a course in university and well to be honest my professor isn't very helpful at all and I am having to learn everything myself which is fine but I got about a month to finish everything up. Any chance I could show you the assignments and you could lead me in the right directions?

  • @xtevetyler5332
    @xtevetyler5332 8 ปีที่แล้ว +1

    i wanted to see whitneys tutorial, can you direct me to that, i done all this maths a long time ago, and bezier elastic banding, ah my bad.... i should have read more in comments, i am off to see his original work, ps. good tutorial mind.

  • @TripcussionShorts
    @TripcussionShorts 5 ปีที่แล้ว

    subbed this channel

  • @aangel-s2p
    @aangel-s2p 3 ปีที่แล้ว

    unbelievably based

  •  7 ปีที่แล้ว

    thank you

  • @BlackPowerRanger
    @BlackPowerRanger 8 ปีที่แล้ว +3

    how do you add colour to the strokes lines, just like in the archive video?

    • @alexmiller
      @alexmiller  8 ปีที่แล้ว +6

      +MegaNigel77 Use the stroke function: processing.org/reference/stroke_.html

    • @alltaken0
      @alltaken0 6 ปีที่แล้ว

      @@alexmiller could you post an example where to put the fill settings? mine stay white ; ( ... great vid Sir!

    • @simasglebavicius2085
      @simasglebavicius2085 6 ปีที่แล้ว +2

      @@alltaken0 Put it before the point in the code. Use stroke(255,255,255); and change the values inside which stand for Red, Green, Blue.

  • @CleavelandBeats
    @CleavelandBeats 4 ปีที่แล้ว

    How would I export this as a gif? Given that there's no way to know the total frames in a loop. And it does loop, as is the nature of sin and cosin functions, correct?

  • @Nathan666ismynumber
    @Nathan666ismynumber 7 ปีที่แล้ว

    Hi Alexander do you have any of the codes saved so i could take a peak please?

  • @xaro9982
    @xaro9982 7 ปีที่แล้ว +7

    Heres mine
    static final int NUM_LINES = 10;
    float t;
    void setup() {
    background(20);
    size(500, 500);
    }
    void draw() {
    background(20);
    stroke(random(255), random(255), random(255));
    strokeWeight(5);
    translate(width/2, height/2);
    for (int i = 0; i < NUM_LINES; i++) {
    line(x1(t + i), y1(t + i), x2(t + i), y2(t + i));
    }
    t += 0.3;
    }
    float x1(float t) {
    return sin(t / -15) * 100 + sin(t / 5) * 200;
    }
    float y1(float t) {
    return cos(t / 20) * 175;
    }
    float x2(float t) {
    return sin(t / 10) * 200 + sin(-t) * 2;
    }
    float y2(float t) {
    return cos(-t / 20) * 200 + cos(-t / 12) * 20;
    }

    • @olivamidnight841
      @olivamidnight841 7 ปีที่แล้ว +1

      uou to much lights for me

    • @whitelotus187
      @whitelotus187 7 ปีที่แล้ว

      epileptic

    • @slowdown_
      @slowdown_ 6 ปีที่แล้ว +1

      for better colors use in setup "colorMode(HSB);" and then where you set the stroke change to "stroke((t * 5) % 256, 255, 255);" --> already much nicer colors ;) your welcome

    • @lisacole2897
      @lisacole2897 5 ปีที่แล้ว

      thank you! I had a typo in mine somewhere and I couldn't find it, that sorted it

  • @sashakoshka
    @sashakoshka 7 ปีที่แล้ว

    Imagine this in 3D.

  • @FredoCorleone
    @FredoCorleone 6 ปีที่แล้ว

    Use Perlin's noise!