chihuahua 4 months ago

Reminds me of the time I typed in a Mandelbrot Set drawing program on a C-64 back in 1984, and let it run overnight to draw the set in 160x200 with 4 colors. I was amazed that it worked at all.

jbentley1 4 months ago

Zoom is jerky and the number of iterations don't automatically scale as I zoom in. Maybe I'm expecting too much for something that runs in the browser but seems like there is room for improvement.

  • barbs 4 months ago

    I think it runs pretty well for something in the browser but I can see what you mean. Is there a decent program that runs efficiently outside of the browser?

    • hulitu 3 months ago

      xaos, fractint

adzm 4 months ago

Make sure you read the technical details as well: https://mandelbrot.site/how-mandelbrot-site-was-built

I was surprised that this appears to be calculated entirely on the CPU via Rust code rather than with a GPU shader. The multithreaded JavaScript is indeed interesting though.

code: https://github.com/rosslh/mandelbrot.site

hermitcrab 4 months ago

I find the Mandlebrot set both fascinating and slightly existentially terrifying, in a way I can't quite put my finger on. Perhaps the way some people feel when swimming in water when they can't see the bottom.

  • sizzzzlerz 4 months ago

    The sense of infinity becomes more prevalent when looking at the image and all the tendrils stretching out. For the same reason, the idea that those tendrils trace back to the main body via infinitely thin channels always gives me the willies. A mandelbrot image makes me recall a statement someone once made about how not only is the universe strange, it's even stranger than we can imagine.

  • dogman1050 4 months ago

    You too? I've always found it and other fractals disturbing in an undefined way. Maybe like a feeling of an infinite evil that persists in spite of me knowing it's just math.

    Anyway, I first generated Mandlebrot sets in 1981 on an Ohio Scientific Challenger 1, printed out on an ASR33 via a homebrew current loop interface. <kerchunk>

    • dugmartin 4 months ago

      That is the first mention of a Challenger 1 I’ve seen in quite a long time. My parents bought my older brother a Challenger 1p around 1978 and I learned to program on it. That thing was literally a tank. My brother had soldered on a joystick controller and hooked up our Sears pong paddle controller to it and showed me how to PEEK at the right address to read the value. It felt like magic to a 7 year old.

      • dogman1050 4 months ago

        I still have it in my lab, right next to a PDP-11/05. I don't think I have a composite input monitor or NTSC TV around anymore to use as a display. I could rig something up.

jwr 4 months ago

This brings back memories of running Fractint on my i386/33 (that's 33MHz) and waiting for a full-resolution image to be generated…

  • trynix 4 months ago

    Hello jwr!

    I just came across your db48x comments, and since I couldn't reply there (old post), thought I'd catch you here :)

    I saw that you're a fan of the hp48, and enjoy loading the different libraries. I recently got into the world of HP calculators, and have been really enjoying the learning experience on HP48GX (via Emu48 on my android).

    I've been tinkering with some of the libraries, and would love some opinions on a couple of questions.

    - I currently have on my list the following libraries: speedui, erable, alg48, qpi, solvesys, stat48pro. Do you suggest any other libraries to dabble with? Anything that'd improve tthe calculator capabilities in math statistics or finance, or general useful utilities (like SpeedUI). I also came across mathtools but not sure if it adds value. When trying to answer this question I also came across https://mrityunjay.tripod.com/OS/HPUX/hp48/part4/faq.html , but not sure if all said apps (mainly Application and Math ones) are decent and compatible or not.

    - Is EQSTAK necessary if SpeedUI is installed, or not really? I ask because Erable suggests installing it, but I think speedui does the same thing?

    Thanks :)

    • jwr 3 months ago

      Hi, I haven't really used my HP48 much over the last years. I bought a bunch of HP50G calculators, and since those had most of the stuff I need preloaded, I took the easy path and I just use a stock HP50G these days. I've found that it has pretty much everything I need.

      • trynix 3 months ago

        I got intrigued and loaded a 50g on Emu48 on my android. The layout change from 48gx is a bit disorienting, but it does seem like a more powerful calculator! Right off the first use I was so glad to find a soft menu flag. Not sure of other necessary settings, but this one definitely helps.

mg 4 months ago

Over the last months, I have been compiling a list of state of the art in Mandelbrot implementations that run in the browser:

https://github.com/no-gravity/WorldWideMandelbrot

Every solution has its pros and cons. I still have not seen one that allows deep zooms (The parent only allows up to 48x zoom for example), is written in JS (parent is written in Rust and then compiled to JS), is fast, has a UI that nicely works on mobile and allows to save arbitrarely high resolutions. If there is none, I'm planning to write one myself.

Thinking about it, this could also be an interesting test on how far AI has come. When will I be able to hand the above text to an LLM and get out an HTML page with all the code that satisfies the above criteria?

  • offsky 4 months ago

    I tried adding deep zoom to mine, https://www.zazow.com but it became way too slow. Arbitrary precision math is just orders of magnitude slower, at least in the way that I understand it. I am not a mathematician.

  • hermitcrab 4 months ago

    >When will I be able to hand the above text to an LLM and get out an HTML page with all the code that satisfies the above criteria?

    I guess it depends how many humans have done the hard way, so the LLM can rip off their code?

  • lproven 4 months ago

    Why not simply keep the list in the README? Wouldn't that be much easier?

    • mg 4 months ago

      Maybe. But this way, the project layout is better suited for future enhancements.

      • lproven 3 months ago

        1. "Perfect is the enemy of good."

        If the info is intended to be read by humans, keep it in a human-readable format. That way your project is more likely to _have_ a future.

        2. Embrace your tooling.

        You are keeping it on Github. GH will render Markdown to HTML for you. Use that. Don't keep it in some format it won't render.

        3. Choose the right tools.

        YAML is for config files. This isn't a config file.

        4. Think about what tools you chose and why.

        It may be easy to parse YAML with code, but is that significantly different from how easy it is to parse Markdown with code?

        Anyway. You do you. I am not telling you what to do or how to do it. I am merely trying to point out flaws with the current approach.

        • mg 3 months ago

          I keep it in Yaml because that makes it easy to build upon it.

          For example it lets you easily make your own project based on mine which renders the Yaml file in a way that is suitable for reading. Even if I add more attributes to each entry, your version will always stay user friendly by rendering only the attributes that you deem right for your interface.

chihuahua 4 months ago

This is also good, and allows drawing the corresponding Julia set for the point corresponding to your mouse pointer:

https://mandel.gart.nz/

ralferoo 4 months ago

I've been interested in the Mandelbrot set for years, and years ago on the Amiga, I calculated hundreds of frames off line for a zoom along a path of a Julia-ish set and stored on the harddisk and played back in realtime.

Until seeing this website, I'd never even considered what different exponents might do to the image, and was pleased to find a nice logical pattern from changing it, even if the higher exponents don't necessarily have as much interesting stuff going on as you zoom in.

thih9 4 months ago

The “technical details”[1] section says:

> Multibrot Sets: Beyond the traditional Mandelbrot set, users can explore multibrot sets by adjusting the exponent in the generating formula.

> Customizable Color Schemes: Users can personalize their visual experience by choosing different color schemes.

But I don’t see that option anywhere; did anyone find it? I’m on mobile if that matters.

[1]: https://mandelbrot.site/how-mandelbrot-site-was-built

  • johnisgood 4 months ago

    "Color scheme" and "Adjust colors", tap on either, it is a dropdown menu. It shows up on desktop at least.

    • thih9 4 months ago

      I don’t see “adjust colors” in mobile safari. Still, thanks, I’ll check it out on desktop later then.

foo_barrio 4 months ago

Works pretty slick for me. Are you considering adding things like super sampling for anti-aliasing and alternate coloring methods like triangle inequality, etc?

Loughla 4 months ago

Holy shit. I would've loved this when I was in college and still doing hallucinogens.

Fractals are one of those things that just feel "right". You know?

  • progmetaldev 4 months ago

    Most likely from the way they appear in nature. I was into LSD quite a bit in the early 90's, which is when I got into generating fractals through the DOS Fractint software. I would let the computer render deeper and deeper zooms over time, while also playing with the parameters and formulas.

    Under the effects of hallucinogens, I found fractals far more noticeable in nature, especially when looking at trees. The branching from the base, off to smaller branches, out to the leaves. I feel like the geometric patterns that appear are somewhat of a fractal-design as well, even though they tend to shift and "breathe". I still enjoy fractals for the way they can be created through math processes, while also showing up in places within nature where there's not a computer anywhere in sight.

  • kristiandupont 4 months ago

    A related "existential" observation that I had when exploring these as a teenager: what's further in always seems exciting. Then, when seeing it up close, the appeal immediately disappears, only for the new "far away" bits to appear more interesting.

kunley 4 months ago

I think the coloring should remain more-less consistent when changing the number of iterations. Can be done with actually scaling iteration thresholds relative to the max iteration.

Narciss 4 months ago

Damn I thought I could zoom in forever, but at some point I couldn’t go any further. If you could zoom in endlessly it would be amazing

  • bsenftner 4 months ago

    Probably hit the floating point precision limit.

DasCorCor 4 months ago

Nice work - thanks for this! How do I play with multibrot? I couldn’t find the controls for that.

  • racingmars 4 months ago

    I think multibrot here refers to setting the exponent (under "Render Settings") to a value higher than 2.