Simple Fractal rendering

Sdílet
Vložit
  • čas přidán 28. 02. 2023
  • Github of the project github.com/johnBuffer/JuliaRe...
    Made using C++ and SFML
  • Věda a technologie

Komentáře • 341

  • @OlofNisshagen
    @OlofNisshagen Před rokem +680

    You're like a more math-focused Sebastian Lague, great content!

  • @owlroseproductions8876
    @owlroseproductions8876 Před rokem +342

    You are a gem in the programming space of CZcams. You've inspired a lot of other successful programmers on here and also me (just as a hobbyist, but still).
    Keep making what you love and we'll love it

    • @spaztor7723
      @spaztor7723 Před rokem

      where does an idiot such as myself begin in making somthing like this, a hobby??

    • @owlroseproductions8876
      @owlroseproductions8876 Před rokem

      @@spaztor7723 well, as a starter for visualizations like this I recommend processing/p5.js. it's not the fastest, the sturdiest or prettiest, but the ease of use is unparalleled. I have spent countless hours in it and I've loved every second

    • @Jake_Gotthard
      @Jake_Gotthard Před 8 měsíci

      @@spaztor7723i dont even know what “constant;” does but i have adhd, autism, the determination of someone trying undertale for the 1st time and doing true genocide, an ungodly amount of love for cool stuff like fractals, a BEAST of a computer and i am going to do this.

  • @thecakeredux
    @thecakeredux Před rokem +87

    Writing a fractal render was one of my favorite projects of all times. I hope you making this as accessible as you did with this video opens allows others to experience the awe when their code creates beauty in front of their eyes.

  • @karolciszek8550
    @karolciszek8550 Před rokem +8

    That zoom with the music was just magical

  • @brayden1562
    @brayden1562 Před rokem +15

    Came for the programming. Stayed for the existential crisis.

  • @_miobrot_603
    @_miobrot_603 Před rokem +49

    In a highschool programming class right now, and seeing this has raised motivation to the max.
    Still going over the basics (in python), but one day I will make something like this.
    Thank you Pezzza for the inspiration and I hope my comment is meaningful in some way.

    • @therealsemechki
      @therealsemechki Před rokem +2

      Good luck on your journey! If I were to make a suggestion, use a language that supports multithreading, like C++! Or, you could learn a shader language🙂 (GPUs aren't *quite* as bad at using double-precision as it might sound, although they are still pretty slow at it. There are techniques to mitigate this, though!)

    • @karolciszek8550
      @karolciszek8550 Před rokem +3

      You could absolutely plot a Julia set like this in Python. It would be a great project for a high school student. Good luck.

    • @blaze_arch6864
      @blaze_arch6864 Před rokem +2

      Try Nim language
      Nim has syntax of Python
      And speed of C

    • @josephastier7421
      @josephastier7421 Před rokem +3

      Go for it! The output of these fractal images looks really complex, but the math is simple. Some of the biggest bang for the buck is to be had displaying a color palette instead of a grayscale gradient. Then your renders will come to life.

  • @chochochon5464
    @chochochon5464 Před rokem +4

    Since I was a kid, I've been fascinated by the fractals... I could spend HOURS watching zooming videos about fractals XD

  • @mmd-wt5eq
    @mmd-wt5eq Před rokem +13

    The more fascinating thing is your video. Thanks so much for you awesome content.

  • @fabienherry6690
    @fabienherry6690 Před rokem +12

    That is fascinating to watch ! I love how the background of the fractal is still indicating some sort of position despite the infinite similarity

  • @dasjulian3
    @dasjulian3 Před rokem +19

    Fractals are quite nice.

  • @2_Elliot
    @2_Elliot Před rokem +8

    Criminally underrated, your content always amazes me in its complex simplicity. Keep it up!

  • @jonasdaverio9369
    @jonasdaverio9369 Před rokem +54

    If you want arbitrary precision while using your GPU, you can use perturbative techniques by computing only a few points with high precision on your CPU, and then computing all other points in low precision on the GPU. Choosing the points is tricky, though

    • @AiRde
      @AiRde Před rokem +4

      Yes this is the methode use by Kalles Fraktaler, an amazing fracal render

    • @jonasdaverio9369
      @jonasdaverio9369 Před rokem +3

      @@AiRde I once tried to implement but the result was awful and glitchy. I would really have to make something smarter to pick the point.

    • @thingthingthingthingthingthing
      @thingthingthingthingthingthing Před 29 dny

      I used that for rendering Mandelbrot set, but only the center part which takes the most time

  • @jaydevsr2536
    @jaydevsr2536 Před rokem +8

    Your videos are always inspiring. I remember the time I was myself trying to render Julia sets, I was really happy to see the results. I hope other people try this as well as this is very rewarding!

  • @ajs1998
    @ajs1998 Před rokem +4

    I love this, man. Programming is the coolest hobby ever and I'm so happy to be here. Awesome video, keep it up!

  • @kubstoff1418
    @kubstoff1418 Před rokem +1

    That was a very intriguing dive into the subject, whenever you post something I'm immediately hooked to try that myself. Great Work as always!

  • @doggo9757
    @doggo9757 Před rokem +18

    Came across this channel a few days ago, and I must say this is one of the best channels for programming and math. I have an exam, after that, I plan to binge watch all you videos. The Cool Chicken is a very cool guy.

  • @crakhaed
    @crakhaed Před rokem

    Very beautiful video! All the aspects were so well done. Especially underrated is the sound mixing and the music that follows the camera down at the end. Thank you very much for making this! For 11 minutes of watch time it probably took much longer than that to make and produce. I appreciate the time and effort you took.

  • @multiarray2320
    @multiarray2320 Před rokem +5

    is it true that there is a chicken at that point in the fractal, or have you edited it in?

    • @d00dEEE
      @d00dEEE Před rokem +6

      I believe it's chickens all the way down.

  • @Graverman
    @Graverman Před rokem

    love this content! Keep improving and it’ll be amazing. Also love when you show all the optimizations you’ve made and their downsides

  • @Ener-G
    @Ener-G Před 5 měsíci

    Thank you so much for this! I'm in a rush but I wanted to express that your simple, straightforward explanation and approach to fractal rendering has opened my mind to the possibility of doing something similar myself! I've been hoping for this knowledge for a long time. Thank you so much for creating this video as a vessel by which I can begin my journey of understanding!

  • @JohnR436
    @JohnR436 Před rokem +1

    I love this!!! Great videos. Love the easy to follow code examples & visual output (like the multithreaded rendering), very cool!

  • @tm001
    @tm001 Před rokem +4

    The one thing that keeps blowing my mind every time in his videos is how he can optimize the shit out of the rendering time with just "simple" logic and few lines of code, and then he basically says "I can optimize it even more but I don't want to" 😎

  • @hippopotamus86
    @hippopotamus86 Před rokem +8

    Perfect. Love your work.

  • @crackedemerald4930
    @crackedemerald4930 Před rokem +1

    Because of the way our brain processes grays, the fractal had a lot of detail on the borders of the greys that made them very interesting.

  • @Maus_Indahaus
    @Maus_Indahaus Před rokem +2

    The only thing missing from this masterpiece is a quick zooming out at the end to show everything in its full glory

  • @firkinflamer8604
    @firkinflamer8604 Před rokem +1

    My favorite channel. Every video you post makes me at least raise my eyebrows

  • @tonyb5536
    @tonyb5536 Před 7 měsíci

    This is one of the coolest things I have ever seen.

  • @saniancreations
    @saniancreations Před rokem +5

    You really had me for a second there with the logo showing up at the end.

  • @spudd86
    @spudd86 Před rokem +10

    I have written a program that renders Julia Sets by using texture mapping to do the inverse iteration method. Basically if you compute the inverse of the function and map the entire plane backwards it will eventually converge to the Julia Set.
    I'm using this for a music visualizer so we blend the frames together and the Julia Set emerges as the points with colour. I have video of it running. I blends a sort of oscilloscope visualization on top of the frame and then uses that as input to do the Julia Set inverse iteration in the next frame. You can see how the copies of the scope shrink and copy around to build up the shape of the set.
    The nice thing about doing the inverse iteration with texture mapping is that you *actually* compute the forward function to determine the source pixel for the texture map operation, the texture mapping to the output effectively makes it doing the inverse.
    The other nice thing about this is that precision isn't really critical and GPUs are REALLY good at texture mapping. I have written the same thing for both CPU and GPU (via OpenGL 2.1, so it runs on a potato), can't do a zoom though, the algorithm requires you to keep an image of the entire circle that the Julia Set might be in (that is the same circle you use as the escape radius).
    I have explained this poorly I know.
    Video of it running: czcams.com/video/PD1ZlkNf7GQ/video.html
    It's open source so code is at: github.com/Spudd86/julia-vis

    • @jonasdaverio9369
      @jonasdaverio9369 Před rokem

      Oh, you didn't write in Julia... What a missed opportunity :p

    • @spudd86
      @spudd86 Před rokem

      @@jonasdaverio9369 Julia didn't exist when I started...

  • @Tann114
    @Tann114 Před rokem +1

    Excellent as always Pezzza! Amazing coincidence that there's a chicken in the fractal too.

  • @sickbale
    @sickbale Před rokem +1

    That's pure madness. I love it.

  • @kalelsoffspring
    @kalelsoffspring Před rokem +6

    I've always seen Mandelbrot used for these types of videos, very neat to see another type used. The difference in where the pixel coordinates go in the looping equation seems to be the only real difference, being C for Mandelbrot, and Z_0 for this. Very nice video

    • @tjavado
      @tjavado Před rokem

      this is actually a julia set of the mandelbrot iirc

    • @kalelsoffspring
      @kalelsoffspring Před rokem

      @@tjavado yeah, that's what was said in the video, I just thought it was a nice alternative. Tbh I probably would've clicked off if it was Mandelbrot again :P

  • @DRUYD
    @DRUYD Před rokem +1

    wonderful content as always, is so well explained it seems super easy, barely an inconvenience.

  • @QuentinVaresano
    @QuentinVaresano Před rokem +1

    Your videos go better and better, please never end

  • @84homey
    @84homey Před 8 měsíci

    Beautiful fractals. Beautiful numbers.

  • @clementdato6328
    @clementdato6328 Před rokem +2

    Impossible. I don't believe you can zoom in and actually find a Pezzza's Work icon in the Julie Set rendering. And it prints out exactly "Thanks for watching!" right when your video ends. I refuse to believe.

  • @absence9443
    @absence9443 Před rokem +2

    Definitely need more simplified coding channels like these!

  • @novygaming5713
    @novygaming5713 Před rokem +14

    There's another cool fractal you can make called the mandelbrot set using the same equation. You're currently rendering julia sets. For julia sets, you set c to a fixed position on the plane while changing z for every pixel. Instead for the mandelbrot set, you just set c so it also changes with z. I personally think the mandelbrot set looks way better than the julia sets since it's a combination of all possible julia sets for every pixel.

    • @crakhaed
      @crakhaed Před rokem +1

      Lol I thought this was a mandelbrot set until this comment 😂 ty for teaching

  • @WorldWeaver
    @WorldWeaver Před rokem +2

    Kid: "What if it's made of dragons? And the dragons are made of even SMALLER dragons? And those are made of even SMALLER dragons? And it's just that, forever?"
    Parent: "Fractal."
    Kid: :O
    I think we've all asked the "what if it's made of more of it" question before.

  • @bergolho
    @bergolho Před rokem +1

    Congratulations on this awesome video man!

  • @Msatthew
    @Msatthew Před rokem

    Well, that last bit was existentially terrifying. Bravo!

  • @ahuman32478
    @ahuman32478 Před rokem +2

    Hello Pezza. I built the code you provided on github and got an executable. However, when I try to run the executable, it says I am missing an SFML DLL. I didn't see any DLL included in the github repository. Am I supposed to download the DLL separately?

  • @eugienepeters1608
    @eugienepeters1608 Před rokem +1

    Thank you so much for making this video. I was always interested in making a fractal render but just didnt know what to do or the steps involved, I felt paralysed. This was really helpful. I need to learn to problem solve on my own too without being baby fed :)

  • @raushankumar2336
    @raushankumar2336 Před rokem +1

    This is absolutely dope👌

  • @vitalys5076
    @vitalys5076 Před rokem +2

    After watching the video this comment section is continuously zooming out for me. My eyes and brain can't keep up with fractals!

  • @puddleglum5610
    @puddleglum5610 Před rokem +12

    You can also pull out an extra 4x to 8x performance (depending on your cpu) by using SIMD instructions instead of your normal floating point math. It’s a lot of effort to manually code with SIMD instructions, but worth it for the better perf.

    • @Henrix1998
      @Henrix1998 Před rokem

      There's some compiler flags that probably could make use of SIMD without any extra effort

    • @puddleglum5610
      @puddleglum5610 Před rokem

      @@Henrix1998 unfortunately, its too complex for compilers to translate into SIMD instructions as you have to change the code logic quite a bit from regular Mandelbrot code in order to make full use of the SIMD instructions

    • @user-sl6gn1ss8p
      @user-sl6gn1ss8p Před rokem

      @@puddleglum5610 Maybe by creating a "computeNextFor8pixels" which does just that (taking also 8 times the input and returning a struct or something like that), and turning optimizations up?
      I've had good luck doing that with random number generators (like pcg64), don't see why this should be any harder for the compiler.

    • @INT41O
      @INT41O Před rokem +2

      @@user-sl6gn1ss8p Just use SSE/AVX intrinsics, not too complicated in this case. If you have to rewrite the code just for the compiler to better optimize, you might as well optimize it manually.

    • @user-sl6gn1ss8p
      @user-sl6gn1ss8p Před rokem

      @@INT41O fair enough, I'll look into it

  • @CelestialityRW
    @CelestialityRW Před rokem +2

    Videos like this make me want to learn C#

  • @olbluelips
    @olbluelips Před rokem

    I never get tired of fractals!

  • @Micro-Moo
    @Micro-Moo Před 5 měsíci

    It is a really nice idea to perform the sub-pixel computations.

  • @novygaming5713
    @novygaming5713 Před rokem +2

    A quick tip for getting more detail in the fractal: instead of making the gradient have more range, you can just use a mod function or a sin function to color it based on the iteration count. Kind of like how Wikipedia does it.

  • @wallywutsizface6346
    @wallywutsizface6346 Před rokem +1

    The fractals here are Julia Sets. If anyone following along wants to generate the Mandelbrot set instead, it’s quite easy. Instead of an arbitrary C value, for each pixel, set C equal to the complex coordinate of that pixel. So, instead of Z(n+1) = Z(n)^2 + C, replace C with Z(0).

  • @doolee5704
    @doolee5704 Před rokem

    I love your content, please keep them coming!!!

  • @RayznGames
    @RayznGames Před rokem +1

    I'm amazed about how far double precision goes In comparison to float. Great content!

  • @mayankthakur2158
    @mayankthakur2158 Před rokem

    absolutely amazing video, very cool stuff !!!❤️

  • @mathman0569
    @mathman0569 Před rokem +1

    I love your content I hope you get more subs and such and I hope to watch your wonderful channel grow

  • @pauls5745
    @pauls5745 Před rokem

    mesmerizing!

  • @mayankthakur2158
    @mayankthakur2158 Před rokem +1

    I've experimented a bit with this myself, but i haven't been able to figure this out: as you zoom more and more, the "contrast" of the image seems to rise. in the beginning of the animation, there are gradients of colors which lead to the sections of white in the image. however when you zoom (especially towards the end) there isn't any gradient anymore, it's just blue. any reason why that might be ?

  • @Syp64
    @Syp64 Před rokem +1

    Thanks for sharing this. Hope this inspires future talent!

  • @SoDamnMetal
    @SoDamnMetal Před rokem

    Ooo pretty colors!

  • @specific-solutions
    @specific-solutions Před rokem +2

    Have you looked into using perturbation to eliminate the float issue? I was able to build simple cpu and gpu renderers, but was not able to follow the perturbed maths to get that buttery smooth deep rendering

  • @Analog_isnt_dead
    @Analog_isnt_dead Před rokem

    This is so awesome

  • @guigazalu
    @guigazalu Před rokem +1

    I love how the video takes it's time at around 1:25.

  • @AbsolutelyPlasmadic
    @AbsolutelyPlasmadic Před rokem

    i just wanted to let u know that u have my sub :) cause i really liked ur ants and stuff :))
    thank u for ur continued dedication to the cause :)))

  • @blumbomium
    @blumbomium Před rokem +1

    Might have been the quickest 11 minutes of my life

  • @valv_
    @valv_ Před rokem

    Great as always !

  • @brynshannon6692
    @brynshannon6692 Před rokem +1

    the infinity of cosmic shrimp

  • @chonnberdosh3834
    @chonnberdosh3834 Před rokem +1

    In the final zooming-in-sequence the spot seems to be picked very nicely to allow a nice view the entire time. If one ends up in a dark-spot or bright-spot I think zooming in further would be pointless. As I could not see any camera-movement my question is: How does one pick such a spot? Is it just a bit of trying-around by hand until it fits or is there a more clever way to do it?

  • @teebs2721
    @teebs2721 Před rokem

    i love when you upload!

  • @tirterra1222
    @tirterra1222 Před rokem

    Magnifique !

  • @ruthvikas
    @ruthvikas Před rokem

    Really amazing work. 👏

  • @curiouspers
    @curiouspers Před rokem

    this is really cool! Thank you!

  • @doom5747
    @doom5747 Před 2 měsíci

    looking at this video motivated me to give this a try in python, fractals are just amazing....

  • @imnotjesper
    @imnotjesper Před rokem +1

    I think basically everyone here knows about the Mandelbrot set and Julia sets, but those who don't should check out Numberphile's video about it with Ben Sparks. It's amazing.

  • @NIGGAKILLA2009
    @NIGGAKILLA2009 Před rokem

    that's incredible

  • @cmilkau
    @cmilkau Před rokem +1

    Got a loading spinner right at the RIP float moment, which was quite funny xD

  • @zekecochran2695
    @zekecochran2695 Před rokem

    Incredible 😮‍💨

  • @AlleBalle54
    @AlleBalle54 Před rokem

    nicely done, very interesting

  • @blupblupking
    @blupblupking Před rokem

    j'adore tes vidéos mec continue

  • @killyGHILLIE
    @killyGHILLIE Před 7 měsíci

    This is cool god teir maths. I wish I listened more in school and now I need to become a computer programmer!

  • @JakeSeeber
    @JakeSeeber Před rokem +1

    Beautiful work, thank you for the video pezzza

  • @omegahaifoleet
    @omegahaifoleet Před rokem

    Amazing video and channel!!! Thanks!!

  • @zelimirfedoran9720
    @zelimirfedoran9720 Před rokem +1

    Awesome! I’d love to see this in 3d next 😅

  • @IncroyablesExperiences

    Toujours aussi intéressant 😉

  • @shadow-ht5gk
    @shadow-ht5gk Před rokem

    Your English has improved so much since the phalanx video

  • @matiaslehtinen3941
    @matiaslehtinen3941 Před rokem

    Great content, keep it up mate!

  • @TheAwesomeDudeGuy
    @TheAwesomeDudeGuy Před rokem +1

    4:22 Is bad double precision performance really still an issue? Does anybody have a source on this?

  • @nikitademodov3446
    @nikitademodov3446 Před rokem +2

    Nice video! But I don't understand why you resorted to CPU execution.. Most GPUs actually support double precision (at least all that support OpenGL 4.0.0 [natively! looking at you, Apple M1 :/]).
    I wrote a clumsy unoptimized fractal renderer once too and it ran flawlessly on GPUs (smooth motion/zooming) with full double-precision (max zoom ca. by factor one quadrillion) and I'm sure there's some optimizations that would make it much better if I had the time (and intelligence) to implement them.
    Anyways love how polished yours turned out! Congrats on (almost) 100k!

  • @phpART
    @phpART Před rokem

    absolutely epic

  • @juh9870_projects
    @juh9870_projects Před rokem +3

    Is that red halo around white dots on 10:05 a compression artifact, or is there actually a low iteration count in there?

  • @superblocker3343
    @superblocker3343 Před rokem +1

    What rendering library do you use for your projects? Or, if you don't use a library, how do you do it?

  • @nauotit577
    @nauotit577 Před rokem

    incroyable !!! vraiment impressionant

  • @zetmor1337
    @zetmor1337 Před rokem +1

    You can use that "smooth_iteration" as an elevation, and render it in (false) 3D

  • @travisc8406
    @travisc8406 Před rokem +2

    Awesome video! 👍

    • @PezzzasWork
      @PezzzasWork  Před rokem

      Sorry for my late reply, didn't see your comment! Thank you very much for your support!

  • @thebeckett2814
    @thebeckett2814 Před rokem

    bro you are amazing

  • @Dricou61
    @Dricou61 Před 9 měsíci

    It could be so fun to build a game in which you control a character that coule navigate into fractale structures

  • @fabianportero3563
    @fabianportero3563 Před rokem

    This is amazing, thanks! more about fractals in graphics please

  • @punk3900
    @punk3900 Před 3 měsíci

    magic! thank you!

  • @enzoharquin1543
    @enzoharquin1543 Před rokem +1

    Ohhhh cet accent Français je reconnais :)
    Nice work Pezza !!

  • @guigazalu
    @guigazalu Před rokem +1

    OBS video transition examples while explaining the Xaos method? So cool!

  • @Octo_Fractalis
    @Octo_Fractalis Před rokem +1

    Amazing ❤️👏👏👏