RSSAmplifier

Blog

Roy's blog

Recent content on Roy's blog

roy.redRSS feed ↗16 posts

Latest posts

Uniting spherical and hyperbolic tilings

In my previous post, I explored generating hyperbolic, euclidean and spherical tilings using circle inversions. While it produced interesting pictures and animations, I wasn’t able to derive a formula to generate particular tilings. There’s another way to generate tilings that admits a beautifully simple unification of the three geometries. We will need a bit more machinery, but the…

Folding Animated Hyperbolic & Spherical Tilings

In a previous post, I talked about generating interesting pictures by iterated folding operations. In this post I’m going to use another type of fold to draw both hyperbolic and spherical tilings. If you are already familiar with hyperbolic geometry and tilings, skip the next few paragraphs! There’s code down at the bottom. In order to simplify what we’re talking about, we can…

3D Kaleidoscopic Fractals: Folding the Koch Snowflake

How to fold space into a Koch snowflake.

Building Escher's Square Limit in Pixels

I’ve been fascinated by M.C. Escher’s “Square Limit” print for a while. In the hopes of understanding it better I decided to try to generate my own square limit images.

dust

Infinite Regression: Many Pictures From One Function

Imitating a variety of Escherian limit tilings, as well as a squared-up Droste, by manipulating a simple function.

Drawing fractal Droste images

When I was researching Droste images for a previous post, I occasionally came across versions which depicted multiple spirals, rather than the ordinary single spiral. This led me down a rabbit hole to understand what is actually going on in these images, and to see what I could make with the effect.

Fun with interference patterns

Ordinary trigonometric functions can produce really interesting, structured patterns if you use sufficiently large numbers.

Recreating the Doctor Who Time Tunnel in GLSL

The slit-scan effect is a classic analog special effect used in the “Stargate” sequence in 2001: A Space Odyssey, and a title sequence in Doctor Who. It turns out this effect is easy to implement, and the transformation can be done in only a few lines of code.

Implementing the Droste effect in WebGL

The Droste effect is a name given to pictures that contain themselves, like an infinite series of nesting dolls. The conventional Droste effect is interesting, but it was taken to new heights by M.C. Escher’s “Print Gallery.” I wanted to understand how Escher’s Print Gallery effect actually worked, and implement it myself.

Resources

Tutorials The Book of Shaders Good intro to GLSL fragment shaders in general. Raymarching Distance Fields How does raymarching work? This article has an introduction. RayMarching 101 Heavily-commented and unobfuscated raymarching examples. GLSL tools Fragmentarium Pixel shader playground. Shadertoy on the desktop, except you can also add UI elements (sliders, etc) to adjust uniforms on-the-fly.…

(untitled)

Title: Resume Slug: resume Date: 2016-05-04 21:04:56 Tags: Category: Author: Lang: Summary: Status: published Contact Roy Wiggins @RoyWiggins GitHub r...@gmail.com Skills Languages Python, C, C#, SQL, JavaScript, Rust, Bash, Forth, Lisp, GLSL, MATLAB, LaTeX, Regular Expressions Frameworks & Platforms Flask, jQuery, Underscore, React, Git, Subversion Linux, Windows, Raspberry Pi, Arduino, iOS,…

(untitled)

Title: Slug: droste 2 Date: 2016-04-25 23:58:02 Tags: Category: Author: Lang: Summary: float r1 = 0.12; float r2 = 1.9; vec2 droste(vec2 z) { // 4. Take the tiled strips back to ordinary space. z = cLog(z); // 3. Scale and rotate the strips float scale = log(r2/r1); // Negate the angle to twist the other way float angle = atan(scale/(2.0*PI)); z = cDiv(z, cExp(vec2(0,angle))*cos(angle)); // 2.…

(untitled)

Title: GLSL test Slug: glsl-test Date: 2016-10-28 16:13:01 Tags: Category: Author: Lang: Summary: Testing foobar bar

(untitled)

Title: Hello world Slug: Date: 2016-04-02 18:40:03 Tags: Category: Author: Roy Wiggins Lang: Summary: Hello world.

(untitled)

Title: Test Slug: textures Date: 2016-05-31 23:47:34 Tags: Category: Author: Lang: Summary: 0.? domain(z): vec3(0); }"