c1ccccc1 6 days ago

Here's some more examples:

    cos((x - t)) + cos(0.5877852522924731*y + 0.8090169943749475*(x - t)) + cos(0.9510565162951535*y + 0.30901699437494745*(x - t)) + cos(0.9510565162951536*y - 0.30901699437494734*(x - t)) + cos(0.5877852522924732*y - 0.8090169943749473*(x - t)) = z

    10.0*(pow(sin(0.1*(x*x-y*y)), 2.0) + pow(sin(0.2*x*y), 2.0))/sqrt(x*x + y*y) = z

    x*x+y*y+z*z=2.0+cos(t+10.0*x+24.0*y)+cos(t - 10.0*x+24.0*y+16.0*z)+sin(t+x+y+2.0*z)+cos(3.0*t+y-z)+sin(2.0*t+x*y)+cos(t+3.0*x*y)+sin(0.1*t+y*z + 7.0*x*y)+cos(0.5*t+x*y*z)+cos(5.0*z)+cos(1.618*t+7.0*z)+cos((x+2.0*y)*(2.0\*z-y))
  • contravariant 6 days ago

    You escaped an * one time too many in the last one.

jayhoon 6 days ago

Adding a periodic unbounded function of time (like tan) makes the plot to "explode":

(6.0*(0.04*x*x - 1.0)*pow(0.2*x, 2.0) + pow(0.02*x*x - 1.0, 2.0) + 6.0*(0.04*y*y - 1.0)*pow(0.2*y, 2.0) + pow(0.04*y*y - 1.0, 2.0) + 6.0*(0.04*z*z - 1.0)*pow(0.2*z, 2.0) + pow(0.04*z*z - 1.0, 2.0)) = tan(t)

Adding more non-linearity makes the plot is more dynamic:

(6.0*(0.04*x*x - 1.0)*pow(0.2*x, 2.0) + pow(0.02*x*x - 1.0, 2.0) + 6.0*(0.04*y*y - 1.0)*pow(0.2*y, 2.0) + pow(0.04*y*y - 1.0, 2.0) + 6.0*(0.04*z*z - 1.0)*pow(0.2*z, 2.0) + pow(0.04*z*z - 1.0, 2.0)) = tan(t*cos(t))

Edit: Escaping.

memalign 6 days ago

This project is so cool!

Please copy some of the UI ideas from my 2D graphing calculator (which itself copied nearly all of the UI of graphtoy.com): https://memalign.github.io/m/formulagraph/index.html

- Buttons to load examples

- Quick way to share a link to the current plot

- Buttons that show what functions are supported

ausydi 6 days ago

This is a truly impressive achievement in real-time browser rendering. The utilization of GPU power to plot implicit functions in real-time is a testament to the capabilities of modern web technologies. The ability to interactively explore and visualize these complex mathematical functions in the browser will undoubtedly prove to be a valuable tool for both researchers and students alike. The seamless integration of this technology into a web-based platform also makes it easily accessible to a wide audience, further increasing its impact. I am eager to see what other groundbreaking developments will come out of this field in the future.

  • ausydi 6 days ago

    A browser-based plotter, with GPU power to boot,

    A tool for math students, a treasure to loot.

    Implicit functions, once hard to explore,

    Now with this tool, easily to deplore.

    Real-time rendering, a sight to behold,

    A new way to understand, the stories these functions have told.

    Interactive and accessible, to all with a browser,

    A true game-changer, like the discovery of a new rover.

    No longer a struggle, to see and to know,

    The beauty of math, it can now show.

    This technology, a democratizer,

    A bright future, it will inspire.

    So let us embrace, this new way to see,

    The complexity of math, now easy to be.

Mizza 6 days ago

Dang, that's really pretty. Could do with a little interface polish, but really nice visualizations. How does 't' work? Would love to be able to feed an audio waveform into a fullscreen mode and some palette options.

  • timokoesters 6 days ago

    t is just a time variable that's loaded from the CPU to the GPU every frame, so it's possible to use all sorts of other data as well.

    • nextaccountic 6 days ago

      Could the shader just compute the t by itself, without loading it every frame?

farcaster 6 days ago

I've been meaning to do some project in the browser involving the GPU and can't decide on a framework to use.

What would you recommend? The cool kids seem to be using pure webGPU

  • timokoesters 6 days ago

    This was made in Rust using WGPU and their WGSL shading language. It still needs more documentation and tutorials, but the results are great and port to many platforms.

gpm 6 days ago

Did you publish the source as well?