.. DO NOT EDIT. .. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY. .. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE: .. "gallery/shadertoy_blink.py" .. LINE NUMBERS ARE GIVEN BELOW. .. only:: html .. note:: :class: sphx-glr-download-link-note :ref:`Go to the end ` to download the full example code. .. rst-class:: sphx-glr-example-title .. _sphx_glr_gallery_shadertoy_blink.py: Shadertoy Example ================= One wgpu_shadertoy example written in WGSL, I don't know if this is a port or original work. .. GENERATED FROM PYTHON SOURCE LINES 7-52 .. code-block:: Python from wgpu_shadertoy import Shadertoy shader_code = """ fn render(p_: vec2) -> vec3 { let s = sin(i_time) * sin(i_time) * sin(i_time) + 0.5; var p = p_; var d = length(p * 0.8) - pow(2.0 * abs(0.5 - fract(atan2(p.y, p.x) / 3.1416 * 2.5 + i_time * 0.3)), 2.5) * 0.1; var col = vec3(0.0); // star col += 0.01 / (d * d) * vec3(0.5, 0.7, 1.5) * (1.0 + s); // spiral d = sin(length(p * 2.0) * 10.0 - i_time * 3.0) - sin(atan2(p.y, p.x) * 5.0) * 1.0; col += 0.1 / (0.2 + d * d) * vec3(1.0, 0.0, 1.0); // background for (var i = 0; i < 6; i+=1) { p = abs(p) / dot(p, p) - 1.0; } col += vec3(0.001 / dot(p, p)); return col; } fn shader_main(frag_coord: vec2) -> vec4 { let uv = (frag_coord-i_resolution.xy*0.5)/i_resolution.y; let col = render(uv); return vec4(col,1.0); } """ shader = Shadertoy(shader_code, resolution=(800, 450)) if __name__ == "__main__": shader.show() .. _sphx_glr_download_gallery_shadertoy_blink.py: .. only:: html .. container:: sphx-glr-footer sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: shadertoy_blink.ipynb ` .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: shadertoy_blink.py ` .. container:: sphx-glr-download sphx-glr-download-zip :download:`Download zipped: shadertoy_blink.zip ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_ .. only:: html Interactive example =================== This uses Pyodide. If this does not work, your browser may not have sufficient support for wasm/pyodide/wgpu (check your browser dev console). Stdout (print statements) will also appear in the browser console. .. raw:: html